[pacman-dev] [PATCH v2] makepkg: Don't double-layer distcc on ccache
Allan McRae
allan at archlinux.org
Mon Feb 8 04:25:33 UTC 2021
On 31/1/21 3:46 am, Matti Niemenmaa wrote:
> 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>
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"
>
More information about the pacman-dev
mailing list