diff options
Diffstat (limited to 'gnu/packages/guile.scm')
-rw-r--r-- | gnu/packages/guile.scm | 131 |
1 files changed, 55 insertions, 76 deletions
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 2fd9b711ce..32faa8c020 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -8,14 +8,14 @@ ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> -;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2017, 2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Amirouche <amirouche@hypermove.net> ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2019 Taylan Kammer <taylan.kammer@gmail.com> -;;; Copyright © 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2020-2023 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com> ;;; @@ -157,32 +157,35 @@ without requiring the source code to be rewritten.") (build-system gnu-build-system) ;; When cross-compiling, a native version of Guile itself is needed. - (native-inputs `(,@(if (%current-target-system) - `(("self" ,this-package)) - '()) - ("pkgconfig" ,pkg-config))) - (inputs `(("libffi" ,libffi) - ,@(libiconv-if-needed) - - ;; We need Bash when cross-compiling because some of the scripts - ;; in bin/ refer to it. Use 'bash-minimal' because we don't need - ;; an interactive Bash with Readline and all. - ,@(if (target-mingw?) '() `(("bash" ,bash-minimal))))) + (native-inputs + (append (list pkg-config) + (if (%current-target-system) + (list this-package) + '()))) + (inputs + (append (list libffi) + (libiconv-if-needed) + + ;; We need Bash when cross-compiling because some of the scripts + ;; in bin/ refer to it. Use 'bash-minimal' because we don't need + ;; an interactive Bash with Readline and all. + (if (target-mingw?) '() (list bash-minimal)))) (propagated-inputs - `( ;; These ones aren't normally needed here, but since `libguile-2.0.la' - ;; reads `-lltdl -lunistring', adding them here will add the needed - ;; `-L' flags. As for why the `.la' file lacks the `-L' flags, see - ;; <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903>. - ("libunistring" ,libunistring) - - ;; Depend on LIBLTDL, not LIBTOOL. That way, we avoid some the extra - ;; dependencies that LIBTOOL has, which is helpful during bootstrap. - ("libltdl" ,libltdl) - - ;; The headers and/or `guile-2.0.pc' refer to these packages, so they - ;; must be propagated. - ("bdw-gc" ,libgc) - ("gmp" ,gmp))) + (list + ;; These ones aren't normally needed here, but since `libguile-2.0.la' + ;; reads `-lltdl -lunistring', adding them here will add the needed + ;; `-L' flags. As for why the `.la' file lacks the `-L' flags, see + ;; <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903>. + libunistring + + ;; Depend on LIBLTDL, not LIBTOOL. That way, we avoid some the extra + ;; dependencies that LIBTOOL has, which is helpful during bootstrap. + libltdl + + ;; The headers and/or `guile-2.0.pc' refer to these packages, so they + ;; must be propagated. + libgc + gmp)) (outputs '("out" "debug")) @@ -247,7 +250,8 @@ without requiring the source code to be rewritten.") (license license:lgpl3+))) (define-public guile-2.2 - (package (inherit guile-2.0) + (package + (inherit guile-2.0) (name "guile") (version "2.2.7") (source (origin @@ -310,15 +314,15 @@ without requiring the source code to be rewritten.") (package (inherit guile-2.2) (name "guile") - (version "3.0.7") + (version "3.0.9") (source (origin (inherit (package-source guile-2.2)) - (patches '()) ; We no longer need the patches. (uri (string-append "mirror://gnu/guile/guile-" version ".tar.xz")) (sha256 (base32 - "1dwiwsrpm4f96alfnz6wibq378242z4f16vsxgy1n9r00v3qczgm")) + "03bm1mnfc9kkg2ls942a0js7bxrdzmcffgrgg6anwdmjfan2a9hs")) + (patches '()) ;; Replace the snippet because the oom-test still ;; fails on some 32-bit architectures. (snippet '(begin @@ -334,6 +338,11 @@ without requiring the source code to be rewritten.") (delete "gmp" "libltdl"))) (arguments (substitute-keyword-arguments (package-arguments guile-2.0) + ;; Guile 3.0.9 is bit-reproducible when built in parallel, thanks to + ;; its multi-stage build process for cross-module inlining, except when + ;; cross-compiling. + ((#:parallel-build? _ #f) + (not (%current-target-system))) ((#:configure-flags flags ''()) ;; XXX: JIT-enabled Guile crashes in obscure ways on GNU/Hurd. `(cons* ,@(if (hurd-target?) @@ -360,15 +369,16 @@ without requiring the source code to be rewritten.") (("!#") "!#\n(exit 77)\n")))) - ,@(if (string-prefix? "powerpc-" (%current-system)) - `((add-after 'unpack 'adjust-bootstrap-flags - (lambda _ - ;; Upstream knows about suggested solution. - ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45214 - (substitute* "bootstrap/Makefile.in" - (("^GUILE_OPTIMIZATIONS.*") - "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n"))))) - '()) + ,@(if (target-ppc32?) + `((add-after 'unpack 'adjust-bootstrap-flags + (lambda _ + ;; Upstream knows about suggested solution. + ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45214 + ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=977223#46 + (substitute* "stage0/Makefile.in" + (("^GUILE_OPTIMIZATIONS.*") + "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n"))))) + '()) ,@(if (or (target-ppc32?) (target-riscv64?)) `((add-after 'unpack 'skip-failing-fdes-test @@ -388,36 +398,7 @@ without requiring the source code to be rewritten.") (files '("lib/guile/3.0/site-ccache" "share/guile/site/3.0"))))))) -(define-public guile-3.0-latest - (package - (inherit guile-3.0) - (version "3.0.9") - (source (origin - (inherit (package-source guile-3.0)) - (uri (string-append "mirror://gnu/guile/guile-" - version ".tar.xz")) - (sha256 - (base32 - "03bm1mnfc9kkg2ls942a0js7bxrdzmcffgrgg6anwdmjfan2a9hs")))) - (arguments - (substitute-keyword-arguments (package-arguments guile-3.0) - ;; Guile 3.0.9 is bit-reproducible when built in parallel, thanks to - ;; its multi-stage build process for cross-module inlining, except when - ;; cross-compiling. - ((#:parallel-build? _ #f) - (not (%current-target-system))) - ((#:phases phases) - `(modify-phases ,phases - ,@(if (target-ppc32?) - `((replace 'adjust-bootstrap-flags - (lambda _ - ;; Upstream knows about suggested solution. - ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45214 - ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=977223#46 - (substitute* "stage0/Makefile.in" - (("^GUILE_OPTIMIZATIONS.*") - "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n"))))) - '()))))))) +(define-public guile-3.0-latest guile-3.0) ;;; The symbol guile-3.0/fixed should be used when guile-3.0 needs fixes ;;; (security or else) and this deprecation could be removed. @@ -480,7 +461,7 @@ without requiring the source code to be rewritten.") gnu-gettext texinfo gperf) - (replace "self" this-package))) + (replace "guile" this-package))) (synopsis "Development version of GNU Guile")))) (define* (make-guile-readline guile #:optional (name "guile-readline")) @@ -528,11 +509,9 @@ without requiring the source code to be rewritten.") #t))))) (home-page (package-home-page guile)) (native-inputs (package-native-inputs guile)) - (inputs - `(,@(package-inputs guile) ;to placate 'configure' - ,@(package-propagated-inputs guile) - ("guile" ,guile) - ("readline" ,readline))) + (propagated-inputs (package-propagated-inputs guile)) + (inputs (modify-inputs (package-inputs guile) + (prepend guile readline))) (synopsis "Line editing support for GNU Guile") (description "This module provides line editing support via the Readline library for |