gnu: gap: Fix building of documentation.

* gnu/packages/algebra.scm (gap)[origin]: Move deletion of packages from
a snippet to...
[arguments]<phases>{remove-packages}: ...this new phase.
{build-doc}: Move phase. Remove substitution in build script.

Change-Id: I62295c3be7439ce5cf50f54f331e63dad80ab113
This commit is contained in:
Andreas Enge 2025-02-19 17:39:30 +01:00
parent 53e96dffa7
commit f7cd085f4a
No known key found for this signature in database
GPG key ID: F7D5C9BF765C61E3

View file

@ -1351,16 +1351,7 @@ xtensor provides:
'(begin
;; Delete bundled external libraries.
(for-each delete-file-recursively
'("extern" "hpcgap/extern"))
;; Delete packages that are known not to build.
;; TODO: Investigate.
(with-directory-excursion "pkg"
(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
"semigroups" ; bundled dependencies
"xgap" ; make: /bin/sh: No such file or directory
)))))))
'("extern" "hpcgap/extern"))))))
(build-system gnu-build-system)
(native-inputs (list (texlive-updmap.cfg
(list texlive-enumitem
@ -1380,21 +1371,40 @@ xtensor provides:
(list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
#:phases
(modify-phases %standard-phases
;; The following phases are added after 'build, apparently in
;; reverse order. So we carry out 'build, then 'build-doc, then
;; 'remove-packages, then 'build-packages.
(add-after 'build 'build-packages
(lambda _
(setenv "CONFIG_SHELL" (which "bash"))
(setenv "CC" "gcc")
(with-directory-excursion "pkg"
(invoke "../bin/BuildPackages.sh"))))
(add-after 'build-packages 'build-doc
(add-after 'build 'remove-packages
;; Delete packages that are known not to build.
;; TODO: Investigate.
(lambda _
(with-directory-excursion "pkg"
(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
"semigroups" ; bundled dependencies
"xgap" ; make: /bin/sh: No such file or directory
)))))
(add-after 'build 'build-doc
;; The documentation is bundled, but we create it from source.
;; This needs to be done before 'remove-packages, since
;; otherwise this phase fails due to missing cross references.
;; Otherwise said, the documentation will include that of
;; removed packages. It needs to be done after 'build since
;; it requires the gap binary.
(lambda _
(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);"))
; (substitute* "make_doc"
; (("QuitGap\\(false\\);") "QuitGap(true);"))
(invoke "./make_doc"))))
(add-after 'install 'install-packages
(lambda* (#:key outputs #:allow-other-keys)