Subject: bug#60947: Two different derivations for ‘guix’ depending on whether grafts are enabled

From: Ludovic Courtès <[email-masked]>
Date: Thu, 19 Jan 2023 16:45:23 +0100

We have a problem!  Depending on whether grafts are enabled, we end up
building one of two different derivations for ‘guix’ (“real”
derivations; none of them is a mere grafting derivation):

--8<---------------cut here---------------start------------->8---
$ guix describe
Generation 241  Jan 16 2023 00:26:44    (current)
  guix 5c92197
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 5c921977179489caef4a9e54ada6696fc86d2f0b
$ guix build guix -n
The following derivation would be built:
  /gnu/store/hfaffzsjia7x1rbwaryyygh01bskxvvx-guix-1.4.0-1.9fe5b49.drv
$ guix build guix -n --no-grafts
/gnu/store/zasc3k9cnk3l1kvi03a4wml33awg21gf-guix-1.4.0-1.9fe5b49
$ guix build guix -n --no-grafts -d
/gnu/store/lczdc4jl1yl7cf4mrzqw2b9wiwmc5pwb-guix-1.4.0-1.9fe5b49.drv
--8<---------------cut here---------------end--------------->8---

The difference between those two .drv is guile-gnutls-3.7.11.drv, which
themselves differ in their gnulib-2022-12-06-1.440b528.drv.  At the
bottom, the difference is:

diff -ubBr --show-c-function --label \#\<buffer\ j2pxhf1brqdav3hkzzdxzbl89d39w584-gnulib-2022-12-06-1.440b528-builder\> --label \#\<buffer\ 0ilayj9ir5rva5yapqz34wl8l4la83w8-gnulib-2022-12-06-1.440b528-builder\> /tmp/buffer-content-DQf9jh /tmp/buffer-content-xYoO4v
--- #<buffer j2pxhf1brqdav3hkzzdxzbl89d39w584-gnulib-2022-12-06-1.440b528-builder>
+++ #<buffer 0ilayj9ir5rva5yapqz34wl8l4la83w8-gnulib-2022-12-06-1.440b528-builder>
@@ -138,7 +138,7 @@
 			(find-ucd-files . names)
 			(map find-ucd-file names))
 		      (with-directory-excursion "lib"
-			(invoke "/gnu/store/p4piblscgrfrsc4sk4ln1vga2ncn502y-gcc-10.3.0/bin/gcc" "-O" "-Wall" "gen-uni-tables.c" "-Iunictype" "-o" "gen-uni-tables")
+			(invoke "/gnu/store/g8la8r45k1bc8yrgg6sw3rz930y0n3rl-gcc-10.3.0/bin/gcc" "-O" "-Wall" "gen-uni-tables.c" "-Iunictype" "-o" "gen-uni-tables")
 			(apply invoke "./gen-uni-tables"
 			       (append
 				(find-ucd-files "UnicodeData.txt" "PropList.txt" "DerivedCoreProperties.txt" "emoji/emoji-data.txt" "ArabicShaping.txt" "Scripts.txt" "Blocks.txt")

To be continued…

Ludo’.