summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-02-28 10:57:53 -0800
committerZac Medico <zmedico@gentoo.org>2011-03-01 12:53:28 -0800
commit5cd29d1ed4e38b583c87a56f77d725482c803401 (patch)
treefeccac54a0cc3145584928b59cefe42c4e75c82b /bin
parent9cbd711221d14f6eb195564e406842b023c44b34 (diff)
downloadportage-5cd29d1ed4e38b583c87a56f77d725482c803401.tar.gz
portage-5cd29d1ed4e38b583c87a56f77d725482c803401.tar.bz2
portage-5cd29d1ed4e38b583c87a56f77d725482c803401.zip
ebuild(1): apply package.env earlier
This makes it possible to override PORTAGE_TMPDIR.
Diffstat (limited to 'bin')
-rwxr-xr-xbin/ebuild28
1 files changed, 22 insertions, 6 deletions
diff --git a/bin/ebuild b/bin/ebuild
index ab88d6a30..9d20a4154 100755
--- a/bin/ebuild
+++ b/bin/ebuild
@@ -218,20 +218,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"])