guix: profiles: Do not raise error on incomplete TeX Live setups.

* guix/profiles.scm (texlive-font-maps): Check if TEXLIVE-SCRIPTS is present
in the manifest before trying to generate font maps.
This commit is contained in:
Nicolas Goaziou 2023-08-09 10:45:42 +02:00
parent 210bbf9c59
commit 3481a5cb37
No known key found for this signature in database
GPG key ID: DA00B4F048E92F2D

View file

@ -1787,6 +1787,11 @@ (define entry->texlive-input
(cons (gexp-input thing output)
(append-map entry->texlive-input deps))
'()))))
(define texlive-scripts-entry?
(match-lambda
(($ <manifest-entry> name version output thing deps)
(or (string=? "texlive-scripts" name)
(any texlive-scripts-entry? deps)))))
(define texlive-inputs
(append-map entry->texlive-input (manifest-entries manifest)))
(define texlive-scripts
@ -1887,9 +1892,11 @@ (define build
(copy-recursively a b)
(invoke mktexlsr b)
(install-file (string-append b "/ls-R") a))))))
(with-monad %store-monad
(if (pair? texlive-inputs)
;; `texlive-scripts' brings essential files to generate font maps.
;; Therefore, it must be present in the profile. This check prevents
;; incomplete modular TeX Live installations to generate errors.
(if (any texlive-scripts-entry? (manifest-entries manifest))
(gexp->derivation "texlive-font-maps" build
#:substitutable? #f
#:local-build? #t