[yum-commits] Branch 'yum-3_2_X' - 4 commits - yumcommands.py yum/__init__.py yum/packages.py yum/rpmsack.py

James Antill james at osuosl.org
Tue Nov 24 04:09:29 UTC 2009


 yum/__init__.py |    3 ++-
 yum/packages.py |   15 ++++++++++++++-
 yum/rpmsack.py  |    3 ++-
 yumcommands.py  |    5 +----
 4 files changed, 19 insertions(+), 7 deletions(-)

New commits:
commit 68a397cdb1bda1e930252023a031d7c70ec1cf84
Author: James Antill <james at and.org>
Date:   Mon Nov 23 14:54:19 2009 -0500

    Add documentation about why we output releasever in ui_from_repo

diff --git a/yum/packages.py b/yum/packages.py
index c2b63c4..2ed09c8 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -606,6 +606,14 @@ class YumAvailablePackage(PackageObject, RpmBase):
         self.pkgtup = (self.name, self.arch, self.epoch, self.version, self.release)
 
     def _ui_from_repo(self):
+        """ This reports the repo the package is from, we integrate YUMDB info.
+            for RPM packages so a package from "fedora" that is installed has a
+            ui_from_repo of "@fedora". Note that, esp. with the --releasever
+            option, "fedora" or "rawhide" isn't authoritive.
+            So we also check against the current releasever and if it is
+            different we also print the YUMDB releasever. This means that
+            installing from F12 fedora, while running F12, would report as
+            "@fedora/13". """
         if self.repoid == 'installed' and 'from_repo' in self.yumdb_info:
             end = ''
             if (self.rpmdb.releasever is not None and
commit d68758346a110b4c0c42bf2c47061a1a2ff54eda
Author: James Antill <james at and.org>
Date:   Mon Nov 23 10:54:19 2009 -0500

    Change ui_from_repo to compare releasever, and print if it's different

diff --git a/yum/packages.py b/yum/packages.py
index fad6640..c2b63c4 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -607,7 +607,12 @@ class YumAvailablePackage(PackageObject, RpmBase):
 
     def _ui_from_repo(self):
         if self.repoid == 'installed' and 'from_repo' in self.yumdb_info:
-            return '@' + self.yumdb_info.from_repo
+            end = ''
+            if (self.rpmdb.releasever is not None and
+                'releasever' in self.yumdb_info and
+                self.yumdb_info.releasever != self.rpmdb.releasever):
+                end = '/' + self.yumdb_info.releasever
+            return '@' + self.yumdb_info.from_repo + end
         return self.repoid
     ui_from_repo = property(fget=lambda self: self._ui_from_repo())
 
commit bbb077d83462009c55df7b0396a9ad633decd6c3
Author: James Antill <james at and.org>
Date:   Mon Nov 23 10:53:56 2009 -0500

    Add releasever to rpmdb, so we can locally compare it to yumdb etc.

diff --git a/yum/__init__.py b/yum/__init__.py
index 35f599c..2aaa66a 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -468,7 +468,8 @@ class YumBase(depsolve.Depsolve):
             rpmdb_st = time.time()
             self.verbose_logger.log(logginglevels.DEBUG_4,
                                     _('Reading Local RPMDB'))
-            self._rpmdb = rpmsack.RPMDBPackageSack(root=self.conf.installroot)
+            self._rpmdb = rpmsack.RPMDBPackageSack(root=self.conf.installroot,
+                                                   releasever=self.yumvar['releasever'])
             self.verbose_logger.debug('rpmdb time: %0.3f' % (time.time() - rpmdb_st))
         return self._rpmdb
 
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 3be5dac..151e33e 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -97,7 +97,7 @@ class RPMDBPackageSack(PackageSackBase):
                            rpm.RPMTAG_OBSOLETEFLAGS)
             }
 
-    def __init__(self, root='/'):
+    def __init__(self, root='/', releasever=None):
         self.root = root
         self._idx2pkg = {}
         self._name2pkg = {}
@@ -108,6 +108,7 @@ class RPMDBPackageSack(PackageSackBase):
         self._get_req_cache  = {}
         self._loaded_gpg_keys = False
         self.ts = None
+        self.releasever = releasever
         self.auto_close = False # this forces a self.ts.close() after
                                      # most operations so it doesn't leave
                                      # any lingering locks.
commit a052de1afa0455cd0d70ba3001b6cdbf42a9d1e0
Author: James Antill <james at and.org>
Date:   Mon Nov 23 10:52:48 2009 -0500

    Convert missed direct usage of from_repo to use ui_from_repo

diff --git a/yumcommands.py b/yumcommands.py
index d13f84a..b809216 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -210,10 +210,7 @@ def _add_pkg_simple_list_lens(data, pkg, indent=''):
         This "knows" about simpleList and printVer. """
     na  = len(pkg.name)    + 1 + len(pkg.arch)    + len(indent)
     ver = len(pkg.version) + 1 + len(pkg.release)
-    if pkg.repoid == 'installed' and 'from_repo' in pkg.yumdb_info:
-        rid = len(pkg.yumdb_info.from_repo) + 1
-    else:
-        rid = len(pkg.repoid)
+    rid = len(pkg.ui_from_repo)
     if pkg.epoch != '0':
         ver += len(pkg.epoch) + 1
     for (d, v) in (('na', na), ('ver', ver), ('rid', rid)):


More information about the Yum-commits mailing list