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

This issue is archived.

To comment on this conversation send an email to 60947@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 60947
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch