[yum-git] Branch 'yum-3_2_X' - 2 commits - yum/__init__.py yum/transactioninfo.py

Seth Vidal skvidal at linux.duke.edu
Tue Aug 12 14:17:59 UTC 2008


 yum/__init__.py        |   24 ++++++++++++++++--------
 yum/transactioninfo.py |    6 +++---
 2 files changed, 19 insertions(+), 11 deletions(-)

New commits:
commit 426ef949a01412a84c35f81516f2caaa033718b3
Merge: b9306c5... 6da1115...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Tue Aug 12 10:14:59 2008 -0400

    Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
    
    * 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
      Dynamically balance the field widths in listTransaction().
      Tweak output of the transaction, helps RHEL a lot due to long repoids

commit b9306c5d867ee26ac0f0c63c9a510b637289ff94
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Tue Aug 12 10:14:43 2008 -0400

    fix for the conditional pkgs installing too much but this time in an API-compliant way :)

diff --git a/yum/__init__.py b/yum/__init__.py
index 3457dfb..e1a044a 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1898,14 +1898,22 @@ class YumBase(depsolve.Depsolve):
                         continue
                     # Otherwise we hook into tsInfo.add
                     pkgs = self.pkgSack.searchNevra(name=condreq)
-                    if pkgs:# if there's anything as a result then we push 
-                            # the name into tsInfo so that when we call install 
-                            # on it it passes through the normal install() call
-                        if self.tsInfo.conditionals.has_key(cond):
-                            self.tsInfo.conditionals[cond].append(condreq)
-                        else:
-                            self.tsInfo.conditionals[cond] = [condreq]
-
+                    if pkgs:
+                        if rpmUtils.arch.isMultiLibArch():
+                            if self.conf.multilib_policy == 'best':
+                                use = []
+                                best = rpmUtils.arch.legitMultiArchesInSameLib()
+                                best.append('noarch')
+                                for pkg in pkgs:
+                                    if pkg.arch in best:
+                                        use.append(pkg)
+                                pkgs = use
+                               
+                        pkgs = packagesNewestByNameArch(pkgs)
+
+                        if not self.tsInfo.conditionals.has_key(cond):
+                            self.tsInfo.conditionals[cond] = []
+                        self.tsInfo.conditionals[cond].extend(pkgs)
         return txmbrs_used
 
     def deselectGroup(self, grpid):
diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
index 6dd92b8..5a843fd 100644
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@ -193,10 +193,10 @@ class TransactionData:
             self.pkgSackPackages += 1
 
         if self.conditionals.has_key(txmember.name):
-            for pkg_name in self.conditionals[txmember.name]:
-                if self.rpmdb.contains(name=pkg_name):
+            for pkg in self.conditionals[txmember.name]:
+                if self.rpmdb.contains(po=pkg):
                     continue
-                for condtxmbr in self.install_method(name=pkg_name):
+                for condtxmbr in self.install_method(po=pkg):
                     condtxmbr.setAsDep(po=txmember.po)
 
         self._unresolvedMembers.add(txmember)



More information about the Yum-cvs-commits mailing list