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

From: Vagrant Cascadian <[email-masked]>
Date: Wed, 16 Sep 2020 11:04:59 -0700

On 2020-09-16, Ludovic Courtès wrote:
> 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?

Not in a good position to push anything for a few days; if someone else
could that would be great!

live well,
  vagrant