diff options
author | Jo-Philipp Wich <jo@mein.io> | 2017-02-16 17:36:47 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2017-02-19 19:08:46 +0100 |
commit | b65dc04712dfb8cc7bb9036c7c73b0cead6dd7c9 (patch) | |
tree | 6ebef4cc7d786698b57488d1d3d929dd7c398560 /package/system/opkg/patches/230-drop_md5_support.patch | |
parent | 84ceca514841dd6d4705dc27d2104ee0aa18b9e1 (diff) | |
download | upstream-b65dc04712dfb8cc7bb9036c7c73b0cead6dd7c9.tar.gz upstream-b65dc04712dfb8cc7bb9036c7c73b0cead6dd7c9.tar.bz2 upstream-b65dc04712dfb8cc7bb9036c7c73b0cead6dd7c9.zip |
opkg: switch to own fork to improve memory usage
Switch to our own fork of opkg to significantly reduce the required amount
of memory when updating lists or installing packages.
Preliminary tests showed a usage drop of about 90% during these operations,
from ~3.7MB with unmodified opkg to ~360KB with our custom fork.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'package/system/opkg/patches/230-drop_md5_support.patch')
-rw-r--r-- | package/system/opkg/patches/230-drop_md5_support.patch | 192 |
1 files changed, 0 insertions, 192 deletions
diff --git a/package/system/opkg/patches/230-drop_md5_support.patch b/package/system/opkg/patches/230-drop_md5_support.patch deleted file mode 100644 index 57546bedf1..0000000000 --- a/package/system/opkg/patches/230-drop_md5_support.patch +++ /dev/null @@ -1,192 +0,0 @@ ---- a/libopkg/conffile.c -+++ b/libopkg/conffile.c -@@ -36,7 +36,7 @@ void conffile_deinit(conffile_t *conffil - - 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,23 @@ int conffile_has_been_modified(conffile_ - - 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 -+ if(conffile->value && strlen(conffile->value) > 33) { -+ chksum = file_sha256sum_alloc(root_filename); -+ } else { -+ 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_MD5 - #include "md5.h" -+#endif - #include "libbb/libbb.h" - - #if defined HAVE_SHA256 -@@ -135,6 +137,7 @@ file_mkdir_hier(const char *path, long m - 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 @@ char *file_md5sum_alloc(const char *file - - 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 @@ resolve_conffiles(pkg_t *pkg) - conffile_list_elt_t *iter; - conffile_t *cf; - char *cf_backup; -- char *md5sum; -+ char *chksum; - - if (conf->noaction) return 0; - -@@ -1093,7 +1093,7 @@ resolve_conffiles(pkg_t *pkg) - - /* Might need to initialize the md5sum for each conffile */ - if (cf->value == NULL) { -- cf->value = file_md5sum_alloc(root_filename); -+ cf->value = file_sha256sum_alloc(root_filename); - } - - if (!file_exists(root_filename)) { -@@ -1105,8 +1105,16 @@ resolve_conffiles(pkg_t *pkg) - - 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 -+ if(cf->value && strlen(cf->value) > 33) { -+ chksum = file_sha256sum_alloc(cf_backup); -+ } else { -+ 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 @@ resolve_conffiles(pkg_t *pkg) - } - } - unlink(cf_backup); -- if (md5sum) -- free(md5sum); -+ if (chksum) -+ free(chksum); - } - - free(cf_backup); -@@ -1323,6 +1331,7 @@ opkg_install_pkg(pkg_t *pkg, int from_up - } - #endif - -+#ifdef HAVE_MD5 - /* Check for md5 values */ - if (pkg->md5sum) - { -@@ -1346,6 +1355,7 @@ opkg_install_pkg(pkg_t *pkg, int from_up - 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 @@ opkg_list_sources = conffile.c conffile. - 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 -@@ -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]) - 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_MD5, test "x$want_md5" = "xyes") - - # check for openssl - AC_ARG_ENABLE(openssl, ---- a/libopkg/pkg_parse.c -+++ b/libopkg/pkg_parse.c -@@ -49,9 +49,9 @@ parse_status(pkg_t *pkg, const char *sst - static void - parse_conffiles(pkg_t *pkg, const char *cstr) - { -- char file_name[1024], md5sum[35]; -+ char file_name[1024], md5sum[85]; - -- if (sscanf(cstr, "%1023s %34s", file_name, md5sum) != 2) { -+ if (sscanf(cstr, "%1023s %84s", file_name, md5sum) != 2) { - opkg_msg(ERROR, "Failed to parse Conffiles line for %s\n", - pkg->name); - return; |