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