diff mbox series

[bug#49881] gnu: mpfr-boot: Use gmp-boot as a dependency

Message ID 87sfzfire8.fsf@gnu.org
State Accepted
Headers show
Series [bug#49881] gnu: mpfr-boot: Use gmp-boot as a dependency | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Ludovic Courtès Aug. 11, 2021, 9:49 p.m. UTC
Hi,

Thiago Jung Bauermann <bauermann@kolabnow.com> skribis:

> The current GMP version is incompatible with MPFR 2.4 (which was released
> in 2009) and causes the build of ‘mpfr-boot’ to fail.
>
> Fix the problem by using ‘gmp-boot’, which is from early 2010.
>
> * gnu/packages/commencement.scm (mpfr-boot)[propagated-inputs]: Add
> gmp-boot.

Indeed.  However, it turns out that ‘gmp-boot’, ‘mpfr-boot’, and
‘mpc-boot’ are not actually used as dependencies; we only ever use their
source.

I propose to instead make that explicit with the patch below.  WDYT?

Thanks,
Ludo’.

Comments

Ludovic Courtès Aug. 11, 2021, 9:51 p.m. UTC | #1
Ludovic Courtès <ludo@gnu.org> skribis:

> I propose to instead make that explicit with the patch below.  WDYT?

This would also address <https://issues.guix.gnu.org/49880> and
<https://issues.guix.gnu.org/49882> actually.

Ludo’.
Thiago Jung Bauermann Aug. 12, 2021, 7:27 p.m. UTC | #2
Hi,

Em quarta-feira, 11 de agosto de 2021, às 18:49:03 -03, Ludovic Courtès 
escreveu:
> Hi,
> 
> Thiago Jung Bauermann <bauermann@kolabnow.com> skribis:
> > The current GMP version is incompatible with MPFR 2.4 (which was
> > released in 2009) and causes the build of ‘mpfr-boot’ to fail.
> > 
> > Fix the problem by using ‘gmp-boot’, which is from early 2010.
> > 
> > * gnu/packages/commencement.scm (mpfr-boot)[propagated-inputs]: Add
> > gmp-boot.
> 
> Indeed.  However, it turns out that ‘gmp-boot’, ‘mpfr-boot’, and
> ‘mpc-boot’ are not actually used as dependencies; we only ever use their
> source.
> 
> I propose to instead make that explicit with the patch below.  WDYT?

I think it’s a great solution! Much simpler than my patches for this issue 
and also 49880 and 49882. Thank you very much for working on it.

I also confirmed that with your patch, ‘gmp-boot’, ‘mpfr-boot’, and ‘mpc-
boot’ “build” correctly on powerpc64le-linux (not that it really matters), 
and they also “build” correctly on i686-linux. The latter system also 
builds ‘gcc-core-mesboot1’ correctly.

Out of curiosity, why did the CI even try to build ‘gmp-boot’, ‘mpfr-boot’, 
and ‘mpc-boot’ on powerpc64le-linux? They’re not public packages, and 
moreover they are only dependencies of ‘gcc-core-mesboot1’ which is only 
relevant on i686-linux…
Ludovic Courtès Aug. 12, 2021, 10:14 p.m. UTC | #3
Hi,

Thiago Jung Bauermann <bauermann@kolabnow.com> skribis:

> Em quarta-feira, 11 de agosto de 2021, às 18:49:03 -03, Ludovic Courtès 
> escreveu:

[...]

>> Indeed.  However, it turns out that ‘gmp-boot’, ‘mpfr-boot’, and
>> ‘mpc-boot’ are not actually used as dependencies; we only ever use their
>> source.
>> 
>> I propose to instead make that explicit with the patch below.  WDYT?
>
> I think it’s a great solution! Much simpler than my patches for this issue 
> and also 49880 and 49882. Thank you very much for working on it.
>
> I also confirmed that with your patch, ‘gmp-boot’, ‘mpfr-boot’, and ‘mpc-
> boot’ “build” correctly on powerpc64le-linux (not that it really matters), 
> and they also “build” correctly on i686-linux. The latter system also 
> builds ‘gcc-core-mesboot1’ correctly.

Awesome, pushed as b417dde293080184dae9098e408849a237903a84.

> Out of curiosity, why did the CI even try to build ‘gmp-boot’, ‘mpfr-boot’, 
> and ‘mpc-boot’ on powerpc64le-linux? They’re not public packages, and 
> moreover they are only dependencies of ‘gcc-core-mesboot1’ which is only 
> relevant on i686-linux…

That comes from commit 37861f6c293d7ed1033050b2b0597885ba65186f.  The
motivation was to ensure that substitutes for these intermediate
packages would be available on the ci.guix front-end node.  Failing to
do that, Cuirass would not attempt fetch them from build nodes on the
front-end node.

Sorry that this caused a false alarm!

Thanks,
Ludo’.
Thiago Jung Bauermann Aug. 14, 2021, 7:46 p.m. UTC | #4
Hello,

Em quinta-feira, 12 de agosto de 2021, às 19:14:46 -03, Ludovic Courtès 
escreveu:
> Thiago Jung Bauermann <bauermann@kolabnow.com> skribis:
> > Em quarta-feira, 11 de agosto de 2021, às 18:49:03 -03, Ludovic Courtès
> > escreveu:
> [...]
> 
> >> Indeed.  However, it turns out that ‘gmp-boot’, ‘mpfr-boot’, and
> >> ‘mpc-boot’ are not actually used as dependencies; we only ever use
> >> their
> >> source.
> >> 
> >> I propose to instead make that explicit with the patch below.  WDYT?
> > 
> > I think it’s a great solution! Much simpler than my patches for this
> > issue and also 49880 and 49882. Thank you very much for working on it.
> > 
> > I also confirmed that with your patch, ‘gmp-boot’, ‘mpfr-boot’, and
> > ‘mpc- boot’ “build” correctly on powerpc64le-linux (not that it really
> > matters), and they also “build” correctly on i686-linux. The latter
> > system also builds ‘gcc-core-mesboot1’ correctly.
> 
> Awesome, pushed as b417dde293080184dae9098e408849a237903a84.

Thank you!

> > Out of curiosity, why did the CI even try to build ‘gmp-boot’,
> > ‘mpfr-boot’, and ‘mpc-boot’ on powerpc64le-linux? They’re not public
> > packages, and moreover they are only dependencies of
> > ‘gcc-core-mesboot1’ which is only relevant on i686-linux…
> 
> That comes from commit 37861f6c293d7ed1033050b2b0597885ba65186f.  The
> motivation was to ensure that substitutes for these intermediate
> packages would be available on the ci.guix front-end node.  Failing to
> do that, Cuirass would not attempt fetch them from build nodes on the
> front-end node.

Thanks for the explanation. It’s nice to learn a bit more about the CI.

> Sorry that this caused a false alarm!

No problem. In hindsight, I should have dug a little deeper. Then I could 
have noticed that these packages aren’t built on their own.
diff mbox series

Patch

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 10b2987a11..dc9b372132 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -1733,38 +1733,28 @@  ac_cv_c_float_format='IEEE (little-endian)'
               "gawk" "grep" "guile" "make" "sed" "tar"))))
 
 (define gmp-boot
-  (package
-    (inherit gmp)
-    (version "4.3.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnu/gmp/gmp-" version
-                                  ".tar.gz"))
-              (sha256 (base32
-                       "15rwq54fi3s11izas6g985y9jklm3xprfsmym3v1g6xr84bavqvv"))))))
+  (let ((version "4.3.2"))
+    (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/gmp/gmp-" version ".tar.gz"))
+      (sha256
+       (base32 "15rwq54fi3s11izas6g985y9jklm3xprfsmym3v1g6xr84bavqvv")))))
 
 (define mpfr-boot
-  (package
-    (inherit mpfr)
-    (version "2.4.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnu/mpfr/mpfr-" version
-                                  ".tar.gz"))
-              (sha256 (base32
-                       "0dxn4904dra50xa22hi047lj8kkpr41d6vb9sd4grca880c7wv94"))))))
+  (let ((version "2.4.2"))
+    (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/mpfr/mpfr-" version ".tar.gz"))
+      (sha256
+       (base32 "0dxn4904dra50xa22hi047lj8kkpr41d6vb9sd4grca880c7wv94")))))
 
 (define mpc-boot
-  (package
-    (inherit mpc)
-    (version "1.0.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://gnu/mpc/mpc-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1hzci2zrrd7v3g1jk35qindq05hbl0bhjcyyisq9z209xb3fqzb1"))))))
+  (let ((version "1.0.3"))
+    (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/mpc/mpc-" version ".tar.gz"))
+      (sha256
+       (base32 "1hzci2zrrd7v3g1jk35qindq05hbl0bhjcyyisq9z209xb3fqzb1")))))
 
 (define gcc-core-mesboot1
   ;; GCC 4.6.4 is the latest modular distribution.  This package is not
@@ -1782,9 +1772,9 @@  ac_cv_c_float_format='IEEE (little-endian)'
               (sha256
                (base32
                 "173kdb188qg79pcz073cj9967rs2vzanyjdjyxy9v0xb0p5sad75"))))
-    (inputs `(("gmp-source" ,(package-source gmp-boot))
-              ("mpfr-source" ,(package-source mpfr-boot))
-              ("mpc-source" ,(package-source mpc-boot))))
+    (inputs `(("gmp-source" ,gmp-boot)
+              ("mpfr-source" ,mpfr-boot)
+              ("mpc-source" ,mpc-boot)))
     (native-inputs (%boot-mesboot1-inputs))
     (arguments
      (list #:implicit-inputs? #f
@@ -1857,14 +1847,17 @@  ac_cv_c_float_format='IEEE (little-endian)'
                                (list gmp mpfr mpc))
 
                      ;; Create symlinks like `gmp' -> `gmp-x.y.z'.
-                     #$@(map (lambda (lib)
+                     #$@(map (lambda (lib package)
                                ;; Drop trailing letters, as gmp-6.0.0a unpacks
                                ;; into gmp-6.0.0.
                                #~(symlink #$(string-trim-right
-                                             (package-full-name lib "-")
+                                             (basename
+                                              (origin-actual-file-name lib)
+                                              ".tar.gz")
                                              char-set:letter)
-                                          #$(package-name lib)))
-                             (list gmp-boot mpfr-boot mpc-boot)))))
+                                          #$package))
+                             (list gmp-boot mpfr-boot mpc-boot)
+                             '("gmp" "mpfr" "mpc")))))
                (add-before 'configure 'setenv
                  (lambda* (#:key outputs #:allow-other-keys)
                    (let* ((out (assoc-ref outputs "out"))