aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2025-02-10 10:43:57 +0100
committerAndreas Enge <andreas@enge.fr>2025-05-06 11:25:06 +0200
commitf6d9057ff274a67fd2bcf872a83993a92b7cf8e2 (patch)
treea8635a038b72d4c6922dcf0f7f1102c31313a9c3
parent4e04035d36a3486fe3e86c54017b0786a4eb80c8 (diff)
downloadguix-f6d9057ff274a67fd2bcf872a83993a92b7cf8e2.tar.gz
guix-f6d9057ff274a67fd2bcf872a83993a92b7cf8e2.zip
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
-rw-r--r--gnu/packages/books.scm125
-rw-r--r--gnu/packages/python-xyz.scm23
-rw-r--r--gnu/packages/tex.scm7
-rw-r--r--guix/build/texlive-build-system.scm19
4 files changed, 98 insertions, 76 deletions
diff --git a/gnu/packages/books.scm b/gnu/packages/books.scm
index 9485e03725..0fd80f6985 100644
--- a/gnu/packages/books.scm
+++ b/gnu/packages/books.scm
@@ -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
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c877bafd5d..112bb2aefd 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -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
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 5aaac35e53..f0bea9f9a0 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -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/".
diff --git a/guix/build/texlive-build-system.scm b/guix/build/texlive-build-system.scm
index 25b64991f7..90936c178d 100644
--- a/guix/build/texlive-build-system.scm
+++ b/guix/build/texlive-build-system.scm
@@ -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)