[PATCH core-updates 0/3] Allow composing multiple TeX Live trees

  • Done
  • quality assurance status badge
Details
One participant
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Maxim Cournoyer
Severity
normal
M
M
Maxim Cournoyer wrote on 14 Jan 2021 19:35
(address . guix-patches@gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20210114183516.16554-1-maxim.cournoyer@gmail.com
Our default texmf.cnf configuration file used by TeX Live (via kpathsea) to
locate its resources can be modified to support multiple TeX Live trees
without having to resort to unions. This has the advantage that any TeX Live
inputs (including font maps) can composed and propagated, and overall
simplifies things.

This change requires the patch at 'https://issues.guix.gnu.org/45773', used
as part of the new texlive-updmap.cfg definition.

Maxim Cournoyer (3):
gnu: texlive-bin: Enable the use of multiple TeX Live trees.
gnu: texlive-amsfonts: Adjust to build with texlive-updmap.cfg.
gnu: Replace all uses of texlive-union by texlive-updmap.cfg.

doc/build.scm | 2 +-
gnu/packages/algebra.scm | 2 +-
gnu/packages/bioinformatics.scm | 4 +-
gnu/packages/chez.scm | 6 +-
gnu/packages/docbook.scm | 2 +-
gnu/packages/emacs-xyz.scm | 2 +-
gnu/packages/engineering.scm | 2 +-
gnu/packages/guile-xyz.scm | 4 +-
gnu/packages/lisp.scm | 2 +-
gnu/packages/maths.scm | 4 +-
gnu/packages/music.scm | 2 +-
gnu/packages/plotutils.scm | 2 +-
gnu/packages/python-xyz.scm | 10 +-
gnu/packages/radio.scm | 4 +-
gnu/packages/scheme.scm | 2 +-
gnu/packages/statistics.scm | 2 +-
gnu/packages/tex.scm | 262 ++++++++++++----------------
guix/build/texlive-build-system.scm | 32 +---
guix/profiles.scm | 48 -----
19 files changed, 141 insertions(+), 253 deletions(-)

--
2.29.2
M
M
Maxim Cournoyer wrote on 14 Jan 2021 19:41
[PATCH core-updates 1/3] gnu: texlive-bin: Enable the use of multiple TeX Live trees.
(address . 45870@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20210114184127.16800-1-maxim.cournoyer@gmail.com
Attempting to compose multiple TeX Live trees (such as can happen when using a
texlive-union generated package) proved problematic; only the texmf.cnf
configuration file from the union would be honored, causing other TeX Live
components to be ignored.

This change does away with TeX Live unions, instead relying on the default
texmf.cnf configuration file provided by the texlive-bin package to honor
individual TeX Live trees referred to via the newly introduced GUIX_TEXMF
variable, and replacing the texlive-union procedure by texlive-updmap.cfg, to
explicit that generating the fonts map configuration is now its sole purpose.

* gnu/packages/tex.scm (texlive-bin)[phases]{customize-texmf}: New phase.
{postint}: Move the patching of the texmf.cnf file to the new above phase.
Patch the updmap.pl script to find its Perl modules.
[native-search-paths]: Rename the TEXMF variable to GUIX_TEXMF. Remove the
TEXMFCNF variable.
* guix/profiles.scm (texlive-configuration): Remove procedure.
(%default-profile-hooks)[texlive-configuration]: Unregister hook.
(texlive-union): Alias to what has moved to...
(texlivke-updmap.cfg): ... here. Update doc. Do not provide a different
texmf.cnf configuration.
[inherit]: Do not inherit from texlive-base.
[build-system]: Switch to the copy-build-system.
[arguments]{install-plan}: New argument.
[phases]{regenerate-updmap.cfg}: New phase, which keeps only the fonts map
generating code from the previous builder code.
[inputs]: Remove bash, and move to ...
[propagated-inputs]: ... here.
[native-inputs]: Remove field, and move the source of the base updmap.cfg file
to...
[source]: ... here.
[synopsis]: Update.
[description]: Likewise.
[license]: Delete duplicates.
---
gnu/packages/tex.scm | 215 +++++++++++++---------------
guix/build/texlive-build-system.scm | 32 +----
guix/profiles.scm | 48 -------
3 files changed, 99 insertions(+), 196 deletions(-)

Toggle diff (373 lines)
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 67fec8b474..fb61a6c1ba 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -35,6 +35,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
@@ -430,6 +431,32 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use.
(substitute-commands iso-8859-1-encoded-scripts))
#t)))
+ (add-after 'check 'customize-texmf.cnf
+ ;; The default texmf.cnf is provided by this package, texlive-bin.
+ ;; Every variable of interest is set relatively to the GUIX_TEXMF
+ ;; environment variable defined via a search path specification
+ ;; further below. The configuration file is patched after the test
+ ;; suite has run, as it relies on the default configuration to find
+ ;; its paths (and the GUIX_TEXMF variable isn't set yet).
+ (lambda _
+ ;; The current directory is build/ because of the out-of-tree
+ ;; build.
+ (let* ((source (first (scandir ".." (cut string-suffix?
+ "source" <>))))
+ (texmf.cnf (string-append "../" source
+ "/texk/kpathsea/texmf.cnf")))
+ (substitute* texmf.cnf
+ (("^TEXMFROOT = .*")
+ "TEXMFROOT = {$GUIX_TEXMF}/..\n")
+ (("^TEXMF = .*")
+ "TEXMF = {$GUIX_TEXMF}\n")
+ (("^%TEXMFCNF = .*")
+ "TEXMFCNF = {$GUIX_TEXMF}/web2c\n")
+ ;; Don't truncate lines.
+ (("^error_line = .*$") "error_line = 254\n")
+ (("^half_error_line = .*$") "half_error_line = 238\n")
+ (("^max_print_line = .*$") "max_print_line = 1000\n")))
+ #t))
(add-after 'install 'postint
(lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
(let* ((out (assoc-ref outputs "out"))
@@ -450,11 +477,7 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use.
"/tlpkg"))
(config.guess (string-append (assoc-ref inputs "config")
"/bin/config.guess")))
- (substitute* (string-append share "/texmf-dist/web2c/texmf.cnf")
- ;; Don't truncate lines.
- (("^error_line = .*$") "error_line = 254\n")
- (("^half_error_line = .*$") "half_error_line = 238\n")
- (("^max_print_line = .*$") "max_print_line = 1000\n"))
+
;; Create symbolic links for the latex variants and their
;; man pages.
(with-directory-excursion (string-append out "/bin/")
@@ -477,6 +500,11 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use.
(("\\$TEXMFROOT/")
(string-append share "/")))
+ ;; Likewise for updmap.pl.
+ (substitute* (string-append scripts "/updmap.pl")
+ (("\\$TEXMFROOT/tlpkg")
+ (string-append share "/tlpkg")))
+
;; Likewise for the tlmgr.
(substitute* (string-append scripts "/tlmgr.pl")
((".*\\$::installerdir = \\$Master.*" all)
@@ -495,13 +523,8 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use.
(patch-source-shebangs))))))))
(native-search-paths
(list (search-path-specification
- (variable "TEXMF")
- (files '("share/texmf-dist"))
- (separator #f))
- (search-path-specification
- (variable "TEXMFCNF")
- (files '("share/texmf-dist/web2c"))
- (separator #f))))
+ (variable "GUIX_TEXMF")
+ (files '("share/texmf-dist")))))
(synopsis "TeX Live, a package of the TeX typesetting system")
(description
"TeX Live provides a comprehensive TeX document production system.
@@ -3004,7 +3027,7 @@ tables.")
;; The following fonts are propagated as a texlive-union as the font
;; maps need to be recreated for the fonts to be usable. They are
;; required by xmltex through mlnames.sty and unicode.sty.
- `(("texlive" ,(texlive-union
+ `(("texlive" ,(texlive-updmap.cfg
(list
texlive-amsfonts
texlive-babel
@@ -3756,127 +3779,81 @@ It includes little more than the required set of LaTeX packages.")
'()
default-packages)))))
-;; For use in package definitions only
-(define-public texlive-union
+;;; TODO: Add a TeX Live profile hook computing fonts maps (and others?)
+;;; configuration from the packages in the profile, similar to what's done
+;;; below.
+(define-public texlive-updmap.cfg
(lambda* (#:optional (packages '()))
- "Return 'texlive-union' package which is a union of PACKAGES and the
-standard LaTeX packages."
+ "Return a 'texlive-updmap.cfg' package which contains the fonts map
+configuration of a base set of packages plus PACKAGES."
(let ((default-packages (match (package-propagated-inputs texlive-base)
(((labels packages) ...) packages))))
- (package (inherit texlive-base)
- (name "texlive-union")
- (build-system trivial-build-system)
+ (package
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://tug.org/svn/texlive/tags/"
+ %texlive-tag
+ "/Master/texmf-dist/web2c/updmap.cfg"
+ "?revision=" version))
+ (file-name "updmap.cfg")
+ (sha256
+ (base32
+ "0faqknqxs80qp9ywk0by5k85s0yalg97c4lja4q56lsyblrr4j7i"))))
+ (name "texlive-updmap.cfg")
+ (build-system copy-build-system)
(arguments
- '(#:modules ((guix build union)
+ '(#:modules ((guix build copy-build-system)
(guix build utils)
- (guix build texlive-build-system)
- (guix build gnu-build-system)
- (guix build gremlin)
- (guix elf))
- #:builder
- (begin
- (use-modules (ice-9 match)
- (ice-9 popen)
- (srfi srfi-26)
- (guix build union)
- (guix build utils)
- (guix build texlive-build-system))
- (let* ((out (assoc-ref %outputs "out"))
- (texmf.cnf (string-append out "/share/texmf-dist/web2c/texmf.cnf")))
- ;; Build a modifiable union of all inputs (but exclude bash and
- ;; the updmap.cfg file)
- (match (filter (match-lambda
- ((name . _)
- (not (member name '("bash"
- "coreutils"
- "sed"
- "updmap.cfg")))))
- %build-inputs)
- (((names . directories) ...)
- (union-build (assoc-ref %outputs "out")
- directories
- #:create-all-directories? #t
- #:log-port (%make-void-port "w"))))
-
- ;; The configuration file "texmf.cnf" is provided by the
- ;; "texlive-bin" package. We take it and override only the
- ;; setting for TEXMFROOT and TEXMF. This file won't be consulted
- ;; by default, though, so we still need to set TEXMFCNF.
- (substitute* texmf.cnf
- (("^TEXMFROOT = .*")
- (string-append "TEXMFROOT = " out "/share\n"))
- (("^TEXMF = .*")
- "TEXMF = $TEXMFROOT/share/texmf-dist\n"))
- (setenv "PATH" (string-append
- (assoc-ref %build-inputs "bash") "/bin:"
- (assoc-ref %build-inputs "coreutils") "/bin:"
- (assoc-ref %build-inputs "sed") "/bin:"
- (string-append out "/bin")))
- (for-each
- (cut wrap-program <>
- `("TEXMFCNF" ":" suffix (,(dirname texmf.cnf)))
- `("TEXMF" ":" suffix (,(string-append out "/share/texmf-dist"))))
- (find-files (string-append out "/bin") ".*"))
-
- ;; Remove invalid maps from config file.
- (let ((web2c (string-append out "/share/texmf-config/web2c/"))
- (maproot (string-append out "/share/texmf-dist/fonts/map/")))
- (mkdir-p web2c)
- (copy-file
- (assoc-ref %build-inputs "updmap.cfg")
- (string-append web2c "updmap.cfg"))
- (make-file-writable (string-append web2c "updmap.cfg"))
+ (ice-9 popen)
+ (ice-9 textual-ports))
+ #:install-plan '(("updmap.cfg" "share/texmf-config/web2c/")
+ ("map" "share/texmf-dist/fonts/map"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'regenerate-updmap.cfg
+ (lambda _
+ (make-file-writable "updmap.cfg")
+ ;; Disable unavailable map files.
(let* ((port (open-pipe* OPEN_WRITE "updmap-sys"
"--syncwithtrees"
"--nohash"
- (string-append "--cnffile=" web2c "updmap.cfg"))))
+ "--cnffile" "updmap.cfg")))
(display "Y\n" port)
(when (not (zero? (status:exit-val (close-pipe port))))
(error "failed to filter updmap.cfg")))
+
+ ;; Set TEXMFSYSVAR to a sane and writable value; updmap fails
+ ;; if it cannot create its log file there.
+ (setenv "TEXMFSYSVAR" (getcwd))
+
;; Generate maps.
(invoke "updmap-sys"
- (string-append "--cnffile=" web2c "updmap.cfg")
- (string-append "--dvipdfmxoutputdir="
- maproot "dvipdfmx/updmap/")
- (string-append "--dvipsoutputdir="
- maproot "dvips/updmap/")
- (string-append "--pdftexoutputdir="
- maproot "pdftex/updmap/"))
- ;; Having this file breaks all file lookups later.
- (delete-file (string-append out "/share/texmf-dist/ls-R")))
- #t))))
- (inputs
- `(("bash" ,bash-minimal)
- ,@(map (lambda (package)
- (list (package-name package) package))
- (append default-packages packages))))
- (native-inputs
- `(("coreutils" ,coreutils)
- ("sed" ,sed)
- ("updmap.cfg"
- ,(origin
- (method url-fetch)
- (uri (string-append "https://tug.org/svn/texlive/tags/"
- %texlive-tag "/Master/texmf-dist/web2c/updmap.cfg"
- "?revision=" (number->string %texlive-revision)))
- (file-name (string-append "updmap.cfg-"
- (number->string %texlive-revision)))
- (sha256
- (base32
- "0faqknqxs80qp9ywk0by5k85s0yalg97c4lja4q56lsyblrr4j7i"))))))
+ "--cnffile" "updmap.cfg"
+ "--dvipdfmxoutputdir" "map/dvipdfmx/updmap/"
+ "--dvipsoutputdir" "map/dvips/updmap/"
+ "--pdftexoutputdir" "map/pdftex/updmap/"))))))
+ (propagated-inputs (map (lambda (package)
+ (list (package-name package) package))
+ (append default-packages packages)))
(home-page (package-home-page texlive-bin))
- (synopsis "Union of TeX Live packages")
- (description "This package provides a subset of the TeX Live
-distribution.")
- (license (fold (lambda (package result)
- (match (package-license package)
- ((lst ...)
- (append lst result))
- ((? license:license? license)
- (cons license result))))
- '()
- (append default-packages packages)))))))
+ (synopsis "TeX Live fonts map configuration")
+ (description "This package contains the fonts map configuration file
+generated for the base TeX Live packages as well as, optionally, user-provided
+ones.")
+ (license (delete-duplicates
+ (fold (lambda (package result)
+ (match (package-license package)
+ ((lst ...)
+ (append lst result))
+ ((? license:license? license)
+ (cons license result))))
+ '()
+ (append default-packages packages))))))))
+
+;;; Deprecated.
+(define texlive-union texlive-updmap.cfg)
;; For use in package definitions only
(define-public texlive-tiny
diff --git a/guix/build/texlive-build-system.scm b/guix/build/texlive-build-system.scm
index a4c81f07cd..4c255700bb 100644
--- a/guix/build/texlive-build-system.scm
+++ b/guix/build/texlive-build-system.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -40,35 +41,8 @@
(string-append "&" format)
file))
-(define* (configure #:key inputs #:allow-other-keys)
- (let* ((out (string-append (getcwd) "/.texlive-union"))
- (texmf.cnf (string-append out "/share/texmf-dist/web2c/texmf.cnf")))
- ;; Build a modifiable union of all inputs (but exclude bash)
- (match inputs
- (((names . directories) ...)
- (union-build out (filter directory-exists? directories)
- #:create-all-directories? #t
- #:log-port (%make-void-port "w"))))
-
- ;; The configuration file "texmf.cnf" is provided by the
- ;; "texlive-bin" package. We take it and override only the
- ;; setting for TEXMFROOT and TEXMF. This file won't be consulted
- ;; by default, though, so we still need to set TEXMFCNF.
- (substitute* texmf.cnf
- (("^TEXMFROOT = .*")
- (string-append "TEXMFROOT = " out "/share\n"))
- (("^TEXMF = .*")
- "TEXMF = $TEXMFROOT/share/texmf-dist\n"))
- (setenv "TEXMFCNF" (dirname texmf.cnf))
- (setenv "TEXMF" (string-append out "/share/texmf-dist"))
-
- ;; Don't truncate lines.
- (setenv "error_line" "254") ; must be less than 255
- (setenv "half_error_line" "238") ; must be less than error_line - 15
- (setenv "max_print_line" "1000"))
- (mkdir "build"))
-
(define* (build #:key inputs build-targets tex-format #:allow-other-keys)
+ (mkdir "build")
(for-each (cut compile-with-latex tex-format <>)
(if build-targets build-targets
(scandir "." (cut string-suffix? ".ins" <>)))))
@@ -85,7 +59,7 @@
(define %standard-phases
(modify-phases gnu:%standard-phases
(delete 'bootstrap)
- (replace 'configure configure)
+ (delete 'configure)
(replace 'build build)
(delete 'check)
(replace 'install install)))
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 59a313ea08..deefce2e26 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -1526,53 +1526,6 @@ the entries in MANIFEST."
`((type . profile-hook)
(hook . manual-database))))
-(define (texlive-configuration manifest)
- "Return a derivation that builds a TeXlive configuration for the entries in
-MANIFEST."
- (define entry->texlive-input
- (match-lambda
- (($ <manifest-entry> name version output thing deps)
- (if (string-prefix? "texlive-" name)
- (cons (gexp-input thing output)
- (append-map entry->texlive-input deps))
- '()))))
- (define build
- (with-imported-modules '((guix build utils)
- (guix build union))
- #~(begin
- (use-modules (guix build utils)
- (guix build union))
-
- ;; Build a modifiable union of all texlive inputs. We do this so
- ;; that TeX live can resolve the parent and grandparent directories
- ;; correctly. There might be a more elegant way to accomplish this.
- (union-build #$output
- '#$(append-map entry->texlive-input
- (manifest-entries manifest))
- #:create-all-directories? #t
- #:log-p
This message was truncated. Download the full message here.
M
M
Maxim Cournoyer wrote on 14 Jan 2021 19:41
[PATCH core-updates 2/3] gnu: texlive-amsfonts: Adjust to build with texlive-updmap.cfg.
(address . 45870@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20210114184127.16800-2-maxim.cournoyer@gmail.com
* gnu/packages/tex.scm (texlive-amsfonts)[phases]
{build-fonts}: Do not set SOURCE_DATE_EPOCH, already done by the build
system. Let resources be auto-discovered by TeX Live machinery by simply
setting GUIX_TEXMF. Remove references to the texlive-union input. Remove
trailing #t.
{install-generated-fonts}: Remove trailing #t.
[native-inputs]: Replace texlive-union by texlive-updmap.cfg. Remove the
texlive-cm and texlive-metafont arguments of texlive-updmap.cfg.
---
gnu/packages/tex.scm | 37 +++++++++++--------------------------
1 file changed, 11 insertions(+), 26 deletions(-)

Toggle diff (71 lines)
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index fb61a6c1ba..3d7aed30c7 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -1245,22 +1245,11 @@ Taco Hoekwater.")
`(modify-phases ,phases
(add-before 'build 'build-fonts
(lambda* (#:key inputs #:allow-other-keys)
- (let ((mf (assoc-ref inputs "texlive-union"))
- (src (string-append (getcwd) "/fonts/source/public/amsfonts/")))
- ;; Make METAFONT reproducible
- (setenv "SOURCE_DATE_EPOCH" "1")
- ;; Tell mf where to find mf.base
- (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
- ;; Tell mf where to look for source files
- (setenv "MFINPUTS"
- (string-append src ":"
- src "/cmextra:"
- src "/cyrillic:"
- src "/dummy:"
- src "/symbols:"
- mf "/share/texmf-dist/metafont/base:"
- (assoc-ref inputs "texlive-cm")
- "/share/texmf-dist/fonts/source/public/cm")))
+ ;; Allow self fonts sources and other resources to be
+ ;; discovered.
+ (setenv "GUIX_TEXMF" (string-append (getenv "GUIX_TEXMF")
+ ":" (getcwd)))
+
(let ((build (string-append (getcwd) "/build-fonts")))
(mkdir-p build)
(with-directory-excursion "fonts/source/public/amsfonts"
@@ -1295,10 +1284,9 @@ Taco Hoekwater.")
;; eufm10.afm to eufm8.pl, and then generate the tfm file from
;; the pl file.
(setenv "TEXINPUTS"
- (string-append build "//:"
+ (string-append ":" build "//:"
(getcwd) "/fonts/afm/public/amsfonts//:"
- (getcwd) "/source/latex/amsfonts//:"
- (assoc-ref inputs "texlive-union") "//"))
+ (getcwd) "/source/latex/amsfonts//:"))
(with-directory-excursion build
(for-each (match-lambda
(((target-base target-size)
@@ -1333,19 +1321,16 @@ Taco Hoekwater.")
(("eurm6" 6) ("eurm7" 7))
(("eurm8" 8) ("eurm10" 10))
- (("eurm9" 9) ("eurm10" 10))))))
- #t))
+ (("eurm9" 9) ("eurm10" 10))))))))
(add-after 'install 'install-generated-fonts
(lambda* (#:key inputs outputs #:allow-other-keys)
(copy-recursively "build-fonts"
(string-append
(assoc-ref outputs "out")
- "/share/texmf-dist/fonts/tfm/public/amsfonts"))
- #t))))))
+ "/share/texmf-dist/fonts/tfm/public/amsfonts"))))))))
(native-inputs
- `(("texlive-union" ,(texlive-union (list texlive-tex-fontinst-base
- texlive-cm
- texlive-metafont)))))
+ `(("texlive-updmap.cfg" ,(texlive-updmap.cfg
+ (list texlive-fontinst)))))
(home-page "https://www.ctan.org/pkg/amsfonts")
(synopsis "TeX fonts from the American Mathematical Society")
(description
--
2.29.2
M
M
Maxim Cournoyer wrote on 14 Jan 2021 19:41
[PATCH core-updates 3/3] gnu: Replace all uses of texlive-union by texlive-updmap.cfg.
(address . 45870@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20210114184127.16800-3-maxim.cournoyer@gmail.com
* doc/build.scm (pdf-manual) Replace texlive-union by texlive-updmap.cfg.
* gnu/packages/algebra.scm (pari-gp): Likewise.
* gnu/packages/bioinformatics.scm (discrover, velvet): Likewise.
* gnu/packages/chez.scm (chez-scheme, chez-web, chez-sockets): Likewise.
* gnu/packages/docbook.scm (dblatex): Likewise.
* gnu/packages/emacs-xyz.scm (emacs-auctex): Likewise.
* gnu/packages/engineering.scm (fastcap): Likewise.
* gnu/packages/guile-xyz.scm (emacsy, guile-cv): Likewise.
* gnu/packages/lisp.scm (sbcl): Likewise.
* gnu/packages/maths.scm (octave, hypre): Likewise.
* gnu/packages/music.scm (lilypond): Likewise.
* gnu/packages/plotutils.scm (asymptote): Likewise.
* gnu/packages/python-xyz.scm (python-numpy-documentation)
(python-matplotlib-documentation, python-ipython-documentation)
(python-pypandoc): Likewise.
* gnu/packages/radio.scm (gnuradio, libosmo-dsp): Likewise.
* gnu/packages/scheme.scm (mit-scheme): Likewise.
* gnu/packages/statistics.scm (r-with-tests): Likewise.
* gnu/packages/tex.scm (simple-texlive-package)
(texlive-xmltex, texlive-tiny, texlive-jadetex, teximpatient, lyx): Likewise.
---
doc/build.scm | 2 +-
gnu/packages/algebra.scm | 2 +-
gnu/packages/bioinformatics.scm | 4 ++--
gnu/packages/chez.scm | 6 +++---
gnu/packages/docbook.scm | 2 +-
gnu/packages/emacs-xyz.scm | 2 +-
gnu/packages/engineering.scm | 2 +-
gnu/packages/guile-xyz.scm | 4 ++--
gnu/packages/lisp.scm | 2 +-
gnu/packages/maths.scm | 4 ++--
gnu/packages/music.scm | 2 +-
gnu/packages/plotutils.scm | 2 +-
gnu/packages/python-xyz.scm | 10 +++++-----
gnu/packages/radio.scm | 4 ++--
gnu/packages/scheme.scm | 2 +-
gnu/packages/statistics.scm | 2 +-
gnu/packages/tex.scm | 10 +++++-----
17 files changed, 31 insertions(+), 31 deletions(-)

Toggle diff (349 lines)
diff --git a/doc/build.scm b/doc/build.scm
index d77fc0a700..abdcf43d96 100644
--- a/doc/build.scm
+++ b/doc/build.scm
@@ -736,7 +736,7 @@ makeinfo OPTIONS."
;; accented letters.
;;
;; (define texlive
- ;; (texlive-union (list texlive-tex-texinfo
+ ;; (texlive-updmap.cfg (list texlive-tex-texinfo
;; texlive-generic-epsf
;; texlive-fonts-ec)))
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 0350536061..b425c3b299 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -245,7 +245,7 @@ the real span of the lattice.")
"14xs90wrw8mbdx08hxlbhiahp6kgjq6yh27zjw7fvhfjx5nr84f8"))))
(build-system gnu-build-system)
(native-inputs
- `(("texlive" ,(texlive-union
+ `(("texlive" ,(texlive-updmap.cfg
(list texlive-amsfonts)))))
(inputs `(("gmp" ,gmp)
("libx11" ,libx11)
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index c3b1ec6678..058949618e 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -2904,7 +2904,7 @@ data and settings.")
("cairo" ,cairo)
("rmath-standalone" ,rmath-standalone)))
(native-inputs
- `(("texlive" ,(texlive-union (list texlive-cm
+ `(("texlive" ,(texlive-updmap.cfg (list texlive-cm
texlive-amsfonts
texlive-latex-doi
@@ -14186,7 +14186,7 @@ to an artifact/contaminant file.")
`(("openmpi" ,openmpi)
("zlib" ,zlib)))
(native-inputs
- `(("texlive" ,(texlive-union (list texlive-latex-graphics
+ `(("texlive" ,(texlive-updmap.cfg (list texlive-latex-graphics
texlive-latex-hyperref)))))
(home-page "https://www.ebi.ac.uk/~zerbino/velvet/")
(synopsis "Nucleic acid sequence assembler for very short reads")
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index 85a3bb1d1a..11cd04c161 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -88,7 +88,7 @@
("zlib:static" ,zlib "static")
("stex" ,stex)))
(native-inputs
- `(("texlive" ,(texlive-union (list texlive-latex-oberdiek
+ `(("texlive" ,(texlive-updmap.cfg (list texlive-latex-oberdiek
texlive-generic-epsf)))
("ghostscript" ,ghostscript)
("netpbm" ,netpbm)))
@@ -273,7 +273,7 @@ and 32-bit PowerPC architectures.")
(native-inputs
`(("chez-scheme" ,chez-scheme)
("ghostscript" ,ghostscript)
- ("texlive" ,(texlive-union (list texlive-latex-oberdiek
+ ("texlive" ,(texlive-updmap.cfg (list texlive-latex-oberdiek
texlive-generic-epsf
texlive-metapost
texlive-fonts-charter
@@ -332,7 +332,7 @@ programming in Scheme.")
(native-inputs
`(("chez-scheme" ,chez-scheme)
("chez-web" ,chez-web)
- ("texlive" ,(texlive-union (list texlive-pdftex)))))
+ ("texlive" ,(texlive-updmap.cfg (list texlive-pdftex)))))
(arguments
`(#:tests? #f ; no tests
#:phases
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index 21a4f7b45f..f797c97cf3 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -397,7 +397,7 @@ the in DocBook SGML DTDs.")
(build-system python-build-system)
;; TODO: Add xfig/transfig for fig2dev utility
(inputs
- `(("texlive" ,(texlive-union (list texlive-amsfonts
+ `(("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
texlive-latex-anysize
texlive-latex-appendix
texlive-latex-changebar
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 81ae90ea31..d29eed0687 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -2118,7 +2118,7 @@ as a library for other Emacs packages.")
`(("perl" ,perl)))
(inputs
`(("ghostscript" ,ghostscript)
- ("texlive" ,(texlive-union (list texlive-amsfonts)))))
+ ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts)))))
(home-page "https://www.gnu.org/software/auctex/")
(synopsis "Integrated environment for TeX")
(description
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 3b8bcd9194..7928b4d06f 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -514,7 +514,7 @@ featuring various improvements and bug fixes.")))
;; FIXME: with texlive-tiny citation references are rendered as question
;; marks. During the build warnings like these are printed:
;; LaTeX Warning: Citation `nabors91' on page 2 undefined on input line 3.
- `(("texlive" ,(texlive-union (list texlive-fonts-amsfonts)))
+ `(("texlive" ,(texlive-updmap.cfg (list texlive-fonts-amsfonts)))
("ghostscript" ,ghostscript)))
(arguments
`(#:make-flags '("CC=gcc" "RM=rm" "SHELL=sh" "all")
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index c5eaa8a2ca..2dd8752fc8 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3144,7 +3144,7 @@ API.")
("perl" ,perl)
("pkg-config" ,pkg-config)
("texinfo" ,texinfo)
- ("texlive" ,(texlive-union (list texlive-generic-epsf)))))
+ ("texlive" ,(texlive-updmap.cfg (list texlive-generic-epsf)))))
(inputs
`(("dbus-glib" ,dbus-glib)
("guile" ,guile-3.0)
@@ -3421,7 +3421,7 @@ feature-set, fully programmable in Guile Scheme.")
("vigra-c" ,vigra-c)
("guile" ,guile-2.2)))
(native-inputs
- `(("texlive" ,(texlive-union (list texlive-booktabs
+ `(("texlive" ,(texlive-updmap.cfg (list texlive-booktabs
texlive-lm
texlive-siunitx
texlive-standalone
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index e89d777d2c..7d65bfc887 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -434,7 +434,7 @@ an interpreter, a compiler, a debugger, and much more.")
("ed" ,ed)
("inetutils" ,inetutils) ;for hostname(1)
("texinfo" ,texinfo)
- ("texlive" ,(texlive-union (list texlive-tex-texinfo)))
+ ("texlive" ,(texlive-updmap.cfg (list texlive-tex-texinfo)))
("which" ,which)
("zlib" ,zlib)))
(arguments
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 4019c7efaf..d46cca8f3a 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2010,7 +2010,7 @@ script files.")
,@(package-inputs octave-cli)))
(native-inputs
`(("qttools" , qttools) ;for lrelease
- ("texlive" ,(texlive-union (list texlive-epsf))) ; for texi2dvi
+ ("texlive" ,(texlive-updmap.cfg (list texlive-epsf))) ; for texi2dvi
,@(package-native-inputs octave-cli)))
(arguments
(substitute-keyword-arguments (package-arguments octave-cli)
@@ -4464,7 +4464,7 @@ set.")
`(("doc++" ,doc++)
("netpbm" ,netpbm)
("perl" ,perl) ; needed to run 'ppmquant' during tests
- ("texlive" ,(texlive-union (list texlive-xypic
+ ("texlive" ,(texlive-updmap.cfg (list texlive-xypic
texlive-cm
texlive-latex-hyperref
texlive-bibtex)))
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index b3c25a7943..cf4e068fad 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1342,7 +1342,7 @@ and auto-mapping slices to MIDI note numbers.")
("gettext" ,gettext-minimal)
("imagemagick" ,imagemagick)
("netpbm" ,netpbm) ;for pngtopnm
- ("texlive" ,(texlive-union (list texlive-metapost
+ ("texlive" ,(texlive-updmap.cfg (list texlive-metapost
texlive-generic-epsf
texlive-lh
texlive-latex-cyrillic)))
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index f23b56728a..8928bbddd5 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -226,7 +226,7 @@ colors, styles, options and details.")
("perl" ,perl)
("texinfo" ,texinfo) ;For generating documentation
;; For the manual and the tests.
- ("texlive" ,(texlive-union (list texlive-amsfonts
+ ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
texlive-epsf
texlive-etoolbox
texlive-latex-base
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 75051eca74..89ca39dcd4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -4733,7 +4733,7 @@ color scales, and color space conversion easy. It has support for:
("pkg-config" ,pkg-config)
("python-sphinx" ,python-sphinx)
("python-numpydoc" ,python-numpydoc)
- ("texlive" ,(texlive-union (list texlive-fonts-cm-super
+ ("texlive" ,(texlive-updmap.cfg (list texlive-fonts-cm-super
texlive-fonts-ec
texlive-generic-ifxetex
texlive-generic-pdftex
@@ -4799,7 +4799,7 @@ color scales, and color space conversion easy. It has support for:
(sphinx-theme-checkout (assoc-ref inputs scipy-sphinx-theme))
(pyver ,(string-append "PYVER=")))
- ;; FIXME: this is needed to for texlive-union to generate
+ ;; FIXME: this is needed to for texlive-updmap.cfg to generate
;; fonts, which are not found.
(setenv "HOME" "/tmp")
@@ -5265,7 +5265,7 @@ toolkits.")
("python-ipykernel" ,python-ipykernel)
("python-mock" ,python-mock)
("graphviz" ,graphviz)
- ("texlive" ,(texlive-union (list texlive-amsfonts
+ ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
texlive-latex-amsmath
texlive-latex-enumitem
texlive-latex-expdlist
@@ -7378,7 +7378,7 @@ computing.")
`(("python-sphinx" ,python-sphinx)
("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
;; FIXME: It's possible that a smaller union would work just as well.
- ("texlive" ,(texlive-union (list texlive-amsfonts
+ ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
texlive-fonts-ec
texlive-generic-ifxetex
texlive-pdftex
@@ -22905,7 +22905,7 @@ By default it uses the open Python vulnerability database Safety DB.")
(propagated-inputs
`(("wheel" ,python-wheel)))
(native-inputs
- `(("texlive" ,(texlive-union (list texlive-amsfonts
+ `(("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
texlive-fonts-ec
texlive-latex-hyperref
texlive-latex-oberdiek
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 0a4b623360..f7d348a242 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -303,7 +303,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
("python-scipy" ,python-scipy)
("python-sphinx" ,python-sphinx)
("swig" ,swig)
- ("texlive" ,(texlive-union (list texlive-amsfonts
+ ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
texlive-latex-amsmath
;; TODO: Add newunicodechar.
texlive-latex-graphics)))
@@ -471,7 +471,7 @@ to access different radio hardware.")
("doxygen" ,doxygen)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
- ("texlive" ,(texlive-union (list texlive-amsfonts
+ ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
texlive-latex-amsmath
;; TODO: Add newunicodechar.
texlive-latex-graphics)))))
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index a5a1793d3a..e16f4dc1b9 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -170,7 +170,7 @@
("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
- ("texlive" ,(texlive-union (list texlive-tex-texinfo)))
+ ("texlive" ,(texlive-updmap.cfg (list texlive-tex-texinfo)))
("texinfo" ,texinfo)
("m4" ,m4)))
(inputs
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index c45544f52e..541753bb4a 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -337,7 +337,7 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\
("perl" ,perl)
("pkg-config" ,pkg-config)
("texinfo" ,texinfo) ; for building HTML manuals
- ("texlive" ,(texlive-union (list texlive-ae
+ ("texlive" ,(texlive-updmap.cfg (list texlive-ae
texlive-inconsolata
texlive-fonts-ec
texlive-amsfonts
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 3d7aed30c7..fa5a0c6404 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -3009,7 +3009,7 @@ tables.")
(symlink pdftex (string-append out "/bin/pdfxmltex"))
#t)))))))
(propagated-inputs
- ;; The following fonts are propagated as a texlive-union as the font
+ ;; The following fonts are propagated as a texlive-updmap.cfg as the font
;; maps need to be recreated for the fonts to be usable. They are
;; required by xmltex through mlnames.sty and unicode.sty.
`(("texlive" ,(texlive-updmap.cfg
@@ -3843,7 +3843,7 @@ ones.")
;; For use in package definitions only
(define-public texlive-tiny
(package
- (inherit (texlive-union))
+ (inherit (texlive-updmap.cfg))
(name "texlive-tiny")
(description "This is a very limited subset of the TeX Live distribution.
It includes little more than the required set of LaTeX packages.")))
@@ -5803,7 +5803,7 @@ Simple Young tableaux.
(symlink pdftex (string-append out "/bin/pdfjadetex"))
#t)))))))
(propagated-inputs
- ;; Propagate the texlive-union input used by xmltex, which provides the
+ ;; Propagate the texlive-updmap.cfg input used by xmltex, which provides the
;; required fonts for its use.
`(("texlive-xmltex" ,texlive-xmltex)
("texlive-kpathsea" ,texlive-kpathsea))) ;for fmtutil.cnf template
@@ -6685,7 +6685,7 @@ develop documents with LaTeX, in a single application.")
(delete-file "book.pdf")
#t)))))
(native-inputs
- `(("texlive" ,(texlive-union (list texlive-amsfonts
+ `(("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
texlive-fonts-adobe-palatino
texlive-fonts-adobe-zapfding
texlive-knuth-lib
@@ -6755,7 +6755,7 @@ and Karl Berry.")
("qtsvg" ,qtsvg)
("zlib" ,zlib)))
(propagated-inputs
- `(("texlive" ,(texlive-union (list texlive-fonts-ec)))))
+ `(("texlive" ,(texlive-updmap.cfg (list texlive-fonts-ec)))))
(native-inputs
`(("python" ,python)
("pkg-config" ,pkg-config)))
--
2.29.2
M
M
Maxim Cournoyer wrote on 29 Jan 2021 21:25
Re: bug#45870: [PATCH core-updates 0/3] Allow composing multiple TeX Live trees
(address . 45870-done@debbugs.gnu.org)
87zh0rwkvi.fsf@gmail.com
Hello,

Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

Toggle quote (6 lines)
> Our default texmf.cnf configuration file used by TeX Live (via kpathsea) to
> locate its resources can be modified to support multiple TeX Live trees
> without having to resort to unions. This has the advantage that any TeX Live
> inputs (including font maps) can composed and propagated, and overall
> simplifies things.

Pushed to core-updates by the three commits, the last one being
82f5f6b14c.

Closing.

Maxim
Closed
?