diff options
-rwxr-xr-x | bin/ebuild | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/bin/ebuild b/bin/ebuild index 2c04200e7..a8296e8ab 100755 --- a/bin/ebuild +++ b/bin/ebuild @@ -220,20 +220,36 @@ portage.settings.validate() # generate warning messages if necessary tmpsettings = portage.config(clone=portage.settings) tmpsettings["PORTAGE_VERBOSE"] = "1" tmpsettings.backup_changes("PORTAGE_VERBOSE") + +if opts.skip_manifest: + tmpsettings["EBUILD_SKIP_MANIFEST"] = "1" + tmpsettings.backup_changes("EBUILD_SKIP_MANIFEST") + +if opts.skip_manifest or \ + "digest" in tmpsettings.features or \ + "digest" in pargs or \ + "manifest" in pargs: + portage._doebuild_manifest_exempt_depend += 1 + if "test" in pargs: # This variable is a signal to config.regenerate() to # indicate that the test phase should be enabled regardless # of problems such as masked "test" USE flag. tmpsettings["EBUILD_FORCE_TEST"] = "1" tmpsettings.backup_changes("EBUILD_FORCE_TEST") - tmpsettings.features.add("test") + tmpsettings["FEATURES"] = tmpsettings.get("FEATURES", "") + " " + "test" + tmpsettings.backup_changes("FEATURES") -tmpsettings.features.discard('fail-clean') +tmpsettings["FEATURES"] = tmpsettings.get("FEATURES", "") + " " + "-fail-clean" +tmpsettings.backup_changes("FEATURES") -if opts.skip_manifest: - tmpsettings["EBUILD_SKIP_MANIFEST"] = "1" - tmpsettings.backup_changes("EBUILD_SKIP_MANIFEST") - portage._doebuild_manifest_exempt_depend += 1 +# Apply package.env settings. This allows per-package FEATURES and other +# variables (possibly PORTAGE_TMPDIR) to be available as soon as possible. +try: + tmpsettings.setcpv(cpv, mydb=portage.db[portage.root][mytree].dbapi) +except KeyError: + # aux_get failure, message should have been shown on stderr. + sys.exit(1) build_dir_phases = set(["setup", "unpack", "prepare", "configure", "compile", "test", "install", "package", "rpm", "merge", "qmerge"]) |