mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 01:11:14 +00:00
cc9a392e49
Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 45437
162 lines
4.1 KiB
Diff
162 lines
4.1 KiB
Diff
--- a/libopkg/conffile.c
|
|
+++ b/libopkg/conffile.c
|
|
@@ -36,7 +36,7 @@
|
|
|
|
int conffile_has_been_modified(conffile_t *conffile)
|
|
{
|
|
- char *md5sum;
|
|
+ char *chksum;
|
|
char *filename = conffile->name;
|
|
char *root_filename;
|
|
int ret = 1;
|
|
@@ -48,16 +48,19 @@
|
|
|
|
root_filename = root_filename_alloc(filename);
|
|
|
|
- md5sum = file_md5sum_alloc(root_filename);
|
|
-
|
|
- if (md5sum && (ret = strcmp(md5sum, conffile->value))) {
|
|
- opkg_msg(INFO, "Conffile %s:\n\told md5=%s\n\tnew md5=%s\n",
|
|
- conffile->name, md5sum, conffile->value);
|
|
+#ifdef HAVE_MD5
|
|
+ chksum = file_md5sum_alloc(root_filename);
|
|
+#else
|
|
+ chksum = file_sha256sum_alloc(root_filename);
|
|
+#endif
|
|
+ if (chksum && (ret = strcmp(chksum, conffile->value))) {
|
|
+ opkg_msg(INFO, "Conffile %s:\n\told chk=%s\n\tnew chk=%s\n",
|
|
+ conffile->name, chksum, conffile->value);
|
|
}
|
|
|
|
free(root_filename);
|
|
- if (md5sum)
|
|
- free(md5sum);
|
|
+ if (chksum)
|
|
+ free(chksum);
|
|
|
|
return ret;
|
|
}
|
|
--- a/libopkg/file_util.c
|
|
+++ b/libopkg/file_util.c
|
|
@@ -26,7 +26,9 @@
|
|
|
|
#include "sprintf_alloc.h"
|
|
#include "file_util.h"
|
|
+#ifdef HAVE_SHA256
|
|
#include "md5.h"
|
|
+#endif
|
|
#include "libbb/libbb.h"
|
|
|
|
#if defined HAVE_SHA256
|
|
@@ -135,6 +137,7 @@
|
|
return make_directory(path, mode, FILEUTILS_RECUR);
|
|
}
|
|
|
|
+#ifdef HAVE_MD5
|
|
char *file_md5sum_alloc(const char *file_name)
|
|
{
|
|
static const int md5sum_bin_len = 16;
|
|
@@ -180,6 +183,7 @@
|
|
|
|
return md5sum_hex;
|
|
}
|
|
+#endif
|
|
|
|
#ifdef HAVE_SHA256
|
|
char *file_sha256sum_alloc(const char *file_name)
|
|
--- a/libopkg/opkg_install.c
|
|
+++ b/libopkg/opkg_install.c
|
|
@@ -1082,7 +1082,7 @@
|
|
conffile_list_elt_t *iter;
|
|
conffile_t *cf;
|
|
char *cf_backup;
|
|
- char *md5sum;
|
|
+ char *chksum;
|
|
|
|
if (conf->noaction) return 0;
|
|
|
|
@@ -1093,7 +1093,11 @@
|
|
|
|
/* Might need to initialize the md5sum for each conffile */
|
|
if (cf->value == NULL) {
|
|
+#ifdef HAVE_MD5
|
|
cf->value = file_md5sum_alloc(root_filename);
|
|
+#else
|
|
+ cf->value = file_sha256sum_alloc(root_filename);
|
|
+#endif
|
|
}
|
|
|
|
if (!file_exists(root_filename)) {
|
|
@@ -1105,8 +1109,12 @@
|
|
|
|
if (file_exists(cf_backup)) {
|
|
/* Let's compute md5 to test if files are changed */
|
|
- md5sum = file_md5sum_alloc(cf_backup);
|
|
- if (md5sum && cf->value && strcmp(cf->value,md5sum) != 0 ) {
|
|
+#ifdef HAVE_MD5
|
|
+ chksum = file_md5sum_alloc(cf_backup);
|
|
+#else
|
|
+ chksum = file_sha256sum_alloc(cf_backup);
|
|
+#endif
|
|
+ if (chksum && cf->value && strcmp(cf->value,chksum) != 0 ) {
|
|
if (conf->force_maintainer) {
|
|
opkg_msg(NOTICE, "Conffile %s using maintainer's setting.\n",
|
|
cf_backup);
|
|
@@ -1123,8 +1131,8 @@
|
|
}
|
|
}
|
|
unlink(cf_backup);
|
|
- if (md5sum)
|
|
- free(md5sum);
|
|
+ if (chksum)
|
|
+ free(chksum);
|
|
}
|
|
|
|
free(cf_backup);
|
|
@@ -1323,6 +1331,7 @@
|
|
}
|
|
#endif
|
|
|
|
+#ifdef HAVE_MD5
|
|
/* Check for md5 values */
|
|
if (pkg->md5sum)
|
|
{
|
|
@@ -1346,6 +1355,7 @@
|
|
if (file_md5)
|
|
free(file_md5);
|
|
}
|
|
+#endif
|
|
|
|
#ifdef HAVE_SHA256
|
|
/* Check for sha256 value */
|
|
--- a/libopkg/Makefile.am
|
|
+++ b/libopkg/Makefile.am
|
|
@@ -25,13 +25,16 @@
|
|
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 \
|
|
active_list.c active_list.h list.h
|
|
-opkg_util_sources = file_util.c file_util.h opkg_message.h opkg_message.c md5.c md5.h \
|
|
+opkg_util_sources = file_util.c file_util.h opkg_message.h opkg_message.c \
|
|
parse_util.c parse_util.h \
|
|
sprintf_alloc.c sprintf_alloc.h \
|
|
xregex.c xregex.h xsystem.c xsystem.h
|
|
if HAVE_PATHFINDER
|
|
opkg_util_sources += opkg_pathfinder.c opkg_pathfinder.h
|
|
endif
|
|
+if HAVE_MD5
|
|
+opkg_util_sources += md5.c md5.h
|
|
+endif
|
|
if HAVE_SHA256
|
|
opkg_util_sources += sha256.c sha256.h
|
|
endif
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -72,6 +72,7 @@
|
|
AC_DEFINE(HAVE_SHA256, 1, [Define if you want sha256 support])
|
|
fi
|
|
AM_CONDITIONAL(HAVE_SHA256, test "x$want_sha256" = "xyes")
|
|
+AM_CONDITIONAL(HAVE_MD5, test "x$want_sha256" = "xno")
|
|
|
|
# check for openssl
|
|
AC_ARG_ENABLE(openssl,
|