diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-03-24 22:45:14 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-03-24 22:45:14 +0000 |
commit | 9ff1170b7c86a3e8c68f8faf137fc5c76453a13a (patch) | |
tree | 6846c4d24b9f3a9deb920f3dd37422b522ffad0a | |
parent | 024c1538624e4d98c5f1f70fa74e93cf61df96b8 (diff) | |
download | portage-9ff1170b7c86a3e8c68f8faf137fc5c76453a13a.tar.gz portage-9ff1170b7c86a3e8c68f8faf137fc5c76453a13a.tar.bz2 portage-9ff1170b7c86a3e8c68f8faf137fc5c76453a13a.zip |
Verify all ebuild manifests before building anything now so that the user is notified of failure as soon as possible. (trunk r6276:6277)
svn path=/main/branches/2.1.2/; revision=6278
-rwxr-xr-x | bin/emerge | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/bin/emerge b/bin/emerge index 794d785d9..0671251c3 100755 --- a/bin/emerge +++ b/bin/emerge @@ -2905,6 +2905,35 @@ class MergeTask(object): show_blocker_docs_link() return 1 + # Verify all the manifests now so that the user is notified of failure + # as soon as possible. + if "--fetchonly" not in self.myopts and \ + "--fetch-all-uri" not in self.myopts and \ + len(mylist) > 1 and \ + "strict" in self.settings.features: + shown_verifying_msg = False + quiet_settings = {} + for myroot, pkgsettings in self.pkgsettings.iteritems(): + quiet_config = portage.config(clone=pkgsettings) + quiet_config["PORTAGE_QUIET"] = "1" + quiet_config.backup_changes("PORTAGE_QUIET") + quiet_settings[myroot] = quiet_config + del quiet_config + for x in mylist: + if x[0] != "ebuild" or x[-1] == "nomerge": + continue + if not shown_verifying_msg: + shown_verifying_msg = True + print ">>> Verifying ebuild Manifests..." + mytype, myroot, mycpv, mystatus = x + portdb = self.trees[myroot]["porttree"].dbapi + quiet_config = quiet_settings[myroot] + quiet_config["O"] = os.path.dirname(portdb.findname(mycpv)) + if not portage.digestcheck([], quiet_config, strict=True): + return 1 + del x, mytype, myroot, mycpv, mystatus, quiet_config + del shown_verifying_msg, quiet_settings + #buildsyspkg: I need mysysdict also on resume (moved from the else block) mysysdict = genericdict(getlist(self.settings, "system")) if "--resume" in self.myopts: |