[Yum-devel] [PATCH] Add strong_requires* props, change rpmdb dep. checks to use them. BZ 795907

James Antill james at and.org
Thu Mar 15 16:03:33 UTC 2012


---
 yum/packages.py |    3 +++
 yum/rpmsack.py  |    4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/yum/packages.py b/yum/packages.py
index 492ccac..da31971 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -663,15 +663,18 @@ class RpmBase(object):
     dirlist = property(fget=lambda self: self.returnFileEntries(ftype='dir'))
     ghostlist = property(fget=lambda self: self.returnFileEntries(ftype='ghost'))
     requires = property(fget=lambda self: self.returnPrco('requires'))
+    strong_requires = property(fget=lambda self: self.returnPrco('strong_requires'))
     provides = property(fget=lambda self: self.returnPrco('provides'))
     obsoletes = property(fget=lambda self: self.returnPrco('obsoletes'))
     conflicts = property(fget=lambda self: self.returnPrco('conflicts'))
     provides_names = property(fget=lambda self: self.returnPrcoNames('provides'))
     requires_names = property(fget=lambda self: self.returnPrcoNames('requires'))
+    strong_requires_names = property(fget=lambda self: self.returnPrcoNames('strong_requires'))
     conflicts_names = property(fget=lambda self: self.returnPrcoNames('conflicts'))
     obsoletes_names = property(fget=lambda self: self.returnPrcoNames('obsoletes'))
     provides_print = property(fget=lambda self: self.returnPrco('provides', True))
     requires_print = property(fget=lambda self: self.returnPrco('requires', True))
+    strong_requires_print = property(fget=lambda self: self.returnPrco('strong_requires', True))
     conflicts_print = property(fget=lambda self: self.returnPrco('conflicts', True))
     obsoletes_print = property(fget=lambda self: self.returnPrco('obsoletes', True))
     changelog = property(fget=lambda self: self.returnChangelog())
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 4f2ccd0..ed8e3d1 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -130,7 +130,7 @@ class RPMInstalledPackage(YumInstalledPackage):
 
     def required_packages(self):
         pkgset = set()
-        for (reqn, reqf, reqevr) in self.requires:
+        for (reqn, reqf, reqevr) in self.strong_requires:
             for pkg in self.rpmdb.getProvides(reqn, reqf, reqevr):
                 if pkg != self:
                     pkgset.add(pkg)
@@ -1469,7 +1469,7 @@ class RPMDBPackageSack(PackageSackBase):
         providers = set() # Speedup, as usual :)
         problems = []
         for pkg in sorted(pkgs): # The sort here is mainly for "UI"
-            for rreq in pkg.requires:
+            for rreq in pkg.strong_requires:
                 if rreq[0].startswith('rpmlib'): continue
                 if rreq in providers:            continue
 
-- 
1.7.6.5



More information about the Yum-devel mailing list