summary refs log tree commit diff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2023-08-09 10:45:42 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2023-08-09 18:27:10 +0200
commit3481a5cb37cacbb54f74a2b1fa52ffc5c972b09f (patch)
treed188c8e5e51eff6df956feb103ec4330d3d5881e
parent210bbf9c59355218fec1484a686cc2ecdc218506 (diff)
downloadguix-3481a5cb37cacbb54f74a2b1fa52ffc5c972b09f.tar.gz
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.
-rw-r--r--guix/profiles.scm11
1 files changed, 9 insertions, 2 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm
index c62d7f4d22..2bd6477cf8 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -1787,6 +1787,11 @@ MANIFEST."
            (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 @@ MANIFEST."
               (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