Message ID | 20210130174640.1445218-1-matti.niemenmaa+pacman-dev@iki.fi |
---|---|
State | Accepted, archived |
Headers | show |
Series | [pacman-dev,v2] makepkg: Don't double-layer distcc on ccache | expand |
On 31/1/21 3:46 am, Matti Niemenmaa wrote: > From: Matti Niemenmaa <matti.niemenmaa+git@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@iki.fi> Thanks for chasing this up. A > --- > 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" >
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"