Instead of unconditionally loading all package feed lists entirely into
memory, let opkg_install_cmd() selectively parse the lists using the new
pkg_hash_load_package_details() helper.
This will result in a slightly longer runtime but dramatically reduces the
memory requirements. On an x86_64 test system, the peak heap memory
consumption during an "opkg install luci" dropped from 3.7 MB to about
360 KB, a decrease of roughly 90%.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
- if (!strcmp(cmd_name, "print-architecture") ||
+ if (!strcmp(cmd_name, "install") ||
+ !strcmp(cmd_name, "print-architecture") ||
!strcmp(cmd_name, "print_architecture") ||
!strcmp(cmd_name, "print-installation-architecture") ||
!strcmp(cmd_name, "print_installation_architecture"))
!strcmp(cmd_name, "print_architecture") ||
!strcmp(cmd_name, "print-installation-architecture") ||
!strcmp(cmd_name, "print_installation_architecture"))
if (!strcmp(cmd_name, "flag") ||
!strcmp(cmd_name, "configure") ||
if (!strcmp(cmd_name, "flag") ||
!strcmp(cmd_name, "configure") ||
+ !strcmp(cmd_name, "install") ||
!strcmp(cmd_name, "remove") ||
!strcmp(cmd_name, "files") ||
!strcmp(cmd_name, "search") ||
!strcmp(cmd_name, "remove") ||
!strcmp(cmd_name, "files") ||
!strcmp(cmd_name, "search") ||