[OE-core] [PATCH] package_manager.py: Reverse rpm arch order

Jussi Kukkonen jussi.kukkonen at intel.com
Wed Apr 19 13:25:57 UTC 2017


The architecture list used by dnf/libsolv was in the wrong order.
As a result, the images were built with wrong and unpredictable
packages.

$ MACHINE=intel-corei7-64 bitbake core-image-sato
$ MACHINE=qemux86-64 bitbake core-image-sato
$ MACHINE=intel-corei7-64 bitbake -ccleansstate core-image-sato
$ MACHINE=intel-corei7-64 bitbake core-image-sato

The first image had 0 core2_64 packages in it, but the last one had
583 core2_64 packages (which were built for the qemu image in
between).

Reverse the arch order in etc/dnf/vars/arch.

Fixes [YOCTO #11384].

Signed-off-by: Jussi Kukkonen <jussi.kukkonen at intel.com>
---

The fix was suggested by Kanavin. It works correctly in my tests but
obviously there is potential to break things for rpm builds here.

Thanks,
  Jussi



 meta/lib/oe/package_manager.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index f7190cf..f1b65bd 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -489,7 +489,7 @@ class RpmPM(PackageManager):
 
     def _configure_dnf(self):
         # libsolv handles 'noarch' internally, we don't need to specify it explicitly
-        archs = [i for i in self.archs.split() if i not in ["any", "all", "noarch"]]
+        archs = [i for i in reversed(self.archs.split()) if i not in ["any", "all", "noarch"]]
         # This prevents accidental matching against libsolv's built-in policies
         if len(archs) <= 1:
             archs = archs + ["bogusarch"]
-- 
2.1.4




More information about the Openembedded-core mailing list