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

From: Jan Nieuwenhuizen <[email-masked]>
Date: Mon, 24 Aug 2020 08:18:17 +0200

Vagrant Cascadian writes:

Hello!

> 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

--8<---------------cut here---------------start------------->8---
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
-")
+"))
                         config.h)
                (close config.h))
              #t))
--8<---------------cut here---------------end--------------->8---

Thanks for catching this!

Greetings,
Janneke

> 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?

-- 
Jan Nieuwenhuizen <[email-masked]> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com