integ/extended/python-smartpm/centos/patches/smart-support-rpm4.patch
Dean Troyer 3cd12006bb StarlingX open source release updates
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
2018-05-31 07:36:35 -07:00

97 lines
3.7 KiB
Diff

From f6a853cf8138c7e01b6e093b783f97639b033420 Mon Sep 17 00:00:00 2001
From: Don Penney <don.penney@windriver.com>
Date: Thu, 2 Jun 2016 15:57:42 -0400
Subject: [PATCH 1/1] Support rpm4
Cloned from http://lists.openembedded.org/pipermail/openembedded-core/2014-September/097610.html
---
smart/backends/rpm/base.py | 12 ++++++++----
smart/backends/rpm/pm.py | 40 ++++++++++++++++++++++++----------------
2 files changed, 32 insertions(+), 20 deletions(-)
diff --git a/smart/backends/rpm/base.py b/smart/backends/rpm/base.py
index 7140c1b..d720617 100644
--- a/smart/backends/rpm/base.py
+++ b/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}
diff --git a/smart/backends/rpm/pm.py b/smart/backends/rpm/pm.py
index 2e5b2c3..cc75dcc 100644
--- a/smart/backends/rpm/pm.py
+++ b/smart/backends/rpm/pm.py
@@ -106,22 +106,25 @@ 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')
@@ -235,6 +238,11 @@ class RPMPackageManager(PackageManager):
if sysconf.get("rpm-ignoresize", False):
probfilter |= rpm.RPMPROB_FILTER_DISKNODES
probfilter |= rpm.RPMPROB_FILTER_DISKSPACE
+ try:
+ # Test for RPM5 function
+ rpm.platformscore("")
+ except AttributeError:
+ probfilter |= rpm.RPMPROB_FILTER_IGNOREARCH
if force or reinstall:
probfilter |= rpm.RPMPROB_FILTER_REPLACEPKG
--
1.8.3.1