summary refs log tree commit diff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2022-02-14 23:12:46 +0100
committerRicardo Wurmus <rekado@elephly.net>2022-02-14 23:14:42 +0100
commit15cf09fc6970202863d841f71bdd3ffaf2844648 (patch)
treee2e1b622c0648be4c769f2ed75e73f5815677ce1
parent41000d16c5c1586482a76d856c3152a6b8fcce8a (diff)
downloadguix-15cf09fc6970202863d841f71bdd3ffaf2844648.tar.gz
profiles: texlive-font-maps: Create ls-R file.
* guix/profiles.scm (texlive-font-maps): Run mktexlsr on resulting tree to
provide ls-R file.
-rw-r--r--guix/profiles.scm22
1 files changed, 20 insertions, 2 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 86926d6793..9715a769aa 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2014, 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
-;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017, 2018, 2019, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2017 Huang Ying <huang.ying.caritas@gmail.com>
 ;;; Copyright © 2017, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -1752,6 +1752,8 @@ MANIFEST."
     (module-ref (resolve-interface '(gnu packages tex)) 'texlive-bin))
   (define coreutils
     (module-ref (resolve-interface '(gnu packages base)) 'coreutils))
+  (define grep
+    (module-ref (resolve-interface '(gnu packages base)) 'grep))
   (define sed
     (module-ref (resolve-interface '(gnu packages base)) 'sed))
   (define updmap.cfg
@@ -1779,6 +1781,8 @@ MANIFEST."
           (setenv "PATH"
                   (string-append #$(file-append coreutils "/bin")
                                  ":"
+                                 #$(file-append grep "/bin")
+                                 ":"
                                  #$(file-append sed "/bin")))
           (setenv "PERL5LIB" #$(file-append texlive-bin "/share/tlpkg"))
           (setenv "GUIX_TEXMF" "/tmp/texlive/share/texmf-dist")
@@ -1808,7 +1812,21 @@ MANIFEST."
                     (string-append "--dvipsoutputdir="
                                    maproot "dvips/updmap")
                     (string-append "--pdftexoutputdir="
-                                   maproot "pdftex/updmap"))))))
+                                   maproot "pdftex/updmap"))
+
+            ;; Create ls-R file.  I know, that's not *just* for font maps, but
+            ;; we've generated new files, so there's no point in running it
+            ;; any earlier.  The ls-R file must act on a full TeX Live tree,
+            ;; but we have two: the one in /tmp containing all packages and
+            ;; the one in #$output containing the generated font maps.  To
+            ;; avoid having to merge ls-R files, we copy the generated stuff
+            ;; to /tmp and run mktexlsr only once.
+            (let ((a (string-append #$output "/share/texmf-dist"))
+                  (b "/tmp/texlive/share/texmf-dist")
+                  (mktexlsr #$(file-append texlive-bin "/bin/mktexlsr")))
+              (copy-recursively a b)
+              (invoke mktexlsr b)
+              (install-file (string-append b "/ls-R") a))))))
 
   (mlet %store-monad ((texlive-base (manifest-lookup-package manifest "texlive-base")))
     (if texlive-base