[yum-cvs] yum/yum __init__.py, 1.150, 1.151 transactioninfo.py, 1.22, 1.23
Seth Vidal
skvidal at login.linux.duke.edu
Mon Nov 21 02:25:53 UTC 2005
Update of /home/groups/yum/cvs/yum/yum
In directory login:/tmp/cvs-serv20020/yum
Modified Files:
__init__.py transactioninfo.py
Log Message:
do ts check for the updatable package already being obsoleted
Index: __init__.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/__init__.py,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -r1.150 -r1.151
--- __init__.py 20 Nov 2005 09:15:28 -0000 1.150
+++ __init__.py 21 Nov 2005 02:25:50 -0000 1.151
@@ -1699,11 +1699,10 @@
# in that order
# all along checking to make sure we:
# don't update something that's already been obsoleted
- # update to the newesr version we can
- # don't mark anything for update more than once
-
+
+
for installed_pkg in instpkgs:
- if self.up.obsoleted_dict.has_key(installed_pkg.pkgtup):
+ if self.up.obsoleted_dict.has_key(installed_pkg.pkgtup) and self.conf.obsoletes:
obsoleting = self.up.obsoleted_dict[installed_pkg.pkgtup][0]
obsoleting_pkg = self.getPackageObject(obsoleting)
# FIXME check for what might be in there here
@@ -1714,19 +1713,23 @@
for available_pkg in availpkgs:
if self.up.updating_dict.has_key(available_pkg.pkgtup):
updated = self.up.updating_dict[available_pkg.pkgtup][0]
- hdr = self.rpmdb.returnHeaderByTuple(updated)[0]
- updated_pkg = YumInstalledPackage(hdr)
- # FIXME, check for what might already be in the tsInfo
- txmbr = self.tsInfo.addUpdate(available_pkg, updated_pkg)
- tx_return.append(txmbr)
+ if self.tsInfo.isObsoleted(updated):
+ self.log(5, 'Not Updating Package that is already obsoleted: %s.%s %s:%s-%s' % updated)
+ else:
+ hdr = self.rpmdb.returnHeaderByTuple(updated)[0]
+ updated_pkg = YumInstalledPackage(hdr)
+ txmbr = self.tsInfo.addUpdate(available_pkg, updated_pkg)
+ tx_return.append(txmbr)
for installed_pkg in instpkgs:
if self.up.updatesdict.has_key(installed_pkg.pkgtup):
updating = self.up.updatesdict[installed_pkg.pkgtup][0]
updating_pkg = self.getPackageObject(updating)
- # FIXME, check for what might already be in the tsInfo
- txmbr = self.tsInfo.addUpdate(updating_pkg, installed_pkg)
- tx_return.append(txmbr)
+ if self.tsInfo.isObsoleted(installed_pkg.pkgtup):
+ self.log(5, 'Not Updating Package that is already obsoleted: %s.%s %s:%s-%s' % installed_pkg.pkgtup)
+ else:
+ txmbr = self.tsInfo.addUpdate(updating_pkg, installed_pkg)
+ tx_return.append(txmbr)
return tx_return
Index: transactioninfo.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/transactioninfo.py,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- transactioninfo.py 27 Oct 2005 05:34:02 -0000 1.22
+++ transactioninfo.py 21 Nov 2005 02:25:50 -0000 1.23
@@ -143,6 +143,15 @@
return 0
+ def isObsoleted(self, pkgtup):
+ """true if the pkgtup is marked to be obsoleted"""
+ if self.exists(pkgtup):
+ for txmbr in self.getMembers(pkgtup=pkgtup):
+ if txmbr.output_state == TS_OBSOLETED:
+ return True
+
+ return False
+
def makelists(self):
"""returns lists of transaction Member objects based on mode:
updated, installed, erased, obsoleted, depupdated, depinstalled
More information about the Yum-cvs-commits
mailing list