Message ID | 87sfzfire8.fsf@gnu.org |
---|---|
State | Accepted |
Headers | show |
Series | [bug#49881] gnu: mpfr-boot: Use gmp-boot as a dependency | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
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’.
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…
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’.
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 --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"))