summaryrefslogtreecommitdiff
path: root/DistUpgrade
diff options
context:
space:
mode:
Diffstat (limited to 'DistUpgrade')
-rw-r--r--DistUpgrade/DistUpgradeCache.py21
-rw-r--r--DistUpgrade/TODO5
2 files changed, 25 insertions, 1 deletions
diff --git a/DistUpgrade/DistUpgradeCache.py b/DistUpgrade/DistUpgradeCache.py
index 2417a364..abe11d3b 100644
--- a/DistUpgrade/DistUpgradeCache.py
+++ b/DistUpgrade/DistUpgradeCache.py
@@ -109,6 +109,27 @@ class MyCache(apt.Cache):
"this as a bug. "))
logging.debug("Dist-upgrade failed: '%s'", e)
return False
+
+ # check the trust of the packages that are going to change
+ untrusted = []
+ for pkg in self.getChanges():
+ if pkg.markedDelete:
+ continue
+ origins = pkg.candidateOrigin
+ trusted = False
+ for origin in origins:
+ trusted |= origin.trusted
+ if not trusted:
+ untrusted.append(pkg.name)
+ if len(untrusted) > 0:
+ # FIXME: maybe ask a question here? instead of failing?
+ view.error(_("Error authenticating some packages"),
+ _("It was not possible to authenticate some "
+ "packages. This may be a transient network problem. "
+ "You may want to try again later. See below for a "
+ "list of unauthenticated packages."),
+ "\n".join(untrusted))
+ return False
return True
def _verifyChanges(self):
diff --git a/DistUpgrade/TODO b/DistUpgrade/TODO
index ab516769..fa31c041 100644
--- a/DistUpgrade/TODO
+++ b/DistUpgrade/TODO
@@ -28,5 +28,8 @@ Robustness:
get all the metaIndexes in sources.list, nor a way to get the
pkgIndexFiles from the metaIndexes (metaIndex is not available in
python-apt at all)
-
+ What we could do is to write DistUpgradeCache.update(), check the
+ DescURI for each failed item and guess from it what sources.list
+ line failed (e.g. uri.endswith("Sources{.bz2|.gz") -> deb-src, get
+ base-uri, find 'dists' in uri etc)
\ No newline at end of file