gnu: gap: Update to 4.11.0.

* gnu/packages/algebra.scm (gap)[source]: Update to 4.11.0. Identify kept
packages by name prefix, dropping version number comparisons.
[inputs]: Add readline.
[arguments]: Use make targets instead of file copying where possible.
This commit is contained in:
Andreas Enge 2020-08-31 20:52:11 +02:00
parent 6d6e74ea98
commit 42ed53173e
No known key found for this signature in database
GPG key ID: F7D5C9BF765C61E3

View file

@ -1118,17 +1118,17 @@ (define-public xtensor
(define-public gap (define-public gap
(package (package
(name "gap") (name "gap")
(version "4.10.2") (version "4.11.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.gap-system.org/pub/gap/gap-" (uri (string-append "https://files.gap-system.org/gap-"
(version-major+minor version) (version-major+minor version)
"/tar.bz2/gap-" "/tar.bz2/gap-"
version version
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 "0cp6ddk0469zzv1m1vair6gm27ic6c5m77ri8rn0znq3gaps6x94")) (base32 "00l6hvy4iggnlrib4vp805sxdm3j7n3hzpv5zs9hbiiavh80l1xz"))
(modules '((guix build utils) (ice-9 ftw) (srfi srfi-1))) (modules '((guix build utils) (ice-9 ftw) (srfi srfi-1)))
(snippet (snippet
'(begin '(begin
@ -1140,41 +1140,46 @@ (define-public gap
;; FIXME: This might be fixed in the next release, see ;; FIXME: This might be fixed in the next release, see
;; https://github.com/gap-system/gap/issues/3292 ;; https://github.com/gap-system/gap/issues/3292
(delete-file "tst/testinstall/dir.tst") (delete-file "tst/testinstall/dir.tst")
;; Delete all packages except for a fixed list. ;; Delete all packages except for a fixed list,
;; given by their names up to version numbers.
(with-directory-excursion "pkg" (with-directory-excursion "pkg"
(for-each delete-file-recursively (for-each delete-file-recursively
(lset-difference string=? (scandir ".") (lset-difference
(lambda (all keep) (string-prefix? keep all))
(scandir ".")
'("." ".." '("." ".."
;; Necessary packages. ;; Necessary packages.
"GAPDoc-1.6.2" "GAPDoc-"
"primgrp-3.3.2" "primgrp-"
"SmallGrp-1.3" ; artistic2.0 "SmallGrp-" ; artistic2.0
"transgrp" ; artistic2.0 for data, "transgrp" ; artistic2.0 for data,
; gpl2 or gpl3 for code ; gpl2 or gpl3 for code
;; Recommanded package. ;; Recommended package.
"io-4.5.4" ; gpl3+ "io-" ; gpl3+
;; Optional packages, searched for at start, ;; Optional packages, searched for at start,
;; and their depedencies. ;; and their depedencies.
"alnuth-3.1.0" "alnuth-"
"autpgrp-1.10" "autpgrp-"
"crisp-1.4.4" ; bsd-2 "crisp-" ; bsd-2
"ctbllib" ; gpl3+ according to doc/chap0.txt "ctbllib" ; gpl3+, clarified in the next release;
"FactInt-1.6.2" ; see
; http://www.math.rwth-aachen.de/~Thomas.Breuer/ctbllib/README.md
"FactInt-"
"fga" "fga"
"irredsol-1.4" ; bsd-2 "irredsol-" ; bsd-2
"laguna-3.9.2" "laguna-"
"polenta-1.3.8" "polenta-"
"polycyclic-2.14" "polycyclic-"
"radiroot-2.8" "radiroot-"
"resclasses-4.7.1" "resclasses-"
"sophus-1.24" "sophus-"
"tomlib-1.2.7" ; gpl2+, clarified in the git repository "tomlib-"
; and the next release "utils-"))))
"utils-0.59"))))
#t)))) #t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("gmp" ,gmp) `(("gmp" ,gmp)
("readline" ,readline)
("zlib" ,zlib))) ("zlib" ,zlib)))
(arguments (arguments
`(#:modules ((ice-9 ftw) `(#:modules ((ice-9 ftw)
@ -1201,15 +1206,14 @@ (define-public gap
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")) (bin (string-append out "/bin"))
(lib (string-append out "/lib"))
(prog (string-append bin "/gap")) (prog (string-append bin "/gap"))
(prog-real (string-append bin "/.gap-real")) (prog-real (string-append bin "/.gap-real"))
(share (string-append out "/share/gap")) (share (string-append out "/share/gap")))
(include (string-append out "/include/gap"))
(include-hpc (string-append include "/hpc")))
;; Install only the gap binary; the gac compiler is left ;; Install only the gap binary; the gac compiler is left
;; for maybe later. "Wrap" it in a shell script that calls ;; for maybe later. "Wrap" it in a shell script that calls
;; the binary with the correct parameter. ;; the binary with the correct parameter.
;; The make target install-bin is supposed to do that, but
;; is not currently working.
(mkdir-p bin) (mkdir-p bin)
(copy-file "gap" prog-real) (copy-file "gap" prog-real)
(call-with-output-file prog (call-with-output-file prog
@ -1220,52 +1224,18 @@ (define-public gap
prog-real prog-real
share))) share)))
(chmod prog #o755) (chmod prog #o755)
;; Install the headers, which are needed by Sage. The ;; Install the headers and library, which are needed by Sage.
;; Makefile target "install-headers" was available in (invoke "make" "install-headers")
;; gap-4.10.0, but has been commented out in gap-4.10.1. (invoke "make" "install-libgap")
(mkdir-p include-hpc)
(install-file "gen/config.h" include)
(let ((file-name-predicate-without-stat
(lambda (regex)
(cut (file-name-predicate regex) <> #f))))
(with-directory-excursion "src"
(for-each
(cut install-file <> include)
(scandir "."
(file-name-predicate-without-stat ".*\\.h$"))))
(with-directory-excursion "src/hpc"
(for-each
(cut install-file <> include-hpc)
(scandir "."
(file-name-predicate-without-stat ".*\\.h$")))))
;; Install the library, which is needed by Sage. The
;; Makefile target "install-libgap" was available in
;; gap-4.10.0, but has been commented out in gap-4.10.1.
;; Compared to the Makefile, which used libtool, the
;; following approach of copying files and making symlinks
;; is rather pedestrian. There is hope that some later
;; version of gap reinstates and completes the install
;; targets.
(invoke "make" "libgap.la")
(install-file "libgap.la" lib)
(install-file ".libs/libgap.so.0.0.0" lib)
(symlink "libgap.so.0.0.0" (string-append lib "/libgap.so"))
(symlink "libgap.so.0.0.0" (string-append lib "/libgap.so.0"))
;; Install a certain number of files and directories to
;; SHARE, where the wrapped shell script expects them.
;; Remove information on the build directory from sysinfo.gap. ;; Remove information on the build directory from sysinfo.gap.
(substitute* "sysinfo.gap" (substitute* "sysinfo.gap"
(("GAP_BIN_DIR=\".*\"") "GAP_BIN_DIR=\"\"") (("GAP_BIN_DIR=\".*\"") "GAP_BIN_DIR=\"\"")
(("GAP_LIB_DIR=\".*\"") "GAP_LIB_DIR=\"\"") (("GAP_LIB_DIR=\".*\"") "GAP_LIB_DIR=\"\"")
(("GAP_CPPFLAGS=\".*\"") "GAP_CPPFLAGS=\"\"")) (("GAP_CPPFLAGS=\".*\"") "GAP_CPPFLAGS=\"\""))
(install-file "sysinfo.gap" share) (invoke "make" "install-gaproot")
(copy-recursively "grp" (string-append share "/grp")) ;; Copy the directory of compiled packages; the make target
(copy-recursively "pkg" (string-append share "/pkg")) ;; install-pkg is currently empty.
;; The following is not the C library libgap.so, but a (copy-recursively "pkg" (string-append share "/pkg")))
;; library of GAP code.
(copy-recursively "lib" (string-append share "/lib"))
;; The gap binary looks for documentation inside SHARE.
(copy-recursively "doc" (string-append share "/doc")))
#t))))) #t)))))
(home-page "https://www.gap-system.org/") (home-page "https://www.gap-system.org/")
(synopsis (synopsis