[OE-core] [PATCH] python-smartpm: multilib fixes

Bogdan Marinescu bogdan.a.marinescu at intel.com
Mon Jan 28 15:33:29 UTC 2013


To fix some multilib issues, change the way smart's RPM backend decides
if two packages can coexist:

 - don't test the "multi-version" flag on the packet. In Yocto,
almost every package can be "multi-version" in a multilib configuration.
  - let two packages coexist if they have different versions OR different
architectures (which is fundamental for multilib).

[YOCTO #3681]

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu at intel.com>
---
 .../python-smartpm/smart-multilib-fixes.patch      |   31 ++++++++++++++++++++
 .../python/python-smartpm_1.4.1.bb                 |    3 +-
 2 files changed, 33 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-devtools/python/python-smartpm/smart-multilib-fixes.patch

diff --git a/meta/recipes-devtools/python/python-smartpm/smart-multilib-fixes.patch b/meta/recipes-devtools/python/python-smartpm/smart-multilib-fixes.patch
new file mode 100644
index 0000000..6051ef3
--- /dev/null
+++ b/meta/recipes-devtools/python/python-smartpm/smart-multilib-fixes.patch
@@ -0,0 +1,31 @@
+smart multilib fixes
+
+To fix some multilib issues, change the way the RPM backend decides
+if two packages can coexist:
+
+ - don't test the "multi-version" flag on the packet. In Yocto,
+almost every package can be "multi-version" in a multilib configuration.
+ - let two packages coexist if they have different versions OR different
+architectures (which is fundamental for multilib). 
+
+Upstream-Status: Pending
+
+Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu at intel.com>
+
+diff --git a/smart/backends/rpm/base.py b/smart/backends/rpm/base.py
+index 6e83d40..72eb8a9 100644
+--- a/smart/backends/rpm/base.py
++++ b/smart/backends/rpm/base.py
+@@ -233,9 +233,9 @@ class RPMPackage(Package):
+         if (selfcolor and othercolor and selfcolor != othercolor and
+             not sysconf.get("rpm-strict-multilib")):
+             return True
+-        if not pkgconf.testFlag("multi-version", self):
+-            return False
+-        return selfver != otherver
++        #if not pkgconf.testFlag("multi-version", self):
++        #    return False
++        return selfver != otherver or selfarch != otherarch
+ 
+     def matches(self, relation, version):
+         if not relation:
diff --git a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
index 4d0f96b..06641ad 100644
--- a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
+++ b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
@@ -11,7 +11,7 @@ LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
 
 DEPENDS = "python rpm"
-PR = "r7"
+PR = "r8"
 SRCNAME = "smart"
 
 SRC_URI = "\
@@ -25,6 +25,7 @@ SRC_URI = "\
           file://smart-tmpdir.patch \
           file://smart-metadata-match.patch \
           file://smart-improve-error-reporting.patch \
+          file://smart-multilib-fixes.patch \
           "
 
 SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6"
-- 
1.7.10.4





More information about the Openembedded-core mailing list