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/100-add-force-checksum.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/100-add-force-checksum.patch')
-rw-r--r-- | package/system/opkg/patches/100-add-force-checksum.patch | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/package/system/opkg/patches/100-add-force-checksum.patch b/package/system/opkg/patches/100-add-force-checksum.patch deleted file mode 100644 index 5f65a7540c..0000000000 --- a/package/system/opkg/patches/100-add-force-checksum.patch +++ /dev/null @@ -1,85 +0,0 @@ ---- a/libopkg/opkg_conf.c -+++ b/libopkg/opkg_conf.c -@@ -54,6 +54,7 @@ opkg_option_t options[] = { - { "force_reinstall", OPKG_OPT_TYPE_BOOL, &_conf.force_reinstall }, - { "force_space", OPKG_OPT_TYPE_BOOL, &_conf.force_space }, - { "force_postinstall", OPKG_OPT_TYPE_BOOL, &_conf.force_postinstall }, -+ { "force_checksum", OPKG_OPT_TYPE_BOOL, &_conf.force_checksum }, - { "check_signature", OPKG_OPT_TYPE_BOOL, &_conf.check_signature }, - { "ftp_proxy", OPKG_OPT_TYPE_STRING, &_conf.ftp_proxy }, - { "http_proxy", OPKG_OPT_TYPE_STRING, &_conf.http_proxy }, ---- a/libopkg/opkg_conf.h -+++ b/libopkg/opkg_conf.h -@@ -78,6 +78,7 @@ struct opkg_conf - int force_removal_of_essential_packages; - int force_postinstall; - int force_remove; -+ int force_checksum; - int check_signature; - int nodeps; /* do not follow dependencies */ - int nocase; /* perform case insensitive matching */ ---- a/libopkg/opkg_install.c -+++ b/libopkg/opkg_install.c -@@ -1327,12 +1327,19 @@ opkg_install_pkg(pkg_t *pkg, int from_up - file_md5 = file_md5sum_alloc(pkg->local_filename); - if (file_md5 && strcmp(file_md5, pkg->md5sum)) - { -- opkg_msg(ERROR, "Package %s md5sum mismatch. " -- "Either the opkg or the package index are corrupt. " -- "Try 'opkg update'.\n", -- pkg->name); -- free(file_md5); -- return -1; -+ if (!conf->force_checksum) -+ { -+ opkg_msg(ERROR, "Package %s md5sum mismatch. " -+ "Either the opkg or the package index are corrupt. " -+ "Try 'opkg update'.\n", -+ pkg->name); -+ free(file_md5); -+ return -1; -+ } -+ else -+ { -+ opkg_msg(NOTICE, "Ignored %s md5sum mismatch.\n", pkg->name); -+ } - } - if (file_md5) - free(file_md5); ---- a/src/opkg-cl.c -+++ b/src/opkg-cl.c -@@ -42,6 +42,7 @@ enum { - ARGS_OPT_FORCE_SPACE, - ARGS_OPT_FORCE_POSTINSTALL, - ARGS_OPT_FORCE_REMOVE, -+ ARGS_OPT_FORCE_CHECKSUM, - ARGS_OPT_ADD_ARCH, - ARGS_OPT_ADD_DEST, - ARGS_OPT_NOACTION, -@@ -84,6 +85,8 @@ static struct option long_options[] = { - {"force_postinstall", 0, 0, ARGS_OPT_FORCE_POSTINSTALL}, - {"force-remove", 0, 0, ARGS_OPT_FORCE_REMOVE}, - {"force_remove", 0, 0, ARGS_OPT_FORCE_REMOVE}, -+ {"force-checksum", 0, 0, ARGS_OPT_FORCE_CHECKSUM}, -+ {"force_checksum", 0, 0, ARGS_OPT_FORCE_CHECKSUM}, - {"noaction", 0, 0, ARGS_OPT_NOACTION}, - {"download-only", 0, 0, ARGS_OPT_DOWNLOAD_ONLY}, - {"nodeps", 0, 0, ARGS_OPT_NODEPS}, -@@ -178,6 +181,9 @@ args_parse(int argc, char *argv[]) - case ARGS_OPT_FORCE_REMOVE: - conf->force_remove = 1; - break; -+ case ARGS_OPT_FORCE_CHECKSUM: -+ conf->force_checksum = 1; -+ break; - case ARGS_OPT_NODEPS: - conf->nodeps = 1; - break; -@@ -293,6 +299,7 @@ usage() - printf("\t--force-space Disable free space checks\n"); - printf("\t--force-postinstall Run postinstall scripts even in offline mode\n"); - printf("\t--force-remove Remove package even if prerm script fails\n"); -+ printf("\t--force-checksum Don't fail on checksum mismatches\n"); - printf("\t--noaction No action -- test only\n"); - printf("\t--download-only No action -- download only\n"); - printf("\t--nodeps Do not follow dependencies\n"); |