guix-channel/dmbcs/development/packages/guile.scm
2024-02-26 10:37:51 +00:00

137 lines
5.5 KiB
Scheme

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014, 2016, 2018 David Thompson <davet@gnu.org>
;;; Copyright © 2014, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; 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, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 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>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (dmbcs development packages guile)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages compression)
#:use-module (gnu packages dbm)
#:use-module (gnu packages flex)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages guile)
#:use-module (gnu packages hurd)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libunistring)
#:use-module (gnu packages linux)
#:use-module (gnu packages m4)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages readline)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages version-control)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
#:use-module (guix deprecation)
#:use-module (guix utils)
#:use-module (ice-9 match)
#:use-module ((srfi srfi-1) #:prefix srfi-1:))
;;; Commentary:
;;;
;;; GNU Guile, and modules and extensions.
;;;
;;; Code:
(define-public guile
;; This is the latest Guile stable version.
(package
(inherit guile-2.2)
(name "guile")
(version "3.0.4+dmbcs")
(source (origin
(inherit (package-source guile-2.2))
(method git-fetch)
(uri (git-reference
(url "https://rdmp.org/dmbcs/guile.git")
(commit "a3a28334a3d5c397dfc24dfbceab113f993c5f0b")))
(sha256
(base32
"0zw2s748d0gj31q9wc23mmgdjc8fpl6577v5b2lqj5ca4m69d8x0"))
(patches '())))
(arguments
;; XXX: JIT-enabled Guile crashes in obscure ways on GNU/Hurd.
(if #f ;; (hurd-target?)
(substitute-keyword-arguments (package-arguments guile-2.2)
((#:configure-flags flags ''())
`(cons "--disable-jit" ,flags)))
(substitute-keyword-arguments (package-arguments guile-2.2)
((#:phases phases '%standard-phases)
`(modify-phases ,phases
(replace 'bootstrap
(lambda _
;; Disable broken tests.
;; TODO: Fix them!
(substitute* "test-suite/tests/gc.test"
(("\\(pass-if \"after-gc-hook gets called\"" m)
(string-append "#;" m)))
(substitute* "test-suite/tests/version.test"
(("\\(pass-if \"version reporting works\"" m)
(string-append "#;" m)))
;; Warning: Unwind-only `out-of-memory' exception; skipping pre-unwind handler.
;; FAIL: test-out-of-memory
(substitute* "test-suite/standalone/Makefile.am"
(("(check_SCRIPTS|TESTS) \\+= test-out-of-memory") ""))
(patch-shebang "build-aux/git-version-gen")
(invoke "sh" "autogen.sh")
#t)))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("flex" ,flex)
("texinfo" ,texinfo)
("gettext" ,gettext-minimal)
,@(package-native-inputs guile-2.2)))
(native-search-paths
(list (search-path-specification
(variable "GUILE_LOAD_PATH")
(files '("share/guile/site/3.0")))
(search-path-specification
(variable "GUILE_LOAD_COMPILED_PATH")
(files '("lib/guile/3.0/site-ccache"
"share/guile/site/3.0")))))))
;;; guile.scm ends here