me
/
guix
Archived
1
0
Fork 0

gnu: texlive-etex: Refresh package definition.

* gnu/packages/tex.scm (texlive-etex): Remove SIMPLE-TEXLIVE-PACKAGE
call.
[native-inputs]: Remove TEXLIVE-BIN.
Nicolas Goaziou 2023-05-16 23:53:29 +02:00
parent 7f19818e4e
commit 02277f9213
No known key found for this signature in database
GPG Key ID: DA00B4F048E92F2D
1 changed files with 77 additions and 49 deletions

View File

@ -1832,60 +1832,88 @@ output encodings, and features generation of clean UTF-8 patterns.")
;; This provides etex.src which is needed to build various formats, including
;; luatex.fmt and pdflatex.fmt
(define-public texlive-etex
(let ((template (simple-texlive-package
"texlive-etex"
(list "/doc/etex/base/"
"/doc/man/man1/etex.1"
"/doc/man/man1/etex.man1.pdf"
"/tex/plain/etex/"
"/fonts/source/public/etex/")
(base32
"1qv6vxm5a8pw38gas3i69ivmsn79zj2yq5n5vdmh0rzic5hw2hmc")
#:trivial? #t)))
(package
(inherit template)
(arguments
(substitute-keyword-arguments (package-arguments template)
((#:phases phases)
`(modify-phases ,phases
;; Build tfm font.
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(let ((mf (assoc-ref inputs "texlive-metafont")))
;; Tell mf where to find mf.base
(setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
;; Tell mf where to look for source files
(package
(name "texlive-etex")
(version (number->string %texlive-revision))
(source (texlive-origin
name version
(list "doc/etex/base/"
"doc/man/man1/etex.1"
"doc/man/man1/etex.man1.pdf"
"fonts/source/public/etex/"
"fonts/tfm/public/etex/"
"tex/plain/etex/")
(base32
"17pvh7i9zw8qa5hr53kci7di64fqzx4j35gsn28s36b74x6xj4bc")))
(outputs '("out" "doc"))
(build-system texlive-build-system)
(arguments
(list
#:texlive-latex-base #f
#:modules
'((guix build texlive-build-system)
(guix build utils)
(srfi srfi-1)
(srfi srfi-26))
#:phases
#~(modify-phases %standard-phases
(add-before 'install 'generate-fonts-metrics
(lambda _
(let ((cm #$(this-package-native-input "texlive-cm"))
(metafont #$(this-package-native-input "texlive-metafont"))
(fonts-directories
(delete-duplicates
(map (lambda (f)
(string-drop (dirname f) (string-length "./")))
(find-files "." "[0-9]+\\.mf$"))))
(root (getcwd)))
(mkdir-p "build")
;; Tell mf where to find mf.base.
(setenv "MFBASES"
(string-append metafont "/share/texmf-dist/web2c/"))
(for-each
(lambda (directory)
;; Tell mf where to look for source files.
(setenv "MFINPUTS"
(string-append (getcwd)
"/fonts/source/public/etex/:"
mf "/share/texmf-dist/metafont/base:"
(assoc-ref inputs "texlive-cm")
"/share/texmf-dist/fonts/source/public/cm")))
(invoke "mf" "-progname=mf"
(string-append "\\"
"mode:=ljfour; "
"mag:=1; "
"scrollmode; "
"input xbmc10"))
#t))
(add-after 'install 'install-font
(lambda* (#:key outputs #:allow-other-keys)
(install-file
"xbmc10.tfm"
(string-append (assoc-ref outputs "out")
"/share/texmf-dist/fonts/tfm/public/etex/"))
#t))))))
(native-inputs
(list texlive-bin texlive-metafont texlive-cm))
(home-page "https://www.ctan.org/pkg/etex")
(synopsis "Extended version of TeX")
(description
"This package provides an extended version of TeX (which is capable of
(string-append
(getcwd) "/" directory ":"
metafont "/share/texmf-dist/metafont/base/:"
cm "/share/texmf-dist/fonts/source/public/cm/"))
;; Build font metrics (tfm).
(with-directory-excursion directory
(for-each (lambda (font)
(format #t "building font ~a\n" font)
(invoke "mf" "-progname=mf"
(string-append "-output-directory="
root "/build")
(string-append "\\"
"mode:=ljfour; "
"mag:=1; "
"batchmode; "
"input "
(basename font ".mf"))))
(find-files "." "[0-9]+\\.mf$")))
;; Install font metrics at the appropriate location.
(let ((destination
;; fonts/source/xxx/yyy/... -> fonts/tfm/xxx/yyy/...
(string-append "fonts/tfm"
(string-drop
directory
(string-length "fonts/source")))))
(format #t "moving font metrics in ~a\n" destination)
(for-each (cut install-file <> destination)
(find-files "build/" "\\.tfm$"))))
fonts-directories)))))))
(native-inputs (list texlive-cm texlive-metafont))
(home-page "https://www.ctan.org/pkg/etex")
(synopsis "Extended version of TeX")
(description
"This package provides an extended version of TeX (which is capable of
running as if it were TeX unmodified). E-TeX has been specified by the LaTeX
team as the engine for the development of LaTeX2e; as a result, LaTeX
programmers may assume e-TeX functionality. The pdftex engine directly
incorporates the e-TeX extensions.")
(license license:knuth))))
(license license:knuth)))
(define-public texlive-plain
(package