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

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Ludovic Courtès
Owner
unassigned
Submitted by
Ludovic Courtès
Severity
important
L
L
Ludovic Courtès wrote on 19 Jan 2023 16:45
(address . bug-guix@gnu.org)
871qnqbka4.fsf@inria.fr
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):

Toggle snippet (15 lines)
$ 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

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’.
L
L
Ludovic Courtès wrote on 19 Jan 2023 17:58
Re: bug#60947: Two different derivations for ‘gui x’ depending on whether grafts are enabled
(address . 60947-done@debbugs.gnu.org)
87y1py8nrx.fsf@gnu.org
Ludovic Courtès <ludovic.courtes@inria.fr> skribis:

Toggle quote (18 lines)
> 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):
>
> $ 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

Fixed in 88854b1a4e364263b0d3c0d1e87de1ce7da51d34!

Ludo'.
Closed
L
L
Ludovic Courtès wrote on 30 Jan 2023 17:04
(address . 60947@debbugs.gnu.org)
87y1pkypo1.fsf@gnu.org
Ludovic Courtès <ludovic.courtes@inria.fr> skribis:

Toggle quote (4 lines)
> 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):

A similar situation:

Toggle snippet (12 lines)
$ guix describe
Generation 244 Jan 29 2023 23:24:35 (current)
guix 4eccb27
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 4eccb27b4c74a9112cbbad722d85558e9565f20b
$ guix build ruby-nokogiri -d
/gnu/store/gfry2algsp4rw8mp9d75qlrns1radjar-ruby-nokogiri-1.13.10.drv
$ guix build ruby-nokogiri -d --no-grafts
/gnu/store/vdnp9ila1946dakcrs55x3iwjc781pbi-ruby-nokogiri-1.13.10.drv

This is causing a dozen of ‘ruby-’ package that ‘gnome-shell’ depends on
to be rebuilt locally, even though ‘guix weather gnome-shell’ says it’s
available. Annoying!

Patch coming.

Ludo’.
--- #<buffer amy6awkzzb8spv8i5ns4m5izypjd0nhx-ruby-nokogiri-1.13.10-builder>
+++ #<buffer hiqgagwa3i407nyx3yndzlah835j8rgi-ruby-nokogiri-1.13.10-builder>
@@ -45,7 +45,7 @@
(assoc-ref %outputs "out"))
(ruby-build #:name "ruby-nokogiri-1.13.10" #:source "/gnu/store/82giwp6r123kky2fg6a0bkx7dyh0vp2h-nokogiri-1.13.10.gem" #:system "x86_64-linux" #:gem-flags
(list "--" "--use-system-libraries"
- (string-append "--with-xml2-include=" "/gnu/store/g3y6ifhm0751vgsxv90yipfw6mk189kj-libxml2-2.9.12" "/include/libxml2"))
+ (string-append "--with-xml2-include=" "/gnu/store/7h3rl7awha559jj0r7ba66njh27sb8pq-libxml2-2.9.12" "/include/libxml2"))
#:test-target "test" #:tests? #f #:phases
(modify-phases %standard-phases
(add-after
L
L
Ludovic Courtès wrote on 30 Jan 2023 17:04
control message for bug #60947
(address . control@debbugs.gnu.org)
87wn54ypns.fsf@gnu.org
severity 60947 important
quit
L
L
Ludovic Courtès wrote on 30 Jan 2023 17:19
Re: bug#60947: Two different derivations for ‘gui x’ depending on whether grafts are enabled
(address . 60947@debbugs.gnu.org)
87sffsyozo.fsf@gnu.org
Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (12 lines)
> --- #<buffer amy6awkzzb8spv8i5ns4m5izypjd0nhx-ruby-nokogiri-1.13.10-builder>
> +++ #<buffer hiqgagwa3i407nyx3yndzlah835j8rgi-ruby-nokogiri-1.13.10-builder>
> @@ -45,7 +45,7 @@
> (assoc-ref %outputs "out"))
> (ruby-build #:name "ruby-nokogiri-1.13.10" #:source "/gnu/store/82giwp6r123kky2fg6a0bkx7dyh0vp2h-nokogiri-1.13.10.gem" #:system "x86_64-linux" #:gem-flags
> (list "--" "--use-system-libraries"
> - (string-append "--with-xml2-include=" "/gnu/store/g3y6ifhm0751vgsxv90yipfw6mk189kj-libxml2-2.9.12" "/include/libxml2"))
> + (string-append "--with-xml2-include=" "/gnu/store/7h3rl7awha559jj0r7ba66njh27sb8pq-libxml2-2.9.12" "/include/libxml2"))
> #:test-target "test" #:tests? #f #:phases
> (modify-phases %standard-phases
> (add-after

To be clear, what we have in source here is:

Toggle snippet (14 lines)
(define-public ruby-nokogiri
(package
;; …
(arguments
(list
#:tests? #f
#:gem-flags #~(list "--" "--use-system-libraries"
(string-append "--with-xml2-include="
#$(this-package-input "libxml2")
"/include/libxml2" ))))
;; …
(license license:expat)))

… and it’s the #$(this-package-input "libxml2") bit that causes that
discrepancy.

Ludo’.
L
L
Ludovic Courtès wrote on 3 Feb 2023 16:28
Re: bug#61180: [PATCH] build-system: Always pass #:graft? #f to 'gexp->derivation'.
(address . 61180-done@debbugs.gnu.org)(address . 60947-done@debbugs.gnu.org)
87ilgiwyy3.fsf@gnu.org
Hi,

Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (10 lines)
>
> 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’.
Closed
?