summaryrefslogtreecommitdiff
path: root/gnu/packages/guile.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/guile.scm')
-rw-r--r--gnu/packages/guile.scm88
1 files changed, 53 insertions, 35 deletions
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 5de4f68093..0012d919c8 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -180,6 +180,11 @@ without requiring the source code to be rewritten.")
(arguments
`(#:configure-flags '("--disable-static") ; saves 3 MiB
+
+ ;; Work around non-reproducible .go files as described in
+ ;; <https://bugs.gnu.org/20272>, which affects 2.0, 2.2, and 3.0 so far.
+ #:parallel-build? #f
+
#:phases
(modify-phases %standard-phases
,@(if (hurd-system?)
@@ -246,7 +251,8 @@ without requiring the source code to be rewritten.")
"013mydzhfswqci6xmyc1ajzd59pfbdak15i0b090nhr9bzm7dxyd"))
(modules '((guix build utils)))
(patches (search-patches
- "guile-2.2-skip-oom-test.patch"))
+ "guile-2.2-skip-oom-test.patch"
+ "guile-2.2-skip-so-test.patch"))
;; Remove the pre-built object files. Instead, build everything
;; from source, at the expense of significantly longer build
@@ -285,21 +291,56 @@ without requiring the source code to be rewritten.")
(package
(inherit guile-2.2)
(name "guile")
- (version "3.0.2")
+ (version "3.0.7")
(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
- "12lziar4j27j9whqp2n18427q45y9ghq7gdd8lqhmj1k0lr7vi2k"))))
+ "1dwiwsrpm4f96alfnz6wibq378242z4f16vsxgy1n9r00v3qczgm"))
+ ;; Replace the snippet because the oom-test still
+ ;; fails on some 32-bit architectures.
+ (snippet '(begin
+ (substitute* "test-suite/standalone/Makefile.in"
+ (("test-out-of-memory") ""))
+ (for-each delete-file
+ (find-files "prebuilt" "\\.go$"))
+ #t))))
+
+ ;; Build with the bundled mini-GMP to avoid interference with GnuTLS' own
+ ;; use of GMP via Nettle: <https://issues.guix.gnu.org/46330>.
+ (propagated-inputs
+ (srfi-1:fold srfi-1:alist-delete
+ (package-propagated-inputs guile-2.2)
+ '("gmp" "libltdl")))
(arguments
- ;; XXX: JIT-enabled Guile crashes in obscure ways on GNU/Hurd.
- (if (hurd-target?)
- (substitute-keyword-arguments (package-arguments guile-2.2)
- ((#:configure-flags flags ''())
- `(cons "--disable-jit" ,flags)))
- (package-arguments guile-2.2)))
+ (substitute-keyword-arguments (package-arguments guile-2.2)
+ ((#:configure-flags flags ''())
+ (let ((flags `(cons "--enable-mini-gmp" ,flags)))
+ ;; XXX: JIT-enabled Guile crashes in obscure ways on GNU/Hurd.
+ (if (hurd-target?)
+ `(cons "--disable-jit" ,flags)
+ flags)))
+ ((#:phases phases)
+ (if (string-prefix? "powerpc-" (%current-system))
+ `(modify-phases ,phases
+ (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"))))
+ (add-after 'unpack 'skip-failing-fdes-test
+ (lambda _
+ ;; ERROR: ((system-error "seek" "~A" ("Bad file descriptor") (9)))
+ (substitute* "test-suite/tests/ports.test"
+ (("fdes not closed\"" all) (string-append all "(exit 77)")))
+ #t)))
+ phases))))
+
(native-search-paths
(list (search-path-specification
(variable "GUILE_LOAD_PATH")
@@ -310,31 +351,7 @@ without requiring the source code to be rewritten.")
"share/guile/site/3.0")))))))
(define-public guile-3.0-latest
- ;; TODO: Make this 'guile-3.0' on the next rebuild cycle.
- (package
- (inherit guile-3.0)
- (version "3.0.7")
- (source (origin
- (inherit (package-source guile-3.0)) ;preserve snippet
- (patches '())
- (uri (string-append "mirror://gnu/guile/guile-"
- version ".tar.xz"))
- (sha256
- (base32
- "1dwiwsrpm4f96alfnz6wibq378242z4f16vsxgy1n9r00v3qczgm"))))
-
- ;; Build with the bundled mini-GMP to avoid interference with GnuTLS' own
- ;; use of GMP via Nettle: <https://issues.guix.gnu.org/46330>. Use
- ;; LIBGC/DISABLE-MUNMAP to work around <https://bugs.gnu.org/40525>.
- ;; Remove libltdl, which is no longer used.
- (propagated-inputs
- `(("bdw-gc" ,libgc/disable-munmap)
- ,@(srfi-1:fold srfi-1:alist-delete (package-propagated-inputs guile-3.0)
- '("gmp" "libltdl" "bdw-gc"))))
- (arguments
- (substitute-keyword-arguments (package-arguments guile-3.0)
- ((#:configure-flags flags ''())
- `(cons "--enable-mini-gmp" ,flags))))))
+ guile-3.0)
(define-public guile-3.0/libgc-7
;; Using libgc-7 avoid crashes that can occur, particularly when loading
@@ -403,7 +420,8 @@ without requiring the source code to be rewritten.")
(source (package-source guile))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags '("--disable-silent-rules")
+ '(#:configure-flags '("--disable-silent-rules"
+ "--enable-mini-gmp") ;for Guile >= 3.0.6
#:phases (modify-phases %standard-phases
(add-before 'build 'chdir
(lambda* (#:key outputs #:allow-other-keys)