1 |
Author: zmedico |
2 |
Date: 2008-06-29 03:13:17 +0000 (Sun, 29 Jun 2008) |
3 |
New Revision: 10842 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/__init__.py |
7 |
main/trunk/pym/portage/__init__.py |
8 |
Log: |
9 |
Instead of calling the ebuild "clean" phase in MergeTask.merge(), |
10 |
move it inside doebuild() where it can be tied into the actionmap_deps |
11 |
framework. |
12 |
|
13 |
|
14 |
Modified: main/trunk/pym/_emerge/__init__.py |
15 |
=================================================================== |
16 |
--- main/trunk/pym/_emerge/__init__.py 2008-06-29 01:43:13 UTC (rev 10841) |
17 |
+++ main/trunk/pym/_emerge/__init__.py 2008-06-29 03:13:17 UTC (rev 10842) |
18 |
@@ -6562,16 +6562,13 @@ |
19 |
build_dir = EbuildBuildDir(pkg=pkg, settings=pkgsettings) |
20 |
try: |
21 |
build_dir.lock() |
22 |
+ # Cleaning is triggered before the setup |
23 |
+ # phase, in portage.doebuild(). |
24 |
msg = " === (%s of %s) Cleaning (%s::%s)" % \ |
25 |
(mergecount, len(mymergelist), pkg_key, y) |
26 |
short_msg = "emerge: (%s of %s) %s Clean" % \ |
27 |
(mergecount, len(mymergelist), pkg_key) |
28 |
emergelog(xterm_titles, msg, short_msg=short_msg) |
29 |
- retval = portage.doebuild(y, "clean", myroot, |
30 |
- pkgsettings, self.edebug, cleanup=1, |
31 |
- mydbapi=portdb, tree="porttree") |
32 |
- if retval != os.EX_OK: |
33 |
- raise self._pkg_failure(retval) |
34 |
|
35 |
if "--buildpkg" in self.myopts or issyspkg: |
36 |
if issyspkg: |
37 |
|
38 |
Modified: main/trunk/pym/portage/__init__.py |
39 |
=================================================================== |
40 |
--- main/trunk/pym/portage/__init__.py 2008-06-29 01:43:13 UTC (rev 10841) |
41 |
+++ main/trunk/pym/portage/__init__.py 2008-06-29 03:13:17 UTC (rev 10842) |
42 |
@@ -4817,6 +4817,7 @@ |
43 |
vartree = db[myroot]["vartree"] |
44 |
|
45 |
features = mysettings.features |
46 |
+ noauto = "noauto" in features |
47 |
from portage.data import secpass |
48 |
|
49 |
validcommands = ["help","clean","prerm","postrm","cleanrm","preinst","postinst", |
50 |
@@ -4932,6 +4933,20 @@ |
51 |
doebuild_environment(myebuild, mydo, myroot, mysettings, debug, |
52 |
use_cache, mydbapi) |
53 |
|
54 |
+ clean_phases = ("clean", "cleanrm") |
55 |
+ if mydo in clean_phases or \ |
56 |
+ (not noauto and mydo in actionmap_deps and \ |
57 |
+ mysettings.get("EMERGE_FROM") == "ebuild"): |
58 |
+ if mydo not in clean_phases: |
59 |
+ mysettings["EBUILD_PHASE"] = "clean" |
60 |
+ try: |
61 |
+ retval = spawn(_shell_quote(ebuild_sh_binary) + " clean", |
62 |
+ mysettings, debug=debug, free=1, logfile=None) |
63 |
+ finally: |
64 |
+ mysettings["EBUILD_PHASE"] = mydo |
65 |
+ if mydo in clean_phases or retval != os.EX_OK: |
66 |
+ return retval |
67 |
+ |
68 |
# get possible slot information from the deps file |
69 |
if mydo == "depend": |
70 |
writemsg("!!! DEBUG: dbkey: %s\n" % str(dbkey), 2) |
71 |
@@ -5144,10 +5159,7 @@ |
72 |
|
73 |
# if any of these are being called, handle them -- running them out of |
74 |
# the sandbox -- and stop now. |
75 |
- if mydo in ["clean","cleanrm"]: |
76 |
- return spawn(_shell_quote(ebuild_sh_binary) + " clean", mysettings, |
77 |
- debug=debug, free=1, logfile=None) |
78 |
- elif mydo == "help": |
79 |
+ if mydo == "help": |
80 |
return spawn(_shell_quote(ebuild_sh_binary) + " " + mydo, |
81 |
mysettings, debug=debug, free=1, logfile=logfile) |
82 |
elif mydo == "setup": |
83 |
|
84 |
-- |
85 |
gentoo-commits@l.g.o mailing list |