1 |
commit: 5cd29d1ed4e38b583c87a56f77d725482c803401 |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Feb 28 18:57:53 2011 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Mar 1 20:53:28 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=5cd29d1e |
7 |
|
8 |
ebuild(1): apply package.env earlier |
9 |
|
10 |
This makes it possible to override PORTAGE_TMPDIR. |
11 |
|
12 |
--- |
13 |
bin/ebuild | 28 ++++++++++++++++++++++------ |
14 |
1 files changed, 22 insertions(+), 6 deletions(-) |
15 |
|
16 |
diff --git a/bin/ebuild b/bin/ebuild |
17 |
index ab88d6a..9d20a41 100755 |
18 |
--- a/bin/ebuild |
19 |
+++ b/bin/ebuild |
20 |
@@ -218,20 +218,36 @@ portage.settings.validate() # generate warning messages if necessary |
21 |
tmpsettings = portage.config(clone=portage.settings) |
22 |
tmpsettings["PORTAGE_VERBOSE"] = "1" |
23 |
tmpsettings.backup_changes("PORTAGE_VERBOSE") |
24 |
+ |
25 |
+if opts.skip_manifest: |
26 |
+ tmpsettings["EBUILD_SKIP_MANIFEST"] = "1" |
27 |
+ tmpsettings.backup_changes("EBUILD_SKIP_MANIFEST") |
28 |
+ |
29 |
+if opts.skip_manifest or \ |
30 |
+ "digest" in tmpsettings.features or \ |
31 |
+ "digest" in pargs or \ |
32 |
+ "manifest" in pargs: |
33 |
+ portage._doebuild_manifest_exempt_depend += 1 |
34 |
+ |
35 |
if "test" in pargs: |
36 |
# This variable is a signal to config.regenerate() to |
37 |
# indicate that the test phase should be enabled regardless |
38 |
# of problems such as masked "test" USE flag. |
39 |
tmpsettings["EBUILD_FORCE_TEST"] = "1" |
40 |
tmpsettings.backup_changes("EBUILD_FORCE_TEST") |
41 |
- tmpsettings.features.add("test") |
42 |
+ tmpsettings["FEATURES"] = tmpsettings.get("FEATURES", "") + " " + "test" |
43 |
+ tmpsettings.backup_changes("FEATURES") |
44 |
|
45 |
-tmpsettings.features.discard('fail-clean') |
46 |
+tmpsettings["FEATURES"] = tmpsettings.get("FEATURES", "") + " " + "-fail-clean" |
47 |
+tmpsettings.backup_changes("FEATURES") |
48 |
|
49 |
-if opts.skip_manifest: |
50 |
- tmpsettings["EBUILD_SKIP_MANIFEST"] = "1" |
51 |
- tmpsettings.backup_changes("EBUILD_SKIP_MANIFEST") |
52 |
- portage._doebuild_manifest_exempt_depend += 1 |
53 |
+# Apply package.env settings. This allows per-package FEATURES and other |
54 |
+# variables (possibly PORTAGE_TMPDIR) to be available as soon as possible. |
55 |
+try: |
56 |
+ tmpsettings.setcpv(cpv, mydb=portage.db[portage.root][mytree].dbapi) |
57 |
+except KeyError: |
58 |
+ # aux_get failure, message should have been shown on stderr. |
59 |
+ sys.exit(1) |
60 |
|
61 |
build_dir_phases = set(["setup", "unpack", "prepare", "configure", "compile", |
62 |
"test", "install", "package", "rpm", "merge", "qmerge"]) |