gnu: gap: Enable the caratinterface package.

* gnu/packages/algebra.scm (gap)<phases>{prepare-package-source}:
New phase to unpack the caratinterface source.
{remove-packages}: Do not remove caratinterface.

Change-Id: Id94fc276ee1a31df9acd81f8757e26d7b3e38366
This commit is contained in:
Andreas Enge 2025-02-20 11:34:38 +01:00
parent 65efd0c335
commit f1967dd688
No known key found for this signature in database
GPG key ID: F7D5C9BF765C61E3

View file

@ -1341,9 +1341,7 @@ xtensor provides:
(method url-fetch) (method url-fetch)
(uri (string-append "https://files.gap-system.org/gap-" (uri (string-append "https://files.gap-system.org/gap-"
(version-major+minor version) (version-major+minor version)
"/tar.gz/gap-" "/tar.gz/gap-" version ".tar.gz"))
version
".tar.gz"))
(sha256 (sha256
(base32 "11v4a3cpjpf6pc0hd6x1wlglq9jzakq4naggp671psvgq9r54pw4")) (base32 "11v4a3cpjpf6pc0hd6x1wlglq9jzakq4naggp671psvgq9r54pw4"))
(modules '((guix build utils) (ice-9 ftw) (srfi srfi-1))) (modules '((guix build utils) (ice-9 ftw) (srfi srfi-1)))
@ -1371,6 +1369,12 @@ xtensor provides:
(list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'prepare-package-source
(lambda _
(with-directory-excursion "pkg"
;; Unpack package tarball, so that shebangs can be modified.
(with-directory-excursion "caratinterface"
(invoke "tar" "xvf" "carat.tgz")))))
;; The following phases are added after 'build, apparently in ;; The following phases are added after 'build, apparently in
;; reverse order. So we carry out 'build, then 'build-doc, then ;; reverse order. So we carry out 'build, then 'build-doc, then
;; 'remove-packages, then 'build-packages. ;; 'remove-packages, then 'build-packages.
@ -1386,8 +1390,7 @@ xtensor provides:
(lambda _ (lambda _
(with-directory-excursion "pkg" (with-directory-excursion "pkg"
(for-each delete-file-recursively (for-each delete-file-recursively
'("caratinterface" ; ./configure: /bin/sh: bad interpreter: No such file or directory '("normalizinterface" ; tries to download normaliz even when it is available
"normalizinterface" ; tries to download normaliz even when it is available
"semigroups" ; bundled dependencies "semigroups" ; bundled dependencies
"xgap" ; make: /bin/sh: No such file or directory "xgap" ; make: /bin/sh: No such file or directory
))))) )))))
@ -1400,11 +1403,6 @@ xtensor provides:
;; it requires the gap binary. ;; it requires the gap binary.
(lambda _ (lambda _
(with-directory-excursion "doc" (with-directory-excursion "doc"
;; We do not build all packages, which breaks
;; cross-references in the documentation. Since
;; gap-4.14.0, this causes an error.
; (substitute* "make_doc"
; (("QuitGap\\(false\\);") "QuitGap(true);"))
(invoke "./make_doc")))) (invoke "./make_doc"))))
(add-after 'install 'install-packages (add-after 'install 'install-packages
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
@ -1420,7 +1418,7 @@ emphasis on computational group theory. It provides a programming language,
a library of thousands of functions implementing algebraic algorithms a library of thousands of functions implementing algebraic algorithms
written in the GAP language as well as large data libraries of algebraic written in the GAP language as well as large data libraries of algebraic
objects.") objects.")
;; gap itself is gpl2+, but some packages have different licenses. ;; gap itself is gpl2+, but some packages have different licenses,
;; effectively forcing the combined work to be licensed as gpl3+. ;; effectively forcing the combined work to be licensed as gpl3+.
(license license:gpl3+))) (license license:gpl3+)))