generic-poky/meta/recipes-devtools/python/python-smartpm/smart-rpm4-fixes.patch
Saul Wold 6be3386e78 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

(From OE-Core rev: 756e499a95cc928688684cc52bde8e31306e6bbc)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-30 21:36:13 +01:00

50 lines
1.7 KiB
Diff

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@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