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/050-add-case-insensitive-flag.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/050-add-case-insensitive-flag.patch')
-rw-r--r-- | package/system/opkg/patches/050-add-case-insensitive-flag.patch | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/package/system/opkg/patches/050-add-case-insensitive-flag.patch b/package/system/opkg/patches/050-add-case-insensitive-flag.patch deleted file mode 100644 index 4b9215b87a..0000000000 --- a/package/system/opkg/patches/050-add-case-insensitive-flag.patch +++ /dev/null @@ -1,169 +0,0 @@ ---- a/libopkg/opkg_cmd.c -+++ b/libopkg/opkg_cmd.c -@@ -436,7 +436,7 @@ opkg_configure_packages(char *pkg_name) - for(i = 0; i < ordered->len; i++) { - pkg = ordered->pkgs[i]; - -- if (pkg_name && fnmatch(pkg_name, pkg->name, 0)) -+ if (pkg_name && fnmatch(pkg_name, pkg->name, conf->nocase)) - continue; - - if (pkg->state_status == SS_UNPACKED) { -@@ -610,7 +610,7 @@ opkg_list_cmd(int argc, char **argv) - for (i=0; i < available->len; i++) { - pkg = available->pkgs[i]; - /* if we have package name or pattern and pkg does not match, then skip it */ -- if (pkg_name && fnmatch(pkg_name, pkg->name, 0)) -+ if (pkg_name && fnmatch(pkg_name, pkg->name, conf->nocase)) - continue; - print_pkg(pkg); - } -@@ -637,7 +637,7 @@ opkg_list_installed_cmd(int argc, char * - for (i=0; i < available->len; i++) { - pkg = available->pkgs[i]; - /* if we have package name or pattern and pkg does not match, then skip it */ -- if (pkg_name && fnmatch(pkg_name, pkg->name, 0)) -+ if (pkg_name && fnmatch(pkg_name, pkg->name, conf->nocase)) - continue; - print_pkg(pkg); - } -@@ -666,7 +666,7 @@ opkg_list_changed_conffiles_cmd(int argc - for (i=0; i < available->len; i++) { - pkg = available->pkgs[i]; - /* if we have package name or pattern and pkg does not match, then skip it */ -- if (pkg_name && fnmatch(pkg_name, pkg->name, 0)) -+ if (pkg_name && fnmatch(pkg_name, pkg->name, conf->nocase)) - continue; - if (nv_pair_list_empty(&pkg->conffiles)) - continue; -@@ -722,7 +722,7 @@ opkg_info_status_cmd(int argc, char **ar - - for (i=0; i < available->len; i++) { - pkg = available->pkgs[i]; -- if (pkg_name && fnmatch(pkg_name, pkg->name, 0)) { -+ if (pkg_name && fnmatch(pkg_name, pkg->name, conf->nocase)) { - continue; - } - -@@ -792,7 +792,7 @@ opkg_remove_cmd(int argc, char **argv) - for (i=0; i<argc; i++) { - for (a=0; a<available->len; a++) { - pkg = available->pkgs[a]; -- if (fnmatch(argv[i], pkg->name, 0)) { -+ if (fnmatch(argv[i], pkg->name, conf->nocase)) { - continue; - } - if (conf->restrict_to_default_dest) { -@@ -926,7 +926,7 @@ opkg_depends_cmd(int argc, char **argv) - for (j=0; j<available_pkgs->len; j++) { - pkg = available_pkgs->pkgs[j]; - -- if (fnmatch(argv[i], pkg->name, 0) != 0) -+ if (fnmatch(argv[i], pkg->name, conf->nocase) != 0) - continue; - - depends_count = pkg->depends_count + -@@ -1147,9 +1147,9 @@ opkg_what_provides_replaces_cmd(enum wha - ((what_field_type == WHATPROVIDES) - ? pkg->provides[k] - : pkg->replaces[k]); -- if (fnmatch(target, apkg->name, 0) == 0) { -+ if (fnmatch(target, apkg->name, conf->nocase) == 0) { - opkg_msg(NOTICE, " %s", pkg->name); -- if (strcmp(target, apkg->name) != 0) -+ if ((conf->nocase ? strcasecmp(target, apkg->name) : strcmp(target, apkg->name)) != 0) - opkg_msg(NOTICE, "\t%s %s\n", - rel_str, apkg->name); - opkg_message(NOTICE, "\n"); -@@ -1200,7 +1200,7 @@ opkg_search_cmd(int argc, char **argv) - - for (iter = str_list_first(installed_files); iter; iter = str_list_next(installed_files, iter)) { - installed_file = (char *)iter->data; -- if (fnmatch(argv[0], installed_file, 0)==0) -+ if (fnmatch(argv[0], installed_file, conf->nocase)==0) - print_pkg(pkg); - } - ---- a/libopkg/opkg_conf.c -+++ b/libopkg/opkg_conf.c -@@ -62,6 +62,7 @@ opkg_option_t options[] = { - { "noaction", OPKG_OPT_TYPE_BOOL, &_conf.noaction }, - { "download_only", OPKG_OPT_TYPE_BOOL, &_conf.download_only }, - { "nodeps", OPKG_OPT_TYPE_BOOL, &_conf.nodeps }, -+ { "nocase", OPKG_OPT_TYPE_BOOL, &_conf.nocase }, - { "offline_root", OPKG_OPT_TYPE_STRING, &_conf.offline_root }, - { "overlay_root", OPKG_OPT_TYPE_STRING, &_conf.overlay_root }, - { "proxy_passwd", OPKG_OPT_TYPE_STRING, &_conf.proxy_passwd }, ---- a/libopkg/opkg_conf.h -+++ b/libopkg/opkg_conf.h -@@ -24,6 +24,7 @@ extern opkg_conf_t *conf; - #include "config.h" - - #include <stdarg.h> -+#include <fnmatch.h> /* FNM_CASEFOLD */ - - #include "hash_table.h" - #include "pkg_src_list.h" -@@ -79,6 +80,7 @@ struct opkg_conf - int force_remove; - int check_signature; - int nodeps; /* do not follow dependencies */ -+ int nocase; /* perform case insensitive matching */ - char *offline_root; - char *overlay_root; - int query_all; ---- a/src/opkg-cl.c -+++ b/src/opkg-cl.c -@@ -47,6 +47,7 @@ enum { - ARGS_OPT_NOACTION, - ARGS_OPT_DOWNLOAD_ONLY, - ARGS_OPT_NODEPS, -+ ARGS_OPT_NOCASE, - ARGS_OPT_AUTOREMOVE, - ARGS_OPT_CACHE, - }; -@@ -86,6 +87,7 @@ static struct option long_options[] = { - {"noaction", 0, 0, ARGS_OPT_NOACTION}, - {"download-only", 0, 0, ARGS_OPT_DOWNLOAD_ONLY}, - {"nodeps", 0, 0, ARGS_OPT_NODEPS}, -+ {"nocase", 0, 0, ARGS_OPT_NOCASE}, - {"offline", 1, 0, 'o'}, - {"offline-root", 1, 0, 'o'}, - {"add-arch", 1, 0, ARGS_OPT_ADD_ARCH}, -@@ -107,7 +109,7 @@ args_parse(int argc, char *argv[]) - char *tuple, *targ; - - while (1) { -- c = getopt_long_only(argc, argv, "Ad:f:no:p:t:vV::", -+ c = getopt_long_only(argc, argv, "Ad:f:ino:p:t:vV::", - long_options, &option_index); - if (c == -1) - break; -@@ -122,6 +124,9 @@ args_parse(int argc, char *argv[]) - case 'f': - conf->conf_file = xstrdup(optarg); - break; -+ case 'i': -+ conf->nocase = FNM_CASEFOLD; -+ break; - case 'o': - conf->offline_root = xstrdup(optarg); - break; -@@ -176,6 +181,9 @@ args_parse(int argc, char *argv[]) - case ARGS_OPT_NODEPS: - conf->nodeps = 1; - break; -+ case ARGS_OPT_NOCASE: -+ conf->nocase = FNM_CASEFOLD; -+ break; - case ARGS_OPT_ADD_ARCH: - case ARGS_OPT_ADD_DEST: - tuple = xstrdup(optarg); -@@ -287,6 +295,7 @@ usage() - 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"); -+ printf("\t--nocase Perform case insensitive pattern matching\n"); - printf("\t--force-removal-of-dependent-packages\n"); - printf("\t Remove package and all dependencies\n"); - printf("\t--autoremove Remove packages that were installed\n"); |