opkg: Make opkg understand old md5
Opkg now uses sha256 by default and expects them. Making it optionally understand md5s also and detect md5 sum so we can migrate from configuration that used md5. Signed-off-by: Michal Hrusecky <Michal.Hrusecky@nic.cz> SVN-Revision: 48867
This commit is contained in:
parent
7d008e8bf0
commit
61c839ddd7
2 changed files with 69 additions and 21 deletions
|
@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/feeds.mk
|
||||||
PKG_NAME:=opkg
|
PKG_NAME:=opkg
|
||||||
PKG_REV:=9c97d5ecd795709c8584e972bfdf3aee3a5b846d
|
PKG_REV:=9c97d5ecd795709c8584e972bfdf3aee3a5b846d
|
||||||
PKG_VERSION:=$(PKG_REV)
|
PKG_VERSION:=$(PKG_REV)
|
||||||
PKG_RELEASE:=10
|
PKG_RELEASE:=11
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=$(PKG_REV)
|
PKG_SOURCE_VERSION:=$(PKG_REV)
|
||||||
|
@ -43,6 +43,7 @@ define Package/opkg/Default
|
||||||
TITLE:=opkg package manager
|
TITLE:=opkg package manager
|
||||||
DEPENDS:=+uclient-fetch
|
DEPENDS:=+uclient-fetch
|
||||||
URL:=http://wiki.openmoko.org/wiki/Opkg
|
URL:=http://wiki.openmoko.org/wiki/Opkg
|
||||||
|
MENU:=1
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/opkg/Default/description
|
define Package/opkg/Default/description
|
||||||
|
@ -55,6 +56,16 @@ define Package/opkg/Default/description
|
||||||
opkg knows how to install both .ipk and .deb packages.
|
opkg knows how to install both .ipk and .deb packages.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/opkg/config
|
||||||
|
config OPKG_SUPPORT_MD5
|
||||||
|
bool
|
||||||
|
default n
|
||||||
|
depends on PACKAGE_opkg
|
||||||
|
prompt "Support reading old md5 hashes."
|
||||||
|
help
|
||||||
|
Old opkg used md5s, new uses sha. This options enables understanding both while prefering sha.
|
||||||
|
endef
|
||||||
|
|
||||||
define Package/opkg
|
define Package/opkg
|
||||||
$(call Package/opkg/Default)
|
$(call Package/opkg/Default)
|
||||||
VARIANT:=unsigned
|
VARIANT:=unsigned
|
||||||
|
@ -84,6 +95,16 @@ define Package/opkg-smime/description
|
||||||
This package allows the Package index to be verified with S/MIME.
|
This package allows the Package index to be verified with S/MIME.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/opkg-smime/config
|
||||||
|
config OPKG_SMIME_SUPPORT_MD5
|
||||||
|
bool
|
||||||
|
default n
|
||||||
|
depends on PACKAGE_opkg-smime
|
||||||
|
prompt "Support reading old md5 hashes."
|
||||||
|
help
|
||||||
|
Old opkg used md5s, new uses sha. This options enables understanding both while prefering sha.
|
||||||
|
endef
|
||||||
|
|
||||||
Package/opkg-smime/conffiles = $(Package/opkg/conffiles)
|
Package/opkg-smime/conffiles = $(Package/opkg/conffiles)
|
||||||
|
|
||||||
TARGET_CFLAGS += -ffunction-sections -fdata-sections
|
TARGET_CFLAGS += -ffunction-sections -fdata-sections
|
||||||
|
@ -98,10 +119,20 @@ CONFIGURE_ARGS += \
|
||||||
|
|
||||||
ifeq ($(BUILD_VARIANT),smime)
|
ifeq ($(BUILD_VARIANT),smime)
|
||||||
CONFIGURE_ARGS += --enable-openssl --disable-usign
|
CONFIGURE_ARGS += --enable-openssl --disable-usign
|
||||||
|
ifeq ($(CONFIG_OPKG_SMIME_SUPPORT_MD5),y)
|
||||||
|
CONFIGURE_ARGS += --enable-md5
|
||||||
|
else
|
||||||
|
CONFIGURE_ARGS += --disable-md5
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
ifndef CONFIG_SIGNED_PACKAGES
|
ifndef CONFIG_SIGNED_PACKAGES
|
||||||
CONFIGURE_ARGS += --disable-usign
|
CONFIGURE_ARGS += --disable-usign
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(CONFIG_OPKG_SUPPORT_MD5),y)
|
||||||
|
CONFIGURE_ARGS += --enable-md5
|
||||||
|
else
|
||||||
|
CONFIGURE_ARGS += --disable-md5
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
MAKE_FLAGS = \
|
MAKE_FLAGS = \
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/libopkg/conffile.c
|
--- a/libopkg/conffile.c
|
||||||
+++ b/libopkg/conffile.c
|
+++ b/libopkg/conffile.c
|
||||||
@@ -36,7 +36,7 @@
|
@@ -36,7 +36,7 @@ void conffile_deinit(conffile_t *conffil
|
||||||
|
|
||||||
int conffile_has_been_modified(conffile_t *conffile)
|
int conffile_has_been_modified(conffile_t *conffile)
|
||||||
{
|
{
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
char *filename = conffile->name;
|
char *filename = conffile->name;
|
||||||
char *root_filename;
|
char *root_filename;
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
@@ -48,16 +48,19 @@
|
@@ -48,16 +48,23 @@ int conffile_has_been_modified(conffile_
|
||||||
|
|
||||||
root_filename = root_filename_alloc(filename);
|
root_filename = root_filename_alloc(filename);
|
||||||
|
|
||||||
|
@ -19,7 +19,11 @@
|
||||||
- opkg_msg(INFO, "Conffile %s:\n\told md5=%s\n\tnew md5=%s\n",
|
- opkg_msg(INFO, "Conffile %s:\n\told md5=%s\n\tnew md5=%s\n",
|
||||||
- conffile->name, md5sum, conffile->value);
|
- conffile->name, md5sum, conffile->value);
|
||||||
+#ifdef HAVE_MD5
|
+#ifdef HAVE_MD5
|
||||||
|
+ if(conffile->value && strlen(conffile->value) > 33) {
|
||||||
|
+ chksum = file_sha256sum_alloc(root_filename);
|
||||||
|
+ } else {
|
||||||
+ chksum = file_md5sum_alloc(root_filename);
|
+ chksum = file_md5sum_alloc(root_filename);
|
||||||
|
+ }
|
||||||
+#else
|
+#else
|
||||||
+ chksum = file_sha256sum_alloc(root_filename);
|
+ chksum = file_sha256sum_alloc(root_filename);
|
||||||
+#endif
|
+#endif
|
||||||
|
@ -48,7 +52,7 @@
|
||||||
#include "libbb/libbb.h"
|
#include "libbb/libbb.h"
|
||||||
|
|
||||||
#if defined HAVE_SHA256
|
#if defined HAVE_SHA256
|
||||||
@@ -135,6 +137,7 @@
|
@@ -135,6 +137,7 @@ file_mkdir_hier(const char *path, long m
|
||||||
return make_directory(path, mode, FILEUTILS_RECUR);
|
return make_directory(path, mode, FILEUTILS_RECUR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +60,7 @@
|
||||||
char *file_md5sum_alloc(const char *file_name)
|
char *file_md5sum_alloc(const char *file_name)
|
||||||
{
|
{
|
||||||
static const int md5sum_bin_len = 16;
|
static const int md5sum_bin_len = 16;
|
||||||
@@ -180,6 +183,7 @@
|
@@ -180,6 +183,7 @@ char *file_md5sum_alloc(const char *file
|
||||||
|
|
||||||
return md5sum_hex;
|
return md5sum_hex;
|
||||||
}
|
}
|
||||||
|
@ -66,7 +70,7 @@
|
||||||
char *file_sha256sum_alloc(const char *file_name)
|
char *file_sha256sum_alloc(const char *file_name)
|
||||||
--- a/libopkg/opkg_install.c
|
--- a/libopkg/opkg_install.c
|
||||||
+++ b/libopkg/opkg_install.c
|
+++ b/libopkg/opkg_install.c
|
||||||
@@ -1082,7 +1082,7 @@
|
@@ -1082,7 +1082,7 @@ resolve_conffiles(pkg_t *pkg)
|
||||||
conffile_list_elt_t *iter;
|
conffile_list_elt_t *iter;
|
||||||
conffile_t *cf;
|
conffile_t *cf;
|
||||||
char *cf_backup;
|
char *cf_backup;
|
||||||
|
@ -75,26 +79,27 @@
|
||||||
|
|
||||||
if (conf->noaction) return 0;
|
if (conf->noaction) return 0;
|
||||||
|
|
||||||
@@ -1093,7 +1093,11 @@
|
@@ -1093,7 +1093,7 @@ resolve_conffiles(pkg_t *pkg)
|
||||||
|
|
||||||
/* Might need to initialize the md5sum for each conffile */
|
/* Might need to initialize the md5sum for each conffile */
|
||||||
if (cf->value == NULL) {
|
if (cf->value == NULL) {
|
||||||
+#ifdef HAVE_MD5
|
- cf->value = file_md5sum_alloc(root_filename);
|
||||||
cf->value = file_md5sum_alloc(root_filename);
|
|
||||||
+#else
|
|
||||||
+ cf->value = file_sha256sum_alloc(root_filename);
|
+ cf->value = file_sha256sum_alloc(root_filename);
|
||||||
+#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!file_exists(root_filename)) {
|
if (!file_exists(root_filename)) {
|
||||||
@@ -1105,8 +1109,12 @@
|
@@ -1105,8 +1105,16 @@ resolve_conffiles(pkg_t *pkg)
|
||||||
|
|
||||||
if (file_exists(cf_backup)) {
|
if (file_exists(cf_backup)) {
|
||||||
/* Let's compute md5 to test if files are changed */
|
/* Let's compute md5 to test if files are changed */
|
||||||
- md5sum = file_md5sum_alloc(cf_backup);
|
- md5sum = file_md5sum_alloc(cf_backup);
|
||||||
- if (md5sum && cf->value && strcmp(cf->value,md5sum) != 0 ) {
|
- if (md5sum && cf->value && strcmp(cf->value,md5sum) != 0 ) {
|
||||||
+#ifdef HAVE_MD5
|
+#ifdef HAVE_MD5
|
||||||
|
+ if(cf->value && strlen(cf->value) > 33) {
|
||||||
|
+ chksum = file_sha256sum_alloc(cf_backup);
|
||||||
|
+ } else {
|
||||||
+ chksum = file_md5sum_alloc(cf_backup);
|
+ chksum = file_md5sum_alloc(cf_backup);
|
||||||
|
+ }
|
||||||
+#else
|
+#else
|
||||||
+ chksum = file_sha256sum_alloc(cf_backup);
|
+ chksum = file_sha256sum_alloc(cf_backup);
|
||||||
+#endif
|
+#endif
|
||||||
|
@ -102,7 +107,7 @@
|
||||||
if (conf->force_maintainer) {
|
if (conf->force_maintainer) {
|
||||||
opkg_msg(NOTICE, "Conffile %s using maintainer's setting.\n",
|
opkg_msg(NOTICE, "Conffile %s using maintainer's setting.\n",
|
||||||
cf_backup);
|
cf_backup);
|
||||||
@@ -1123,8 +1131,8 @@
|
@@ -1123,8 +1131,8 @@ resolve_conffiles(pkg_t *pkg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unlink(cf_backup);
|
unlink(cf_backup);
|
||||||
|
@ -113,7 +118,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
free(cf_backup);
|
free(cf_backup);
|
||||||
@@ -1323,6 +1331,7 @@
|
@@ -1323,6 +1331,7 @@ opkg_install_pkg(pkg_t *pkg, int from_up
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -121,7 +126,7 @@
|
||||||
/* Check for md5 values */
|
/* Check for md5 values */
|
||||||
if (pkg->md5sum)
|
if (pkg->md5sum)
|
||||||
{
|
{
|
||||||
@@ -1346,6 +1355,7 @@
|
@@ -1346,6 +1355,7 @@ opkg_install_pkg(pkg_t *pkg, int from_up
|
||||||
if (file_md5)
|
if (file_md5)
|
||||||
free(file_md5);
|
free(file_md5);
|
||||||
}
|
}
|
||||||
|
@ -131,7 +136,7 @@
|
||||||
/* Check for sha256 value */
|
/* Check for sha256 value */
|
||||||
--- a/libopkg/Makefile.am
|
--- a/libopkg/Makefile.am
|
||||||
+++ b/libopkg/Makefile.am
|
+++ b/libopkg/Makefile.am
|
||||||
@@ -25,13 +25,16 @@
|
@@ -25,13 +25,16 @@ opkg_list_sources = conffile.c conffile.
|
||||||
pkg_src.c pkg_src.h pkg_src_list.c pkg_src_list.h \
|
pkg_src.c pkg_src.h pkg_src_list.c pkg_src_list.h \
|
||||||
str_list.c str_list.h void_list.c void_list.h \
|
str_list.c str_list.h void_list.c void_list.h \
|
||||||
active_list.c active_list.h list.h
|
active_list.c active_list.h list.h
|
||||||
|
@ -151,11 +156,23 @@
|
||||||
endif
|
endif
|
||||||
--- a/configure.ac
|
--- a/configure.ac
|
||||||
+++ b/configure.ac
|
+++ b/configure.ac
|
||||||
@@ -72,6 +72,7 @@
|
@@ -68,10 +68,19 @@ AC_ARG_ENABLE(sha256,
|
||||||
|
(sha256.{c,h} are GPLv3 licensed) [[default=no]] ]),
|
||||||
|
[want_sha256="$enableval"], [want_sha256="no"])
|
||||||
|
|
||||||
|
+AC_ARG_ENABLE(md5,
|
||||||
|
+ AC_HELP_STRING([--enable-md5], [Enable md5sum check
|
||||||
|
+ (md5.{c,h} are GPLv3 licensed) [[default=no]] ]),
|
||||||
|
+ [want_md5="$enableval"], [want_md5="yes"])
|
||||||
|
+
|
||||||
|
if test "x$want_sha256" = "xyes"; then
|
||||||
AC_DEFINE(HAVE_SHA256, 1, [Define if you want sha256 support])
|
AC_DEFINE(HAVE_SHA256, 1, [Define if you want sha256 support])
|
||||||
fi
|
fi
|
||||||
|
+if test "x$want_md5" = "xyes"; then
|
||||||
|
+ AC_DEFINE(HAVE_MD5, 1, [Define if you want md5 support])
|
||||||
|
+fi
|
||||||
AM_CONDITIONAL(HAVE_SHA256, test "x$want_sha256" = "xyes")
|
AM_CONDITIONAL(HAVE_SHA256, test "x$want_sha256" = "xyes")
|
||||||
+AM_CONDITIONAL(HAVE_MD5, test "x$want_sha256" = "xno")
|
+AM_CONDITIONAL(HAVE_MD5, test "x$want_md5" = "xyes")
|
||||||
|
|
||||||
# check for openssl
|
# check for openssl
|
||||||
AC_ARG_ENABLE(openssl,
|
AC_ARG_ENABLE(openssl,
|
||||||
|
|
Loading…
Reference in a new issue