1 |
'distcc' dustributes code generation for preprocessed files. |
2 |
|
3 |
'pump' distributes preprocessing and code generation of files |
4 |
and imposes very strict requirement: |
5 |
|
6 |
""" |
7 |
Note that distcc's pump-mode assumes that sources files will |
8 |
not be modified during the lifetime of the include server, so |
9 |
modifying source files during a build may cause inconsistent |
10 |
results. |
11 |
""" |
12 |
|
13 |
`src_configure()` (where we used to start include server before |
14 |
this change) almost always violates that requirement. |
15 |
|
16 |
It is not uncommon to generate more intermediate source files |
17 |
as a package builds (`bison`, `flex`, child `./configure` calls |
18 |
from `make`) and thus quite unsafe to use `pump`. |
19 |
|
20 |
This change drops `FEATURES=distcc-pump` and leaves only |
21 |
FEATURES=distcc. This way all the proprocessing happens as expected |
22 |
and only code generation is offloaded. |
23 |
|
24 |
Closes: https://bugs.gentoo.org/702146 |
25 |
Signed-off-by: Sergei Trofimovich <slyfox@g.o> |
26 |
--- |
27 |
bin/phase-functions.sh | 17 ----------------- |
28 |
lib/_emerge/EbuildPhase.py | 2 +- |
29 |
lib/portage/const.py | 1 - |
30 |
3 files changed, 1 insertion(+), 19 deletions(-) |
31 |
|
32 |
diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh |
33 |
index 92fcd3929..73f8cee9b 100644 |
34 |
--- a/bin/phase-functions.sh |
35 |
+++ b/bin/phase-functions.sh |
36 |
@@ -403,19 +403,6 @@ __dyn_prepare() { |
37 |
trap - SIGINT SIGQUIT |
38 |
} |
39 |
|
40 |
-# @FUNCTION: __start_distcc |
41 |
-# @DESCRIPTION: |
42 |
-# Start distcc-pump if necessary. |
43 |
-__start_distcc() { |
44 |
- if has distcc $FEATURES && has distcc-pump $FEATURES ; then |
45 |
- if [[ -z $INCLUDE_SERVER_PORT ]] || [[ ! -w $INCLUDE_SERVER_PORT ]] ; then |
46 |
- # adding distcc to PATH repeatedly results in fatal distcc recursion :) |
47 |
- eval $(pump --startup | grep -v PATH) |
48 |
- trap "pump --shutdown >/dev/null" EXIT |
49 |
- fi |
50 |
- fi |
51 |
-} |
52 |
- |
53 |
__dyn_configure() { |
54 |
|
55 |
if [[ -e $PORTAGE_BUILDDIR/.configured ]] ; then |
56 |
@@ -435,7 +422,6 @@ __dyn_configure() { |
57 |
fi |
58 |
|
59 |
trap __abort_configure SIGINT SIGQUIT |
60 |
- __start_distcc |
61 |
|
62 |
__ebuild_phase pre_src_configure |
63 |
|
64 |
@@ -469,7 +455,6 @@ __dyn_compile() { |
65 |
fi |
66 |
|
67 |
trap __abort_compile SIGINT SIGQUIT |
68 |
- __start_distcc |
69 |
|
70 |
__ebuild_phase pre_src_compile |
71 |
|
72 |
@@ -493,7 +478,6 @@ __dyn_test() { |
73 |
fi |
74 |
|
75 |
trap "__abort_test" SIGINT SIGQUIT |
76 |
- __start_distcc |
77 |
|
78 |
if [[ -d ${S} ]]; then |
79 |
cd "${S}" |
80 |
@@ -541,7 +525,6 @@ __dyn_install() { |
81 |
return 0 |
82 |
fi |
83 |
trap "__abort_install" SIGINT SIGQUIT |
84 |
- __start_distcc |
85 |
|
86 |
# Handle setting QA_* based on QA_PREBUILT |
87 |
# Those variables shouldn't be needed before src_install() |
88 |
diff --git a/lib/_emerge/EbuildPhase.py b/lib/_emerge/EbuildPhase.py |
89 |
index 4104cefa7..50e3dd1f4 100644 |
90 |
--- a/lib/_emerge/EbuildPhase.py |
91 |
+++ b/lib/_emerge/EbuildPhase.py |
92 |
@@ -49,7 +49,7 @@ class EbuildPhase(CompositeTask): |
93 |
|
94 |
# FEATURES displayed prior to setup phase |
95 |
_features_display = ( |
96 |
- "ccache", "compressdebug", "distcc", "distcc-pump", "fakeroot", |
97 |
+ "ccache", "compressdebug", "distcc", "fakeroot", |
98 |
"installsources", "keeptemp", "keepwork", "network-sandbox", |
99 |
"network-sandbox-proxy", "nostrip", "preserve-libs", "sandbox", |
100 |
"selinux", "sesandbox", "splitdebug", "suidctl", "test", |
101 |
diff --git a/lib/portage/const.py b/lib/portage/const.py |
102 |
index 36b33af92..e95039fd5 100644 |
103 |
--- a/lib/portage/const.py |
104 |
+++ b/lib/portage/const.py |
105 |
@@ -142,7 +142,6 @@ SUPPORTED_FEATURES = frozenset([ |
106 |
"config-protect-if-modified", |
107 |
"digest", |
108 |
"distcc", |
109 |
- "distcc-pump", |
110 |
"distlocks", |
111 |
"downgrade-backup", |
112 |
"ebuild-locks", |
113 |
-- |
114 |
2.24.0 |