unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#49881] [PATCH] gnu: mpfr-boot: Use gmp-boot as a dependency
@ 2021-08-04 21:20 Thiago Jung Bauermann via Guix-patches via
  2021-08-11 21:49 ` Ludovic Courtès
  0 siblings, 1 reply; 6+ messages in thread
From: Thiago Jung Bauermann via Guix-patches via @ 2021-08-04 21:20 UTC (permalink / raw)
  To: 49881; +Cc: Thiago Jung Bauermann

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

Hello,

This is a problem affecting both master and core-updates-frozen, so
I suggest committing this patch to master. It applies cleanly on both
branches.

It also affects at least the i686-linux, x86_64-linux and powerpc64-linux
architectures.

For reference, there’s a ton of error messages during build but these
are the first ones:

In file included from mpfr-impl.h:81:0,
                 from add1.c:23:
mpfr.h:141:9: error: unknown type name ‘__gmp_const’
 typedef __gmp_const __mpfr_struct *mpfr_srcptr;
         ^~~~~~~~~~~
In file included from mpfr-impl.h:81:0,
                 from add.c:23:
mpfr.h:141:9: error: unknown type name ‘__gmp_const’
 typedef __gmp_const __mpfr_struct *mpfr_srcptr;
         ^~~~~~~~~~~
mpfr.h:141:35: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’
before ‘*’ token
 typedef __gmp_const __mpfr_struct *mpfr_srcptr;
                                   ^
mpfr.h:204:29: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’
before ‘char’
 __MPFR_DECLSPEC __gmp_const char * mpfr_get_version _MPFR_PROTO
((void));
                             ^~~~
mpfr.h:205:29: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’
before ‘char’
 __MPFR_DECLSPEC __gmp_const char * mpfr_get_patches _MPFR_PROTO
((void));
                             ^~~~


Thanks,
Thiago


 gnu/packages/commencement.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 16eb46d44d77..f8973392262f 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -1869,7 +1869,8 @@ ac_cv_c_float_format='IEEE (little-endian)'
               (uri (string-append "mirror://gnu/mpfr/mpfr-" version
                                   ".tar.gz"))
               (sha256 (base32
-                       "0dxn4904dra50xa22hi047lj8kkpr41d6vb9sd4grca880c7wv94"))))))
+                       "0dxn4904dra50xa22hi047lj8kkpr41d6vb9sd4grca880c7wv94"))))
+    (propagated-inputs `(("gmp" ,gmp-boot)))))            ; <mpfr.h> refers to <gmp.h>
 
 (define mpc-boot
   (package




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

* [bug#49881] [PATCH] gnu: mpfr-boot: Use gmp-boot as a dependency
  2021-08-04 21:20 [bug#49881] [PATCH] gnu: mpfr-boot: Use gmp-boot as a dependency Thiago Jung Bauermann via Guix-patches via
@ 2021-08-11 21:49 ` Ludovic Courtès
  2021-08-11 21:51   ` Ludovic Courtès
  2021-08-12 19:27   ` Thiago Jung Bauermann via Guix-patches via
  0 siblings, 2 replies; 6+ messages in thread
From: Ludovic Courtès @ 2021-08-11 21:49 UTC (permalink / raw)
  To: Thiago Jung Bauermann; +Cc: 49881

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

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


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

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

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

* [bug#49881] [PATCH] gnu: mpfr-boot: Use gmp-boot as a dependency
  2021-08-11 21:49 ` Ludovic Courtès
@ 2021-08-11 21:51   ` Ludovic Courtès
  2021-08-12 19:27   ` Thiago Jung Bauermann via Guix-patches via
  1 sibling, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2021-08-11 21:51 UTC (permalink / raw)
  To: Thiago Jung Bauermann; +Cc: 49881

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




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

* [bug#49881] [PATCH] gnu: mpfr-boot: Use gmp-boot as a dependency
  2021-08-11 21:49 ` Ludovic Courtès
  2021-08-11 21:51   ` Ludovic Courtès
@ 2021-08-12 19:27   ` Thiago Jung Bauermann via Guix-patches via
  2021-08-12 22:14     ` bug#49881: " Ludovic Courtès
  1 sibling, 1 reply; 6+ messages in thread
From: Thiago Jung Bauermann via Guix-patches via @ 2021-08-12 19:27 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 49881

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…

-- 
Thanks,
Thiago






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

* bug#49881: [PATCH] gnu: mpfr-boot: Use gmp-boot as a dependency
  2021-08-12 19:27   ` Thiago Jung Bauermann via Guix-patches via
@ 2021-08-12 22:14     ` Ludovic Courtès
  2021-08-14 19:46       ` [bug#49881] " Thiago Jung Bauermann via Guix-patches via
  0 siblings, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2021-08-12 22:14 UTC (permalink / raw)
  To: Thiago Jung Bauermann; +Cc: 49881-done

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




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

* [bug#49881] [PATCH] gnu: mpfr-boot: Use gmp-boot as a dependency
  2021-08-12 22:14     ` bug#49881: " Ludovic Courtès
@ 2021-08-14 19:46       ` Thiago Jung Bauermann via Guix-patches via
  0 siblings, 0 replies; 6+ messages in thread
From: Thiago Jung Bauermann via Guix-patches via @ 2021-08-14 19:46 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 49881

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.

-- 
Thanks,
Thiago






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

end of thread, other threads:[~2021-08-14 19:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-08-04 21:20 [bug#49881] [PATCH] gnu: mpfr-boot: Use gmp-boot as a dependency Thiago Jung Bauermann via Guix-patches via
2021-08-11 21:49 ` Ludovic Courtès
2021-08-11 21:51   ` Ludovic Courtès
2021-08-12 19:27   ` Thiago Jung Bauermann via Guix-patches via
2021-08-12 22:14     ` bug#49881: " Ludovic Courtès
2021-08-14 19:46       ` [bug#49881] " Thiago Jung Bauermann via Guix-patches via

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).