mirror of
https://git.yoctoproject.org/poky
synced 2026-06-01 13:09:50 +00:00
opkg: fix installation of dev / dbg packages
OE-Core revision ffe93e2a099e4cadb1829dc12a58a6d7bef9a5a7 moved opkg's configuration file into /etc/opkg, and opkg always reads all files under this directory even if -f is specified (as it is during do_rootfs in order to specify our own generated config file), and this means that after opkg-collateral is installed into the rootfs, this version of the config is used, resulting in opkg ignoring the list of packages it has already downloaded (since it now sees list_dir as /var/lib/opkg instead of the default /var/lib/opkg/lists) and thus it fails to install any of the "attemptonly" packages (including *-dev, *-dbg, etc.). If we change the -f option to ignore configuration files in /etc/opkg then we no longer have this problem. Fixes [YOCTO #2595]. (From OE-Core rev: 37df134557802ba116f001597b7cd5e9bc39e188) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
029e3cea52
commit
06348fe764
@@ -0,0 +1,91 @@
|
|||||||
|
From 45d0468f7f9e9be633b2819aa43ab9b6287b8e6a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paul Eggleton <paul.eggleton@linux.intel.com>
|
||||||
|
Date: Mon, 9 Jul 2012 11:01:15 +0100
|
||||||
|
Subject: [PATCH] Do not read /etc/opkg/*.conf if -f is specified
|
||||||
|
|
||||||
|
If a configuration file is specified on the command line, we should
|
||||||
|
assume it contains all of the configuration and not try to read the
|
||||||
|
configuration in /etc/opkg.
|
||||||
|
|
||||||
|
Upstream-Status: Pending
|
||||||
|
|
||||||
|
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
|
||||||
|
---
|
||||||
|
libopkg/opkg_conf.c | 55 ++++++++++++++++++++++++++-------------------------
|
||||||
|
1 file changed, 28 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libopkg/opkg_conf.c b/libopkg/opkg_conf.c
|
||||||
|
index 4711ce7..1e65bad 100644
|
||||||
|
--- a/libopkg/opkg_conf.c
|
||||||
|
+++ b/libopkg/opkg_conf.c
|
||||||
|
@@ -473,39 +473,40 @@ opkg_conf_load(void)
|
||||||
|
&conf->pkg_src_list, &conf->dist_src_list))
|
||||||
|
goto err1;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- if (conf->offline_root)
|
||||||
|
- sprintf_alloc(&etc_opkg_conf_pattern, "%s/etc/opkg/*.conf", conf->offline_root);
|
||||||
|
else {
|
||||||
|
- const char *conf_file_dir = getenv("OPKG_CONF_DIR");
|
||||||
|
- if (conf_file_dir == NULL)
|
||||||
|
- conf_file_dir = OPKG_CONF_DEFAULT_CONF_FILE_DIR;
|
||||||
|
- sprintf_alloc(&etc_opkg_conf_pattern, "%s/*.conf", conf_file_dir);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- memset(&globbuf, 0, sizeof(globbuf));
|
||||||
|
- glob_ret = glob(etc_opkg_conf_pattern, 0, glob_errfunc, &globbuf);
|
||||||
|
- if (glob_ret && glob_ret != GLOB_NOMATCH) {
|
||||||
|
- free(etc_opkg_conf_pattern);
|
||||||
|
- globfree(&globbuf);
|
||||||
|
- goto err1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- free(etc_opkg_conf_pattern);
|
||||||
|
+ if (conf->offline_root)
|
||||||
|
+ sprintf_alloc(&etc_opkg_conf_pattern, "%s/etc/opkg/*.conf", conf->offline_root);
|
||||||
|
+ else {
|
||||||
|
+ const char *conf_file_dir = getenv("OPKG_CONF_DIR");
|
||||||
|
+ if (conf_file_dir == NULL)
|
||||||
|
+ conf_file_dir = OPKG_CONF_DEFAULT_CONF_FILE_DIR;
|
||||||
|
+ sprintf_alloc(&etc_opkg_conf_pattern, "%s/*.conf", conf_file_dir);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- for (i = 0; i < globbuf.gl_pathc; i++) {
|
||||||
|
- if (globbuf.gl_pathv[i])
|
||||||
|
- if (conf->conf_file &&
|
||||||
|
- !strcmp(conf->conf_file, globbuf.gl_pathv[i]))
|
||||||
|
- continue;
|
||||||
|
- if ( opkg_conf_parse_file(globbuf.gl_pathv[i],
|
||||||
|
- &conf->pkg_src_list, &conf->dist_src_list)<0) {
|
||||||
|
+ memset(&globbuf, 0, sizeof(globbuf));
|
||||||
|
+ glob_ret = glob(etc_opkg_conf_pattern, 0, glob_errfunc, &globbuf);
|
||||||
|
+ if (glob_ret && glob_ret != GLOB_NOMATCH) {
|
||||||
|
+ free(etc_opkg_conf_pattern);
|
||||||
|
globfree(&globbuf);
|
||||||
|
goto err1;
|
||||||
|
}
|
||||||
|
- }
|
||||||
|
|
||||||
|
- globfree(&globbuf);
|
||||||
|
+ free(etc_opkg_conf_pattern);
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < globbuf.gl_pathc; i++) {
|
||||||
|
+ if (globbuf.gl_pathv[i])
|
||||||
|
+ if (conf->conf_file &&
|
||||||
|
+ !strcmp(conf->conf_file, globbuf.gl_pathv[i]))
|
||||||
|
+ continue;
|
||||||
|
+ if ( opkg_conf_parse_file(globbuf.gl_pathv[i],
|
||||||
|
+ &conf->pkg_src_list, &conf->dist_src_list)<0) {
|
||||||
|
+ globfree(&globbuf);
|
||||||
|
+ goto err1;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ globfree(&globbuf);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (conf->offline_root)
|
||||||
|
sprintf_alloc (&lock_file, "%s/%s", conf->offline_root, OPKGLOCKFILE);
|
||||||
|
--
|
||||||
|
1.7.9.5
|
||||||
|
|
||||||
@@ -6,6 +6,7 @@ SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;proto=http \
|
|||||||
file://fix_installorder.patch \
|
file://fix_installorder.patch \
|
||||||
file://offline_postinstall.patch\
|
file://offline_postinstall.patch\
|
||||||
file://track_parents.patch \
|
file://track_parents.patch \
|
||||||
|
file://conf_override.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
S = "${WORKDIR}/trunk"
|
S = "${WORKDIR}/trunk"
|
||||||
@@ -13,4 +14,4 @@ S = "${WORKDIR}/trunk"
|
|||||||
SRCREV = "633"
|
SRCREV = "633"
|
||||||
PV = "0.1.8+svnr${SRCPV}"
|
PV = "0.1.8+svnr${SRCPV}"
|
||||||
|
|
||||||
PR = "${INC_PR}.0"
|
PR = "${INC_PR}.1"
|
||||||
|
|||||||
Reference in New Issue
Block a user