mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: texlive-libkpathsea: Enforce ls-R usage by default.
Fixes: https://issues.guix.gnu.org/75893 * gnu/packages/tex.scm (texlive-libkpathsea): Set TEXMF so that ls-R database is mandatory and must contain the file looked after in the TeX Live tree. * guix/build/texlive-build-system.scm (configure-texmf): Relax requirements for "ls-R" database. Renamed from `set-texmfvar'. (%standard-phases): Apply phase renaming. * gnu/packages/python-xyz.scm (python-nbconvert)[native-inputs]: Add TeX Live packages required for tests to pass since propagated packages are no longer accessible during build. * gnu/packages/books.scm (book-sparc)[inputs]: Move TeX Live related inputs to... [native-inputs]: ... here, and wrap them within texlive-local-tree for the same reason as above. Change-Id: I3430bc84ce35f4aa8f0537b512f472ef88f8e5e9
This commit is contained in:
parent
4e04035d36
commit
f6d9057ff2
4 changed files with 98 additions and 76 deletions
|
@ -63,70 +63,69 @@
|
|||
lilypond
|
||||
perl
|
||||
python-pygments
|
||||
(texlive-local-tree
|
||||
(list texlive-acronym
|
||||
texlive-adjustbox
|
||||
texlive-biblatex
|
||||
texlive-bibtex
|
||||
texlive-bibtexperllibs
|
||||
texlive-bigfoot
|
||||
texlive-chngcntr
|
||||
texlive-circuitikz
|
||||
texlive-collection-langcyrillic
|
||||
texlive-csquotes
|
||||
texlive-fancyvrb
|
||||
texlive-fontspec
|
||||
texlive-glossaries
|
||||
texlive-glossaries-english
|
||||
texlive-glossaries-extra
|
||||
texlive-koma-script
|
||||
texlive-lilyglyphs
|
||||
texlive-minted
|
||||
texlive-multirow
|
||||
texlive-pgf
|
||||
texlive-pgfplots
|
||||
texlive-subfiles
|
||||
texlive-svg
|
||||
texlive-t1utils
|
||||
texlive-textpos
|
||||
texlive-transparent
|
||||
texlive-trimspaces
|
||||
texlive-upquote
|
||||
texlive-xetex))
|
||||
which))
|
||||
(inputs
|
||||
(list font-liberation
|
||||
git
|
||||
texlive-acronym
|
||||
texlive-adjustbox
|
||||
texlive-biblatex
|
||||
texlive-bibtex
|
||||
texlive-bibtexperllibs
|
||||
texlive-bigfoot
|
||||
texlive-chngcntr
|
||||
texlive-circuitikz
|
||||
texlive-collection-langcyrillic
|
||||
texlive-csquotes
|
||||
texlive-fancyvrb
|
||||
texlive-fontspec
|
||||
texlive-glossaries
|
||||
texlive-glossaries-english
|
||||
texlive-glossaries-extra
|
||||
texlive-koma-script
|
||||
texlive-lilyglyphs
|
||||
texlive-minted
|
||||
texlive-multirow
|
||||
texlive-pgf
|
||||
texlive-pgfplots
|
||||
texlive-subfiles
|
||||
texlive-svg
|
||||
texlive-t1utils
|
||||
texlive-textpos
|
||||
texlive-transparent
|
||||
texlive-trimspaces
|
||||
texlive-upquote
|
||||
texlive-xetex))
|
||||
(arguments
|
||||
(list #:tests? #f ; no tests
|
||||
#:modules (append %default-gnu-imported-modules
|
||||
'((ice-9 regex)
|
||||
(srfi srfi-1)))
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-before 'build 'configure-environment
|
||||
(lambda* (#:key inputs make-flags parallel-build?
|
||||
#:allow-other-keys)
|
||||
(let* ((src (assoc-ref inputs "source"))
|
||||
(rx (make-regexp "/gnu/store/(.*)-book-sparc-.*"))
|
||||
(src-hash (match:substring (regexp-exec rx src) 1))
|
||||
(random-seed
|
||||
(fold (lambda (ch prev)
|
||||
(+ (char->integer ch)
|
||||
prev))
|
||||
0
|
||||
(string->list src-hash))))
|
||||
(setenv "RANDOMSEED" (number->string random-seed))
|
||||
(setenv "REPRODUCIBILITY" "yes"))))
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let ((doc-dir (string-append #$output
|
||||
"/share/doc/sparc/")))
|
||||
(mkdir-p doc-dir)
|
||||
(copy-file "sparc.ru.pdf"
|
||||
(string-append doc-dir
|
||||
"sparc.ru.pdf"))
|
||||
(copy-file "sparc.en.pdf"
|
||||
(string-append doc-dir
|
||||
"sparc.en.pdf"))))))))
|
||||
(inputs (list font-liberation git))
|
||||
(arguments
|
||||
(list #:tests? #f ; no tests
|
||||
#:modules (append %default-gnu-imported-modules
|
||||
'((ice-9 regex)
|
||||
(srfi srfi-1)))
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-before 'build 'configure-environment
|
||||
(lambda* (#:key inputs make-flags parallel-build?
|
||||
#:allow-other-keys)
|
||||
(let* ((src (assoc-ref inputs "source"))
|
||||
(rx (make-regexp "/gnu/store/(.*)-book-sparc-.*"))
|
||||
(src-hash (match:substring (regexp-exec rx src) 1))
|
||||
(random-seed
|
||||
(fold (lambda (ch prev)
|
||||
(+ (char->integer ch)
|
||||
prev))
|
||||
0
|
||||
(string->list src-hash))))
|
||||
(setenv "RANDOMSEED" (number->string random-seed))
|
||||
(setenv "REPRODUCIBILITY" "yes"))))
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let ((doc-dir (string-append #$output
|
||||
"/share/doc/sparc/")))
|
||||
(mkdir-p doc-dir)
|
||||
(copy-file "sparc.ru.pdf"
|
||||
(string-append doc-dir
|
||||
"sparc.ru.pdf"))
|
||||
(copy-file "sparc.en.pdf"
|
||||
(string-append doc-dir
|
||||
"sparc.en.pdf"))))))))
|
||||
(home-page "https://github.com/artyom-poptsov/SPARC")
|
||||
(synopsis "Book on combining art and technology")
|
||||
(description
|
||||
|
|
|
@ -19352,7 +19352,28 @@ time.")
|
|||
;; Adding ipywidgets would create a cycle.
|
||||
;;python-ipywidgets
|
||||
python-pytest
|
||||
python-pytest-xdist))
|
||||
python-pytest-xdist
|
||||
(texlive-local-tree
|
||||
(list texlive-adjustbox
|
||||
texlive-booktabs
|
||||
texlive-caption
|
||||
texlive-enumitem
|
||||
texlive-eurosym
|
||||
texlive-fancyvrb
|
||||
texlive-float
|
||||
texlive-fontspec
|
||||
texlive-grffile
|
||||
texlive-jknapltx
|
||||
texlive-parskip
|
||||
texlive-pdfcol
|
||||
texlive-rsfs
|
||||
texlive-soul
|
||||
texlive-tcolorbox
|
||||
texlive-titling
|
||||
texlive-ulem
|
||||
texlive-unicode-math
|
||||
texlive-upquote
|
||||
texlive-xetex))))
|
||||
(propagated-inputs
|
||||
(list python-beautifulsoup4
|
||||
python-bleach
|
||||
|
|
|
@ -326,12 +326,9 @@ should not be installed in a profile.")
|
|||
(("^TEXMFROOT = .*") "TEXMFROOT = {$GUIX_TEXMF}/..\n")
|
||||
(("^TEXMFDIST = .*") "TEXMFDIST = {$GUIX_TEXMF}\n")
|
||||
;; "ls-R" files are to be expected only in the TEXMFDIST
|
||||
;; directories. However, those are not always present, e.g.,
|
||||
;; when building a package with `texlive-build-system' or when
|
||||
;; generating a profile. Since both situations need to be
|
||||
;; handled, drop the "!!" prefixes.
|
||||
;; directories.
|
||||
(("^TEXMF = .*")
|
||||
"TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXMFSYSCONFIG,$TEXMFSYSVAR,$TEXMFDIST}\n")
|
||||
"TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXMFSYSCONFIG,$TEXMFSYSVAR,!!$TEXMFDIST}\n")
|
||||
(("^TEXMFDBS = .*") "TEXMFDBS = {$TEXMFDIST}\n")
|
||||
;; Ignore system-wide cache, which is not writable. Use local
|
||||
;; one instead, i.e. "$HOME/.texliveYYYY/texmf-var/".
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2021 Thiago Jung Bauermann <bauermann@kolabnow.com>
|
||||
;;; Copyright © 2023, 2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2023-2025 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -91,11 +91,16 @@ runfile to replace. If a file has no matching runfile, it is ignored."
|
|||
((command-regexp _ command)
|
||||
(which command))))))
|
||||
|
||||
(define* (set-texmfvar #:rest _)
|
||||
"Set TEXMFVAR to a writable location."
|
||||
;; Default value is relative to $HOME, which is not set during build. This
|
||||
;; location is used for generating font metrics or building documentation.
|
||||
(setenv "TEXMFVAR" (string-append (getcwd) "/texmf-var")))
|
||||
(define* (configure-texmf #:rest _)
|
||||
"Ensure TEXMFVAR is writable and \"ls-R\" database is not required."
|
||||
;; Default TEXMFVAR value is relative to $HOME, which is not set during
|
||||
;; build. This location is used for generating font metrics or building
|
||||
;; documentation.
|
||||
(setenv "TEXMFVAR" (string-append (getcwd) "/texmf-var"))
|
||||
;; By default, a "ls-R" file must exist in TEXMFDIST. However, it isn't
|
||||
;; generated in the TeX Live tree used to build a package. Consequently,
|
||||
;; relax this requirement.
|
||||
(setenv "TEXMF" "{$TEXMFSYSVAR,$TEXMFDIST}"))
|
||||
|
||||
(define* (delete-drv-files #:rest _)
|
||||
"Delete pre-generated \".drv\" files in order to prevent build failures."
|
||||
|
@ -297,7 +302,7 @@ runfile to replace. If a file has no matching runfile, it is ignored."
|
|||
(delete 'bootstrap)
|
||||
(delete 'configure)
|
||||
(add-after 'unpack 'patch-shell-scripts patch-shell-scripts)
|
||||
(add-before 'build 'set-texmfvar set-texmfvar)
|
||||
(add-before 'build 'configure-texmf configure-texmf)
|
||||
(add-before 'build 'delete-drv-files delete-drv-files)
|
||||
(add-after 'delete-drv-files 'generate-font-metrics generate-font-metrics)
|
||||
(replace 'build build)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue