forked from pool/rpmlint
10a26d790a
Accepted submit request 67998 from user coolo OBS-URL: https://build.opensuse.org/request/show/67998 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rpmlint?expand=0&rev=101
105 lines
3.9 KiB
Diff
105 lines
3.9 KiB
Diff
Index: Pkg.py
|
|
===================================================================
|
|
--- Pkg.py.orig
|
|
+++ Pkg.py
|
|
@@ -429,6 +429,10 @@ class Pkg:
|
|
self._missingok_files = None
|
|
self._files = None
|
|
self._requires = None
|
|
+ self._suggests = None
|
|
+ self._supplements = None
|
|
+ self._enhances = None
|
|
+ self._recommends = None
|
|
self._req_names = -1
|
|
|
|
if header:
|
|
@@ -666,6 +670,22 @@ class Pkg:
|
|
self._gatherDepInfo()
|
|
return self._requires
|
|
|
|
+ def recommends(self):
|
|
+ self._gatherDepInfo()
|
|
+ return self._recommends
|
|
+
|
|
+ def suggests(self):
|
|
+ self._gatherDepInfo()
|
|
+ return self._suggests
|
|
+
|
|
+ def supplements(self):
|
|
+ self._gatherDepInfo()
|
|
+ return self._supplements
|
|
+
|
|
+ def enhances(self):
|
|
+ self._gatherDepInfo()
|
|
+ return self._enhances
|
|
+
|
|
def prereq(self):
|
|
"""Get package PreReqs as list of
|
|
(name, flags, (epoch, version, release)) tuples."""
|
|
@@ -702,7 +722,7 @@ class Pkg:
|
|
|
|
# internal function to gather dependency info used by the above ones
|
|
def _gather_aux(self, header, list, nametag, flagstag, versiontag,
|
|
- prereq = None):
|
|
+ prereq = None, strong_only = False, weak_only = False):
|
|
names = header[nametag]
|
|
flags = header[flagstag]
|
|
versions = header[versiontag]
|
|
@@ -713,7 +733,11 @@ class Pkg:
|
|
if prereq is not None and flags[loop] & PREREQ_FLAG:
|
|
prereq.append((names[loop], flags[loop] & (~PREREQ_FLAG),
|
|
evr))
|
|
- else:
|
|
+ elif strong_only and flags[loop] & rpm.RPMSENSE_STRONG:
|
|
+ list.append((names[loop], versions[loop], flags[loop] & (~rpm.RPMSENSE_STRONG)))
|
|
+ elif weak_only and not (flags[loop] & rpm.RPMSENSE_STRONG):
|
|
+ list.append((names[loop], versions[loop], flags[loop]))
|
|
+ elif not (weak_only or strong_only):
|
|
list.append((names[loop], flags[loop], evr))
|
|
|
|
def _gatherDepInfo(self):
|
|
@@ -723,6 +747,10 @@ class Pkg:
|
|
self._provides = []
|
|
self._conflicts = []
|
|
self._obsoletes = []
|
|
+ self._suggests = []
|
|
+ self._supplements = []
|
|
+ self._enhances = []
|
|
+ self._recommends = []
|
|
|
|
self._gather_aux(self.header, self._requires,
|
|
rpm.RPMTAG_REQUIRENAME,
|
|
@@ -742,6 +770,32 @@ class Pkg:
|
|
rpm.RPMTAG_OBSOLETEFLAGS,
|
|
rpm.RPMTAG_OBSOLETEVERSION)
|
|
|
|
+ try:
|
|
+ self._gather_aux(self.header, self._recommends,
|
|
+ rpm.RPMTAG_SUGGESTSNAME,
|
|
+ rpm.RPMTAG_SUGGESTSFLAGS,
|
|
+ rpm.RPMTAG_SUGGESTSVERSION,
|
|
+ strong_only=True)
|
|
+ self._gather_aux(self.header, self._suggests,
|
|
+ rpm.RPMTAG_SUGGESTSNAME,
|
|
+ rpm.RPMTAG_SUGGESTSFLAGS,
|
|
+ rpm.RPMTAG_SUGGESTSVERSION,
|
|
+ weak_only=True)
|
|
+ self._gather_aux(self.header, self._supplements,
|
|
+ rpm.RPMTAG_ENHANCESNAME,
|
|
+ rpm.RPMTAG_ENHANCESFLAGS,
|
|
+ rpm.RPMTAG_ENHANCESVERSION,
|
|
+ strong_only=True)
|
|
+ self._gather_aux(self.header, self._enhances,
|
|
+ rpm.RPMTAG_ENHANCESNAME,
|
|
+ rpm.RPMTAG_ENHANCESFLAGS,
|
|
+ rpm.RPMTAG_ENHANCESVERSION,
|
|
+ weak_only=True)
|
|
+
|
|
+ except:
|
|
+ pass
|
|
+
|
|
+
|
|
def getInstalledPkgs(name):
|
|
"""Get list of installed package objects by name."""
|
|
|