aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2023-05-17 16:57:16 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2023-07-18 18:12:27 +0200
commit8c0d071dfce6476f7db769be2c747813cca29d62 (patch)
treebe432b0af697a2f711d59f6c380ad013ec2b4bca /gnu
parentb741baa6ee671fde3d4835eb71baab25121eac89 (diff)
downloadguix-8c0d071dfce6476f7db769be2c747813cca29d62.tar.gz
guix-8c0d071dfce6476f7db769be2c747813cca29d62.zip
gnu: texlive-latex-base: Refresh package definition.
* gnu/packages/tex.scm (texlive-latex-base): Remove SIMPLE-TEXLIVE-PACKAGE call. [build-system]: Use TEXLIVE-BUILD-SYSTEM. [arguments]: Use G-expressions. <#:phases>: Remove unnecessary phase. [native-inputs]: Add TEXLIVE-ETEX, TEXLIVE-LUATEX. Remove TEXLIVE-LUATEXCONFIG. Remove labels.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/tex.scm417
1 files changed, 191 insertions, 226 deletions
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 381f7061c0..412d46dd3f 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -3311,235 +3311,200 @@ formats.")
(license license:lppl)))
(define-public texlive-latex-base
- (let ((template (simple-texlive-package
- "texlive-latex-base"
- (list "/doc/latex/base/"
- "/source/latex/base/"
- ;; Almost all files in /tex/latex/base are generated, but
- ;; these are not:
- "/tex/latex/base/idx.tex"
- "/tex/latex/base/lablst.tex"
- "/tex/latex/base/ltnews.cls"
- "/tex/latex/base/ltxcheck.tex"
- "/tex/latex/base/ltxguide.cls"
- "/tex/latex/base/minimal.cls"
- "/tex/latex/base/sample2e.tex"
- "/tex/latex/base/small2e.tex"
- "/tex/latex/base/testpage.tex"
- "/tex/latex/base/texsys.cfg")
- (base32
- "0msyjz0937rc7hs77v6la152sdiwd73qj41z1mlyh0m3dns9qz4g")
- #:trivial? #t)))
- (package
- (inherit template)
- (arguments
- (substitute-keyword-arguments (package-arguments template)
- ((#:modules modules '())
- '((guix build gnu-build-system)
- (guix build utils)
- (ice-9 match)
- (srfi srfi-26)))
- ((#:phases phases)
- `(modify-phases ,phases
- ;; The literal tab in the dtx file is translated to the string
- ;; "^^I" in the generated Lua file, which causes a syntax error.
- (add-after 'unpack 'fix-lua-sources
- (lambda _
- (substitute* "source/latex/base/ltluatex.dtx"
- ((" ") " "))))
- (replace 'build
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Find required fonts
- (setenv "TFMFONTS"
+ (package
+ (name "texlive-latex-base")
+ (version (number->string %texlive-revision))
+ (source (texlive-origin
+ name version
+ (list "doc/latex/base/" "makeindex/latex/"
+ "source/latex/base/" "tex/latex/base/")
+ (base32
+ "0k2b6qi281cl4zml6l537iyps1zwaq7pip81qq8vlkhb9h5ggpnw")))
+ (build-system texlive-build-system)
+ (outputs '("out" "doc"))
+ (arguments
+ (list
+ #:texlive-latex-base #f
+ #:modules '((guix build texlive-build-system)
+ (guix build utils)
+ (ice-9 match)
+ (srfi srfi-26))
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; The literal tab in the dtx file is translated to the string "^^I"
+ ;; in the generated Lua file, which causes a syntax error.
+ (add-after 'unpack 'fix-lua-sources
+ (lambda _
+ (substitute* "source/latex/base/ltluatex.dtx"
+ (("\t") " "))))
+ (replace 'build
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Find required fonts
+ (setenv "TFMFONTS"
+ (string-join
+ (map (match-lambda
+ ((pkg-name . dir)
+ (string-append
+ (assoc-ref inputs pkg-name)
+ "/share/texmf-dist/fonts/tfm/public"
+ dir)))
+ '(("texlive-etex" . "/etex")
+ ("texlive-cm" . "/cm")
+ ("texlive-latex-fonts" . "/latex-fonts")
+ ("texlive-knuth-lib" . "/knuth-lib")))
+ ":"))
+ (let ((cwd (getcwd)))
+ (setenv "TEXINPUTS"
+ (string-append
+ cwd "//:"
+ cwd "/source/latex/base//:"
+ cwd "/build:"
(string-join
- (map (match-lambda
- ((pkg-name . dir)
- (string-append
- (assoc-ref inputs pkg-name)
- "/share/texmf-dist/fonts/tfm/public"
- dir)))
- '(("texlive-etex" . "/etex")
- ("texlive-cm" . "/cm")
- ("texlive-latex-fonts" . "/latex-fonts")
- ("texlive-knuth-lib" . "/knuth-lib")))
- ":"))
- (let ((cwd (getcwd)))
- (setenv "TEXINPUTS"
- (string-append
- cwd "//:"
- cwd "/source/latex/base//:"
- cwd "/build:"
- (string-join
- (map (match-lambda ((_ . dir) dir)) inputs)
- "//:")))
- (setenv "LUAINPUTS" (string-append cwd "/build:")))
-
- ;; This is the actual build step.
- (mkdir "build")
- (invoke "tex" "-ini" "-interaction=scrollmode"
- "-output-directory=build" "unpack.ins")
-
- ;; XXX: We can't build all formats at this point, nor are they
- ;; part of the LaTeX base, so we disable them. Actually, we
- ;; should be running this all in a profile hook, so that only
- ;; selected formats and hyphenation patterns are included, but it
- ;; takes long and TeX Live isn't designed to be modular like
- ;; that. Everything operates on a shared directory, which we
- ;; would only have at profile generation time.
- (let ((disabled-formats
- '("aleph aleph" "lamed aleph" "uptex uptex" "euptex euptex"
- "eptex eptex" "ptex ptex" "pdfxmltex pdftex" "platex eptex"
- "platex-dev eptex" "uplatex-dev euptex"
- "csplain pdftex" "mf mf-nowin" "mex pdftex" "pdfmex pdftex"
- "luacsplain luatex" "optex luatex"
- ;; LuaJIT is not ported to powerpc64le* or riscv64 yet and
- ;; building these fail on powerpc.
- ,@(if (or (target-powerpc?)
- (target-riscv64?))
+ (map (match-lambda ((_ . dir) dir)) inputs)
+ "//:")))
+ (setenv "LUAINPUTS" (string-append cwd "/build:")))
+
+ ;; This is the actual build step.
+ (mkdir "build")
+ (invoke "tex" "-ini" "-interaction=scrollmode"
+ "-output-directory=build" "unpack.ins")
+
+ ;; XXX: We can't build all formats at this point, nor are they
+ ;; part of the LaTeX base, so we disable them. Actually, we
+ ;; should be running this all in a profile hook, so that only
+ ;; selected formats and hyphenation patterns are included, but it
+ ;; takes long and TeX Live isn't designed to be modular like
+ ;; that. Everything operates on a shared directory, which we
+ ;; would only have at profile generation time.
+ (let ((disabled-formats
+ '("aleph aleph" "lamed aleph" "uptex uptex" "euptex euptex"
+ "eptex eptex" "ptex ptex" "pdfxmltex pdftex" "platex eptex"
+ "platex-dev eptex" "uplatex-dev euptex"
+ "csplain pdftex" "mf mf-nowin" "mex pdftex" "pdfmex pdftex"
+ "luacsplain luatex" "optex luatex"
+ ;; LuaJIT is not ported to powerpc64le* or riscv64 yet and
+ ;; building these fail on powerpc.
+ #$@(if (or (target-powerpc?)
+ (target-riscv64?))
'("luajittex" "luajithbtex" "mfluajit") '())
- "cont-en xetex" "cont-en pdftex" "pdfcsplain xetex"
- "pdfcsplain pdftex" "pdfcsplain luatex" "cslatex pdftex"
- "mptopdf pdftex" "uplatex euptex" "jadetex pdftex"
- "amstex pdftex" "pdfcslatex pdftex" "lollipop tex"
- "xmltex pdftex" "pdfjadetex pdftex" "eplain pdftex"
- "texsis pdftex" "mltex pdftex" "utf8mex pdftex")))
- (mkdir "web2c")
- (install-file (string-append
- (assoc-ref inputs "texlive-kpathsea")
- "/share/texmf-dist/web2c/fmtutil.cnf")
- "web2c")
- (make-file-writable "web2c/fmtutil.cnf")
- (substitute* "web2c/fmtutil.cnf"
- (((string-append "^(" (string-join disabled-formats "|") ")") m)
- (string-append "#! " m))
- (("translate-file=cp227")
- (format #f "translate-file=~a/share/texmf-dist/web2c/cp227"
- (assoc-ref inputs "texlive-kpathsea")))))
- (invoke "fmtutil-sys" "--all"
- "--fmtdir=web2c"
- (string-append "--cnffile=web2c/fmtutil.cnf"))
- ;; We don't actually want to install it.
- (delete-file "web2c/fmtutil.cnf")))
- (add-after 'install 'install-more
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (root (string-append out "/share/texmf-dist"))
- (target (string-append root "/tex/latex/base"))
- (web2c (string-append root "/web2c"))
- (makeindex (string-append root "/makeindex/latex")))
- (for-each delete-file (find-files "." "\\.(log|aux)$"))
-
- ;; The usedir directive in docstrip.ins is ignored, so these
- ;; two files end up in the wrong place. Move them.
- (mkdir-p makeindex)
- (for-each (lambda (file)
- (install-file file makeindex)
- (delete-file file))
- '("build/gglo.ist"
- "build/gind.ist"))
- (for-each (cut install-file <> target)
- (find-files "build" ".*"))
- (for-each (cut install-file <> web2c)
- (find-files "web2c" ".*")))))))))
- (native-inputs
- `(("texlive-bin" ,texlive-bin)
- ("texlive-tex-ini-files" ,texlive-tex-ini-files)
- ("texlive-plain" ,texlive-plain)
- ("texlive-kpathsea" ,texlive-kpathsea)
- ("texlive-cm" ,texlive-cm)
- ("texlive-latex-fonts" ,texlive-latex-fonts)
- ("texlive-knuth-lib" ,texlive-knuth-lib)
- ("texlive-luatexconfig"
- ,(texlive-origin
- "texlive-luatexconfig" (number->string %texlive-revision)
- (list "/tex/generic/config/luatex-unicode-letters.tex"
- "/tex/generic/config/luatexiniconfig.tex"
- "/web2c/texmfcnf.lua")
- (base32
- "065j47i2785nbj2507pzxlscyrwr4ghv6nksc3a01rp62bq8kkjp")))))
- (propagated-inputs
- (list texlive-dehyph-exptl
- texlive-etex
- texlive-hyph-utf8
- texlive-hyphen-base
- texlive-hyphen-afrikaans
- texlive-hyphen-ancientgreek
- texlive-hyphen-armenian
- texlive-hyphen-basque
- texlive-hyphen-belarusian
- texlive-hyphen-bulgarian
- texlive-hyphen-catalan
- texlive-hyphen-chinese
- texlive-hyphen-churchslavonic
- texlive-hyphen-coptic
- texlive-hyphen-croatian
- texlive-hyphen-czech
- texlive-hyphen-danish
- texlive-hyphen-dutch
- texlive-hyphen-english
- texlive-hyphen-esperanto
- texlive-hyphen-estonian
- texlive-hyphen-ethiopic
- texlive-hyphen-finnish
- texlive-hyphen-schoolfinnish
- texlive-hyphen-french
- texlive-hyphen-friulan
- texlive-hyphen-galician
- texlive-hyphen-georgian
- texlive-hyphen-german
- texlive-hyphen-greek
- texlive-hyphen-hungarian
- texlive-hyphen-icelandic
- texlive-hyphen-indic
- texlive-hyphen-indonesian
- texlive-hyphen-interlingua
- texlive-hyphen-irish
- texlive-hyphen-italian
- texlive-hyphen-kurmanji
- texlive-hyphen-latin
- texlive-hyphen-latvian
- texlive-hyphen-lithuanian
- texlive-hyphen-macedonian
- texlive-hyphen-mongolian
- texlive-hyphen-norwegian
- texlive-hyphen-occitan
- texlive-hyphen-pali
- texlive-hyphen-piedmontese
- texlive-hyphen-polish
- texlive-hyphen-portuguese
- texlive-hyphen-romanian
- texlive-hyphen-romansh
- texlive-hyphen-russian
- texlive-hyphen-sanskrit
- texlive-hyphen-serbian
- texlive-hyphen-slovak
- texlive-hyphen-slovenian
- texlive-hyphen-spanish
- texlive-hyphen-swedish
- texlive-hyphen-thai
- texlive-hyphen-turkish
- texlive-hyphen-turkmen
- texlive-hyphen-ukrainian
- texlive-hyphen-uppersorbian
- texlive-hyphen-welsh
- texlive-unicode-data
- texlive-ukrhyph
- texlive-ruhyphen
- texlive-l3kernel
- texlive-l3backend
- ;; TODO: This dependency isn't needed for LaTeX version 2021-06-01
- ;; and later. See:
- ;; https://tug.org/pipermail/tex-live/2021-June/047180.html
- texlive-l3packages
- texlive-latexconfig))
- (home-page "https://www.ctan.org/pkg/latex-base")
- (synopsis "Base sources of LaTeX")
- (description
- "This bundle comprises the source of LaTeX itself, together with several
-packages which are considered \"part of the kernel\". This bundle, together
-with the required packages, constitutes what every LaTeX distribution should
+ "cont-en xetex" "cont-en pdftex" "pdfcsplain xetex"
+ "pdfcsplain pdftex" "pdfcsplain luatex" "cslatex pdftex"
+ "mptopdf pdftex" "uplatex euptex" "jadetex pdftex"
+ "amstex pdftex" "pdfcslatex pdftex" "lollipop tex"
+ "xmltex pdftex" "pdfjadetex pdftex" "eplain pdftex"
+ "texsis pdftex" "mltex pdftex" "utf8mex pdftex")))
+ (mkdir "web2c")
+ (install-file (string-append
+ (assoc-ref inputs "texlive-kpathsea")
+ "/share/texmf-dist/web2c/fmtutil.cnf")
+ "web2c")
+ (make-file-writable "web2c/fmtutil.cnf")
+ (substitute* "web2c/fmtutil.cnf"
+ (((string-append "^(" (string-join disabled-formats "|") ")") m)
+ (string-append "#! " m))
+ (("translate-file=cp227")
+ (format #f "translate-file=~a/share/texmf-dist/web2c/cp227"
+ (assoc-ref inputs "texlive-kpathsea")))))
+ (invoke "fmtutil-sys" "--all"
+ "--fmtdir=web2c"
+ (string-append "--cnffile=web2c/fmtutil.cnf"))
+ ;; We don't actually want to install it.
+ (delete-file "web2c/fmtutil.cnf")
+ ;; Also remove cruft.
+ (for-each delete-file (find-files "web2c" "\\.log$")))))))
+ (native-inputs
+ (list texlive-bin
+ texlive-cm
+ texlive-etex
+ texlive-knuth-lib
+ texlive-kpathsea
+ texlive-latex-fonts
+ texlive-luatex
+ texlive-plain
+ texlive-tex-ini-files))
+ (propagated-inputs
+ (list texlive-dehyph-exptl
+ texlive-etex
+ texlive-hyph-utf8
+ texlive-hyphen-afrikaans
+ texlive-hyphen-ancientgreek
+ texlive-hyphen-armenian
+ texlive-hyphen-base
+ texlive-hyphen-basque
+ texlive-hyphen-belarusian
+ texlive-hyphen-bulgarian
+ texlive-hyphen-catalan
+ texlive-hyphen-chinese
+ texlive-hyphen-churchslavonic
+ texlive-hyphen-coptic
+ texlive-hyphen-croatian
+ texlive-hyphen-czech
+ texlive-hyphen-danish
+ texlive-hyphen-dutch
+ texlive-hyphen-english
+ texlive-hyphen-esperanto
+ texlive-hyphen-estonian
+ texlive-hyphen-ethiopic
+ texlive-hyphen-finnish
+ texlive-hyphen-french
+ texlive-hyphen-friulan
+ texlive-hyphen-galician
+ texlive-hyphen-georgian
+ texlive-hyphen-german
+ texlive-hyphen-greek
+ texlive-hyphen-hungarian
+ texlive-hyphen-icelandic
+ texlive-hyphen-indic
+ texlive-hyphen-indonesian
+ texlive-hyphen-interlingua
+ texlive-hyphen-irish
+ texlive-hyphen-italian
+ texlive-hyphen-kurmanji
+ texlive-hyphen-latin
+ texlive-hyphen-latvian
+ texlive-hyphen-lithuanian
+ texlive-hyphen-macedonian
+ texlive-hyphen-mongolian
+ texlive-hyphen-norwegian
+ texlive-hyphen-occitan
+ texlive-hyphen-pali
+ texlive-hyphen-piedmontese
+ texlive-hyphen-polish
+ texlive-hyphen-portuguese
+ texlive-hyphen-romanian
+ texlive-hyphen-romansh
+ texlive-hyphen-russian
+ texlive-hyphen-sanskrit
+ texlive-hyphen-schoolfinnish
+ texlive-hyphen-serbian
+ texlive-hyphen-slovak
+ texlive-hyphen-slovenian
+ texlive-hyphen-spanish
+ texlive-hyphen-swedish
+ texlive-hyphen-thai
+ texlive-hyphen-turkish
+ texlive-hyphen-turkmen
+ texlive-hyphen-ukrainian
+ texlive-hyphen-uppersorbian
+ texlive-hyphen-welsh
+ texlive-l3backend
+ texlive-l3kernel
+ texlive-latexconfig
+ texlive-ruhyphen
+ texlive-ukrhyph
+ texlive-unicode-data
+ ;; TODO: This dependency isn't needed for LaTeX version 2021-06-01
+ ;; and later. See:
+ ;; <https://tug.org/pipermail/tex-live/2021-June/047180.html>
+ texlive-l3packages))
+ (home-page "https://www.ctan.org/pkg/latex-base")
+ (synopsis "Base sources of LaTeX")
+ (description
+ "This bundle comprises the source of LaTeX itself, together with several
+packages which are considered part of the kernel. This bundle, together with
+the required packages, constitutes what every LaTeX distribution should
contain.")
- (license license:lppl1.3c+))))
+ (license license:lppl1.3c+)))
(define-public texlive-atenddvi
(package