makepkg: Don't double-layer distcc on ccache

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@iki.fi>
Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Matti Niemenmaa 2021-01-30 19:46:40 +02:00 committed by Allan McRae
parent 2b8d00b799
commit 9e425cd1ea

View file

@ -44,7 +44,9 @@ buildenv_ccache() {
buildenv_distcc() { buildenv_distcc() {
if check_buildoption "distcc" "y"; then if check_buildoption "distcc" "y"; then
if (( using_ccache )); then if (( using_ccache )); then
if [[ " $CCACHE_PREFIX " != *" distcc "* ]]; then
export CCACHE_PREFIX="${CCACHE_PREFIX:+$CCACHE_PREFIX }distcc" export CCACHE_PREFIX="${CCACHE_PREFIX:+$CCACHE_PREFIX }distcc"
fi
export CCACHE_BASEDIR="$srcdir" export CCACHE_BASEDIR="$srcdir"
elif [[ -d /usr/lib/distcc/bin ]]; then elif [[ -d /usr/lib/distcc/bin ]]; then
export PATH="/usr/lib/distcc/bin:$PATH" export PATH="/usr/lib/distcc/bin:$PATH"