diff options
Diffstat (limited to 'gnu/packages/guile.scm')
-rw-r--r-- | gnu/packages/guile.scm | 88 |
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) |