Subject: bug#43005: make dist fails: "store file names embedded in the distribution"

From: Ludovic Courtès <[email-masked]>
Date: Wed, 16 Sep 2020 12:21:09 +0200

Hello!

Jan Nieuwenhuizen <[email-masked]> skribis:

>> When I tried to run make dist, it fails:
>>
>> guix-1.0.1.21330-a8c8f-dirty/gnu/packages/commencement.scm:
>>   // /gnu/store/cq0cmv35s9dhilx14zaghlc08gpc0hwr-tcc-boot0-0.9.26-6.c004e9a/lib/libc.a: error: 'sigprocmask' defined t
>>   error: store file names embedded in the distribution
>>
>> The attached patch triggers pretty extensive rebuilds, but should fix
>> the problem.
>
> Oops; your patch is fine (see nit-pick) for core-updates; but as you
> noticed, on master we need to add an indirection to avoid rebuilds.
> What about something like
>
> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
> index aa30e3fa18..48f9a47c6b 100644
> --- a/gnu/packages/commencement.scm
> +++ b/gnu/packages/commencement.scm
> @@ -788,14 +788,16 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\"
>               (substitute* "config.h"
>                 (("#define GETCWD_BROKEN 1") "#undef GETCWD_BROKEN"))
>               (let ((config.h (open-file "config.h" "a")))
> -               (display (string-append "
> +               ;; TODO: remove ,(string-append hack in next rebuild cycle
> +               ;; together with store file name
> +               (display (string-append ,(string-append "
>  // tcc: error: undefined symbol 'enable_hostname_completion'
>  #define enable_hostname_completion(on_or_off) 0
>  
> -// /gnu/store/cq0cmv35s9dhilx14zaghlc08gpc0hwr-tcc-boot0-0.9.26-6.c004e9a/lib/libc.a: error: 'sigprocmask' defined twice
> +// /gnu/store/" "cq0cmv35s9dhilx14zaghlc08gpc0hwr-tcc-boot0-0.9.26-6.c004e9a/lib/libc.a: error: 'sigprocmask' defined twice
>  #define HAVE_POSIX_SIGNALS 1
>  #define endpwent(x) 0
> -")
> +"))

Well done!  Could you push to ‘master’ (with a “Fixes” line in the
commit log)?

>> From 6e77f342c0deca73fa608365bbceb14aaf675b21 Mon Sep 17 00:00:00 2001
>> From: Vagrant Cascadian <[email-masked]>
>> Date: Sun, 23 Aug 2020 14:10:57 -0700
>> Subject: [PATCH] gnu: commencement: bash-mesboot0: Remove store file name.
>
> [..]
>
>> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
>> index aa30e3fa18..617a12016f 100644
>> --- a/gnu/packages/commencement.scm
>> +++ b/gnu/packages/commencement.scm
>> @@ -792,7 +792,7 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\"
>>  // tcc: error: undefined symbol 'enable_hostname_completion'
>>  #define enable_hostname_completion(on_or_off) 0
>>  
>> -// /gnu/store/cq0cmv35s9dhilx14zaghlc08gpc0hwr-tcc-boot0-0.9.26-6.c004e9a/lib/libc.a: error: 'sigprocmask' defined twice
>> +// /gnu/store/…-tcc-boot0-0.9.26-6.c004e9a/lib/libc.a: error: 'sigprocmask' defined twice
>>  #define HAVE_POSIX_SIGNALS 1
>>  #define endpwent(x) 0
>>  ")
>     ^
>
> This is the closing parenthesis of a string-append that has only this
> one big string; what about removing that string-append altogether?

Agreed.

Vagrant, could you push it to core-updates with this change?

Thanks,
Ludo’.