summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2024-06-24 00:57:27 +0200
committerChristopher Baines <mail@cbaines.net>2024-07-11 10:25:23 +0100
commitd3a65c1a64cb80b2737a465da9523e434633b691 (patch)
tree9cb36d49b4705c66d1bbc00c8efd3d0cf9b9a12a
parente7319c4ccc13b8dad29b30957117367aa6a50f8b (diff)
downloadguix-patches-d3a65c1a64cb80b2737a465da9523e434633b691.tar
guix-patches-d3a65c1a64cb80b2737a465da9523e434633b691.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
-rw-r--r--gnu/packages/tex.scm52
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