From 813ed0bd3d55796d32a705d953a89453de54c8e8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 5 Sep 2019 21:14:09 +0200 Subject: gnu: texlive-union: Fix font map generation. * gnu/packages/tex.scm (texlive-union)[arguments]: Exclude sed and coreutils from union; add sed to the PATH; run updmap-sys twice; delete ls-R to avoid lookup failures. --- gnu/packages/tex.scm | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 01567ca153..e6b2fd0b6a 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -3567,7 +3567,10 @@ standard LaTeX packages." ;; the updmap.cfg file) (match (filter (match-lambda ((name . _) - (not (member name '("bash" "updmap.cfg"))))) + (not (member name '("bash" + "coreutils" + "sed" + "updmap.cfg"))))) %build-inputs) (((names . directories) ...) (union-build (assoc-ref %outputs "out") @@ -3587,6 +3590,7 @@ standard LaTeX packages." (setenv "PATH" (string-append (assoc-ref %build-inputs "bash") "/bin:" (assoc-ref %build-inputs "coreutils") "/bin:" + (assoc-ref %build-inputs "sed") "/bin:" (string-append out "/bin"))) (for-each (cut wrap-program <> @@ -3595,16 +3599,32 @@ standard LaTeX packages." (find-files (string-append out "/bin") ".*")) ;; Remove invalid maps from config file. - (let ((port (open-pipe* OPEN_WRITE "updmap-sys" - "--syncwithtrees" - "--nohash" - (assoc-ref %build-inputs "updmap.cfg")))) - (display "Y\n" port) - (when (not (zero? (status:exit-val (close-pipe port)))) - (error "failed to filter updmap.cfg"))) - ;; Generate maps. - (invoke "updmap-sys" "--force" - (string-append out "/share/texmf-config/web2c/updmap.cfg")) + (let ((web2c (string-append out "/share/texmf-config/web2c/")) + (maproot (string-append out "/share/texmf-dist/fonts/map/"))) + (mkdir-p web2c) + (copy-file + (assoc-ref %build-inputs "updmap.cfg") + (string-append web2c "updmap.cfg")) + (make-file-writable (string-append web2c "updmap.cfg")) + + (let* ((port (open-pipe* OPEN_WRITE "updmap-sys" + "--syncwithtrees" + "--nohash" + (string-append "--cnffile=" web2c "updmap.cfg")))) + (display "Y\n" port) + (when (not (zero? (status:exit-val (close-pipe port)))) + (error "failed to filter updmap.cfg"))) + ;; Generate maps. + (invoke "updmap-sys" + (string-append "--cnffile=" web2c "updmap.cfg") + (string-append "--dvipdfmxoutputdir=" + maproot "dvipdfmx/updmap/") + (string-append "--dvipsoutputdir=" + maproot "dvips/updmap/") + (string-append "--pdftexoutputdir=" + maproot "pdftex/updmap/")) + ;; Having this file breaks all file lookups later. + (delete-file (string-append out "/share/texmf-dist/ls-R"))) #t)))) (inputs `(("bash" ,bash) -- cgit v1.2.3