aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/guile.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/guile.scm')
-rw-r--r--gnu/packages/guile.scm131
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