public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/portage:master commit in: lib/_emerge/, bin/, man/, lib/portage/
@ 2019-12-08 21:31 Zac Medico
  0 siblings, 0 replies; only message in thread
From: Zac Medico @ 2019-12-08 21:31 UTC (permalink / raw
  To: gentoo-commits

commit:     bc0c28bbcdb03506e6c0bafac9e63aff5ebb6894
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Fri Dec  6 21:00:46 2019 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sun Dec  8 21:29:45 2019 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=bc0c28bb

emerge: drop FEATURES=distcc-pump support, bug #702146

'distcc' distributes 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.

Bug: https://bugs.gentoo.org/702146
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 bin/phase-functions.sh     | 17 -----------------
 lib/_emerge/EbuildPhase.py |  2 +-
 lib/portage/const.py       |  1 -
 man/make.conf.5            |  3 ---
 4 files changed, 1 insertion(+), 22 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",

diff --git a/man/make.conf.5 b/man/make.conf.5
index 78ff8cb06..494d5f003 100644
--- a/man/make.conf.5
+++ b/man/make.conf.5
@@ -393,9 +393,6 @@ will be reused whenever they are available.
 .B distcc
 Enable portage support for the distcc package.
 .TP
-.B distcc\-pump
-Enable portage support for the distcc package with pump mode.
-.TP
 .B distlocks
 Portage uses lockfiles to ensure competing instances don't clobber
 each other's files.  It covers saving distfiles to ${DISTDIR} and


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2019-12-08 21:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-08 21:31 [gentoo-commits] proj/portage:master commit in: lib/_emerge/, bin/, man/, lib/portage/ Zac Medico

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox