[yum-git] 2 commits - yum/depsolve.py yum/__init__.py
Florian Festi
ffesti at linux.duke.edu
Wed Jan 16 11:00:32 UTC 2008
yum/__init__.py | 17 ++++++++++++++++-
yum/depsolve.py | 2 +-
2 files changed, 17 insertions(+), 2 deletions(-)
New commits:
commit 3ac9eebc0c63b6ca3c9affdf6b0f3dd8a4f98ede
Author: Florian Festi <ffesti at redhat.com>
Date: Wed Jan 16 12:00:09 2008 +0100
Remove updated/obsoleted txmbr when removing deps during skip-broken
diff --git a/yum/__init__.py b/yum/__init__.py
index a5e793e..c4173a0 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -659,6 +659,9 @@ class YumBase(depsolve.Depsolve):
def _getDepsToRemove(self,po, deptree, toRemove):
for dep in deptree.get(po, []): # Loop trough all deps of po
+ for txmbr in self.tsInfo.getMembers(dep.pkgtup):
+ for pkg in (txmbr.updates + txmbr.obsoletes):
+ toRemove.add(pkg)
toRemove.add(dep)
self._getDepsToRemove(dep, deptree, toRemove)
commit 517744b3630b45bb015c567a1045c2e900a6592b
Author: Florian Festi <ffesti at redhat.com>
Date: Wed Jan 16 11:55:09 2008 +0100
Add requiringPO as dep when updating for dependency (needed for skip-broken)
diff --git a/yum/__init__.py b/yum/__init__.py
index 8652f08..a5e793e 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2052,7 +2052,7 @@ class YumBase(depsolve.Depsolve):
return tx_return
- def update(self, po=None, **kwargs):
+ def update(self, po=None, requiringPo=None, **kwargs):
"""try to mark for update the item(s) specified.
po is a package object - if that is there, mark it for update,
if possible
@@ -2080,6 +2080,8 @@ class YumBase(depsolve.Depsolve):
installed_pkg = self.rpmdb.searchPkgTuple(installed)[0]
txmbr = self.tsInfo.addObsoleting(obsoleting_pkg, installed_pkg)
self.tsInfo.addObsoleted(installed_pkg, obsoleting_pkg)
+ if requiringPo:
+ txmbr.setAsDep(requiringPo)
tx_return.append(txmbr)
for (new, old) in updates:
@@ -2090,6 +2092,8 @@ class YumBase(depsolve.Depsolve):
updating_pkg = self.getPackageObject(new)
updated_pkg = self.rpmdb.searchPkgTuple(old)[0]
txmbr = self.tsInfo.addUpdate(updating_pkg, updated_pkg)
+ if requiringPo:
+ txmbr.setAsDep(requiringPo)
tx_return.append(txmbr)
return tx_return
@@ -2143,11 +2147,15 @@ class YumBase(depsolve.Depsolve):
# FIXME check for what might be in there here
txmbr = self.tsInfo.addObsoleting(obsoleting_pkg, installed_pkg)
self.tsInfo.addObsoleted(installed_pkg, obsoleting_pkg)
+ if requiringPo:
+ txmbr.setAsDep(requiringPo)
tx_return.append(txmbr)
for available_pkg in availpkgs:
for obsoleted in self.up.obsoleting_dict.get(available_pkg.pkgtup, []):
obsoleted_pkg = self.getInstalledPackageObject(obsoleted)
txmbr = self.tsInfo.addObsoleting(available_pkg, obsoleted_pkg)
+ if requiringPo:
+ txmbr.setAsDep(requiringPo)
tx_return.append(txmbr)
if self.tsInfo.isObsoleted(obsoleted):
self.verbose_logger.log(logginglevels.DEBUG_2, 'Package is already obsoleted: %s.%s %s:%s-%s', obsoleted)
@@ -2162,6 +2170,8 @@ class YumBase(depsolve.Depsolve):
else:
updated_pkg = self.rpmdb.searchPkgTuple(updated)[0]
txmbr = self.tsInfo.addUpdate(available_pkg, updated_pkg)
+ if requiringPo:
+ txmbr.setAsDep(requiringPo)
tx_return.append(txmbr)
for installed_pkg in instpkgs:
for updating in self.up.updatesdict.get(installed_pkg.pkgtup, []):
@@ -2171,6 +2181,8 @@ class YumBase(depsolve.Depsolve):
installed_pkg.pkgtup)
else:
txmbr = self.tsInfo.addUpdate(updating_pkg, installed_pkg)
+ if requiringPo:
+ txmbr.setAsDep(requiringPo)
tx_return.append(txmbr)
return tx_return
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 88cf9aa..04d54bc 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -509,7 +509,7 @@ class Depsolve(object):
# try updating the already install pkgs
length = len(self.tsInfo)
for pkg in provSack.returnNewestByName():
- self.update(name=pkg.name, epoch=pkg.epoch, version=pkg.version, rel=pkg.rel)
+ self.update(requiringPo=requiringPo, name=pkg.name, epoch=pkg.epoch, version=pkg.version, rel=pkg.rel)
if len(self.tsInfo) != length:
checkdeps = True
return checkdeps, missingdep
More information about the Yum-cvs-commits
mailing list