[oe-commits] Saul Wold : python-smartpm: Add patches for rpm4

git at git.openembedded.org git at git.openembedded.org
Tue Sep 30 20:38:18 UTC 2014


Module: openembedded-core.git
Branch: master
Commit: 756e499a95cc928688684cc52bde8e31306e6bbc
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=756e499a95cc928688684cc52bde8e31306e6bbc

Author: Saul Wold <sgw at linux.intel.com>
Date:   Tue Sep 30 10:16:53 2014 -0700

python-smartpm: Add patches for rpm4

Add DEPENDS for python-rpm package from either rpm4 or rpm5

Extend the smart-dflags patch to catch an exception if the api does exist

Signed-off-by: Saul Wold <sgw at linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 .../python/python-smartpm/smart-dflags.patch       | 53 ++++++++++++----------
 .../python/python-smartpm/smart-rpm4-fixes.patch   | 49 ++++++++++++++++++++
 .../python/python-smartpm_1.4.1.bb                 |  5 +-
 3 files changed, 81 insertions(+), 26 deletions(-)

diff --git a/meta/recipes-devtools/python/python-smartpm/smart-dflags.patch b/meta/recipes-devtools/python/python-smartpm/smart-dflags.patch
index 3f27262..531ea51 100644
--- a/meta/recipes-devtools/python/python-smartpm/smart-dflags.patch
+++ b/meta/recipes-devtools/python/python-smartpm/smart-dflags.patch
@@ -7,34 +7,39 @@ Upstream-Status: Pending
 
 Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
 
-diff --git a/smart/backends/rpm/pm.py b/smart/backends/rpm/pm.py
-index 707a146..aec82e7 100644
---- a/smart/backends/rpm/pm.py
-+++ b/smart/backends/rpm/pm.py
-@@ -106,6 +106,23 @@ class RPMPackageManager(PackageManager):
+[sgw - Added try/catch for rpm4 since it does not have setDFlags() API]
+
+Signed-off-by: Saul Wold <sgw at linux.intel.com>
+
+
+Index: smart-1.4.1/smart/backends/rpm/pm.py
+===================================================================
+--- smart-1.4.1.orig/smart/backends/rpm/pm.py
++++ smart-1.4.1/smart/backends/rpm/pm.py
+@@ -106,6 +106,26 @@ class RPMPackageManager(PackageManager):
              flags |= rpm.RPMTRANS_FLAG_TEST
          ts.setFlags(flags)
  
-+        dflags = ts.setDFlags(0)
-+        if sysconf.get("rpm-noupgrade", False):
-+            dflags |= rpm.RPMDEPS_FLAG_NOUPGRADE
-+        if sysconf.get("rpm-norequires", False):
-+            dflags |= rpm.RPMDEPS_FLAG_NOREQUIRES
-+        if sysconf.get("rpm-noconflicts", False):
-+            dflags |= rpm.RPMDEPS_FLAG_NOCONFLICTS
-+        if sysconf.get("rpm-noobsoletes", False):
-+            dflags |= rpm.RPMDEPS_FLAG_NOOBSOLETES
-+        if sysconf.get("rpm-noparentdirs", False):
-+            dflags |= rpm.RPMDEPS_FLAG_NOPARENTDIRS
-+        if sysconf.get("rpm-nolinktos", False):
-+            dflags |= rpm.RPMDEPS_FLAG_NOLINKTOS
-+        if sysconf.get("rpm-nosuggest", False):
-+            dflags |= rpm.RPMDEPS_FLAG_NOSUGGEST
-+        ts.setDFlags(dflags)
++        try:
++            dflags = ts.setDFlags(0)
++            if sysconf.get("rpm-noupgrade", False):
++                dflags |= rpm.RPMDEPS_FLAG_NOUPGRADE
++            if sysconf.get("rpm-norequires", False):
++                dflags |= rpm.RPMDEPS_FLAG_NOREQUIRES
++            if sysconf.get("rpm-noconflicts", False):
++                dflags |= rpm.RPMDEPS_FLAG_NOCONFLICTS
++            if sysconf.get("rpm-noobsoletes", False):
++                dflags |= rpm.RPMDEPS_FLAG_NOOBSOLETES
++            if sysconf.get("rpm-noparentdirs", False):
++                dflags |= rpm.RPMDEPS_FLAG_NOPARENTDIRS
++            if sysconf.get("rpm-nolinktos", False):
++                dflags |= rpm.RPMDEPS_FLAG_NOLINKTOS
++            if sysconf.get("rpm-nosuggest", False):
++                dflags |= rpm.RPMDEPS_FLAG_NOSUGGEST
++            ts.setDFlags(dflags)
++        except AttributeError, ae:
++            pass
 +
          # Set rpm verbosity level.
          levelname = sysconf.get('rpm-log-level')
          level = {
--- 
-1.7.9.5
-
diff --git a/meta/recipes-devtools/python/python-smartpm/smart-rpm4-fixes.patch b/meta/recipes-devtools/python/python-smartpm/smart-rpm4-fixes.patch
new file mode 100644
index 0000000..708ffe6
--- /dev/null
+++ b/meta/recipes-devtools/python/python-smartpm/smart-rpm4-fixes.patch
@@ -0,0 +1,49 @@
+
+This patch checks for rpm5 related functions in order to allow rpm4 
+to work correctly. Currently the rpm4 archscore and filter work
+differently enough that they need to be changed.
+
+Upstream-Status: Inappropriate [OE-Core Specific]
+
+Signed-off-by: Saul Wold <sgw at linux.intel.com>
+
+Index: smart-1.4.1/smart/backends/rpm/base.py
+===================================================================
+--- smart-1.4.1.orig/smart/backends/rpm/base.py
++++ smart-1.4.1/smart/backends/rpm/base.py
+@@ -338,10 +338,14 @@ class RPMObsoletes(Depends):
+ 
+ _SCOREMAP = {}
+ def getArchScore(arch, _sm=_SCOREMAP):
+-    if arch not in _sm:
+-        score = rpm.archscore(arch)
+-        _sm[arch] = score
+-    return _sm.get(arch, 0)
++    try:
++        rpm.platformscore(arch)
++        if arch not in _sm:
++            score = rpm.archscore(arch)
++            _sm[arch] = score
++        return _sm.get(arch, 0)
++    except AttributeError:
++        return 1
+ 
+ # TODO: Embed color into nameprovides and obsoletes relations.
+ _COLORMAP = {"noarch": 0, "x86_64": 2, "ppc64": 2, "s390x": 2, "sparc64": 2}
+Index: smart-1.4.1/smart/backends/rpm/pm.py
+===================================================================
+--- smart-1.4.1.orig/smart/backends/rpm/pm.py
++++ smart-1.4.1/smart/backends/rpm/pm.py
+@@ -235,6 +235,12 @@ class RPMPackageManager(PackageManager):
+         if sysconf.get("rpm-order"):
+             ts.order()
+         probfilter = rpm.RPMPROB_FILTER_OLDPACKAGE
++        try:
++            # Test for RPM5 function
++            rpm.platformscore("")
++        except AttributeError:
++            probfilter |= rpm.RPMPROB_FILTER_IGNOREARCH
++
+         if force or reinstall:
+             probfilter |= rpm.RPMPROB_FILTER_REPLACEPKG
+             probfilter |= rpm.RPMPROB_FILTER_REPLACEOLDFILES
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 0971579..f2eb33d 100644
--- a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
+++ b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
@@ -8,7 +8,7 @@ SECTION = "devel/python"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
 
-DEPENDS = "python rpm gettext-native"
+DEPENDS = "python rpm gettext-native python-rpm"
 PR = "r9"
 SRCNAME = "smart"
 
@@ -32,7 +32,8 @@ SRC_URI = "\
           file://smart-config-ignore-all-recommends.patch \
           file://smart-attempt.patch \
           file://smart-filename-NAME_MAX.patch \
-          "
+          file://smart-rpm4-fixes.patch \
+         "
 
 SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6"
 SRC_URI[sha256sum] = "b1d519ddb43d60f293b065c28870a5d9e8b591cd49e8c68caea48ace91085eba"



More information about the Openembedded-commits mailing list