diff options
| -rw-r--r-- | DistUpgrade/DistUpgradeCache.py | 23 | ||||
| -rw-r--r-- | debian/changelog | 1 |
2 files changed, 15 insertions, 9 deletions
diff --git a/DistUpgrade/DistUpgradeCache.py b/DistUpgrade/DistUpgradeCache.py index 01305d32..1a7911c0 100644 --- a/DistUpgrade/DistUpgradeCache.py +++ b/DistUpgrade/DistUpgradeCache.py @@ -307,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 " @@ -340,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,e: + loggging.warning("_tryMarkObsoleteForRemoval failed for '%s' (%s)" % (pkgname,e)) + self.restore_snapshot() + return False return True def _getObsoletesPkgs(self): diff --git a/debian/changelog b/debian/changelog index 8a5fe80a..c078cfc8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,7 @@ update-manager (0.44.15) edgy; urgency=low * do not come up with bogus dist-upgrade suggestions * fix bad english grammar (lp: #63761) * fix in the edgyUpdates quirks handler (lp: #63723) + * catch error from _tryMarkObsoleteForRemoval() (lp: #63617) -- |
