'distcc' dustributes code generation for preprocessed files. 'pump' distributes preprocessing and code generation of files and imposes very strict requirement:
""" Note that distcc's pump-mode assumes that sources files will not be modified during the lifetime of the include server, so modifying source files during a build may cause inconsistent results. """ `src_configure()` (where we used to start include server before this change) almost always violates that requirement. It is not uncommon to generate more intermediate source files as a package builds (`bison`, `flex`, child `./configure` calls from `make`) and thus quite unsafe to use `pump`. This change drops `FEATURES=distcc-pump` and leaves only FEATURES=distcc. This way all the proprocessing happens as expected and only code generation is offloaded. Closes: https://bugs.gentoo.org/702146 Signed-off-by: Sergei Trofimovich <sly...@gentoo.org> --- bin/phase-functions.sh | 17 ----------------- lib/_emerge/EbuildPhase.py | 2 +- lib/portage/const.py | 1 - 3 files changed, 1 insertion(+), 19 deletions(-) diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh index 92fcd3929..73f8cee9b 100644 --- a/bin/phase-functions.sh +++ b/bin/phase-functions.sh @@ -403,19 +403,6 @@ __dyn_prepare() { trap - SIGINT SIGQUIT } -# @FUNCTION: __start_distcc -# @DESCRIPTION: -# Start distcc-pump if necessary. -__start_distcc() { - if has distcc $FEATURES && has distcc-pump $FEATURES ; then - if [[ -z $INCLUDE_SERVER_PORT ]] || [[ ! -w $INCLUDE_SERVER_PORT ]] ; then - # adding distcc to PATH repeatedly results in fatal distcc recursion :) - eval $(pump --startup | grep -v PATH) - trap "pump --shutdown >/dev/null" EXIT - fi - fi -} - __dyn_configure() { if [[ -e $PORTAGE_BUILDDIR/.configured ]] ; then @@ -435,7 +422,6 @@ __dyn_configure() { fi trap __abort_configure SIGINT SIGQUIT - __start_distcc __ebuild_phase pre_src_configure @@ -469,7 +455,6 @@ __dyn_compile() { fi trap __abort_compile SIGINT SIGQUIT - __start_distcc __ebuild_phase pre_src_compile @@ -493,7 +478,6 @@ __dyn_test() { fi trap "__abort_test" SIGINT SIGQUIT - __start_distcc if [[ -d ${S} ]]; then cd "${S}" @@ -541,7 +525,6 @@ __dyn_install() { return 0 fi trap "__abort_install" SIGINT SIGQUIT - __start_distcc # Handle setting QA_* based on QA_PREBUILT # Those variables shouldn't be needed before src_install() diff --git a/lib/_emerge/EbuildPhase.py b/lib/_emerge/EbuildPhase.py index 4104cefa7..50e3dd1f4 100644 --- a/lib/_emerge/EbuildPhase.py +++ b/lib/_emerge/EbuildPhase.py @@ -49,7 +49,7 @@ class EbuildPhase(CompositeTask): # FEATURES displayed prior to setup phase _features_display = ( - "ccache", "compressdebug", "distcc", "distcc-pump", "fakeroot", + "ccache", "compressdebug", "distcc", "fakeroot", "installsources", "keeptemp", "keepwork", "network-sandbox", "network-sandbox-proxy", "nostrip", "preserve-libs", "sandbox", "selinux", "sesandbox", "splitdebug", "suidctl", "test", diff --git a/lib/portage/const.py b/lib/portage/const.py index 36b33af92..e95039fd5 100644 --- a/lib/portage/const.py +++ b/lib/portage/const.py @@ -142,7 +142,6 @@ SUPPORTED_FEATURES = frozenset([ "config-protect-if-modified", "digest", "distcc", - "distcc-pump", "distlocks", "downgrade-backup", "ebuild-locks", -- 2.24.0