[pacman-dev] [PATCH v2] makepkg: Don't double-layer distcc on ccache
Matti Niemenmaa
matti.niemenmaa+pacman-dev at iki.fi
Sat Jan 30 17:46:40 UTC 2021
From: Matti Niemenmaa <matti.niemenmaa+git at iki.fi>
buildenv is set once for build() and a second time for package(). When
using both distcc and ccache, this lead to CCACHE_PREFIX="distcc distcc"
in package(), which breaks PKGBUILDs that execute the compiler in
package() because distcc complains:
distcc[383041] (main) CRITICAL! distcc seems to have invoked itself
recursively!
Avoid causing this error by only adding "distcc" to CCACHE_PREFIX if
it's not yet there.
Signed-off-by: Matti Niemenmaa <matti.niemenmaa+git at iki.fi>
---
scripts/libmakepkg/buildenv/compiler.sh.in | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
This time using globbing instead of regex, as requested by Eli.
diff --git a/scripts/libmakepkg/buildenv/compiler.sh.in b/scripts/libmakepkg/buildenv/compiler.sh.in
index 69f58a29..b1e36f56 100644
--- a/scripts/libmakepkg/buildenv/compiler.sh.in
+++ b/scripts/libmakepkg/buildenv/compiler.sh.in
@@ -44,7 +44,9 @@ buildenv_ccache() {
buildenv_distcc() {
if check_buildoption "distcc" "y"; then
if (( using_ccache )); then
- export CCACHE_PREFIX="${CCACHE_PREFIX:+$CCACHE_PREFIX }distcc"
+ if [[ " $CCACHE_PREFIX " != *" distcc "* ]]; then
+ export CCACHE_PREFIX="${CCACHE_PREFIX:+$CCACHE_PREFIX }distcc"
+ fi
export CCACHE_BASEDIR="$srcdir"
elif [[ -d /usr/lib/distcc/bin ]]; then
export PATH="/usr/lib/distcc/bin:$PATH"
--
2.30.0
More information about the pacman-dev
mailing list