summaryrefslogtreecommitdiff
path: root/DistUpgrade/DistUpgradeCache.py
diff options
context:
space:
mode:
authorSebastian Heinlein <sebi@sebi-pc>2006-10-09 16:31:24 +0200
committerSebastian Heinlein <sebi@sebi-pc>2006-10-09 16:31:24 +0200
commit048a759f3996a898b43427e131c7a06d9a981dda (patch)
tree69c700c73664e9637980b1098ba8b4d480dc40e2 /DistUpgrade/DistUpgradeCache.py
parentf12c7850941f961c9b176248e81479cf7332ab6d (diff)
parent71121af388843e45eb2b655b6d1bd94542503651 (diff)
downloadpython-apt-048a759f3996a898b43427e131c7a06d9a981dda.tar.gz
* merge with mvo
Diffstat (limited to 'DistUpgrade/DistUpgradeCache.py')
-rw-r--r--DistUpgrade/DistUpgradeCache.py49
1 files changed, 39 insertions, 10 deletions
diff --git a/DistUpgrade/DistUpgradeCache.py b/DistUpgrade/DistUpgradeCache.py
index 318c30cd..7d0d27e0 100644
--- a/DistUpgrade/DistUpgradeCache.py
+++ b/DistUpgrade/DistUpgradeCache.py
@@ -1,7 +1,6 @@
import warnings
warnings.filterwarnings("ignore", "apt API not stable yet", FutureWarning)
-warnings.filterwarnings("ignore", "apt API not stable yet", FutureWarning)
import apt
import apt_pkg
import os
@@ -164,6 +163,31 @@ class MyCache(apt.Cache):
if func is not None:
func()
+ def edgyQuirks(self):
+ """ this function works around quirks in the dapper->edgy upgrade """
+ logging.debug("running edgyQuirks handler")
+ # deal with the python2.4-$foo -> python-$foo transition
+ for pkg in self:
+ if (pkg.name.startswith("python2.4-") and
+ pkg.isInstalled and
+ not pkg.markedUpgrade):
+ basepkg = "python-"+pkg.name[len("python2.4-"):]
+ if (self.has_key(basepkg) and not self[basepkg].markedInstall):
+ try:
+ self.markInstall(basepkg,
+ "python2.4->python upgrade rule")
+ except SystemError, e:
+ logging.debug("Failed to apply python2.4->python install: %s (%s)" % (basepkg, e))
+ # deal with *gar*gar* hpijs
+ if (self.has_key("hpijs") and self["hpijs"].isInstalled and
+ not self["hpijs"].markedUpgrade):
+ try:
+ self.markInstall("hpijs","hpijs quirk upgrade rule")
+ except SystemError, e:
+ logging.debug("Failed to apply hpijs install (%s)" % e)
+
+
+
def dapperQuirks(self):
""" this function works around quirks in the breezy->dapper upgrade """
logging.debug("running dapperQuirks handler")
@@ -283,8 +307,8 @@ class MyCache(apt.Cache):
logging.debug("guessing '%s' as missing meta-pkg" % key)
try:
self[key].markInstall()
- except SystemError:
- logging.error("failed to mark '%s' for install" % key)
+ except SystemError, e:
+ logging.error("failed to mark '%s' for install (%s)" % (key,e))
view.error(_("Can't install '%s'" % key),
_("It was impossible to install a "
"required package. Please report "
@@ -316,13 +340,18 @@ class MyCache(apt.Cache):
# if it dosn't remove other packages depending on it
# that are not obsolete as well
self.create_snapshot()
- self[pkgname].markDelete()
- for pkg in self.getChanges():
- if pkg.name not in remove_candidates or \
- pkg.name in foreign_pkgs or \
- self._inRemovalBlacklist(pkg.name):
- self.restore_snapshot()
- return False
+ try:
+ self[pkgname].markDelete()
+ for pkg in self.getChanges():
+ if pkg.name not in remove_candidates or \
+ pkg.name in foreign_pkgs or \
+ self._inRemovalBlacklist(pkg.name):
+ self.restore_snapshot()
+ return False
+ except (SystemError,KeyError),e:
+ loggging.warning("_tryMarkObsoleteForRemoval failed for '%s' (%s)" % (pkgname,e))
+ self.restore_snapshot()
+ return False
return True
def _getObsoletesPkgs(self):