opkg: update to r503 - reduces peak memory usage by further 20%, rebased patches, restored old config file default

SVN-Revision: 18864
v19.07.3_mercusys_ac12_duma
Jo-Philipp Wich 15 years ago
parent 9e86a8064a
commit 608de32479

@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=opkg PKG_NAME:=opkg
PKG_REV:=284 PKG_REV:=503
PKG_VERSION:=$(PKG_REV) PKG_VERSION:=$(PKG_REV)
PKG_RELEASE:=1 PKG_RELEASE:=1

@ -6,56 +6,37 @@ Signed-off-by: Nicolas Thill <nico@openwrt.org>
--- a/libopkg/opkg_conf.c --- a/libopkg/opkg_conf.c
+++ b/libopkg/opkg_conf.c +++ b/libopkg/opkg_conf.c
@@ -72,6 +72,7 @@ @@ -58,6 +58,7 @@
{ "offline_root_path", OPKG_OPT_TYPE_STRING, &conf->offline_root_path }, { "noaction", OPKG_OPT_TYPE_BOOL, &_conf.noaction },
{ "offline_root_post_script_cmd", OPKG_OPT_TYPE_STRING, &conf->offline_root_post_script_cmd }, { "nodeps", OPKG_OPT_TYPE_BOOL, &_conf.nodeps },
{ "offline_root_pre_script_cmd", OPKG_OPT_TYPE_STRING, &conf->offline_root_pre_script_cmd }, { "offline_root", OPKG_OPT_TYPE_STRING, &_conf.offline_root },
+ { "overlay_root", OPKG_OPT_TYPE_STRING, &conf->overlay_root }, + { "overlay_root", OPKG_OPT_TYPE_STRING, &_conf.overlay_root },
{ "proxy_passwd", OPKG_OPT_TYPE_STRING, &conf->proxy_passwd }, { "proxy_passwd", OPKG_OPT_TYPE_STRING, &_conf.proxy_passwd },
{ "proxy_user", OPKG_OPT_TYPE_STRING, &conf->proxy_user }, { "proxy_user", OPKG_OPT_TYPE_STRING, &_conf.proxy_user },
{ "query-all", OPKG_OPT_TYPE_BOOL, &conf->query_all }, { "query-all", OPKG_OPT_TYPE_BOOL, &_conf.query_all },
--- a/libopkg/opkg_conf.h --- a/libopkg/opkg_conf.h
+++ b/libopkg/opkg_conf.h +++ b/libopkg/opkg_conf.h
@@ -70,6 +70,7 @@ @@ -74,6 +74,7 @@
char *offline_root_path; int check_signature;
char *offline_root_pre_script_cmd; int nodeps; /* do not follow dependences */
char *offline_root_post_script_cmd; char *offline_root;
+ char *overlay_root; + char *overlay_root;
int query_all; int query_all;
int verbosity; int verbosity;
int noaction; int noaction;
--- a/libopkg/opkg_install.c --- a/libopkg/opkg_install.c
+++ b/libopkg/opkg_install.c +++ b/libopkg/opkg_install.c
@@ -470,12 +470,15 @@ @@ -194,8 +194,11 @@
* my diddling with the .opk file size below isn't going to cut it. if (conf->force_space || pkg->installed_size == 0)
* 3) return a proper error code instead of 1 return 0;
*/
- int comp_size, blocks_available;
+ int comp_size, blocks_available = -1;
char *root_dir;
if (!conf->force_space && pkg->installed_size != NULL) {
root_dir = pkg->dest ? pkg->dest->root_dir : conf->default_dest->root_dir;
- blocks_available = get_available_blocks(root_dir);
+ if (conf->overlay_root != NULL)
+ blocks_available = get_available_blocks(conf->overlay_root);
+ if (blocks_available < 0)
+ blocks_available = get_available_blocks(root_dir);
comp_size = strtoul(pkg->installed_size, NULL, 0); - root_dir = pkg->dest ? pkg->dest->root_dir :
/* round up a blocks count without doing fancy-but-slow casting jazz */ - conf->default_dest->root_dir;
--- a/libopkg/opkg_utils.c + root_dir = pkg->dest
+++ b/libopkg/opkg_utils.c + ? pkg->dest->root_dir
@@ -31,10 +31,8 @@ + : conf->overlay_root
{ + ? conf->overlay_root
struct statfs sfs; + : conf->default_dest->root_dir;
kbs_available = get_available_kbytes(root_dir);
- if(statfs(filesystem, &sfs)){ pkg_size_kbs = (pkg->installed_size + 1023)/1024;
- fprintf(stderr, "bad statfs\n");
- return 0;
- }
+ if(statfs(filesystem, &sfs))
+ return -1;
/* fprintf(stderr, "reported fs type %x\n", sfs.f_type); */
// Actually ((sfs.f_bavail * sfs.f_bsize) / 1024)

@ -12,9 +12,9 @@
+++ b/libopkg/Makefile.am +++ b/libopkg/Makefile.am
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
- -
-AM_CFLAGS=-Wall -Werror -DHOST_CPU_STR=\"@host_cpu@\" -DBUILD_CPU=@build_cpu@ -DLIBDIR=\"@libdir@\" -DOPKGLIBDIR=\"@opkglibdir@\" -DOPKGETCDIR=\"@opkgetcdir@\" -DDATADIR=\"@datadir@\" -I$(top_srcdir) $(BIGENDIAN_CFLAGS) $(CURL_CFLAGS) $(GPGME_CFLAGS) $(PATHFINDER_CFLAGS) -AM_CFLAGS=-Wall -DHOST_CPU_STR=\"@host_cpu@\" -DBUILD_CPU=@build_cpu@ -DLIBDIR=\"@libdir@\" -DOPKGLIBDIR=\"@opkglibdir@\" -DOPKGETCDIR=\"@opkgetcdir@\" -DDATADIR=\"@datadir@\" -I$(top_srcdir) $(BIGENDIAN_CFLAGS) $(CURL_CFLAGS) $(GPGME_CFLAGS) $(PATHFINDER_CFLAGS)
+HOST_CPU=@host_cpu@ +HOST_CPU=@host_cpu@
+AM_CFLAGS=-Wall -Werror -DHOST_CPU_STR=\"$(HOST_CPU)\" -DBUILD_CPU=@build_cpu@ -DLIBDIR=\"@libdir@\" -DOPKGLIBDIR=\"@opkglibdir@\" -DOPKGETCDIR=\"@opkgetcdir@\" -DDATADIR=\"@datadir@\" -I$(top_srcdir) $(BIGENDIAN_CFLAGS) $(CURL_CFLAGS) $(GPGME_CFLAGS) $(PATHFINDER_CFLAGS) +AM_CFLAGS=-Wall -DHOST_CPU_STR=\"$(HOST_CPU)\" -DBUILD_CPU=@build_cpu@ -DLIBDIR=\"@libdir@\" -DOPKGLIBDIR=\"@opkglibdir@\" -DOPKGETCDIR=\"@opkgetcdir@\" -DDATADIR=\"@datadir@\" -I$(top_srcdir) $(BIGENDIAN_CFLAGS) $(CURL_CFLAGS) $(GPGME_CFLAGS) $(PATHFINDER_CFLAGS)
libopkg_includedir=$(includedir)/libopkg libopkg_includedir=$(includedir)/libopkg
libopkg_include_HEADERS= opkg.h libopkg_include_HEADERS= *.h

@ -1,16 +0,0 @@
--- a/libopkg/pkg_hash.c
+++ b/libopkg/pkg_hash.c
@@ -384,8 +384,11 @@
abstract_pkg_t *apkg = NULL;
pkg_t *ret;
- if (!(apkg = abstract_pkg_fetch_by_name(hash, name)))
- return NULL;
+ if (!(apkg = abstract_pkg_fetch_by_name(hash, name))) {
+ if (err)
+ *err = 0;
+ return NULL;
+ }
ret = pkg_hash_fetch_best_installation_candidate(conf, apkg, pkg_name_constraint_fcn, apkg->name, 0, err);

@ -15,7 +15,7 @@
-libopkg_la_LIBADD = $(top_builddir)/libbb/libbb.la $(CURL_LIBS) $(GPGME_LIBS) $(OPENSSL_LIBS) $(PATHFINDER_LIBS) -libopkg_la_LIBADD = $(top_builddir)/libbb/libbb.la $(CURL_LIBS) $(GPGME_LIBS) $(OPENSSL_LIBS) $(PATHFINDER_LIBS)
- -
-# make sure we only export symbols that are for public use -# make sure we only export symbols that are for public use
-libopkg_la_LDFLAGS = -export-symbols-regex "^opkg_.*" -#libopkg_la_LDFLAGS = -export-symbols-regex "^opkg_.*"
- -
- -
- -
@ -34,18 +34,22 @@
libbb.h \ libbb.h \
unzip.c \ unzip.c \
wfopen.c \ wfopen.c \
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -2,5 +2,5 @@
bin_PROGRAMS = opkg-cl
opkg_cl_SOURCES = opkg-frontend.c
-opkg_cl_LDADD = $(top_builddir)/libopkg/libopkg.la \
- $(top_builddir)/libbb/libbb.la
+opkg_cl_LDADD = $(top_builddir)/libopkg/libopkg.a \
+ $(top_builddir)/libbb/libbb.a
--- a/tests/Makefile.am --- a/tests/Makefile.am
+++ b/tests/Makefile.am +++ b/tests/Makefile.am
@@ -4,11 +4,11 @@
#noinst_PROGRAMS = libopkg_test opkg_active_list_test
noinst_PROGRAMS = libopkg_test
-#opkg_hash_test_LDADD = $(top_builddir)/libbb/libbb.la $(top_builddir)/libopkg/libopkg.la
+#opkg_hash_test_LDADD = $(top_builddir)/libbb/libbb.a $(top_builddir)/libopkg/libopkg.a
#opkg_hash_test_SOURCES = opkg_hash_test.c
#opkg_hash_test_CFLAGS = $(ALL_CFLAGS) -I$(top_srcdir)
-#opkg_extract_test_LDADD = $(top_builddir)/libbb/libbb.la $(top_builddir)/libopkg/libopkg.la
+#opkg_extract_test_LDADD = $(top_builddir)/libbb/libbb.a $(top_builddir)/libopkg/libopkg.a
#opkg_extract_test_SOURCES = opkg_extract_test.c
#opkg_extract_test_CFLAGS = $(ALL_CFLAGS) -I$(top_srcdir)
@@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
#opkg_active_list_test_SOURCES = opkg_active_list_test.c #opkg_active_list_test_SOURCES = opkg_active_list_test.c
#opkg_active_list_test_CFLAGS = $(ALL_CFLAGS) -I$(top_srcdir) #opkg_active_list_test_CFLAGS = $(ALL_CFLAGS) -I$(top_srcdir)
@ -53,5 +57,15 @@
-libopkg_test_LDADD = $(top_builddir)/libopkg/libopkg.la -libopkg_test_LDADD = $(top_builddir)/libopkg/libopkg.la
+libopkg_test_LDADD = $(top_builddir)/libopkg/libopkg.a $(top_builddir)/libbb/libbb.a +libopkg_test_LDADD = $(top_builddir)/libopkg/libopkg.a $(top_builddir)/libbb/libbb.a
libopkg_test_SOURCE = libopkg_test.c libopkg_test_SOURCE = libopkg_test.c
libopkg_test_LDFLAGS = -static
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -2,5 +2,5 @@
bin_PROGRAMS = opkg-cl
opkg_cl_SOURCES = opkg-cl.c
-opkg_cl_LDADD = $(top_builddir)/libopkg/libopkg.la \
- $(top_builddir)/libbb/libbb.la
+opkg_cl_LDADD = $(top_builddir)/libopkg/libopkg.a \
+ $(top_builddir)/libbb/libbb.a

@ -1,40 +1,29 @@
--- a/libopkg/args.c
+++ b/libopkg/args.c
@@ -259,7 +259,7 @@
printf("\nPackage Manipulation:\n");
printf("\tupdate Update list of available packages\n");
- printf("\tupgrade Upgrade all installed packages to latest version\n");
+ printf("\tupgrade <pkg> Upgrade package to latest version\n");
printf("\tinstall <pkg> Download and install <pkg> (and dependencies)\n");
printf("\tinstall <file.opk> Install package <file.opk>\n");
printf("\tconfigure [<pkg>] Configure unpacked packages\n");
--- a/libopkg/opkg_cmd.c --- a/libopkg/opkg_cmd.c
+++ b/libopkg/opkg_cmd.c +++ b/libopkg/opkg_cmd.c
@@ -75,7 +75,7 @@ @@ -495,17 +495,6 @@
array for easier maintenance */ opkg_install_by_name(arg);
static opkg_cmd_t cmds[] = {
{"update", 0, (opkg_cmd_fun_t)opkg_update_cmd},
- {"upgrade", 0, (opkg_cmd_fun_t)opkg_upgrade_cmd},
+ {"upgrade", 1, (opkg_cmd_fun_t)opkg_upgrade_cmd},
{"list", 0, (opkg_cmd_fun_t)opkg_list_cmd},
{"list_installed", 0, (opkg_cmd_fun_t)opkg_list_installed_cmd},
{"list_upgradable", 0, (opkg_cmd_fun_t)opkg_list_upgradable_cmd},
@@ -607,17 +607,6 @@
opkg_install_by_name(conf, arg);
} }
} }
- } else { - } else {
- pkg_vec_t *installed = pkg_vec_alloc(); - pkg_vec_t *installed = pkg_vec_alloc();
- -
- pkg_info_preinstall_check(conf); - pkg_info_preinstall_check();
- -
- pkg_hash_fetch_all_installed(&conf->pkg_hash, installed); - pkg_hash_fetch_all_installed(installed);
- for (i = 0; i < installed->len; i++) { - for (i = 0; i < installed->len; i++) {
- pkg = installed->pkgs[i]; - pkg = installed->pkgs[i];
- opkg_upgrade_pkg(conf, pkg); - opkg_upgrade_pkg(pkg);
- } - }
- pkg_vec_free(installed); - pkg_vec_free(installed);
} }
opkg_configure_packages(conf, NULL); opkg_configure_packages(NULL);
@@ -1163,7 +1152,7 @@
array for easier maintenance */
static opkg_cmd_t cmds[] = {
{"update", 0, (opkg_cmd_fun_t)opkg_update_cmd, PFM_DESCRIPTION|PFM_SOURCE},
- {"upgrade", 0, (opkg_cmd_fun_t)opkg_upgrade_cmd, PFM_DESCRIPTION|PFM_SOURCE},
+ {"upgrade", 1, (opkg_cmd_fun_t)opkg_upgrade_cmd, PFM_DESCRIPTION|PFM_SOURCE},
{"list", 0, (opkg_cmd_fun_t)opkg_list_cmd, PFM_SOURCE},
{"list_installed", 0, (opkg_cmd_fun_t)opkg_list_installed_cmd, PFM_SOURCE},
{"list-installed", 0, (opkg_cmd_fun_t)opkg_list_installed_cmd, PFM_SOURCE},

@ -1,78 +1,60 @@
--- a/libopkg/args.c
+++ b/libopkg/args.c
@@ -264,8 +264,6 @@
printf("\tinstall <file.opk> Install package <file.opk>\n");
printf("\tconfigure [<pkg>] Configure unpacked packages\n");
printf("\tremove <pkg|regexp> Remove package <pkg|packages following regexp>\n");
- printf("\tflag <flag> <pkg> ... Flag package(s) <pkg>\n");
- printf("\t <flag>=hold|noprune|user|ok|installed|unpacked (one per invocation) \n");
printf("\nInformational Commands:\n");
printf("\tlist List available packages and descriptions\n");
--- a/libopkg/opkg_cmd.c --- a/libopkg/opkg_cmd.c
+++ b/libopkg/opkg_cmd.c +++ b/libopkg/opkg_cmd.c
@@ -54,7 +54,6 @@ @@ -735,49 +735,6 @@
static int opkg_list_upgradable_cmd(opkg_conf_t *conf, int argc, char **argv);
static int opkg_remove_cmd(opkg_conf_t *conf, int argc, char **argv);
static int opkg_purge_cmd(opkg_conf_t *conf, int argc, char **argv);
-static int opkg_flag_cmd(opkg_conf_t *conf, int argc, char **argv);
static int opkg_files_cmd(opkg_conf_t *conf, int argc, char **argv);
static int opkg_search_cmd(opkg_conf_t *conf, int argc, char **argv);
static int opkg_download_cmd(opkg_conf_t *conf, int argc, char **argv);
@@ -80,7 +79,6 @@
{"list_installed", 0, (opkg_cmd_fun_t)opkg_list_installed_cmd},
{"list_upgradable", 0, (opkg_cmd_fun_t)opkg_list_upgradable_cmd},
{"info", 0, (opkg_cmd_fun_t)opkg_info_cmd},
- {"flag", 1, (opkg_cmd_fun_t)opkg_flag_cmd},
{"status", 0, (opkg_cmd_fun_t)opkg_status_cmd},
{"install_pending", 0, (opkg_cmd_fun_t)opkg_install_pending_cmd},
{"install", 1, (opkg_cmd_fun_t)opkg_install_cmd},
@@ -960,48 +958,6 @@
return 0;
} }
-static int opkg_flag_cmd(opkg_conf_t *conf, int argc, char **argv) static int
-opkg_flag_cmd(int argc, char **argv)
-{ -{
- int i; - int i;
- pkg_t *pkg; - pkg_t *pkg;
- const char *flags = argv[0]; - const char *flags = argv[0];
- -
- global_conf = conf;
- signal(SIGINT, sigint_handler); - signal(SIGINT, sigint_handler);
- -
- for (i=1; i < argc; i++) { - for (i=1; i < argc; i++) {
- if (conf->restrict_to_default_dest) { - if (conf->restrict_to_default_dest) {
- pkg = pkg_hash_fetch_installed_by_name_dest(&conf->pkg_hash, - pkg = pkg_hash_fetch_installed_by_name_dest(argv[i],
- argv[i],
- conf->default_dest); - conf->default_dest);
- } else { - } else {
- pkg = pkg_hash_fetch_installed_by_name(&conf->pkg_hash, argv[i]); - pkg = pkg_hash_fetch_installed_by_name(argv[i]);
- } - }
- -
- if (pkg == NULL) { - if (pkg == NULL) {
- opkg_message(conf, OPKG_ERROR, - opkg_msg(ERROR, "Package %s is not installed.\n", argv[i]);
- "Package %s is not installed.\n", argv[i]);
- continue; - continue;
- } - }
- if (( strcmp(flags,"hold")==0)||( strcmp(flags,"noprune")==0)|| - if (( strcmp(flags,"hold")==0)||( strcmp(flags,"noprune")==0)||
- ( strcmp(flags,"user")==0)||( strcmp(flags,"ok")==0)) { - ( strcmp(flags,"user")==0)||( strcmp(flags,"ok")==0)) {
- pkg->state_flag = pkg_state_flag_from_str(flags); - pkg->state_flag = pkg_state_flag_from_str(flags);
- } - }
-/* pb_ asked this feature 03292004 */ -
-/* Actually I will use only this two, but this is an open for various status */ - /*
- * Useful if a package is installed in an offline_root, and
- * should be configured by opkg-cl configure at a later date.
- */
- if (( strcmp(flags,"installed")==0)||( strcmp(flags,"unpacked")==0)){ - if (( strcmp(flags,"installed")==0)||( strcmp(flags,"unpacked")==0)){
- pkg->state_status = pkg_state_status_from_str(flags); - pkg->state_status = pkg_state_status_from_str(flags);
- } - }
-
- opkg_state_changed++; - opkg_state_changed++;
- opkg_message(conf, OPKG_NOTICE, - opkg_msg(NOTICE, "Setting flags for package %s to %s.\n",
- "Setting flags for package %s to %s\n",
- pkg->name, flags); - pkg->name, flags);
- } - }
- -
- write_status_files_if_changed(conf); - write_status_files_if_changed();
- return 0; - return 0;
-} -}
- -
static int opkg_files_cmd(opkg_conf_t *conf, int argc, char **argv) -static int
opkg_files_cmd(int argc, char **argv)
{ {
pkg_t *pkg; pkg_t *pkg;
@@ -1159,7 +1116,6 @@
{"list_upgradable", 0, (opkg_cmd_fun_t)opkg_list_upgradable_cmd, PFM_SOURCE},
{"list-upgradable", 0, (opkg_cmd_fun_t)opkg_list_upgradable_cmd, PFM_SOURCE},
{"info", 0, (opkg_cmd_fun_t)opkg_info_cmd, 0},
- {"flag", 1, (opkg_cmd_fun_t)opkg_flag_cmd, PFM_DESCRIPTION|PFM_SOURCE},
{"status", 0, (opkg_cmd_fun_t)opkg_status_cmd, PFM_DESCRIPTION|PFM_SOURCE},
{"install", 1, (opkg_cmd_fun_t)opkg_install_cmd, PFM_DESCRIPTION|PFM_SOURCE},
{"remove", 1, (opkg_cmd_fun_t)opkg_remove_cmd, PFM_DESCRIPTION|PFM_SOURCE},

@ -0,0 +1,14 @@
--- a/src/opkg-cl.c
+++ b/src/opkg-cl.c
@@ -169,7 +169,10 @@
printf("Confusion: getopt_long returned %d\n", c);
}
}
-
+
+ if(!conf->conf_file)
+ conf->conf_file = "/etc/opkg.conf";
+
if (parse_err)
return parse_err;
else
Loading…
Cancel
Save