all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#60947: Two different derivations for ‘guix’ depending on whether grafts are enabled
@ 2023-01-19 15:45 Ludovic Courtès
  2023-01-19 16:58 ` Ludovic Courtès
  2023-01-30 16:04 ` Ludovic Courtès
  0 siblings, 2 replies; 6+ messages in thread
From: Ludovic Courtès @ 2023-01-19 15:45 UTC (permalink / raw)
  To: 60947

[-- Attachment #1: Type: text/plain, Size: 1075 bytes --]

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:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 1052 bytes --]

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")


[-- Attachment #3: Type: text/plain, Size: 34 bytes --]


To be continued…

Ludo’.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#60947: Two different derivations for ‘guix’ depending on whether grafts are enabled
  2023-01-19 15:45 bug#60947: Two different derivations for ‘guix’ depending on whether grafts are enabled Ludovic Courtès
@ 2023-01-19 16:58 ` Ludovic Courtès
  2023-01-30 16:04 ` Ludovic Courtès
  1 sibling, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2023-01-19 16:58 UTC (permalink / raw)
  To: 60947-done

Ludovic Courtès <ludovic.courtes@inria.fr> skribis:

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




^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#60947: Two different derivations for ‘guix’ depending on whether grafts are enabled
  2023-01-19 15:45 bug#60947: Two different derivations for ‘guix’ depending on whether grafts are enabled Ludovic Courtès
  2023-01-19 16:58 ` Ludovic Courtès
@ 2023-01-30 16:04 ` Ludovic Courtès
  2023-01-30 16:08   ` [bug#61180] [PATCH] build-system: Always pass #:graft? #f to 'gexp->derivation' Ludovic Courtès
  2023-01-30 16:19   ` bug#60947: Two different derivations for ‘guix’ depending on whether grafts are enabled Ludovic Courtès
  1 sibling, 2 replies; 6+ messages in thread
From: Ludovic Courtès @ 2023-01-30 16:04 UTC (permalink / raw)
  To: 60947

[-- Attachment #1: Type: text/plain, Size: 1073 bytes --]

Ludovic Courtès <ludovic.courtes@inria.fr> skribis:

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

--8<---------------cut here---------------start------------->8---
$ 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
--8<---------------cut here---------------end--------------->8---

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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 761 bytes --]

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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#61180] [PATCH] build-system: Always pass #:graft? #f to 'gexp->derivation'.
  2023-01-30 16:04 ` Ludovic Courtès
@ 2023-01-30 16:08   ` Ludovic Courtès
  2023-02-03 15:28     ` bug#61180: " Ludovic Courtès
  2023-01-30 16:19   ` bug#60947: Two different derivations for ‘guix’ depending on whether grafts are enabled Ludovic Courtès
  1 sibling, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2023-01-30 16:08 UTC (permalink / raw)
  To: 61180; +Cc: Ludovic Courtès, 60947

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.

* guix/build-system/cargo.scm (cargo-build): Pass #:graft? #f to
'gexp->derivation'.
* guix/build-system/copy.scm (copy-build): Likewise.
* guix/build-system/dune.scm (dune-build): Likewise.
* guix/build-system/font.scm (font-build): Likewise.
* guix/build-system/guile.scm (guile-build): Likewise.
(guile-cross-build): Likewise.
* guix/build-system/ocaml.scm (ocaml-build): Likewise.
* guix/build-system/ruby.scm (ruby-build): Likewise.
* guix/build-system/scons.scm (scons-build): Likewise.
* guix/build-system/texlive.scm (texlive-build): Likewise.
* guix/build-system/waf.scm (waf-build): Likewise.
---
 guix/build-system/cargo.scm   | 1 +
 guix/build-system/copy.scm    | 1 +
 guix/build-system/dune.scm    | 1 +
 guix/build-system/font.scm    | 1 +
 guix/build-system/guile.scm   | 2 ++
 guix/build-system/ocaml.scm   | 1 +
 guix/build-system/ruby.scm    | 1 +
 guix/build-system/scons.scm   | 1 +
 guix/build-system/texlive.scm | 1 +
 guix/build-system/waf.scm     | 1 +
 10 files changed, 11 insertions(+)

diff --git a/guix/build-system/cargo.scm b/guix/build-system/cargo.scm
index 60c35eed07..912400a191 100644
--- a/guix/build-system/cargo.scm
+++ b/guix/build-system/cargo.scm
@@ -123,6 +123,7 @@ (define builder
   (gexp->derivation name builder
                     #:system system
                     #:target #f
+                    #:graft? #f
                     #:guile-for-build guile))
 
 (define (package-cargo-inputs p)
diff --git a/guix/build-system/copy.scm b/guix/build-system/copy.scm
index 4894ba46fb..42a48b037c 100644
--- a/guix/build-system/copy.scm
+++ b/guix/build-system/copy.scm
@@ -129,6 +129,7 @@ (define builder
     (gexp->derivation name builder
                       #:system system
                       #:target #f
+                      #:graft? #f
                       #:guile-for-build guile)))
 
 (define copy-build-system
diff --git a/guix/build-system/dune.scm b/guix/build-system/dune.scm
index 12100fd8e8..3f81d21441 100644
--- a/guix/build-system/dune.scm
+++ b/guix/build-system/dune.scm
@@ -157,6 +157,7 @@ (define builder
   (gexp->derivation name builder
                     #:system system
                     #:target #f
+                    #:graft? #f
                     #:guile-for-build guile))
 
 (define dune-build-system
diff --git a/guix/build-system/font.scm b/guix/build-system/font.scm
index 74dc80b5db..a99f76c66b 100644
--- a/guix/build-system/font.scm
+++ b/guix/build-system/font.scm
@@ -112,6 +112,7 @@ (define builder
     (gexp->derivation name builder
                       #:system system
                       #:target #f
+                      #:graft? #f
                       #:guile-for-build guile)))
 
 (define font-build-system
diff --git a/guix/build-system/guile.scm b/guix/build-system/guile.scm
index 36a88e181a..ffc892260a 100644
--- a/guix/build-system/guile.scm
+++ b/guix/build-system/guile.scm
@@ -114,6 +114,7 @@ (define builder
     (gexp->derivation name builder
                       #:system system
                       #:target #f
+                      #:graft? #f
                       #:guile-for-build guile)))
 
 (define* (guile-cross-build name
@@ -170,6 +171,7 @@ (define %outputs
     (gexp->derivation name builder
                       #:system system
                       #:target target
+                      #:graft? #f
                       #:guile-for-build guile)))
 
 (define guile-build-system
diff --git a/guix/build-system/ocaml.scm b/guix/build-system/ocaml.scm
index b08985cd4d..921c1f8629 100644
--- a/guix/build-system/ocaml.scm
+++ b/guix/build-system/ocaml.scm
@@ -310,6 +310,7 @@ (define builder
   (gexp->derivation name builder
                     #:system system
                     #:target #f
+                    #:graft? #f
                     #:guile-for-build guile))
 
 (define ocaml-build-system
diff --git a/guix/build-system/ruby.scm b/guix/build-system/ruby.scm
index 342daf7978..0aa273b4f4 100644
--- a/guix/build-system/ruby.scm
+++ b/guix/build-system/ruby.scm
@@ -114,6 +114,7 @@ (define build
     (gexp->derivation name build
                       #:system system
                       #:target #f
+                      #:graft? #f
                       #:modules imported-modules
                       #:guile-for-build guile)))
 
diff --git a/guix/build-system/scons.scm b/guix/build-system/scons.scm
index 7a02fa8a0f..9af24d40f8 100644
--- a/guix/build-system/scons.scm
+++ b/guix/build-system/scons.scm
@@ -121,6 +121,7 @@ (define builder
   (gexp->derivation name builder
                     #:system system
                     #:target #f
+                    #:graft? #f
                     #:guile-for-build guile))
 
 (define scons-build-system
diff --git a/guix/build-system/texlive.scm b/guix/build-system/texlive.scm
index dbb72cd24a..336e192d83 100644
--- a/guix/build-system/texlive.scm
+++ b/guix/build-system/texlive.scm
@@ -182,6 +182,7 @@ (define builder
     (gexp->derivation name builder
                       #:system system
                       #:target #f
+                      #:graft? #f
                       #:substitutable? substitutable?
                       #:guile-for-build guile)))
 
diff --git a/guix/build-system/waf.scm b/guix/build-system/waf.scm
index e8cd5520b8..1d520050f6 100644
--- a/guix/build-system/waf.scm
+++ b/guix/build-system/waf.scm
@@ -111,6 +111,7 @@ (define build
     (gexp->derivation name build
                       #:system system
                       #:target #f
+                      #:graft? #f
                       #:modules imported-modules
                       #:guile-for-build guile)))
 

base-commit: dbf965dd7b76dfa50ee80e037a7404e163b9917c
-- 
2.39.1





^ permalink raw reply related	[flat|nested] 6+ messages in thread

* bug#60947: Two different derivations for ‘guix’ depending on whether grafts are enabled
  2023-01-30 16:04 ` Ludovic Courtès
  2023-01-30 16:08   ` [bug#61180] [PATCH] build-system: Always pass #:graft? #f to 'gexp->derivation' Ludovic Courtès
@ 2023-01-30 16:19   ` Ludovic Courtès
  1 sibling, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2023-01-30 16:19 UTC (permalink / raw)
  To: 60947

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

> --- #<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:

--8<---------------cut here---------------start------------->8---
(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)))
--8<---------------cut here---------------end--------------->8---

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

Ludo’.




^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#61180: [PATCH] build-system: Always pass #:graft? #f to 'gexp->derivation'.
  2023-01-30 16:08   ` [bug#61180] [PATCH] build-system: Always pass #:graft? #f to 'gexp->derivation' Ludovic Courtès
@ 2023-02-03 15:28     ` Ludovic Courtès
  0 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2023-02-03 15:28 UTC (permalink / raw)
  To: 61180-done; +Cc: 60947-done

Hi,

Ludovic Courtès <ludo@gnu.org> 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’.




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-02-03 15:29 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-19 15:45 bug#60947: Two different derivations for ‘guix’ depending on whether grafts are enabled Ludovic Courtès
2023-01-19 16:58 ` Ludovic Courtès
2023-01-30 16:04 ` Ludovic Courtès
2023-01-30 16:08   ` [bug#61180] [PATCH] build-system: Always pass #:graft? #f to 'gexp->derivation' Ludovic Courtès
2023-02-03 15:28     ` bug#61180: " Ludovic Courtès
2023-01-30 16:19   ` bug#60947: Two different derivations for ‘guix’ depending on whether grafts are enabled Ludovic Courtès

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.