[OE-core] [OE-Core][PATCH 1/1] package_manager.py: fix opkg custom config path

Gaël PORTAY gael.portay at savoirfairelinux.com
Thu Dec 7 21:16:10 UTC 2017


The opkg custom config feature has moved to the package_manager python
module. This feature is broken since commit 19c538f57c.

The python function os.path.join joins path components. If a component
is an absolute path, all previous components are thrown away.

The sysconfdir variable is an absolute path component. It causes the
leading target rootfs component to be removed. As a result, the
package-manager module tries to write in the real root filesystem
instead of the temporary work directory for the rootfs image.

This fixes the issue by prepending the target rootfs component using the
string concatenation operator when the file is opened (without using
os.path module).

Cc: Ash Charles <ash.charles at savoirfairelinux.com>
Signed-off-by: Gaël PORTAY <gael.portay at savoirfairelinux.com>
---
 meta/lib/oe/package_manager.py | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index 6cbb61fd84..ac29593f88 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -953,12 +953,11 @@ class OpkgPM(OpkgDpkgPM):
             """
             if (self.d.getVar('FEED_DEPLOYDIR_BASE_URI') or "") != "":
                 for arch in self.pkg_archs.split():
-                    cfg_file_name = os.path.join(self.target_rootfs,
-                                                 self.d.getVar("sysconfdir"),
+                    cfg_file_name = os.path.join(self.d.getVar("sysconfdir", True),
                                                  "opkg",
                                                  "local-%s-feed.conf" % arch)
 
-                    with open(cfg_file_name, "w+") as cfg_file:
+                    with open(self.target_rootfs + cfg_file_name, "w+") as cfg_file:
                         cfg_file.write("src/gz local-%s %s/%s" %
                                        (arch,
                                         self.d.getVar('FEED_DEPLOYDIR_BASE_URI'),
-- 
2.15.0




More information about the Openembedded-core mailing list