summaryrefslogtreecommitdiff
path: root/gnu/packages/tex.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2019-09-05 21:14:09 +0200
committerRicardo Wurmus <rekado@elephly.net>2019-09-05 22:45:48 +0200
commit813ed0bd3d55796d32a705d953a89453de54c8e8 (patch)
tree9f9918ede5a4ed053a5d169649d6d86a61127d38 /gnu/packages/tex.scm
parent09e2f258428281e20955b85fc859f7a48d948a34 (diff)
downloadguix-patches-813ed0bd3d55796d32a705d953a89453de54c8e8.tar
guix-patches-813ed0bd3d55796d32a705d953a89453de54c8e8.tar.gz
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.
Diffstat (limited to 'gnu/packages/tex.scm')
-rw-r--r--gnu/packages/tex.scm42
1 files changed, 31 insertions, 11 deletions
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)