summaryrefslogtreecommitdiffstats
path: root/bin/ebuild
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-02-28 10:57:53 -0800
committerZac Medico <zmedico@gentoo.org>2011-02-28 10:57:53 -0800
commit0b39d24bb8270e5c89eaddfd1f5a4181cf9e31d3 (patch)
treeb750b8f84c0dc92dc4bcbc7d18fbaad580e2e401 /bin/ebuild
parent9ce6da43ab90c4dab97ebf3b8339e5dbc113a0a8 (diff)
downloadportage-0b39d24bb8270e5c89eaddfd1f5a4181cf9e31d3.tar.gz
portage-0b39d24bb8270e5c89eaddfd1f5a4181cf9e31d3.tar.bz2
portage-0b39d24bb8270e5c89eaddfd1f5a4181cf9e31d3.zip
ebuild(1): apply package.env earlier
This makes it possible to override PORTAGE_TMPDIR.
Diffstat (limited to 'bin/ebuild')
-rwxr-xr-xbin/ebuild28
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"])