diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2024-06-24 00:57:27 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-08-31 10:45:39 +0200 |
commit | ef12c00f4414d750b9918a2e56a7e4701522c523 (patch) | |
tree | 44b9271d0fe26ef093b373166cedaea03f1c8e4a /gnu/packages | |
parent | 2fae63df2138b74d30e120364f0f272871595862 (diff) | |
download | guix-ef12c00f4414d750b9918a2e56a7e4701522c523.tar guix-ef12c00f4414d750b9918a2e56a7e4701522c523.tar.gz |
gnu: texlive-context: Fix context executable.
* gnu/packages/tex.scm (texlive-context)[arguments]<#:link-scripts>:
"mtxrun.lua" is not meant to be symlinked to "/bin"
<#:phases>: Find another way to force using "texmfcnf.lua" from TEXLIVE-LUATEX
input. Install "context" and "mtxrun" scripts in "/bin".
Change-Id: Ifc62772d6cc4dff1636f0e8c9470a91d8be69229
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/tex.scm | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index ffdf02ffbe..e6a97778bf 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -73739,30 +73739,42 @@ a counter to be reset when another is incremented) and (build-system texlive-build-system) (arguments (list - #:link-scripts #~(list "mtxrun.lua") #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'locate-texmfcnf.lua - ;; Out of the box, "mtxrun" first looks for "texmfcnf.lua" in - ;; "~/texmf", then in TEXMFCNF. The latter is set within - ;; TEXLIVE-LIBKPATHSEA; it cannot contain the configuration file - ;; provided by TEXLIVE-LUATEX. Point to the right file instead. + (add-after 'install 'install-executables (lambda* (#:key inputs #:allow-other-keys) - (let ((texmfcnf.lua - (search-input-file inputs - "share/texmf-dist/web2c/texmfcnf.lua"))) - (substitute* (find-files "." "\\.lua$") - (("kpse\\.default_texmfcnf\\(\\)") - (format #f "\"~a\"" (dirname texmfcnf.lua))))))) - (add-after 'unpack 'create-context-wrapper - ;; Create a "context" script for convenience. - (lambda _ - (mkdir-p (string-append #$output "/bin")) - (with-directory-excursion (string-append #$output "/bin") - (call-with-output-file "context" + (let* ((bin (string-append #$output "/bin")) + (context (string-append bin "/context")) + (mtxrun (string-append bin "/mtxrun")) + (texmfcnf.lua + (search-input-file inputs + "share/texmf-dist/web2c/texmfcnf.lua")) + (sh (search-input-file inputs "bin/sh"))) + (mkdir-p bin) + ;; Create "mtxrun" runner. + ;; + ;; Out of the box, "mtxrun" first looks for "texmfcnf.lua" in + ;; "~/texmf", then in TEXMFCNF. The latter is set within + ;; TEXLIVE-LIBKPATHSEA; it cannot contain the configuration + ;; file provided by TEXLIVE-LUATEX. Point to the right file + ;; instead. + (call-with-output-file mtxrun + (lambda (port) + (format port + "#!~a~%env ~a ~a luatex --luaonly mtxrun.lua \"$@\"" + sh + (string-append "LUATEXDIR=" + #$output + "/share/texmf-dist/scripts/context/lua") + (format #f + "TEXMFCNF={$HOME/texmf/web2c,~a}" + (dirname texmfcnf.lua))))) + (chmod mtxrun #o755) + ;; Create "context" runner. + (call-with-output-file context (lambda (port) - (format port "#!/bin/sh~%mtxrun --script context \"$@\""))) - (chmod "context" #o755))))))) + (format port "#!~a~%mtxrun --script context \"$@\"" sh))) + (chmod context #o755))))))) (propagated-inputs (list texlive-amsfonts texlive-context-companion-fonts |