Subject: bug#60947: closed (Re: bug#61180: [PATCH] build-system: Always pass #:graft? #f to 'gexp->derivation'.)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 03 Feb 2023 15:29:02 +0000

Your bug report

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

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
60947: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60947
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#61180: [PATCH] build-system: Always pass #:graft? #f to 'gexp->derivation'.
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Fri, 03 Feb 2023 16:28:20 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Ludovic Courtès <[email-masked]> skribis:

> Fixes <https://issues.guix.gnu.org/60947>.
>
> Fixes a bug whereby packages referred via 'ungexp' in package arguments
> would be "double-grafted": 'gexp->derivation' would first replace those
> references by references to the grafted package, only to repeat the
> grafting process on the result.
>
> Build systems such as 'gnu', 'cmake', and 'pyproject' were already doing
> this.  Only the rest of them is affected.

Pushed as 25947bbc3217306742694304fa9b6499f0126c7a.  No more building
ruby-nokogiri building, comrades!

Ludo’.

Subject: Two different derivations for ‘guix’depending on whether grafts are enabled
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Date: Thu, 19 Jan 2023 16:45:23 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

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’.