summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-03-24 22:45:14 +0000
committerZac Medico <zmedico@gentoo.org>2007-03-24 22:45:14 +0000
commit9ff1170b7c86a3e8c68f8faf137fc5c76453a13a (patch)
tree6846c4d24b9f3a9deb920f3dd37422b522ffad0a /bin
parentreturn from the merge task instead of calling sys.exit directly. (trunk r6274... (diff)
downloadportage-multirepo-9ff1170b7c86a3e8c68f8faf137fc5c76453a13a.tar.gz
portage-multirepo-9ff1170b7c86a3e8c68f8faf137fc5c76453a13a.tar.bz2
portage-multirepo-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
Diffstat (limited to 'bin')
-rwxr-xr-xbin/emerge29
1 files changed, 29 insertions, 0 deletions
diff --git a/bin/emerge b/bin/emerge
index 794d785d..0671251c 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: