The pump mode of distcc has been causing issues for years now, and upstream does even attempt to fix it. Disarm the FEATURES so that people do not have to do that themselves after discovering all the bugs. --- bin/phase-functions.sh | 17 ----------------- man/make.conf.5 | 5 ++++- pym/_emerge/EbuildPhase.py | 2 +- 3 files changed, 5 insertions(+), 19 deletions(-)
diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh index 1f9faaa41..9c6f9cbd5 100644 --- a/bin/phase-functions.sh +++ b/bin/phase-functions.sh @@ -402,19 +402,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 @@ -434,7 +421,6 @@ __dyn_configure() { fi trap __abort_configure SIGINT SIGQUIT - __start_distcc __ebuild_phase pre_src_configure @@ -468,7 +454,6 @@ __dyn_compile() { fi trap __abort_compile SIGINT SIGQUIT - __start_distcc __ebuild_phase pre_src_compile @@ -492,7 +477,6 @@ __dyn_test() { fi trap "__abort_test" SIGINT SIGQUIT - __start_distcc if [ -d "${S}" ]; then cd "${S}" @@ -536,7 +520,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/man/make.conf.5 b/man/make.conf.5 index cb0f00237..9487991d9 100644 --- a/man/make.conf.5 +++ b/man/make.conf.5 @@ -385,7 +385,10 @@ will be reused whenever they are available. Enable portage support for the distcc package. .TP .B distcc\-pump -Enable portage support for the distcc package with pump mode. +Ignored. In the past it used to enable distcc pump mode support +but it has been removed due to causing numerous issues (including build +failures, incorrect configure results and even silent miscompilations), +and being unmaintained upstream. .TP .B distlocks Portage uses lockfiles to ensure competing instances don't clobber diff --git a/pym/_emerge/EbuildPhase.py b/pym/_emerge/EbuildPhase.py index 4104cefa7..50e3dd1f4 100644 --- a/pym/_emerge/EbuildPhase.py +++ b/pym/_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", -- 2.18.0