[yum-git] Branch 'yum-3_2_X' - yum/depsolve.py yum/__init__.py yum/transactioninfo.py
Seth Vidal
skvidal at linux.duke.edu
Wed Aug 6 21:28:23 UTC 2008
yum/__init__.py | 13 +++++++------
yum/depsolve.py | 4 ++++
yum/transactioninfo.py | 9 +++++----
3 files changed, 16 insertions(+), 10 deletions(-)
New commits:
commit 430c0b3267ebf39f0b9b2b24d31b4e2a6874f764
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Aug 6 17:25:30 2008 -0400
make sure conditional pkg installs pass through install() just like anything else should
diff --git a/yum/__init__.py b/yum/__init__.py
index 96dcec6..ab74889 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1890,12 +1890,13 @@ class YumBase(depsolve.Depsolve):
continue
# Otherwise we hook into tsInfo.add
pkgs = self.pkgSack.searchNevra(name=condreq)
- if pkgs:
- pkgs = self.bestPackagesFromList(pkgs)
- if self.tsInfo.conditionals.has_key(cond):
- self.tsInfo.conditionals[cond].extend(pkgs)
- else:
- self.tsInfo.conditionals[cond] = pkgs
+ 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]
return txmbrs_used
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 27e5794..6bb0ef6 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -104,6 +104,10 @@ class Depsolve(object):
self._tsInfo = self._transactionDataFactory()
self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
self._tsInfo.installonlypkgs = self.conf.installonlypkgs # this kinda sucks
+ # this REALLY sucks, sadly
+ self._tsInfo.install_method = self.install
+ self._tsInfo.update_method = self.update
+ self._tsInfo.remove_method = self.remove
return self._tsInfo
def _setTsInfo(self, value):
diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
index b7fdd1e..6dd92b8 100644
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@ -193,11 +193,12 @@ class TransactionData:
self.pkgSackPackages += 1
if self.conditionals.has_key(txmember.name):
- for po in self.conditionals[txmember.name]:
- if self.rpmdb.contains(po=po):
+ for pkg_name in self.conditionals[txmember.name]:
+ if self.rpmdb.contains(name=pkg_name):
continue
- condtxmbr = self.addInstall(po)
- condtxmbr.setAsDep(po=txmember.po)
+ for condtxmbr in self.install_method(name=pkg_name):
+ condtxmbr.setAsDep(po=txmember.po)
+
self._unresolvedMembers.add(txmember)
def remove(self, pkgtup):
More information about the Yum-cvs-commits
mailing list