summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-03-13 17:12:03 +0000
committerKarl Berry <karl@freefriends.org>2020-03-13 17:12:03 +0000
commit174147dcdbfb24f62966d39bb4f196d9b38895e4 (patch)
tree1b56a1618b925674f91109cb9ec61a258ada01d9
parente08a47414604e2e6b77c46f390631522729455e3 (diff)
2020 tlbuild update
git-svn-id: svn://tug.org/texlive/trunk@54277 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/README.0overview12
-rw-r--r--Build/source/README.1prerequisites39
-rw-r--r--Build/source/README.2building148
-rw-r--r--Build/source/README.3installing37
-rw-r--r--Build/source/README.4layout290
-rw-r--r--Build/source/README.5configure135
-rw-r--r--Build/source/README.6coding22
-rw-r--r--Build/source/README.7continuous60
-rw-r--r--Build/source/doc/ChangeLog6
-rw-r--r--Build/source/doc/Makefile.am15
-rw-r--r--Build/source/doc/Makefile.in18
-rw-r--r--Build/source/doc/build-tools.txt2
-rw-r--r--Build/source/doc/tlbuild-incl/install-tl.texi231
-rw-r--r--Build/source/doc/tlbuild-incl/tlmgr.texi534
-rw-r--r--Build/source/doc/tlbuild.info1951
-rw-r--r--Build/source/doc/tlbuild.texi6
-rw-r--r--Master/tlpkg/doc/releng.txt4
17 files changed, 2083 insertions, 1427 deletions
diff --git a/Build/source/README.0overview b/Build/source/README.0overview
index 5065317b637..c99c50f24b2 100644
--- a/Build/source/README.0overview
+++ b/Build/source/README.0overview
@@ -5,10 +5,10 @@
2 Overview of build system
**************************
-The TeX Live build system was redesigned in 2009, consistently using
-Autoconf, Automake, and Libtool. Thus
+The TeX Live build system was redesigned in 2009 to consistently use
+Autoconf, Automake, and Libtool. Thus, running
'configure && make && make check && make install'
-or the basically-equivalent top-level 'Build' script suffice to build
+or the essentially-equivalent top-level 'Build' script suffices to build
and install the TL programs. The 'make check' clause performs various
tests of the generated programs--not strictly required but strongly
recommended. Running 'configure --help' will display a comprehensive
@@ -34,7 +34,7 @@ program and library module (or package) specifies its own requirements
and properties, such as required libraries, whether an installed
(system) version of a library can be used, 'configure' options to be
seen at the top level, and more. An explicit list of all available
-modules is kept in only one central place, namely 'm4/kpse-pkgs.m4'.
+modules is kept in a single central place: 'm4/kpse-pkgs.m4'.
A second, related goal is to configure and build each library before
configuring any other (program or library) module which uses that
@@ -47,6 +47,6 @@ independently. The corresponding modules use (most of) the distributed
source tree and document any modifications of that source.
All this is for the sake of simplifying both upgrading of modules and
-integrating new modules into the TL build system. (Not to say that
-either task is trivial.)
+integrating new modules into the TL build system. (Despite all efforts,
+neither task is easy.)
diff --git a/Build/source/README.1prerequisites b/Build/source/README.1prerequisites
index 6d7ea74d589..443a4826ecc 100644
--- a/Build/source/README.1prerequisites
+++ b/Build/source/README.1prerequisites
@@ -6,36 +6,37 @@
***************
Overall, building the TeX Live programs, when using all libraries from
-the TL source tree, requires only C and C++ compilers and GNU 'make'.
-(If 'make' from your 'PATH' is not GNU make, you can set 'MAKE' in the
-environment to whatever is necessary.)
+the TL source tree, requires C and C++11 compilers and GNU 'make'. If
+'make' from your 'PATH' is not GNU make, you can set the 'MAKE'
+environment variable to whatever is necessary.
GNU 'make' is required only because of some third-party libraries,
notably FreeType; all the TL-maintained directories (and
-Automake/Autoconf output in general) should work with any reasonable
-'make'.
+Automake/Autoconf output in general) work with any reasonable 'make'.
- However, a few programs in the tree have additional requirements:
+ A C++11 compiler is similarly required because of the third-party
+libraries ICU and Poppler; the program 'dvisvgm' also requires C++11.
+It is possible to build everything else with older compilers, but you
+have to remove the C++11-dependent sources. *Note Build one package::.
-'dvisvgm'
- requires a C++11 compiler, such as gcc 4.8.1 (or later) or clang
- 3.3 (or later).
+ A few programs in the tree have additional requirements:
'web2c'
requires 'perl' for some tests run by 'make check'.
'xdvik'
'xpdfopen'
- require X11 headers and libraries, often in "development" packages
- that are not installed by default.
+ require X11 headers and libraries, typically in "development"
+ packages that are not installed by default.
'xetex'
requires 'fontconfig' (again both headers and library), or, for
MacOSX only, the 'ApplicationServices' and 'Cocoa' frameworks.
'xindy'
- requires GNU 'clisp' and in addition 'perl', 'latex', and
- 'pdflatex' to build the rules and/or documentation.
+ requires GNU 'clisp', 'libsigsegv', and 'libiconv'; additionally,
+ to build the rules and/or documentation: 'perl', 'latex',
+ 'pdflatex'.
Lacking the required tools, building these programs must avoided, e.g.,
'configure --without-x --disable-xetex --disable-xindy'
@@ -44,14 +45,17 @@ Lacking the required tools, building these programs must avoided, e.g.,
expect:
* Modification of any '.y' or '.l' source files requires 'bison' or
- 'flex' to updatete the corresponding C sources.
+ 'flex' to update the corresponding C sources.
* Modification of the sources for '.info' files requires 'makeinfo'.
* Modification of any part of the build system (M4 macros,
'configure.ac', 'Makefile.am', or their fragments) requires GNU M4,
GNU Autoconf, GNU Automake, and GNU Libtool to update the generated
- files. *Note Build system tools::.
+ files. Furthermore, to reliably reproduce the build files, the
+ original GNU releases of these tools must be used, not any distro
+ packaging of them. *Note Build system tools::, for more
+ discussion.
If you haven't modified any source files, and infrastructure tools
such as 'autoconf' or 'makeinfo' are still being run, check your
@@ -59,8 +63,3 @@ timestamps--notably, 'use-commit-times' must be set to 'yes' in your
Subversion configuration (*note Build system tools::). Barring buggy
commits, no infrastructure tools are needed to do a normal build.
- As an example, on Debian systems the necessary build dependencies can
-be installed via:
-
- apt-get install libfontconfig-dev libx11-dev libxmu-dev libxaw7-dev
-
diff --git a/Build/source/README.2building b/Build/source/README.2building
index d19b92c2a8a..d797d72ed19 100644
--- a/Build/source/README.2building
+++ b/Build/source/README.2building
@@ -7,28 +7,28 @@
The top-level 'Build' script is intended to simplify building the
binaries distributed with TeX Live itself--we call this the "native" TL
-build. It configures and makes everything in a subdirectory of the main
-build tree (default 'Work/'), installs everything in another
-subdirectory (default 'inst/'), and finally runs 'make check'. The
-exact directory and command names can be specified via environment
-variables and a few leading options. All remaining arguments
-(assignments or options) are passed to the 'configure' script. Please
-take a look at the './Build' source file itself for more information; it
+build. It runs 'configure && make world', which builds everything in a
+subdirectory of the main source tree (default 'Work/'), installs
+everything in another subdirectory (default 'inst/'), and finally runs
+'make check'. The exact directory and command names can be specified
+via environment variables and a few leading options. All remaining
+arguments (assignments or options) are passed to the 'configure' script.
+Please take a look at the './Build' source file for more information; it
is a straightforward shell script.
An alternative, and the one we will mainly discuss here, is to run
-'configure' and 'make' oneself in a suitable empty subdirectory.
-Building in the source directory itself is not supported (sorry).
+'configure' and 'make' in a suitable empty subdirectory. Building in
+the source directory itself is not supported (sorry).
4.1 Build iteration
===================
Running the top-level 'configure' script configures the top level and
the subdirectories 'libs', 'utils', and 'texk'. Running 'make' at the
-top-level first iterates over all TeX-specific libraries, and then runs
-'make' in 'libs', 'utils', and 'texk' to iterate over all generic
-libraries, utility programs, and TeX-specific programs. These
-iterations consist of two steps:
+top level first iterates over the TeX-specific libraries, and then runs
+'make' in 'libs', 'utils', and 'texk' to iterate over the generic
+libraries, utility programs, and TeX-specific programs, respectively.
+These iterations consist of two steps:
1. For each library or program module not yet configured, run
'configure', adding the configure option '--disable-build' if the
@@ -39,28 +39,29 @@ iterations consist of two steps:
'check' to run tests, 'install', etc.
Running the top-level 'make' a second time iterates again over all
-the library and program modules, but finds (should find) nothing to be
-done unless some source files have been modified.
+the library and program modules, and finds (should find) nothing to be
+done.
4.2 Build problems
==================
-If configuring or building a module fails, you should first find and fix
-the problem, then perhaps remove the subdirectory for that module from
-the build tree, and finally rerun the top level 'make' (or 'Build' with
-'--no-clean' as its first argument).
+If configuring or building a module fails, you should first try to find
+and fix the problem. Failing that, a possible workaround is to remove
+the subdirectory for that module from the build tree (so 'configure'
+won't try to run there, and finally rerun the top level 'make' (or
+'./Build' '--no-clean').
4.3 Build in parallel
=====================
The TL build system carefully formulates dependencies as well as 'make'
-rules when a tool (such as 'tangle', 'ctangle', or 'convert') creates
+rules when a tool (such as 'tangle', 'ctangle', and 'convert') creates
several output files. This allows for parallel builds ('make -j N' with
N>1 or even 'make -j') that can considerably speed up the TL build.
- Incidentally, a noticeable speed-up can also be (independently)
-gained by using a configure cache file, i.e., with the option '-C'
-(recommended).
+ Incidentally, a noticeable speed-up can be independently gained by
+using a configure cache file, i.e., specifying the 'configure' option
+'-C' (recommended).
4.4 Build distribution
======================
@@ -72,7 +73,8 @@ all of TL.
This is useful for checking consistency of the source tree and
Makefiles, but the result is not a complete or even usable TeX system,
-since all the support files are lacking; *note Installing::.
+since all the support files are lacking; *note Installing::. We do not
+actually distribute any such tarball, and have no plans to do so.
4.5 Build one package
=====================
@@ -81,23 +83,16 @@ To build one package, the basic idea is to use the 'configure' option
'--disable-all-pkgs' (*note --disable-all-pkgs::). Then all program and
library modules are configured but none are made. However, the
'Makefile's still contain all build rules and dependencies and can be
-invoked to build an individual program or library and causes to first
-build any required libraries.
+invoked to build an individual program or library, first building any
+required libraries.
- This "build-on-demand" procedure is used, e.g., in the upstream
-LuaTeX repository to build LuaTeX, essentially from a subset of the
-complete TeX Live tree. Similarly, when, e.g., building the original
-e-TeX has been disabled (as it is by default), one can run 'make etex'
-(or 'make etex.exe') in 'texk/web2c/' to build e-TeX (although there is
-no comparably simple way to install e-TeX).
-
- If you want to work on a single program within the TL sources, this
-is the recommended way to do it. Here is an example from start to
-finish for working on 'dvipdfm-x'.
+ Here is an example from start to finish for working on 'dvipdfm-x'.
+(Unfortunately, this does not suffice for building one, or a subset, of
+the TeX engines; see the next section.)
mkdir mydir && cd mydir # new working directory
- # Get sources (<http://tug.org/texlive/svn>)
+ # Get sources (<https://tug.org/texlive/svn>), e.g.:
rsync -a --delete --exclude=.svn --exclude=Work \
tug.org::tldevsrc/Build/source/ .
@@ -106,27 +101,30 @@ finish for working on 'dvipdfm-x'.
# Do the configure:
../configure --disable-all-pkgs --enable-dvipdfm-x \
- -C CFLAGS=-g CXXFLAGS=-g >&outc
+ -C CFLAGS=-g CXXFLAGS=-g >&outc || echo fail
# Do the make:
- make >&outm
+ make >&outm || echo fail
# Test:
cd texk/dvipdfm-x
make check
- Then you modify source files in 'mydir/texk/dvipdfm-x' and rerun
-'make' in 'mydir/Work/texk/dvipdfm-x' to rebuild.
+ Then you can modify source files in 'mydir/texk/dvipdfm-x' and rerun
+'make' in 'mydir/Work/texk/dvipdfm-x' to rebuild; that build directory
+is where the binary ends up and where you can run a debugger, etc.
The second line of the 'configure' invocation shows examples of extra
things you likely want to specify if you intend to hack the sources (and
-not just build binaries): the '-C' speeds up 'configure', and the
-'CFLAGS' and 'CXXFLAGS' settings eliminate compiler optimization for
-debugging purposes.
+not just build binaries): the '-C' speeds 'configure' by enabling a
+cache file, and the 'CFLAGS' and 'CXXFLAGS' settings eliminate compiler
+optimization for debugging purposes.
- Of course, one should actually look at the output and check that
+ Of course, you need to actually look at the output and check that
things are working. There are many 'configure' options you can tweak as
-desired; check the output from 'configure --help'.
+desired; check the output from 'configure --help'. It is also a good
+idea to run 'make check' after making any changes, to ensure that
+whatever tests have been written still pass.
Finally, the above retrieves the entire TL source tree (several
hundred megabytes). It is natural to ask if this is really necessary.
@@ -134,22 +132,54 @@ Strictly speaking, the answer is no, but it is vastly more convenient to
do so. If you cut down the source tree, you must also give additional
'configure' flags to individually disable using system versions of
libraries, or the intricacies of the dependencies (such as 'teckit'
-requiring 'zlib') will have undesired side effects. For an example, see
-the 'build-pdftex.sh' script in the 'pdftex' development source
-(<http://pdftex.org>), which is indeed a cut-down TL source tree.
+requiring 'zlib') will have undesired side effects. For an example of
+this approach, see the 'build-pdftex.sh' script in the 'pdftex'
+development source (details at <http://pdftex.org>), which is indeed
+such a cut-down TL source tree.
+
+ Some libraries and programs require C++11. If you want to build with
+an older compiler lacking such support, you need to (re)move those
+source directories; specifying '--disable' for them does not suffice,
+unfortunately. Specifically, before running 'configure':
+
+ rm -rf libs/icu libs/poppler libs/graphite2 texk/dvisvgm
- Even with '--disable-all-pkgs', dependencies will be checked. For
-instance, if a non-MacOSX system does not have 'fontconfig', XeTeX
-cannot be built (*note Prerequisites::) and 'configure' will terminate.
-To proceed without such dependencies, specify '--enable-missing' also.
-(Arguably this should happen automatically.)
+ Also, even with '--disable-all-pkgs', dependencies are (currently)
+checked. For instance, if a (non-MacOSX) system does not have
+'fontconfig', XeTeX cannot be built (*note Prerequisites::), and
+'configure' will terminate even with '--disable-xetex'. To proceed
+without such dependencies, specify '--enable-missing' also. (Patches to
+improve this would be most welcome.)
By default, the 'gcc' compilers will be used if present; otherwise,
individual packages may use something different. You can explicitly
specify the compilers to be used with the environment variables 'CC',
'CXX', and 'OBJCXX'.
-4.6 Cross compilation
+4.6 Build one engine
+====================
+
+Unfortunately, there is one common case where the steps in the preceding
+section to build one package (*note Build one package::) do not suffice:
+wanting to build one, or a subset, of the TeX engines (or other Web2c
+programs).
+
+ The simplest way to do this is to disable everything and then
+explicitly specify what to make. For example, to build only LuaTeX:
+
+ ./configure --disable-all-pkgs # or ./Build
+ cd Work/texk/web2c # build directory
+ make luatex # specify target
+
+ This works because the 'make' automatically runs 'configure' as
+necessary for the dependencies and target. Furthermore, the source tree
+can be cut down to just what is needed for the given engine (the
+separate pdfTeX and LuaTeX source repositories do this, if you want to
+peruse examples).
+
+ We hope to improve the situation in the future. Patches are welcome.
+
+4.7 Cross compilation
=====================
In a cross compilation a "build" system is used to create binaries to be
@@ -174,7 +204,7 @@ MacOSX system one could use:
OBJCXX='clang++ -arch i386'" \
./Build --build=i386-apple-darwin
-4.6.1 Cross configuring
+4.7.1 Cross configuring
-----------------------
In a standard cross compilation, binaries for the host system cannot
@@ -220,7 +250,7 @@ C and C++ programs required for the build process as configure arguments
BUILDCXXFLAGS=...
BUILDLDFLAGS=...
-4.6.2 Cross problems
+4.7.2 Cross problems
--------------------
The fact that binaries for the host system cannot be executed on the
@@ -246,10 +276,10 @@ during the cross compilation.
This approach would also be possible for the tools such as 'tangle'
used in the module 'texk/web2c' to build the WEB programs, but that
would require first building a native 'kpathsea' library. To avoid this
-complication, cross compilation of the WEB or CWEB programs requires
+complication, cross compilation of programs written in (C)WEB requires
sufficiently recent installed versions of 'tangle', 'ctangle',
'otangle', and 'tie'.
Building 'xindy' requires running the host system 'clisp' binary,
-thus cross compilation is not possible.
+thus cross compilation is painful, but possible.
diff --git a/Build/source/README.3installing b/Build/source/README.3installing
index a7142d99bee..8c4d8ed1545 100644
--- a/Build/source/README.3installing
+++ b/Build/source/README.3installing
@@ -9,14 +9,14 @@ This section discusses the results of 'make install' in the source tree.
The main consideration is that 'make install' is not enough to make a
usable TeX installation. Beyond the compiled binaries, (thousands of)
-support files are needed; just as a first example 'plain.tex' is not in
+support files are needed; just as a first example, 'plain.tex' is not in
the source tree.
These support files are maintained completely independently and are
-not present in the source tree. The best basis for dealing with them is
-the TeX Live (plain text) database in 'Master/tlpkg/texlive.tlpdb',
+not present in the TL source tree. The best basis for dealing with them
+is the TeX Live (plain text) database in 'Master/tlpkg/texlive.tlpdb',
and/or the TeX Live installer, 'install-tl'. More information is under
-'Master/tlpkg' and at <http://tug.org/texlive/distro.html>.
+'Master/tlpkg' and at <https://tug.org/texlive/distro.html>.
5.1 Installation directories
============================
@@ -28,7 +28,7 @@ Running 'make install' (or 'make install-strip') installs executables in
'INFODIR'.
The values of these directories are determined by 'configure' and can
-be specified explictly as options such as '--prefix=PREFIX' or
+be specified explicitly as options such as '--prefix=PREFIX' or
'--bindir=BINDIR'; otherwise, they are given by their usual Autoconf
defaults:
@@ -55,7 +55,7 @@ except possibly modified as follows:
The top-level 'configure' script displays all these installation paths.
For the native TL build, the 'Build' script leaves the binaries in
-'./inst/bin/STD-PLATFORM-NAME'. The new binaries are not directly
+'./inst/bin/STD-SYSTEM-TRIPLET'. The new binaries are not directly
usable from that location; they need to be copied to
'Master/bin/TL-PLATFORM'. The other files and directories that end up
in './inst/' are ignored.
@@ -72,8 +72,9 @@ elsewhere with copies under 'texk/texlive/linked_scripts'.
'DATAROOTDIR/texmf-dist/scripts'; for Unix-like systems a symbolic link
is made in 'BINDIR'. For example, a symlink points from 'BINDIR/ps2eps'
to 'DATAROOTDIR/texmf-dist/scripts/ps2eps/ps2eps.pl'. For Windows, a
-standard wrapper binary (e.g., 'BINDIR/ps2eps.exe') serves the same
-purpose. (The source for the wrapper is in 'texk/texlive/w32_wrapper'.)
+standard wrapper binary (copied to, e.g., 'BINDIR/ps2eps.exe') serves
+the same purpose. The source for the wrapper is in
+'texk/texlive/w32_wrapper'.
One reason for this is to avoid having many copies of the same
script; a more important reason is that it guarantees the scripts will
@@ -83,9 +84,9 @@ stay in sync across the different supported operating systems.
to be as close as possible to what is in the TL distribution. At
present, there are a few exceptions--Asymptote, Biber, Xindy--and each
one creates considerable extra work. We don't want to add more. (See
-<http://tug.org/texlive/build.html> for information about building those
-exceptions, as well as the 'xz' and 'wget' programs that are used in the
-TL infrastructure.)
+<https://tug.org/texlive/build.html> for information about building
+those exceptions, as well as the 'xz' and 'wget' programs that are used
+in the TL infrastructure.)
5.3 Distro builds
=================
@@ -96,12 +97,12 @@ different from a "distro" build needed by, e.g., a full GNU/Linux or BSD
operating system distribution.
The native TL distribution uses shared libraries only when absolutely
-necessary ('libc', 'libm', X11 libraries, and 'libfontconfig').
-However, a distro typically wants to use as many shared libraries as
+necessary ('libc', 'libm', X11 libraries, and 'libfontconfig'). In
+contrast, a distro typically wants to use as many shared libraries as
possible from elsewhere on the system, including TeX-specific libraries
such as 'libkpathsea' (even though Kpathsea has never officially been
-released as a shared library, but we digress). In addition, the
-installation paths will, in general, be completely different.
+released as a shared library). In addition, the installation paths
+will, in general, be completely different.
Here are the 'configure' options that distro builds are likely to
find most relevant:
@@ -122,8 +123,8 @@ find most relevant:
Do not build the static versions of the TeX-specific libraries.
'--with-system-LIB'
- Use system versions for as many libraries LIB as possible.
- 'configure --help' will give you the list of possibilities.
+ Look for and use a system version of the library LIB. 'configure
+ --help' will give you the list of possibilities.
'--with-LIB-includes=DIR'
'--with-LIB-libdir=DIR'
@@ -142,7 +143,7 @@ find most relevant:
(*note Installing::), and many other issues, such as font maps,
languages, and formats, independently of the build. Norbert Preining
has written a detailed article on adapting TL for distros:
-<http://tug.org/TUGboat/tb34-3/tb108preining-distro.pdf>. (If the
+<https://tug.org/TUGboat/tb34-3/tb108preining-distro.pdf>. (If the
article needs updating in the future, perhaps we will merge it into this
document.)
diff --git a/Build/source/README.4layout b/Build/source/README.4layout
index 11430677868..64ca8aaf1a4 100644
--- a/Build/source/README.4layout
+++ b/Build/source/README.4layout
@@ -13,8 +13,8 @@ build and install them together with some of their support files.
6.1 Build system tools
======================
-As mentioned above (*note Prerequisites::), a normal build requires very
-little. On the other hand, if you want to modify the TeX Live
+As mentioned above (*note Prerequisites::), a normal build has few
+requirements. On the other hand, if you want to modify the TeX Live
infrastructure sources, such as 'configure.ac' or 'Makefile.am' files,
you will need to have several additional tools installed.
@@ -28,12 +28,12 @@ many extra hassles, so don't do that, tempting as it may be.
Currently the versions we use are:
autoconf (GNU Autoconf) 2.69
- automake (GNU automake) 1.15.1
- bison (GNU Bison) 3.0.4
+ automake (GNU automake) 1.16.1
+ bison (GNU Bison) 3.5.2
flex 2.6.0
ltmain.sh (GNU libtool) 2.4.6
m4 (GNU M4) 1.4.18
- makeinfo (GNU texinfo) 6.5
+ makeinfo (GNU texinfo) 6.7
These versions should be used to update the generated files (e.g.,
'configure' or 'Makefile.in') in all or parts of the TL tree after their
@@ -41,16 +41,20 @@ dependencies have been changed. This can be done explicitly with the
top-level 'reautoconf' script or implicitly by using the configure
option '--enable-maintainer-mode'.
+ It has often turned out that the bison and flex versions are not
+critical; however, the autotools versions are. If you don't have the
+given versions, get them before modifying the build infrastructure.
+
The files in the Subversion repository (see
-<http://tug.org/texlive/svn>) are all up to date, but unfortunately this
-may not be reflected by their timestamps. (For starters, be sure to set
-'use-commit-times=yes' in '~/.subversion/config' or the equivalent.)
+<https://tug.org/texlive/svn>) are all up to date (barring bugs). For
+this to be reflected by their timestamps in your checkout, be sure to
+set 'use-commit-times=yes' in '~/.subversion/config' or the equivalent.
- To avoid unnecessary runs of 'bison', 'flex', or 'makeinfo' it may be
-necessary to 'touch' the generated ('.c', '.h', or '.info') files. With
-'--enable-maintainer-mode' it may also be necessary to 'touch' first
-'aclocal.m4', then 'configure' and 'config.h.in' (or 'c-auto.in'), and
-finally all 'Makefile.in' files. Perhaps 'make -t' will help.
+ If timestamps are wrong, you may also be able to avoid unnecessary
+runs of 'bison', 'flex', or 'makeinfo' with 'touch' of the generated
+('.c', '.h', or '.info') files. With '--enable-maintainer-mode' it may
+also be necessary to 'touch' first 'aclocal.m4', then 'configure' and
+'config.h.in' (or 'c-auto.in'), and finally all 'Makefile.in' files.
6.2 Top-level directories
=========================
@@ -81,31 +85,28 @@ configured for the benefit of 'make' targets such as 'dist' or
The top-level 'build-aux/' directory contains the common files
'compile', 'config.guess', 'config.sub', 'depcomp', etc. used by most
-packages. These are from the GNU Gnulib sources
-(<http://www.gnu.org/software/gnulib>), which in turn synchronizes with
-the appropriate ultimate upstream repository. There are, however,
-independent copies in, e.g., 'libs/freetype2/freetype-*/builds/unix/',
-and a few other places. The 'reautoconf' script does not touch those,
-but a TL cron job keeps them in sync (nightly).
-
- The directory 'extra/' contains things which are not part of the TL
-build, but are present just for (someone's) convenience, e.g., is
-'epstopdf' development source is here.
+packages. These are taken from the GNU Gnulib sources
+(<https://www.gnu.org/software/gnulib>), which in turn synchronizes with
+any ultimate upstream repository. There are independent copies of some
+of these in a few other places, e.g.,
+'libs/freetype2/freetype-*/builds/unix/'. The 'reautoconf' script does
+not touch those, but a TL cron job keeps them in sync (nightly).
When the top-level './Build' script is used to build TL, two more two
more top-level directories appear: 'Work/' for the build tree, and
'inst/' for the install tree (from 'make install'). These names (and
everything else about 'Build''s operation) can be changed by setting
-environment variables before running it; see the script file.
+environment variables before running it; see the script source.
6.3 Autoconf macros
===================
-Here we describe some of the Autoconf macros used in several modules-not
-a complete list, by any means. These general macros are supplemented by
-module-specific macros in directories such as 'texk/dvipng/m4/'; some of
-those are described in *note Library modules:: and *note Program
-modules::.
+Here we describe a few of the Autoconf macros used in several
+modules--many more are defined in the sources; see the top-level 'm4/'
+directory. These general macros are supplemented by module-specific
+macros in directories such as 'texk/dvipng/m4/'; some of those are
+described in following sections (*note Library modules:: and *note
+Program modules::).
6.3.1 General setup macros
--------------------------
@@ -126,8 +127,8 @@ The TL sources use two general setup macros:
'LT_INIT([win32-dll])'
'AC_SYS_LARGEFILE'
'AC_FUNC_FSEEKO'
- and check for frequently used functions, headers, types, and
- structures. This is used for TeX-specific modules.
+ along with checks for frequently used functions, headers, types,
+ and structures. This is used for TeX-specific modules.
6.3.2 Macros for programs
-------------------------
@@ -135,11 +136,11 @@ The TL sources use two general setup macros:
Macros for program checks:
-- Macro: KPSE_CHECK_LATEX
- Set 'LATEX' to the name of the first of 'latex', 'elatex', or
- 'lambda' which exists in 'PATH', or to 'no' if none of them exists.
- Call 'AC_SUBST' for 'LATEX'. The result of this test can be
- overridden by setting the 'LATEX' environment variable or the cache
- variable 'ac_cv_prog_LATEX'.
+ Set 'LATEX' to the first of 'latex', 'elatex', or 'lambda' which
+ exists in 'PATH', or to 'no' if none of them exists. Call
+ 'AC_SUBST' for 'LATEX'. The result of this test can be overridden
+ by setting the 'LATEX' environment variable or the cache variable
+ 'ac_cv_prog_LATEX'.
-- Macro: KPSE_CHECK_PDFLATEX
Check for 'pdflatex' in 'PATH' and set 'PDFLATEX'.
@@ -159,8 +160,8 @@ Macros for compiler-related checks:
When using the (Objective) C/C++ compiler, set
'WARNING_[OBJ]C[XX]FLAGS' to suitable warning flags (depending on
the value given to or implied for '--enable-compiler-warnings').
- Call 'AC_SUBST' for them. At the moment this only works for GNU
- compilers, but could be extended to others if necessary.
+ Call 'AC_SUBST' for them. At present this assumes GNU compiler
+ warning options, but could be extended to others if necessary.
This macro caches its results in the 'kpse_cv_warning_cflags', ...
variables.
@@ -168,9 +169,9 @@ Macros for compiler-related checks:
-- Macro: KPSE_COMPILER_VISIBILITY
When using the C or C++ compiler, try to set
'VISIBILITY_C[XX]FLAGS' to flags to hide external symbols. Call
- 'AC_SUBST' for this variable. At the moment this only tests for
- the compiler option '-fvisibility=hidden', but that could be
- extended with more checks if necessary.
+ 'AC_SUBST' for this variable. At present this only tests for the
+ compiler option '-fvisibility=hidden', but could be extended if
+ necessary.
This macro caches its results in the 'kpse_cv_visibility_cflags' or
'kpse_cv_visibility_cxxflags' variable.
@@ -178,8 +179,7 @@ Macros for compiler-related checks:
-- Macro: KPSE_CXX_HACK
Provide the configure option '--enable-cxx-runtime-hack'. If
enabled and when using 'g++', try to statically link with
- 'libstdc++', somewhat improving portability of the resulting
- binary.
+ 'libstdc++', notably improving portability of the resulting binary.
This macro caches its result in the 'kpse_cv_cxx_hack' variable.
@@ -202,10 +202,12 @@ library. E.g., for 'libs/libpng':
-- Macro: KPSE_LIBPNG_FLAGS
Provide the configure option '--with-system-libpng'. Set and
'AC_SUBST' 'make' variables for modules using this library (either
- an installed version or from the TeX Live tree): 'LIBPNG_INCLUDES'
- for use in 'CPPFLAGS', 'LIBPNG_LIBS' for use in 'LDADD',
- 'LIBPNG_DEPEND' for use as dependency, and 'LIBPNG_RULE' defining
- 'make' rules to rebuild the library.
+ an installed version or from the TeX Live tree):
+
+ 'LIBPNG_INCLUDES' for use in 'CPPFLAGS',
+ 'LIBPNG_LIBS' for use in 'LDADD',
+ 'LIBPNG_DEPEND' for use as a Makefile dependency,
+ 'LIBPNG_RULE' for the 'make' rules to rebuild the library.
-- Macro: KPSE_ADD_FLAGS (NAME)
Temporarily extend 'CPPFLAGS' and 'LIBS' with the values required
@@ -229,7 +231,7 @@ and its 'Makefile.am' would be along these lines:
## Rebuild libpng
@LIBPNG_RULE@
- If it was necessary to examine whether certain 'zlib' or 'libpng'
+ If it were necessary to examine whether certain 'zlib' or 'libpng'
features were available, 'configure.ac' should be continued this way:
KPSE_ADD_FLAGS([zlib])
... # tests for 'zlib' features, if any
@@ -244,10 +246,10 @@ Windows differs in several aspects from Unix-like systems, many of them
due to the lack of symbolic links.
-- Macro: KPSE_CHECK_WIN32
- Check if compiling for a Windows system. The result is 'no' for
- Unix-like systems (including Cygwin), 'mingw32' for Windows with
- GCC, or 'native' for Windows with MSVC. The result is cached in the
- 'kpse_cv_have_win32' variable.
+ Check if compiling for a Windows system. The result is either 'no'
+ for Unix-like systems (including Cygwin), 'mingw32' for Windows
+ with GCC, or 'native' for Windows with MSVC. The result is cached
+ in the 'kpse_cv_have_win32' variable.
-- Macro: KPSE_COND_WIN32
Call 'KPSE_CHECK_WIN32' and define the Automake conditional 'WIN32'
@@ -266,7 +268,7 @@ due to the lack of symbolic links.
Linked scripts::).
-- Macro: KPSE_WIN32_CALL
- Call 'KPSE_COND_WIN32', check if the file
+ Call 'KPSE_COND_WIN32' and check if the file
'texk/texlive/w32_wrapper/callexe.c' exists; if it does, create a
symlink in the build tree. Compiling 'callexe.c' with
'-DEXEPROG='"FOO.exe"'' and installing 'callexe.exe' as 'BAR.exe'
@@ -283,14 +285,14 @@ structure and variation.
6.4.1 The 'png' library in 'libs/libpng'
----------------------------------------
-This generic library uses the source tree in, e.g., the subdirectory
-'libpng-src/' with all modifications for TL recorded in 'TLpatches/*'.
+The "generic" 'png' library uses the source tree in the subdirectory
+'libpng-src/', with all modifications for TL recorded in 'TLpatches/*'.
The 'configure.ac' fragment 'ac/withenable.ac' contains
KPSE_WITH_LIB([libpng], [zlib])
-specifying the module name, and indicating the dependency on 'zlib'. A
-third literal argument 'tree' would specify that the library from the
+to specify the module name and indicate the dependency on 'zlib'. A
+third literal argument ''tree'' would specify that the library from the
TeX Live tree cannot be replaced by a system version. That not being
the case here, a second fragment 'ac/libpng.ac' contains
@@ -308,27 +310,30 @@ thus providing the simple C code
return 0; }
which Autoconf uses to verify the usability of a system version with C
-code. The analogous macro 'KPSE_TRY_LIBXX' would check using C++ code.
-These fragments are included by 'configure.ac' at the top level.
+code. The analogous macro 'KPSE_TRY_LIBXX' would check using C++.
+These fragments are included by the 'configure.ac' at the top level of
+TL ('Build/source/configure.ac').
+
+ For this library, like many other modules, a proxy build system for
+TL is used, consisting of our own 'configure.ac', 'Makefile.am',
+'include/Makefile.am'; the distributed build system is not used.
+(Consequently, a few generated files and auxiliary scripts are removed
+from the distributed source tree.)
- For this library, among many other modules, a proxy build system for
-TL is used ('configure.ac', 'Makefile.am', and 'include/Makefile.am'),
-ignoring the distributed one. Consequently, a few generated files and
-auxiliary scripts are removed from the distributed source tree. The
-public headers 'png.h', 'pngconf.h', and 'pnglibconf.h' are "installed"
-(as symlinks) under 'include/' in the build tree exactly as they are for
-a system version under, e.g., '/usr/include/'.
+ The public headers 'png.h', 'pngconf.h', and 'pnglibconf.h' are
+"installed" (as symlinks) under 'include/' in the build tree exactly as
+they are for a system version under, e.g., '/usr/include/'.
The module is supplemented by the file 'm4/kpse-libpng-flags.m4' that
defines the M4 macro 'KPSE_LIBPNG_FLAGS' used by all modules depending
on this library in their 'configure.ac' to generate the 'make' variables
'LIBPNG_INCLUDES' for use in 'CPPFLAGS', 'LIBPNG_LIBS' for use in
-'LDADD', 'LIBPNG_DEPEND' for use as dependencies, and 'LIBPNG_RULE'
-defining 'make' rules to rebuild the library.
+'LDADD', 'LIBPNG_DEPEND' for use as dependencies, and 'LIBPNG_RULE' for
+the 'make' rules to rebuild the library.
'm4/kpse-libpng-flags.m4' also supplies the configure option
-'--with-system-libpng' and uses 'pkg-config' to determine the flags
-required for the system library.
+'--with-system-libpng', which then uses 'pkg-config' to determine the
+flags required for the system library.
6.4.2 The 'zlib' library in 'libs/zlib'
---------------------------------------
@@ -342,36 +347,40 @@ locations of the 'zlib' headers and/or library.
6.4.3 The 'freetype' library in 'libs/freetype2'
------------------------------------------------
-This module uses a wrapper build system with an almost trivial
-'configure.ac' and with a 'Makefile.am' that invokes 'configure' and
-'make' for the distributed source, followed by 'make install' with the
-build tree as destination. The flags required for the system library
-are obtained through 'freetype-config'.
+This module uses a wrapper build system. In contrast to the proxy build
+described earlier, the wrapper build has an almost trivial
+'configure.ac' and a 'Makefile.am' which invokes the 'configure' and
+'make' in the distributed source, followed by 'make install' with the TL
+build tree as destination. In other words, this actually uses the build
+system provided by upstream (possibly patched).
+
+ The flags required for the system library are obtained through
+'freetype-config'.
6.4.4 The 'kpathsea' library in 'texk/kpathsea'
-----------------------------------------------
This is one of the TeX-specific libraries that are maintained as part of
-TeX Live (*note (kpathsea)::). Despite being a core part of the TeX
-system, it is not a terribly special case in the infrastructure. The
-TeX libraries are Libtool libraries (static and/or shared) and are
-installed by 'make install' together with the programs. They are,
-however, not part of the TL DVD as distributed by TeX user groups, and
-have never been officially released for standalone use.
-
- It is possible, and perhaps even useful for distro builds (*note
-Distro builds::), to specify the configure option
-'--with-system-kpathsea' in order to use a system version of the
-library. Programs outside the TL tree should use 'pkg-config' for the
-required flags.
-
- In addition to 'ac/withenable.ac' and 'ac/kpathsea.ac' there is a
-third fragment 'ac/mktex.ac' included by both 'ac/withenable.ac' and
-'configure.ac' that supplies configure options such as
-'--enable-mktextfm-default', which determine the compile time default of
-whether or not to run 'mktextfm' to generate a missing '.tfm' file. In
-any case, however, the command line options '-mktex=tfm' or
-'-no-mktex=tfm' for the TeX-like engines override this default.
+TeX Live (*note (kpathsea)::); the other is 'ptexenc'. These TeX
+libraries are Libtool libraries (static and/or shared) and are installed
+by 'make install' together with the programs. They are, however, not
+part of the TL DVD as distributed by TeX user groups, and have never
+been officially released for standalone use.
+
+ It is possible, and probably useful for distro builds (*note Distro
+builds::), to specify the configure option '--with-system-kpathsea' in
+order to use a system version of the library. Programs outside the TL
+tree should use 'pkg-config' for the required flags.
+
+ In addition to 'kpathsea/ac/withenable.ac' and
+'kpathsea/ac/kpathsea.ac' here there is a third fragment
+'kpathsea.ac/mktex.ac', included by both 'withenable.ac' and
+'configure.ac', which supplies configure options such as
+'--enable-mktextfm-default'. These determine the compile time default
+of whether or not to run 'mktextfm' (and similar) to generate a missing
+'.tfm' (or whatever) file. In any case, however, the command line
+options '-mktex=tfm' or '-no-mktex=tfm' for the TeX-like engines
+override this default.
6.5 Program modules
===================
@@ -382,10 +391,10 @@ for a few of the programs in TL.
6.5.1 The 't1utils' package in 'utils/t1utils'
----------------------------------------------
-Once again we use the distributed source tree 't1utils-src' with
-modifications documented in 'TLpatches/*' and a proxy build system
-consisting of 'configure.ac' and 'Makefile.am'. The fragment
-'ac/withenable.ac' contains
+Here we use the distributed source tree 't1utils-src' with modifications
+documented in 'TLpatches/*' and a proxy build system consisting of
+'configure.ac' and 'Makefile.am'. The fragment 'ac/withenable.ac'
+contains
KPSE_ENABLE_PROG([t1utils])
@@ -396,45 +405,46 @@ configure option '--disable-t1utils'.
------------------------------------------
This module uses the distributed source tree 'xindy-src/' with
-modifications documented in 'TLpatches/*', a proxy 'configure.ac', and a
-wrapper 'Makefile.am' that descends into 'xindy-src'. The 'xindy' build
-requires a 'make' that supports a 'VPATH' build, can handle all targets,
-and do not refer to '${top_srcdir}' or '${top_builddir}'. The fragment
-'ac/withenable.ac' contains
+modifications documented in 'TLpatches/*', and a wrapper 'configure.ac'
+and 'Makefile.am' that descends into 'xindy-src'.
+
+ The 'xindy' build requires a 'make' that supports a 'VPATH' build,
+can handle all targets, and do not refer to '${top_srcdir}' or
+'${top_builddir}'. The fragment 'xindy/ac/withenable.ac' contains
- KPSE_ENABLE_PROG([xindy], , [disable native])
+ KPSE_ENABLE_PROG([xindy], , [disable])
m4_include(kpse_TL[utils/xindy/ac/xindy.ac])
m4_include(kpse_TL[utils/xindy/ac/clisp.ac])
where 'disable' in the third argument indicates that 'xindy' is only
built if explicitly enabled by the user with 'configure --enable-xindy'
-(the need for 'clisp' is too painful to require by default), and
-'native' disallows cross compilation. The additional fragments
-'ac/xindy.ac' and 'ac/clisp.ac' specify more 'configure' options to be
-seen at the top level with 'ac/xindy.ac' also included by
-'configure.ac'.
+(the need for 'clisp' makes it too painful to enable by default).
+
+ The additional fragments 'ac/xindy.ac' and 'ac/clisp.ac' specify more
+'configure' options to be seen at the top level, with 'ac/xindy.ac' also
+included by 'configure.ac'.
6.5.3 The 'xdvik' package in 'texk/xdvik'
-----------------------------------------
This package is maintained as part of the TeX Live tree with sources in
-its top level directory and the subdirectory 'gui'. The fragment
-'ac/withenable.ac' contains
+its own directory ('texk/xdvik/'). The fragment
+'xdvik/ac/withenable.ac' contains
dnl extra_dirs = texk/xdvik/squeeze
KPSE_ENABLE_PROG([xdvik], [kpathsea freetype2], [x])
m4_include(kpse_TL[texk/xdvik/ac/xdvik.ac])
-thus specifying the dependency on the 'kpathsea', 'freetype', and X11
+thus specifying dependencies on the 'kpathsea', 'freetype', and X11
libraries. The M4 comment (following 'dnl') signals the subsidiary
'squeeze/configure.ac'. This is needed because the main executable
'xdvi-bin' (to be installed as, e.g., 'xdvi-xaw') is for the 'host'
system whereas the auxiliary program 'squeeze/squeeze' has to run on the
-'build' system and in a cross compilation they differ.
+'build' system; in a cross compilation, these differ.
The additional fragment 'ac/xdvik.ac' is also included by
'configure.ac' and supplies the configure option '--with-xdvi-x-toolkit'
-also seen at the top-level.
+also seen at the top level.
6.5.4 The subdirectory 'utils/asymptote'
----------------------------------------
@@ -442,7 +452,8 @@ also seen at the top-level.
This subdirectory contains the sources for 'asy' and 'xasy' but due to
its complexity and prerequisites (e.g., OpenGL) it is not part of the TL
build system. These programs must be built and installed independently,
-but are included on the TL DVD together with their support files.
+but are included on the TL DVD together with their support files. See
+<https://tug.org/build.html#asymptote>.
6.6 Extending TeX Live
======================
@@ -451,11 +462,11 @@ This section outlines the basic process for adding new packages to the
TL build system.
In any case, a new package directory 'foo' should contain the
-original sources, as modified for TL, in 'foo/foo-src', and the changes
-should be documented in 'foo/TLpatches/*'; changes should also be
-submitted upstream whenever reasonable, of course. In addition, 'foo/'
+original sources, modified only with changes necessary for TL, in
+'foo/foo-src'. The changes should be documented in 'foo/TLpatches/*',
+and also be submitted upstream whenever reasonable. In addition, 'foo/'
will need the usual Automake build-related files ('configure.ac',
-'Makefile.am', etc. Please keep a 'ChangeLog' for all TL changes.
+'Makefile.am', etc. Please maintain 'foo/ChangeLog' for all TL changes.
6.6.1 Adding a new program module
---------------------------------
@@ -475,25 +486,25 @@ mandatory first argument and three optional arguments:
1. a list of required libraries from the TL tree;
- 2. a list of options ('disable' if this module is not to be built
+ 2. a list of options: 'disable' if this module is not to be built
without the configure option '--enable-PROG', 'native' if cross
compilation is not possible, 'x' if the program requires X11
- libraries);
+ libraries;
3. a comment added to the help text for the 'configure' option
'--enable-PROG' or '--disable-PROG'.
- If the module requires specific configure options to be seen at the
+ If the module requires specific 'configure' options to be seen at the
top level, they should be defined in an additional fragment 'ac/PROG.ac'
included from 'ac/withenable.ac' and 'configure.ac'.
Usually, the new program is maintained somewhere outside of TeX Live.
-In that case, we put the upstream sources into a subdirectory 'PROG-src'
-(e.g., 'utils/newprog/newprog-src'). We do not run 'configure' in this
-original '...-src' directory, only in our own directory, but we do
-compile using the source files in '...-src'.
+In that case, as above, we put the upstream sources into a subdirectory
+'PROG-src' (e.g., 'utils/newprog/newprog-src'). We do not typically run
+'configure' in this original '...-src' directory, but only in our own
+directory; but we do compile using the source files in '...-src'.
- So, these are the files that we must generally create:
+ So, to summarize the files that we must (usually) create:
'ac/withenable.ac'
The 'KPSE_ENABLE_PROG' call just explained.
@@ -518,10 +529,11 @@ compile using the source files in '...-src'.
Record all TL-specific changes, now and in the future.
Then, run GNU 'autoreconf' in the new directory (*note Build system
-tools::). After that works, 'svn add' the necessary files, notably
-'Makefile.in aclocal.m4 configure', and 'svn:ignore' the Automake cache
-'autom4te.cache'. (This is so people checking out the TL source tree do
-not have to run any autotools, but can simply run 'configure'.)
+tools::). After that works, 'svn add' the necessary files, including
+the generated 'Makefile.in aclocal.m4 configure', and 'svn:ignore' the
+Automake cache 'autom4te.cache'. (This is so people checking out the TL
+source tree do not have to run any autotools, but can simply run
+'configure'.)
Then, run the TL tool 'reautoconf' in the top-level TL 'source/'
directory, to incorporate the new program into the build tree.
@@ -537,7 +549,7 @@ directory, 'make' in the build directory, etc.
A generic library module in a subdirectory 'libs/LIB' must not depend on
TeX-specific libraries, by definition. It is included by adding its
-name 'LIB' to the M4 list 'kpse_libs_pkgs' in 'm4/kpse-pkgs.m4'--before
+name 'LIB' to the M4 macro 'kpse_libs_pkgs' in 'm4/kpse-pkgs.m4'--before
any other libraries from the TeX Live tree on which it depends.
As with program modules, the subdirectory 'libs/LIB' must contain the
@@ -545,9 +557,9 @@ sources and build system for the library (and any installable support
programs) and a fragment 'ac/withenable.ac' that contains the M4 macro
'KPSE_WITH_LIB' defined in 'm4/kpse-setup.m4' with 'LIB' as the
mandatory first argument and two optional arguments: a list of required
-libraries from the TL tree, and a list of options (currently there is
-only one: specify 'tree' if this library cannot be replaced by a system
-version).
+libraries from the TL tree, and a list of options: for libraries,
+currently there is only one--specify 'tree' if this library cannot be
+replaced by a system version.
If a system version can be used, a second fragment 'ac/LIB.ac' is
needed, containing the M4 macro 'KPSE_TRY_LIB' (or 'KPSE_TRY_LIBXX')
@@ -566,7 +578,7 @@ system version.
If a system library is allowed, 'KPSE_LIB_FLAGS' also provides the
configure option '--with-system-LIB' and uses the additional M4 macro
'KPSE_LIB_SYSTEM_FLAGS' to generate the 'make' variables for a system
-library. Furthermore the definition of the M4 macro
+library. In addition, the definition of the M4 macro
'KPSE_ALL_SYSTEM_FLAGS' in 'm4/kpse-pkgs.m4' must be extended by the
line:
'AC_REQUIRE([KPSE_LIB_SYSTEM_FLAGS])'
@@ -579,8 +591,8 @@ other TeX-specific libraries but must not depend on any generic library
from the TL tree. It is included in the same general ways as a generic
library (see the previous section), with these modifications:
- * The library name 'LIB' is added to the M4 list 'kpse_texlibs_pkgs'
- also in 'm4/kpse-pkgs.m4'.
+ * The library name 'LIB' is added to the M4 macro
+ 'kpse_texlibs_pkgs', which is also in 'm4/kpse-pkgs.m4'.
* The fragment 'ac/withenable.ac' must use 'KPSE_WITH_TEXLIB'.
diff --git a/Build/source/README.5configure b/Build/source/README.5configure
index 6b4b00a45d0..b1e00daac07 100644
--- a/Build/source/README.5configure
+++ b/Build/source/README.5configure
@@ -13,17 +13,17 @@ at the top level gives an exhaustive list of all global options and a
few important module-specific ones, whereas, e.g.,
'texk/lcdf-typetools/configure --help'
also displays the 'lcdf-typetools' specific options, which are not shown
-at the top-level.
+at the top level.
The help text also mentions several influential environment
-variables, but for TeX Live it is better to specify them as assigments
+variables, but for TeX Live it is better to specify them as assignments
on the command line.
The './Build' script used to make the binaries shipped with TeX Live
invokes the top-level 'configure' with a few additional options (*note
Building::). The defaults discussed below are those for the actual
-'configure' script; invoking 'configure' via './Build' may yield
-different results.
+'configure' script; invoking 'configure' via './Build' yields different
+results.
Defaults for most options are set at the top level and propagated
explicitly to all subdirectories. Options specified on the command line
@@ -43,15 +43,14 @@ by the TeX user groups. This requires GNU 'make' and implies
are explicitly disabled), and enforces '--disable-shared'.
If building TL for a GNU/Linux or other distribution, this should be
-disabled and system versions of most libraries would be used (*note
-Distro builds::). This may fail without GNU 'make', but will be tried
-regardless.
+disabled and system versions of most libraries should be used (*note
+Distro builds::).
A related option, '--enable-texlive-build', is automatically passed
to all subdirectories (and cannot be disabled). Subdirectories that can
also be built independently from the TL tree (such as 'utils/xindy' and
-'texk/dvipng') can use this option, e.g., to choose TL-specific
-installation paths.
+'texk/dvipng') but cooperate with TL can use this option to enable
+TL-specific adaptations, such as installation paths.
7.1.2 '--prefix', '--bindir', ...
---------------------------------
@@ -66,9 +65,10 @@ location: (automake)Staged Installs.).
7.1.3 '--disable-largefile'
---------------------------
-Omit large file support (LFS), needed on most 32-bit Unix systems for
-files with 2GB or more. Regardless of this, the size of 'DVI' and 'GF'
-files must always be <2GB, due to the file format specifications.
+Omit large file support (LFS), which is needed on most 32-bit Unix
+systems for files with 2GB or more. Regardless of this option, the size
+of 'DVI' and 'GF' files must always be <2GB, due to the file format
+specifications.
With LFS, there is no fixed limit on the size of PDF files created by
'pdftex' or PostScript files created by 'dvips'. The size of PDF images
@@ -85,22 +85,19 @@ when figuring out a specific (sub)set of modules to enable.
7.1.5 '--enable-compiler-warnings='LEVEL
----------------------------------------
-Enable various levels of compiler warnings for (Objective) C and C++:
-the LEVEL value can be one of: 'no min yes max all'. The default is
-'yes' in 'maintainer-mode' (see below) and 'min' otherwise. This option
-defines 'WARNING_[OBJ]C[XX]FLAGS' but these flags are not used in all
-library and program modules. Using them should help to resolve
-portability problems.
-
- At present, these warning flags are only defined for the GNU
-compilers but flags for other compilers could be added when needed.
+Enable various levels of compiler warnings for C, C++, and/or
+Objective C: the LEVEL value can be one of: 'no min yes max all'. The
+default is 'yes' in 'maintainer-mode' (see below) and 'min' otherwise.
+This option defines the variables 'WARNING_[OBJ]C[XX]FLAGS', but these
+variables are not consistently used in all library and program modules.
+At present, these warning flags assume options from the GNU compilers.
7.1.6 '--enable-cxx-runtime-hack'
---------------------------------
-If enabled (as it is for the native TL build) and when using 'g++', try
-to statically link with 'libstdc++', somewhat improving portability of
-the resulting binary. *Note Macros for compilers::.
+If enabled (as it is for the native TL build), when using 'g++', try to
+statically link with 'libstdc++', thus improving portability of the
+resulting binary. *Note Macros for compilers::.
7.1.7 '--enable-maintainer-mode'
--------------------------------
@@ -114,11 +111,12 @@ rebuilds infrastructure files as needed. *Note 'missing' and
7.1.8 '--enable-multiplatform'
------------------------------
-If enabled and '--bindir=DIR' or '--libdir=DIR' are not specified,
-install executables and libraries in per-platform subdirectories of
-'EPREFIX/bin' and 'EPREFIX/lib' where EPREFIX is the value given or
-implied for 'exec_prefix'. In any case, the values for 'bindir' and
-'libdir' are automatically propagated to all subdirectories.
+If enabled (as it is for the native TL build) and '--bindir=DIR' or
+'--libdir=DIR' are not specified, install executables and libraries in
+per-platform subdirectories of 'EPREFIX/bin' and 'EPREFIX/lib' where
+EPREFIX is the value given or implied for 'exec_prefix'. In any case,
+the values for 'bindir' and 'libdir' are automatically propagated to all
+subdirectories.
7.1.9 '--enable-shared'
-----------------------
@@ -131,16 +129,16 @@ Build shared versions of the TeX-specific libraries such as
------------------------------
Enable the use of less verbose build rules. When using GNU 'make' (or
-another 'make' implementation supporting nested variable expansions),
-you can specify 'V=1' on the 'make' command line to get more verbosity,
-or 'V=0' to get less, regardless of this option.
+any 'make' implementation supporting nested variable expansions), you
+can specify 'V=1' on the 'make' command line to get more verbosity, or
+'V=0' to get less, regardless of this option.
7.1.11 '--without-ln-s'
-----------------------
Required when using a system without a working 'ln -s' to build binaries
for a Unix-like system. However, 'make install' will not create
-anything useful and might even fail.
+anything useful, and might fail.
7.1.12 '--without-x'
--------------------
@@ -155,7 +153,7 @@ Here are (some of) the program-specific 'configure' options.
7.2.1 '--enable-PROG', '--disable-PROG'
---------------------------------------
-Do or do not build and install the program(s) of the module 'PROG'.
+Do or do not build and install the program(s) of module 'PROG'.
7.2.2 '--disable-all-pkgs'
--------------------------
@@ -165,10 +163,7 @@ enabled. This is useful when one wants to work on only a single
program, which is specified with an additional '--enable' option, e.g.,
'--enable-dvipdfm-x'. It's still simplest to check out and configure
the whole source tree, but at least only the program you are interested
-in, and its dependencies, are built. The 'configure' will generally
-take less than a minute with everything disabled. (It is a good idea to
-run 'make check' after doing this, and after making any changes, to
-ensure that whatever tests have been written still pass.)
+in, and its dependencies, are built. *Note Build one package::.
Without this option, all modules are built except those that are
explicitly disabled or specify 'disable' in their 'ac/withenable.ac'
@@ -178,13 +173,13 @@ fragment.
----------------------------------------
'--with-banner-add=STR'
-Add 'STR' to the default version string ('TeX Live YEAR' or 'Web2C
-YEAR') appended to banner lines. This is ignored for a native TL build,
-but distro builds should specify, e.g., '/SOMEDISTRO'.
+Add 'STR' to the default version string (which is ''TeX Live YEAR'' or
+''Web2C YEAR'') appended to banner lines. This is ignored for a native
+TL build, but distro builds should specify, e.g., '/SOMEDISTRO'.
'--with-editor=CMD'
-Specify the command 'CMD' to invoke from the 'e' option of TeX-like
-engines, replacing the default 'vi +%d '%s'' for Unix or 'texworks
+Specify the command 'CMD' to invoke from the 'e' option of TeX and
+friends, replacing the default 'vi +%d '%s'' for Unix or 'texworks
--position=%d "%s"' for Windows.
'--with-fontconfig-includes=DIR', '--with-fontconfig-libdir=DIR'
@@ -213,8 +208,8 @@ Do not or do build the various TeX, Metafont, and MetaPost engines
(defaults are defined in the fragment 'texk/web2c/ac/web2c.ac').
'--disable-web-progs'
-Do not build the core WEB programs 'bibtex', ..., 'weave'. Useful if,
-e.g., you only want to (re)build some engines.
+Do not build the original WEB programs 'bibtex', ..., 'weave'. Useful
+if, e.g., you only want to (re)build some engines.
'--enable-auto-core'
This option causes TeX and Metafont to produce a core dump when a
@@ -227,12 +222,12 @@ from linking explicitly with dependencies of 'libfontconfig' such as
'libexpat'.
'--enable-*win'
-Include various types of other window support for Metafont (EPSF output,
-'mftalk', old terminals, ...).
+Include various types of non-X window support for Metafont (EPSF output,
+'mftalk', old graphics terminals, ...).
'--enable-tex-synctex', '--disable-etex-synctex', ...
Build the TeX engines with or without 'SyncTeX' support; ignored for a
-native TeX Live build, defaults are again defined in
+native TeX Live build. Defaults are defined in
'texk/web2c/ac/web2c.ac'.
'--disable-synctex'
@@ -261,7 +256,7 @@ created by default. In addition, 'dvipdfm' is created as a symlink to
'dvipdfmx', with backward-compatible (very slightly different) behavior.
'--disable-dvipdfmx'
-Do not build the 'dvipdfmx' program with the 'dvipdfm' symlink.
+Do not build the 'dvipdfmx' program or make the 'dvipdfm' symlink.
'--disable-xdvipdfmx'
Do not build the 'xdvipdfmx' program.
@@ -272,8 +267,8 @@ Do not build the 'xdvipdfmx' program.
'--with-system-libgs'
Build 'dvisvgm' using installed Ghostscript ('gs') headers and library
(not allowed for a native TL build). The default is to load the 'gs'
-library at runtime if possible, or otherwise disable support for
-PostScript specials.
+library at runtime if possible, else to disable support for PostScript
+specials.
'--without-libgs'
Build 'dvisvgm' without PostScript support at all. Because the dynamic
@@ -294,15 +289,15 @@ the TL scripts required to run 'texlinks'.
----------------------------------------
'--with-gs=FILENAME'
-Hardwire the location of Ghostscript ('gs').
+Hardwire the location of Ghostscript ('gs') as called by Xdvik.
'--with-xdvi-x-toolkit=KIT'
Use toolkit 'KIT' for 'xdvik', one of: 'motif xaw xaw3d neXtaw'. The
default is 'motif' if available, else 'xaw'.
'--enable-xi2-scrolling'
-Use XInput 2.1 "smooth scrolling" if available. (default: yes, except
-for a native TL build).
+Use XInput 2.1 "smooth scrolling" if available (default: yes, except for
+a native TL build).
7.2.9 Configure options for 'utils/xindy'
-----------------------------------------
@@ -316,13 +311,12 @@ Build and install 'xindy' documentation (default: yes, except for a
native TL build).
'--with-clisp-runtime=FILENAME'
-Specifies the Full path for the CLISP runtime file ('lisp.run' or
+Specifies the full path for the Clisp runtime file ('lisp.run' or
'lisp.exe') to be installed. When specified as 'default' (the default
-for a native TL build) the path is determined by the CLISP executable;
+for a native TL build) the path is determined by the Clisp executable;
the value 'system' (not allowed for a native TL build, but the default
-for a non-native one) indicates that 'xindy' will use the installed
-version of 'clisp' (which must be identical to the one used to build
-'xindy').
+otherwise) indicates that 'xindy' will use the installed version of
+'clisp' (which must be identical to the one used to build 'xindy').
7.3 Library-specific configure options
======================================
@@ -335,7 +329,7 @@ with this generic one:
Use an installed (system) version of the library 'LIB'; this option
exists for most libraries, but is not allowed for a native TL build.
Using a system version implies also using the system versions of all
-libraries (if any) that LIB depends on.
+libraries that LIB depends on.
For many libraries '--with-LIB-includes=DIR' and
'--with-LIB-libdir=DIR' can specify non-standard search locations;
@@ -348,7 +342,8 @@ required system libraries and bails out if tests fail.
--------------------------------------
'--enable-CMD-default', '--disable-CMD-default'
-Determine the compile time default whether or not to run CMD, one of:
+Determine the compile time default for whether or not to run CMD, which
+is one of:
'mkocp'
(Omega compiled translation process file)
'mkofm'
@@ -365,24 +360,22 @@ Determine the compile time default whether or not to run CMD, one of:
(TFM file)
to generate the specified type of file dynamically. The default can be
-overridden by the user in any case.
+overridden by the user in any case (*note kpathsea library::).
7.3.2 Configure options for system 'poppler'
--------------------------------------------
-Building LuaTeX (or LuaJITTeX) and XeTeX requires 'poppler', either from
-the TL tree or system headers and library. Building pdfTeX requires
-either 'xpdf' from the TeX Live tree or system 'poppler' headers and
-library.
+Building XeTeX requires 'poppler', either from the TL tree or system
+headers and library. Building pdfTeX requires either 'xpdf' from the
+TeX Live tree or system 'poppler' headers and library.
'--with-system-poppler'
Use a system version (0.18 or newer) of 'poppler' for LuaTeX (or
LuaJITTeX) and XeTeX, and use 'pkg-config' to obtain the required flags.
'--with-system-xpdf'
-Use a system version (0.12 or better) of 'poppler' (and 'pkg-config')
-for pdfTeX instead of 'xpdf' from the TL tree. *Note
---disable-largefile::.
+Use a system version (0.12 or newer) of 'poppler' (and 'pkg-config') for
+pdfTeX instead of 'xpdf' from the TL tree. *Note --disable-largefile::.
7.4 Variables for configure
===========================
@@ -396,7 +389,7 @@ but that might not work for cross compilations.
'CPPFLAGS'
And plenty more. As usual with Autoconf, these variables specify
the name (or full path) of compilers, preprocessor flags, and
- similar. *Note autoconf: (GNU Autoconf)Preset Output Variables.
+ similar. *Note (autoconf)Preset Output Variables::.
'CLISP'
Name (or full path) of the 'clisp' executable, used to build
@@ -408,7 +401,7 @@ but that might not work for cross compilations.
These specify the name (or path) for the 'freetype-config',
'icu-config', and 'pkg-config' commands used to determine the flags
required for system versions of 'libfreetype', the ICU libraries,
- or many other libraries.
+ and other libraries, respectively.
'KPSEWHICH'
Name (or path) of an installed 'kpsewhich' binary, used by 'make
diff --git a/Build/source/README.6coding b/Build/source/README.6coding
index a8abaa9c2d7..05da7554029 100644
--- a/Build/source/README.6coding
+++ b/Build/source/README.6coding
@@ -10,9 +10,9 @@ should produce no (GCC) compiler warnings at all. In spite of
considerable efforts into that direction we are still far from that goal
and there are reasons that we may never fully reach it. Below are some
rules about declarations of functions or variables and the use of
-'const'. These rules should be applied to most of the TeX Live tree,
-the exception being code that is maintained independently and whose
-maintainers don't want to accept patches.
+'const'. These rules should be applied to the code maintained in the
+TeX Live tree and for other packages whose maintainers are willing to
+accept patches.
8.1 Declarations and definitions
================================
@@ -25,7 +25,7 @@ all function prototypes and definitions must conform to the ANSI C
standard (including 'void' in the declaration of C functions with no
parameters). On the other hand, TL is built for a wide variety of
systems, not all of which support the C99 standard. Therefore using C99
-features should be avoided if that can easily be done. In particular C
+features should be avoided if that can easily be done. In particular, C
code must not contain declarations after statements or C++-style
comments.
@@ -34,7 +34,7 @@ verify that they are available and otherwise provide an alternative.
For example, the module 'texk/chktex' uses the C99 function 'stpcpy()'
that may or may not be available on a particular system. It uses
'AC_CHECK_DECLS([stpcpy])' in 'configure.ac' to test this, and provides
-the perhaps slightly less efficient alternative
+a perhaps less efficient alternative (in the file 'Utility.h'):
#if !(defined HAVE_DECL_STPCPY && HAVE_DECL_STPCPY)
static inline char *stpcpy(char *dest, const char *src)
@@ -43,13 +43,11 @@ the perhaps slightly less efficient alternative
}
#endif
-in the file 'Utility.h'.
-
Static functions
................
Functions used in only one file should be declared 'static'; they
-require no prototype except as forward declaration.
+require no prototype except in forward declarations.
Extern functions
................
@@ -90,16 +88,16 @@ quantity supposed to be constant.
Getting all 'const' qualifiers right can get quite involved but can
almost always be done. There are only a couple notable exceptions: the
X11 headers are full of declarations that ought to use 'const' but do
-not, and the same is true to some extent for 'libfreetype' (but,
-thankfully, not for 'zlib' nowadays).
+not; at one time, 'libfreetype' also did not fully specify 'const', but
+this has not been checked recently.
What must be avoided with 'const'
.................................
The GCC compiler warnings "assignment discards qualifiers..." and
analogous warnings for "initialization", "passing arg", or "return" must
-be strenously avoided in our own code. The only exception is when they
-are caused by X11 headers or macros or other third party code.
+be strenuously avoided in our own code. The only exception is when they
+are caused by X11 declarations or other third party code.
What should be avoided with 'const'
...................................
diff --git a/Build/source/README.7continuous b/Build/source/README.7continuous
index 2558b814f35..2b7fd908984 100644
--- a/Build/source/README.7continuous
+++ b/Build/source/README.7continuous
@@ -5,10 +5,9 @@
9 Continuous integration
************************
-Overview: the sources of TeX Live are subjected to continuous
-integration testing on Travis-CI
-(<https://travis-ci.org/TeX-Live/texlive-source>) via a git-svn mirror
-of the sources that is pushed to Github
+The TeX Live sources are subjected to continuous integration testing on
+Travis-CI (<https://travis-ci.org/TeX-Live/texlive-source>) via a
+git-svn mirror of the sources that is pushed to Github
(<https://github.com/TeX-Live/texlive-source>). The git-svn mirror is
updated (currently) at 30 minute intervals, and only the last commit
pushed is tested on Travis-CI.
@@ -16,39 +15,40 @@ pushed is tested on Travis-CI.
9.1 Transfer from Subversion to Github
======================================
-git-svn (<https://git-scm.com/docs/git-svn>) is used to check out the
-subtree 'Build/source' of the Subversion repository. The author index
-file used is not maintained in either Git or Subversion but can be
-provided on request.
+The git-svn program (<https://git-scm.com/docs/git-svn>) is used to
+check out the subtree 'Build/source' of the canonical Subversion
+repository. The author index file used is not maintained in either Git
+or Subversion but can be provided on request.
The initial checkout was done by invoking
- git svn --authors-file usermap clone svn://USER@tug.org/texlive/trunk/Build/source
+ git svn --authors-file usermap clone \
+ svn://USER@tug.org/texlive/trunk/Build/source
where the 'usermap' file maps Subversion user names to name and emails
-of the authors. If no user account at <tug.org> is available, anonymous
-checkout is possible, too:
- git svn --authors-file usermap clone svn://tug.org/texlive/trunk/Build/source
+of the authors. Anonymous checkout is also possible:
+ git svn --authors-file usermap clone \
+ svn://tug.org/texlive/trunk/Build/source
In the following, we will use _admin_ to refer to a user who has
read/write access to the TeX Live subversion repository, and is also an
-administrator of the 'TeX-Live' Team on Github. The above initial
+administrator of the ''TeX-Live'' team at Github. The above initial
checkout has been carried out by _admin_ on the server 'texlive.info'.
- On Github (<https://github.com>), a new git repository named
-'texlive-source' was created by _admin_ within the 'TeX-Live'
-"organization" (<https://github.com/TeX-Live>). The remote was added to
-the checkout with 'git remote add origin
-git@github.com:TeX-Live/texlive-source.git'.
+ On Github, a new git repository named 'texlive-source' was created by
+_admin_ within the 'TeX-Live' "organization"
+(<https://github.com/TeX-Live>). The remote was added to the checkout
+with 'git remote add origin git@github.com:TeX-Live/texlive-source.git'.
To automate the update on Github, a new ssh key was generated and
added to the 'texlive-source' repository on Github as deployment key.
-This way pushes using this key can only go to the 'texlive-source'
+Thus, pushes using this key can only go to the 'texlive-source'
repository and not anywhere else.
The usage of 'git-svn' requires a strict discipline to keep a linear
history in the master branch. Since we are aiming at a pure mirror
-facility, we have decided to further restrict the 'master' branch of the
-'texlive-source' repository on Github to changes by _admin_.
+facility on Github, we have decided to further restrict the 'master'
+branch of the 'texlive-source' repository on Github to changes by
+_admin_.
This setup allows other developers to branch off 'master' and push
their branches to the Github repository, but all updates need to come
@@ -62,14 +62,14 @@ _admin_ has installed a cron job on 'texlive.info' running every 30
minute which essentially runs 'git svn rebase' and 'git push' in the
'master' branch of the checkout. The first command fetches the changes
from the Subversion repository and updates the 'master' branch with
-them, the second one pushes changes (if available) to Github.
+them, and the second pushes changes (if any) to Github.
9.3 CI testing on Travis-CI
===========================
The 'source' tree of TeX Live contains a top-level file '.travis.yml'
which controls the automatic testing on Travis-CI. _admin_ has
-registered to Travis-CI and allowed access to the Github's 'TeX-Live'
+registered with Travis-CI and allowed access to the Github's 'TeX-Live'
organization's 'texlive-source' repository. The default settings are to
build the last commit of each push. No further action is necessary on
Travis-CI.
@@ -77,3 +77,17 @@ Travis-CI.
If changes have been pushed via the cron job above, Travis-CI will
automatically checkout the last pushed commit and try building it.
+9.4 Releases on Github
+======================
+
+Given a git checkout of 'texlive-source':
+
+ git pull
+ git tag build-svnNNNN
+ git push --tags
+
+and the result will appear at
+<https://github.com/TeX-Live/texlive-source/releases>. Releases can
+also be made manually from that web page (see 'tl-update-bindir' for
+hints).
+
diff --git a/Build/source/doc/ChangeLog b/Build/source/doc/ChangeLog
index 422a681dc16..c29c90130e6 100644
--- a/Build/source/doc/ChangeLog
+++ b/Build/source/doc/ChangeLog
@@ -1,3 +1,9 @@
+2020-03-13 Karl Berry <karl@tug.org>
+
+ * tlbuild.texi: update for 2020.
+
+ * build-tools.txt: bison 3.5.2.
+
2019-12-22 Karl Berry <karl@freefriends.org>
* build-tools.txt: bison 3.5.
diff --git a/Build/source/doc/Makefile.am b/Build/source/doc/Makefile.am
index d968fb66dcf..d254f6fa0ea 100644
--- a/Build/source/doc/Makefile.am
+++ b/Build/source/doc/Makefile.am
@@ -1,6 +1,7 @@
+## $Id$
## Makefile.am for the TeX Live subdirectory ./doc/
##
-## Copyright 2015-2018 Karl Berry <tex-live@tug.org>
+## Copyright 2015-2020 Karl Berry <tex-live@tug.org>
## Copyright 2013-2015 Peter Breitenlohner <tex-live@tug.org>
## You may freely use, modify and/or distribute this file.
##
@@ -29,7 +30,7 @@ readme-install: readme-files
svn diff $(top_srcdir)/README.* >/tmp/sd
svn status $(top_srcdir)/README.*
#
-.PHONY: readme-files readme-install
+.PHONY: readme-files readme-install script-links
# autogenerate texinfo from install-tl and tlmgr pod.
# none of this is intended to be executed except manually.
@@ -68,10 +69,14 @@ install_node_good = ref{tlmgr install [\@emph{option}...] \@emph{pkg}...,
# we don't actually use the (autogenerated) -incl.texi file,
# but it makes for a convenient target.
-#
+
# First make symlinks in build dir:
-# ln -s .../tlmgr.pl .../Build/source/Work/doc
-# ln -s .../install-tl .../Build/source/Work/doc
+Master = $(top_srcdir)/../../Master
+script-links:
+ rm -f tlmgr.pl install-tl
+ ln -s $(Master)/install-tl .
+ ln -s $(Master)/texmf-dist/scripts/texlive/tlmgr.pl .
+
$(mydoc)-incl.texi: install-tl tlmgr.pl
$(pod2texi) -o $@ --subdir=$(mydoc)-incl $(pod2texi_args) $^
cp $(mydoc)-incl/tlmgr.texi $(mydoc)-incl/tlmgr.texi.orig
diff --git a/Build/source/doc/Makefile.in b/Build/source/doc/Makefile.in
index a1075b73ce6..512962ca748 100644
--- a/Build/source/doc/Makefile.in
+++ b/Build/source/doc/Makefile.in
@@ -493,6 +493,12 @@ remove_node_good = ref{tlmgr remove [\@emph{option}...] \@emph{pkg}...,
#
install_node_bad = ref{tlmgr install [option...] pkg...,
install_node_good = ref{tlmgr install [\@emph{option}...] \@emph{pkg}...,
+
+# we don't actually use the (autogenerated) -incl.texi file,
+# but it makes for a convenient target.
+
+# First make symlinks in build dir:
+Master = $(top_srcdir)/../../Master
all: all-am
.SUFFIXES:
@@ -946,14 +952,12 @@ readme-install: readme-files
svn diff $(top_srcdir)/README.* >/tmp/sd
svn status $(top_srcdir)/README.*
#
-.PHONY: readme-files readme-install
+.PHONY: readme-files readme-install script-links
+script-links:
+ rm -f tlmgr.pl install-tl
+ ln -s $(Master)/install-tl .
+ ln -s $(Master)/texmf-dist/scripts/texlive/tlmgr.pl .
-# we don't actually use the (autogenerated) -incl.texi file,
-# but it makes for a convenient target.
-#
-# First make symlinks in build dir:
-# ln -s .../tlmgr.pl .../Build/source/Work/doc
-# ln -s .../install-tl .../Build/source/Work/doc
$(mydoc)-incl.texi: install-tl tlmgr.pl
$(pod2texi) -o $@ --subdir=$(mydoc)-incl $(pod2texi_args) $^
cp $(mydoc)-incl/tlmgr.texi $(mydoc)-incl/tlmgr.texi.orig
diff --git a/Build/source/doc/build-tools.txt b/Build/source/doc/build-tools.txt
index cb879ebb727..7ebef2614d2 100644
--- a/Build/source/doc/build-tools.txt
+++ b/Build/source/doc/build-tools.txt
@@ -1,6 +1,6 @@
autoconf (GNU Autoconf) 2.69
automake (GNU automake) 1.16.1
-bison (GNU Bison) 3.5.1
+bison (GNU Bison) 3.5.2
flex 2.6.0
ltmain.sh (GNU libtool) 2.4.6
m4 (GNU M4) 1.4.18
diff --git a/Build/source/doc/tlbuild-incl/install-tl.texi b/Build/source/doc/tlbuild-incl/install-tl.texi
index 8d7650c7adb..6e0e4d00997 100644
--- a/Build/source/doc/tlbuild-incl/install-tl.texi
+++ b/Build/source/doc/tlbuild-incl/install-tl.texi
@@ -30,10 +30,10 @@ install-tl-advanced.bat [@emph{option}]...
@appendixsec DESCRIPTION
This installer creates a runnable TeX Live installation from various
-media, including over the network, from local hard disk, a DVD, etc.
-The installer works across all platforms supported by TeX Live. For
-information on initially downloading the TeX Live, see
-@url{http://tug.org/texlive/acquire.html}.
+media, including over the network, from local hard disk, a DVD, etc. The
+installer works on all platforms supported by TeX Live. For information
+on initially downloading TeX Live, see
+@url{https://tug.org/texlive/acquire.html}.
The basic idea of TeX Live installation is for you to choose one of the
top-level @emph{schemes}, each of which is defined as a different set of
@@ -51,15 +51,15 @@ highly recommended.
@node install-tl REFERENCES
@appendixsec REFERENCES
-Post-installation configuration, package updates, and much more, are
+Post-installation configuration, package updates, and more, are
handled through @strong{tlmgr}(1), the TeX Live Manager
-(@url{http://tug.org/texlive/tlmgr.html}).
+(@url{https://tug.org/texlive/tlmgr.html}).
The most up-to-date version of this installer documentation is on the
-Internet at @url{http://tug.org/texlive/doc/install-tl.html}.
+Internet at @url{https://tug.org/texlive/doc/install-tl.html}.
For the full documentation of TeX Live, see
-@url{http://tug.org/texlive/doc}.
+@url{https://tug.org/texlive/doc}.
@node install-tl OPTIONS
@appendixsec OPTIONS
@@ -72,7 +72,7 @@ option by either a space or @code{=}.
@item @strong{-gui} [[=]@emph{module}]
@anchor{install-tl @strong{-gui} [[=]@emph{module}]}
-If no @emph{module} is given, starts the @code{perltk} (see below) GUI installer.
+If no @emph{module} is given, starts the Tcl/Tk (see below) GUI installer.
If @emph{module} is given loads the given installer module. Currently the
following modules are supported:
@@ -84,97 +84,92 @@ following modules are supported:
The text mode user interface (default on Unix systems). Same as the
@code{-no-gui} option.
+@item @code{tcl}
+@anchor{install-tl @code{tcl}}
+
+The Tcl/Tk user interface (default on Macs and Windows). It starts
+with a small number of configuration options, roughly equivalent
+to what the wizard option below offers, but a button @code{Advanced}
+takes you to a screen with roughly the same options as the @code{perltk}
+interface.
+
@item @code{wizard}
@anchor{install-tl @code{wizard}}
-The wizard mode user interface (default on Windows), asking only minimal
-questions before installing all of TeX Live.
+The wizard mode user interface, asking only minimal questions before
+installing all of TeX Live.
+
+@item @code{expert}
+@anchor{install-tl @code{expert}}
+
+A generic name for, currently, @code{perltk}; it may select a different GUI
+in the future.
@item @code{perltk}
@anchor{install-tl @code{perltk}}
-The expert GUI installer, providing access to more options.
-Can also be invoked on Windows by running @code{install-tl-advanced.bat}.
+The expert GUI installer, providing access to more options.
@end table
-The @code{perltk} and @code{wizard} modules, and thus also when calling with
-bare @code{-gui} (with no @emph{module}), require the Perl/Tk module
-(@url{http://tug.org/texlive/distro.html#perltk}); if Perl/Tk is not
-available, installation continues in text mode.
+The @code{perltk} and @code{wizard} modules require the Perl/Tk module
+(@url{https://tug.org/texlive/distro.html#perltk}). if Perl/Tk is not
+available, installation continues in text mode, except on Windows,
+where all gui options except @code{text} are diverted to the default
+@code{tcl} GUI.
+
+The @code{tcl} GUI requires Tcl/Tk. This is standard on Macs and is often
+already installed on GNU/Linux. For Windows, TeX Live provides a Tcl/Tk
+runtime.
@item @strong{-no-gui}
@anchor{install-tl @strong{-no-gui}}
-Use the text mode installer (default except on Windows).
+Use the text mode installer (default except on Windows and Macs).
@item @strong{-lang} @emph{llcode}
@anchor{install-tl @strong{-lang} @emph{llcode}}
-By default, the GUI tries to deduce your language from the environment
-(on Windows via the registry, on Unix via @code{LC_MESSAGES}). If that fails
-you can select a different language by giving this option with a
-language code (based on ISO 639-1). Currently supported (but not
-necessarily completely translated) are: English (en, default), Czech
-(cs), German (de), French (fr), Italian (it), Japanese (ja), Dutch (nl),
-Polish (pl), Brazilian Portuguese (pt_BR), Russian (ru), Slovak (sk),
-Slovenian (sl), Serbian (sr), Ukrainian (uk), Vietnamese (vi),
-simplified Chinese (zh_CN), and traditional Chinese (zh_TW).
+By default, the GUI tries to deduce your language from the
+environment. The Tcl GUI uses the language detection built into
+Tcl/Tk; the Perl/Tk GUIs use the @code{LC_MESSAGES} environment
+variable. If that fails you can select a different language by
+giving this option with a language code (based on ISO 639-1).
+Currently supported (but not necessarily completely translated) are:
+English (en, default), Czech (cs), German (de), French (fr), Italian
+(it), Japanese (ja), Dutch (nl), Polish (pl), Brazilian Portuguese
+(pt_BR), Russian (ru), Slovak (sk), Slovenian (sl), Serbian (sr),
+Ukrainian (uk), Vietnamese (vi), simplified Chinese (zh_CN), and
+traditional Chinese (zh_TW).
@item @strong{-repository} @emph{url|path}
@anchor{install-tl @strong{-repository} @emph{url|path}}
Specify the package repository to be used as the source of the
-installation, either a local directory via @code{/path/to/directory} or a
-@code{file:/} url, or a network location via a @code{http://}, @code{https://}, or
-@code{ftp://} url. (No other protocols are supported, and @code{https://} may
-not work on all platforms.)
+installation. In short, this can be a directory name or a url using
+http(s), ftp, or scp. The documentation for @code{tlmgr} has the details
+(@url{https://tug.org/texlive/doc/tlmgr.html#OPTIONS}).
-The default is to pick a mirror automatically, using
+For installation, the default is to pick a mirror automatically, using
@url{http://mirror.ctan.org/systems/texlive/tlnet}; the chosen mirror is
-used for the entire download. You can use the special argument @code{ctan}
-as an abbreviation for this. See @url{http://ctan.org} for more about CTAN
-and its mirrors.
-
-If the repository is on the network, trailing @code{/} characters and/or
-trailing @code{/tlpkg} and @code{/archive} components are ignored. For example,
-you could choose a particular CTAN mirror with something like this:
-
-@verbatim
- -repository http://ctan.example.org/its/ctan/dir/systems/texlive/tlnet
-@end verbatim
-
-Of course a real hostname and its particular top-level CTAN directory
-have to be specified. The list of CTAN mirrors is available at
-@url{http://ctan.org/mirrors}.
-
-If the repository is local, the installation type (compressed or live) is
-automatically determined, by checking for the presence of a
-@code{archive} directory relative to the root. Compressed is
-preferred if both are available, since it is faster. Here's an example
-of using a local directory:
-
-@verbatim
- -repository /local/TL/repository
-@end verbatim
+used for the entire download. You can use the special argument @code{ctan}
+as an abbreviation for this. (See @url{https://ctan.org} for more about CTAN
+and its mirrors.)
After installation is complete, you can use that installation as the
repository for another installation. If you chose to install less than
the full scheme containing all packages, the list of available schemes
will be adjusted accordingly.
-For backward compatibility and convenience, @code{--location} and @code{--repo}
-are accepted as aliases for this option.
-
@item @strong{-select-repository}
@anchor{install-tl @strong{-select-repository}}
-This option allows manual selection of a mirror from the current list of
-active CTAN mirrors. This option is supported in all installer modes
-(text, wizard, perltk), and will also offer to install from local media
-if available, or from a repository specified on the command line (see
-above). It's useful when the (default) automatic redirection does not
-choose a good host for you.
+This option allows you to choose a particular mirror from the current
+list of active CTAN mirrors. This option is supported in the @code{text},
+@code{wizard} and @code{perltk} installer modes, and will also offer to install
+from local media if available, or from a repository specified on the
+command line. It's useful when the (default) automatic redirection does
+not choose a good host for you.
@item @strong{-all-options}
@anchor{install-tl @strong{-all-options}}
@@ -198,14 +193,14 @@ actions. To install multiple custom binary sets, manually rename
@code{custom} before doing each.
For more information on custom binaries, see
-@url{http://tug.org/texlive/custom-bin.html}. For general information on
-building TeX Live, see @url{http://tug.org/texlive/build.html}.
+@url{https://tug.org/texlive/custom-bin.html}. For general information on
+building TeX Live, see @url{https://tug.org/texlive/build.html}.
@item @strong{-debug-translation}
@anchor{install-tl @strong{-debug-translation}}
-In GUI mode, this switch makes @code{tlmgr} report any missing, or more
-likely untranslated, messages to standard error. Helpful for
+In the Perl/Tk GUI modes, this option reports any missing, or more
+likely untranslated, messages to standard error. Helpful for
translators to see what remains to be done.
@item @strong{-force-platform} @emph{platform}
@@ -218,12 +213,12 @@ runnable, or installation will fail. @code{-force-arch} is a synonym.
@item @strong{-help}, @strong{--help}, @strong{-?}
@anchor{install-tl @strong{-help}@comma{} @strong{--help}@comma{} @strong{-?}}
-Display this help and exit. (This help is on the web at
-@url{http://tug.org/texlive/doc/install-tl.html}). Sometimes the
-@code{perldoc} and/or @code{PAGER} programs on the system have problems,
-possibly resulting in control characters being literally output. This
-can't always be detected, but you can set the @code{NOPERLDOC} environment
-variable and @code{perldoc} will not be used.
+Display this help and exit. (This help is also on the web at
+@url{https://tug.org/texlive/doc/install-tl.html}). Sometimes the @code{perldoc}
+and/or @code{PAGER} programs on the system have problems, possibly resulting
+in control characters being literally output. This can't always be
+detected, but you can set the @code{NOPERLDOC} environment variable and
+@code{perldoc} will not be used.
@item @strong{-in-place}
@anchor{install-tl @strong{-in-place}}
@@ -239,9 +234,9 @@ installer interfaces. USE AT YOUR OWN RISK.
@item @strong{-init-from-profile} @emph{profile_file}
@anchor{install-tl @strong{-init-from-profile} @emph{profile_file}}
-Similar to @strong{-profile} (see @ref{install-tl PROFILES,, PROFILES} below), but only initializes the
-installation configuration from @emph{profile_file} and then starts the
-interactive session.
+Similar to @strong{-profile} (see @ref{install-tl PROFILES,, PROFILES} below), but only initializes
+the installation configuration from @emph{profile_file} and then starts a
+normal interactive session. Environment variables are not ignored.
@item @strong{-logfile} @emph{file}
@anchor{install-tl @strong{-logfile} @emph{file}}
@@ -260,17 +255,12 @@ release.
For the text mode installer only: do not clear the screen when entering
a new menu (for debugging purposes).
-@item @strong{-non-admin}
-@anchor{install-tl @strong{-non-admin}}
-
-For Windows only: configure for the current user, not for all users.
+@item @strong{-no-persistent-downloads}
+@anchor{install-tl @strong{-no-persistent-downloads}}
@item @strong{-persistent-downloads}
@anchor{install-tl @strong{-persistent-downloads}}
-@item @strong{-no-persistent-downloads}
-@anchor{install-tl @strong{-no-persistent-downloads}}
-
For network installs, activating this option makes the installer try to
set up a persistent connection using the @code{Net::LWP} Perl module. This
opens only one connection between your computer and the server per
@@ -288,7 +278,12 @@ By default, if a GnuPG @code{gpg} binary is found in PATH, downloads are
verified against a cryptographic signature. This option disables such
verification. The full description is in the Crytographic Verification
section of the @code{tlmgr} documentation, e.g.,
-@url{http://tug.org/texlive/doc/tlmgr.html#CRYPTOGRAPHIC-VERIFICATION}
+@url{https://tug.org/texlive/doc/tlmgr.html#CRYPTOGRAPHIC-VERIFICATION}
+
+@item @strong{-non-admin}
+@anchor{install-tl @strong{-non-admin}}
+
+For Windows only: configure for the current user, not for all users.
@item @strong{-portable}
@anchor{install-tl @strong{-portable}}
@@ -307,7 +302,8 @@ Print the TeX Live identifier for the detected platform
@anchor{install-tl @strong{-profile} @emph{profile_file}}
Load @emph{profile_file} and do the installation with no user interaction,
-that is, a batch (unattended) install. See @ref{install-tl PROFILES,, PROFILES} below.
+that is, a batch (unattended) install. Environment variables are
+ignored. See @ref{install-tl PROFILES,, PROFILES} below.
@item @strong{-q}
@anchor{install-tl @strong{-q}}
@@ -334,8 +330,8 @@ Include verbose debugging messages; repeat for maximum debugging: @code{-v
@item @strong{-version}, @strong{--version}
@anchor{install-tl @strong{-version}@comma{} @strong{--version}}
-Output version information and exit. If @code{-v} has also been given the
-revisions of the used modules are reported, too.
+Output version information and exit. If @code{-v} is also given, the
+versions of the TeX Live modules used are also reported.
@end table
@@ -346,11 +342,17 @@ A @emph{profile} file contains all the values needed to perform an
installation. After a normal installation has finished, a profile for
that exact installation is written to the file @code{tlpkg/texlive.profile}.
In addition, from the text menu one can select @code{P} to save the current
-setup as a profile at any time. Such a profile file can be given as the
-argument to @code{-profile}, for example to redo the exact same installation
-on a different system. Alternatively, you can use a custom profile,
-most easily created by starting from a generated one and changing
-values, or an empty file, which will take all the defaults.
+setup as a profile at any time.
+
+Such a profile file can be given as the argument to @code{-profile}, for
+example to redo the exact same installation on a different system.
+Alternatively, you can use a custom profile, most easily created by
+starting from a generated one and changing values, or an empty file,
+which will take all the defaults.
+
+As mentioned above, the installer only supports selection by scheme and
+collections, not individual packages, so packages cannot be specified in
+profile files either. Use @code{tlmgr} to work at the package level.
Within a profile file, each line consists of
@@ -441,7 +443,7 @@ Enable @code{\write18} for a restricted set of programs.
@strong{tlpdb options} (prefix @code{tlpdbopt_})
-The definitive list is given in @code{tlpkg/TeXLive/TLConfig.pm}, in
+The definitive list is given in @code{tlpkg/TeXLive/TLConfig.pm}, in the hash
@code{%TeXLive::TLConfig::TLPDBOptions}, together with explanations. All
items given there @emph{except} for @code{tlpdbopt_location} can be specified.
Here is the current list:
@@ -465,13 +467,13 @@ Here is the current list:
@strong{platform options} (prefix @code{binary_})
For each supported platform in TeX Live (directories under @code{bin/}), the
-variable @code{binary_}@emph{PLATFORM} can be set. For example:
+variable @code{binary_}@emph{PLATFORM} can be set with value 1. For example:
@verbatim
- binary_x86_64-linux
+ binary_x86_64-linux 1
@end verbatim
-If no @code{binary_} variable is specified, the default is whatever the
+If no @code{binary_} settings are made, the default is whatever the
current machine is running.
In releases before 2017, many profile variables had different
@@ -480,16 +482,29 @@ accepted and transformed to the names given above. When a profile is
written, the names above are always used.
For more details on all of the above options, consult the TeX Live
-installation manual, linked from @url{http://tug.org/texlive/doc}.
+installation manual, linked from @url{https://tug.org/texlive/doc}.
@node install-tl ENVIRONMENT VARIABLES
@appendixsec ENVIRONMENT VARIABLES
-For ease in scripting and debugging, @code{install-tl} will look for the
-following environment variables. They are not of interest for normal
+For ease in scripting and debugging, @code{install-tl} looks for the
+following environment variables. They are not of interest for normal
user installations.
@table @asis
+@item @code{TEXLIVE_DOWNLOADER}
+@anchor{install-tl @code{TEXLIVE_DOWNLOADER}}
+
+@item @code{TL_DOWNLOAD_PROGRAM}
+@anchor{install-tl @code{TL_DOWNLOAD_PROGRAM}}
+
+@item @code{TL_DOWNLOAD_ARGS}
+@anchor{install-tl @code{TL_DOWNLOAD_ARGS}}
+
+These override the normal choice of a download program; see the @code{tlmgr}
+documentation, e.g.,
+@url{https://tug.org/texlive/doc/tlmgr.html#ENVIRONMENT-VARIABLES}.
+
@item @code{TEXLIVE_INSTALL_ENV_NOCHECK}
@anchor{install-tl @code{TEXLIVE_INSTALL_ENV_NOCHECK}}
@@ -502,11 +517,17 @@ variables.
Omit creating the ConTeXt cache. This is useful for redistributors.
+@item @code{TEXLIVE_INSTALL_NO_IMPORT}
+@anchor{install-tl @code{TEXLIVE_INSTALL_NO_IMPORT}}
+
+Omit check for installing on top of a previous installation and then
+asking about importing previous settings.
+
@item @code{TEXLIVE_INSTALL_NO_WELCOME}
@anchor{install-tl @code{TEXLIVE_INSTALL_NO_WELCOME}}
Omit printing the welcome message after successful installation, e.g.,
-for testing.
+when testing.
@item @code{TEXLIVE_INSTALL_PREFIX}
@anchor{install-tl @code{TEXLIVE_INSTALL_PREFIX}}
@@ -549,8 +570,8 @@ Don't try to run the @code{--help} message through @code{perldoc}.
@appendixsec AUTHORS AND COPYRIGHT
This script and its documentation were written for the TeX Live
-distribution (@url{http://tug.org/texlive}) and both are licensed under the
+distribution (@url{https://tug.org/texlive}) and both are licensed under the
GNU General Public License Version 2 or later.
-$Id: install-tl 46908 2018-03-10 00:46:28Z preining $
+$Id: install-tl 54143 2020-03-06 23:51:18Z karl $
diff --git a/Build/source/doc/tlbuild-incl/tlmgr.texi b/Build/source/doc/tlbuild-incl/tlmgr.texi
index e4e704a1619..690b33848d6 100644
--- a/Build/source/doc/tlbuild-incl/tlmgr.texi
+++ b/Build/source/doc/tlbuild-incl/tlmgr.texi
@@ -14,6 +14,7 @@
* tlmgr MULTIPLE REPOSITORIES::
* tlmgr GUI FOR TLMGR::
* tlmgr MACHINE-READABLE OUTPUT::
+* tlmgr ENVIRONMENT VARIABLES::
* tlmgr AUTHORS AND COPYRIGHT::
@end menu
@@ -32,11 +33,11 @@ tlmgr [@emph{option}...] @emph{action} [@emph{option}...] [@emph{operand}...]
@strong{tlmgr} manages an existing TeX Live installation, both packages and
configuration options. For information on initially downloading and
-installing TeX Live, see @url{http://tug.org/texlive/acquire.html}.
+installing TeX Live, see @url{https://tug.org/texlive/acquire.html}.
The most up-to-date version of this documentation (updated nightly from
the development sources) is available at
-@url{http://tug.org/texlive/tlmgr.html}, along with procedures for updating
+@url{https://tug.org/texlive/tlmgr.html}, along with procedures for updating
@code{tlmgr} itself and information about test versions.
TeX Live is organized into a few top-level @emph{schemes}, each of which is
@@ -46,7 +47,7 @@ files. Schemes typically contain a mix of collections and packages, but
each package is included in exactly one collection, no more and no less.
A TeX Live installation can be customized and managed at any level.
-See @url{http://tug.org/texlive/doc} for all the TeX Live documentation
+See @url{https://tug.org/texlive/doc} for all the TeX Live documentation
available.
@node tlmgr EXAMPLES
@@ -65,9 +66,13 @@ with @code{tlmgr}:
Tell @code{tlmgr} to use a nearby CTAN mirror for future updates; useful if
you installed TeX Live from the DVD image and want to have continuing
updates. The two commands are equivalent; @code{ctan} is just an alias for
-the given url. Caveat: @code{mirror.ctan.org} resolves to many different
-hosts, and they are not perfectly synchronized; we recommend updating
-only daily (at most), and not more often.
+the given url.
+
+Caveat: @code{mirror.ctan.org} resolves to many different hosts, and they
+are not perfectly synchronized; we recommend updating only daily (at
+most), and not more often. You can choose a particular mirror if
+problems; the list of all CTAN mirrors with the status of each is at
+@url{https://ctan.org/mirrors/mirmon}.
@item @code{tlmgr update --list}
@anchor{tlmgr @code{tlmgr update --list}}
@@ -105,34 +110,123 @@ between an option name and its value.
@item @strong{--repository} @emph{url|path}
@anchor{tlmgr @strong{--repository} @emph{url|path}}
-Specifies the package repository from which packages should be installed
-or updated, overriding the default package repository found in the
-installation's TeX Live Package Database (a.k.a. the TLPDB, defined
-entirely in the file @code{tlpkg/texlive.tlpdb}). The documentation for
-@code{install-tl} has more details about this
-(@url{http://tug.org/texlive/doc/install-tl.html}).
+Specify the package repository from which packages should be installed
+or updated, either a local directory or network location, as below. This
+overridesthe default package repository found in the installation's TeX
+Live Package Database (a.k.a. the TLPDB, which is given entirely in the
+file @code{tlpkg/texlive.tlpdb}).
-@code{--repository} changes the repository location only for the current
+This @code{--repository} option changes the location only for the current
run; to make a permanent change, use @code{option repository} (see the
@ref{tlmgr option,, option} action).
+As an example, you can choose a particular CTAN mirror with something
+like this:
+
+@verbatim
+ -repository http://ctan.example.org/its/ctan/dir/systems/texlive/tlnet
+@end verbatim
+
+Of course a real hostname and its particular top-level CTAN directory
+have to be specified. The list of CTAN mirrors is available at
+@url{https://ctan.org/mirrors/mirmon}.
+
+Here's an example of using a local directory:
+
+@verbatim
+ -repository /local/TL/repository
+@end verbatim
+
For backward compatibility and convenience, @code{--location} and @code{--repo}
are accepted as aliases for this option.
+Locations can be specified as any of the following:
+
+@table @asis
+@item @code{/some/local/dir}
+@anchor{tlmgr @code{/some/local/dir}}
+
+@item @code{file:/some/local/dir}
+@anchor{tlmgr @code{file:/some/local/dir}}
+
+Equivalent ways of specifying a local directory.
+
+@item @code{ctan}
+@anchor{tlmgr @code{ctan}}
+
+@item @code{http://mirror.ctan.org/systems/texlive/tlnet}
+@anchor{tlmgr @code{http://mirror.ctan.org/systems/texlive/tlnet}}
+
+Pick a CTAN mirror automatically, trying for one that is both nearby and
+up-to-date. The chosen mirror is used for the entire download. The bare
+@code{ctan} is merely an alias for the full url. (See @url{https://ctan.org} for
+more about CTAN and its mirrors.)
+
+@item @code{http://server/path/to/tlnet}
+@anchor{tlmgr @code{http://server/path/to/tlnet}}
+
+Standard HTTP. If the (default) LWP method is used, persistent
+connections are supported. TL can also use @code{curl} or @code{wget} to do the
+downloads, or an arbitrary user-specified program, as described in the
+@code{tlmgr} documentation
+(@url{https://tug.org/texlive/doc/tlmgr.html#ENVIRONMENT-VARIABLES}).
+
+@item @code{https://server/path/to/tlnet}
+@anchor{tlmgr @code{https://server/path/to/tlnet}}
+
+Again, if the (default) LWP method is used, this supports persistent
+connections. Unfortunately, some versions of @code{wget} and @code{curl} do not
+support https, and even when @code{wget} supports https, certificates may be
+rejected even when the certificate is fine, due to a lack of local
+certificate roots. The simplest workaround for this problem is to use
+http or ftp.
+
+@item @code{ftp://server/path/to/tlnet}
+@anchor{tlmgr @code{ftp://server/path/to/tlnet}}
+
+If the (default) LWP method is used, persistent connections are
+supported.
+
+@item @code{user@@machine:/path/to/tlnet}
+@anchor{tlmgr @code{user@@machine:/path/to/tlnet}}
+
+@item @code{scp://user@@machine/path/to/tlnet}
+@anchor{tlmgr @code{scp://user@@machine/path/to/tlnet}}
+
+@item @code{ssh://user@@machine/path/to/tlnet}
+@anchor{tlmgr @code{ssh://user@@machine/path/to/tlnet}}
+
+These forms are equivalent; they all use @code{scp} to transfer files. Using
+@code{ssh-agent} is recommended. (Info:
+@url{https://en.wikipedia.org/wiki/OpenSSH},
+@url{https://en.wikipedia.org/wiki/Ssh-agent}.)
+
+@end table
+
+If the repository is on the network, trailing @code{/} characters and/or
+trailing @code{/tlpkg} and/or @code{/archive} components are ignored.
+
@item @strong{--gui} [@emph{action}]
@anchor{tlmgr @strong{--gui} [@emph{action}]}
-@code{tlmgr} has a graphical interface as well as the command line
-interface. You can give this option, @code{--gui}, together with an action
-to be brought directly into the respective screen of the GUI. For
-example, running
+Two notable GUI front-ends for @code{tlmgr}, @code{tlshell} and @code{tlcockpit},
+are started up as separate programs; see their own documentation.
+
+@code{tlmgr} itself has a graphical interface as well as the command line
+interface. You can give the option to invoke it, @code{--gui}, together with
+an action to be brought directly into the respective screen of the GUI.
+For example, running
@verbatim
tlmgr --gui update
@end verbatim
starts you directly at the update screen. If no action is given, the
-GUI will be started at the main screen.
+GUI will be started at the main screen. See @ref{tlmgr GUI FOR TLMGR,, GUI FOR TLMGR}.
+
+However, the native GUI requires Perl/TK, which is no longer included in
+TeX Live's Perl distribution for Windows. You may find @code{tlshell} or
+@code{tlcockpit} easier to work with.
@item @strong{--gui-lang} @emph{llcode}
@anchor{tlmgr @strong{--gui-lang} @emph{llcode}}
@@ -140,12 +234,15 @@ GUI will be started at the main screen.
By default, the GUI tries to deduce your language from the environment
(on Windows via the registry, on Unix via @code{LC_MESSAGES}). If that fails
you can select a different language by giving this option with a
-language code (based on ISO 639-1). Currently supported (but not
-necessarily completely translated) are: English (en, default), Czech
-(cs), German (de), French (fr), Italian (it), Japanese (ja), Dutch (nl),
-Polish (pl), Brazilian Portuguese (pt_BR), Russian (ru), Slovak (sk),
-Slovenian (sl), Serbian (sr), Ukrainian (uk), Vietnamese (vi),
-simplified Chinese (zh_CN), and traditional Chinese (zh_TW).
+language code (based on ISO 639-1). Currently supported (but not
+necessarily completely translated) are: @w{English (en, default)},
+@w{Czech (cs)}, @w{German (de)}, @w{French (fr)}, @w{Italian (it)},
+@w{Japanese (ja)}, @w{Dutch (nl)}, @w{Polish (pl)}, @w{Brazilian Portuguese
+(pt_BR)}, @w{Russian (ru)}, @w{Slovak (sk)}, @w{Slovenian (sl)}, @w{Serbian
+(sr)}, @w{Ukrainian (uk)}, @w{Vietnamese (vi)}, @w{simplified Chinese
+(zh_CN)}, and @w{traditional Chinese (zh_TW)}.
+
+tlshell shares its message catalog with tlmgr.
@item @strong{--debug-translation}
@anchor{tlmgr @strong{--debug-translation}}
@@ -243,7 +340,7 @@ revision number for the loaded TeX Live Perl modules are shown, too.
* tlmgr version::
* tlmgr backup::
* tlmgr candidates @emph{pkg}::
-* tlmgr check [@emph{option}...] [files|depends|executes|runfiles|all]::
+* tlmgr check [@emph{option}...] [depends|executes|files|runfiles|texmfdbs|all]::
* tlmgr conf::
* tlmgr dump-tlpdb [@emph{option}...] [--json]::
* tlmgr generate::
@@ -275,7 +372,7 @@ revision number for the loaded TeX Live Perl modules are shown, too.
@appendixsubsec help
Display this help information and exit (same as @code{--help}, and on the
-web at @url{http://tug.org/texlive/doc/tlmgr.html}). Sometimes the
+web at @url{https://tug.org/texlive/doc/tlmgr.html}). Sometimes the
@code{perldoc} and/or @code{PAGER} programs on the system have problems,
resulting in control characters being literally output. This can't
always be detected, but you can set the @code{NOPERLDOC} environment
@@ -300,10 +397,12 @@ If @code{-v} has been given the revisions of the used modules are reported, too.
If the @code{--clean} option is not specified, this action makes a backup of
the given packages, or all packages given @code{--all}. These backups are
-saved to the value of the @code{--backupdir} option, if that is an existing and
-writable directory. If @code{--backupdir} is not given, the @code{backupdir}
-option setting in the TLPDB is used, if present. If both are missing,
-no backups are made.
+saved to the value of the @code{--backupdir} option, if that is an existing
+and writable directory. If @code{--backupdir} is not given, the @code{backupdir}
+option setting in the TLPDB is used, if present. If both are missing, no
+backups are made. (The installer sets @code{backupdir} to
+@code{.../tlpkg/backups}, under the TL root installation directory, so it is
+usually defined; see the @ref{tlmgr option,, option} description for more information.)
If the @code{--clean} option is specified, backups are pruned (removed)
instead of saved. The optional integer value @emph{N} may be specified to
@@ -353,18 +452,14 @@ performed are written to the terminal.
Shows the available candidate repositories for package @emph{pkg}.
See @ref{tlmgr MULTIPLE REPOSITORIES,, MULTIPLE REPOSITORIES} below.
-@node tlmgr check [@emph{option}...] [files|depends|executes|runfiles|all]
-@appendixsubsec check [@emph{option}...] [files|depends|executes|runfiles|all]
+@node tlmgr check [@emph{option}...] [depends|executes|files|runfiles|texmfdbs|all]
+@appendixsubsec check [@emph{option}...] [depends|executes|files|runfiles|texmfdbs|all]
-Executes one (or all) check(s) on the consistency of the installation.
+Execute one (or all) check(s) of the consistency of the installation.
+If no problems are found, there will be no output. (To get a view of
+what is being done, run @code{tlmgr -v check}.)
@table @asis
-@item @strong{files}
-@anchor{tlmgr @strong{files}}
-
-Checks that all files listed in the local TLPDB (@code{texlive.tlpdb}) are
-actually present, and lists those missing.
-
@item @strong{depends}
@anchor{tlmgr @strong{depends}}
@@ -381,11 +476,39 @@ instead since former versions for @code{tlmgr} called it that way.
Check that the files referred to by @code{execute} directives in the TeX
Live Database are present.
+@item @strong{files}
+@anchor{tlmgr @strong{files}}
+
+Checks that all files listed in the local TLPDB (@code{texlive.tlpdb}) are
+actually present, and lists those missing.
+
@item @strong{runfiles}
@anchor{tlmgr @strong{runfiles}}
List those filenames that are occurring more than one time in the
-runfiles sections.
+runfiles sections, except for known duplicates.
+
+@item @strong{texmfdbs}
+@anchor{tlmgr @strong{texmfdbs}}
+
+Checks related to the @code{ls-R} files. If you have defined new trees, or
+changed the @code{TEXMF} or @code{TEXMFDBS} variables, it can't hurt to run
+this. It checks that:
+
+@table @asis
+@item - all items in @code{TEXMFDBS} have the @code{!!} prefix.
+@anchor{tlmgr - all items in @code{TEXMFDBS} have the @code{!!} prefix.}
+
+@item - all items in @code{TEXMFBDS} have an @code{ls-R} file (if they exist at all).
+@anchor{tlmgr - all items in @code{TEXMFBDS} have an @code{ls-R} file (if they exist at all).}
+
+@item - all items in @code{TEXMF} with @code{!!} are listed in @code{TEXMFDBS}.
+@anchor{tlmgr - all items in @code{TEXMF} with @code{!!} are listed in @code{TEXMFDBS}.}
+
+@item - all items in @code{TEXMF} with an @code{ls-R} file are listed in @code{TEXMFDBS}.
+@anchor{tlmgr - all items in @code{TEXMF} with an @code{ls-R} file are listed in @code{TEXMFDBS}.}
+
+@end table
@end table
@@ -396,7 +519,7 @@ Options:
@anchor{tlmgr @strong{--use-svn}}
Use the output of @code{svn status} instead of listing the files; for
-checking the TL development repository.
+checking the TL development repository. (This is run nightly.)
@end table
@@ -407,8 +530,8 @@ checking the TL development repository.
@item @strong{conf [texmf|tlmgr|updmap [--conffile @emph{file}] [--delete] [@emph{key} [@emph{value}]]]}
@anchor{tlmgr @strong{conf [texmf|tlmgr|updmap [--conffile @emph{file}] [--delete] [@emph{key} [@emph{value}]]]}}
-@item @strong{conf auxtrees [--conffile @emph{file}] [show|add|delete] [@emph{value}]}
-@anchor{tlmgr @strong{conf auxtrees [--conffile @emph{file}] [show|add|delete] [@emph{value}]}}
+@item @strong{conf auxtrees [--conffile @emph{file}] [show|add|remove] [@emph{value}]}
+@anchor{tlmgr @strong{conf auxtrees [--conffile @emph{file}] [show|add|remove] [@emph{value}]}}
With only @code{conf}, show general configuration information for TeX Live,
including active configuration files, path settings, and more. This is
@@ -444,8 +567,8 @@ additional texmf trees, completely under user control. @code{auxtrees show}
shows the list of additional trees, @code{auxtrees add} @emph{tree} adds a tree
to the list, and @code{auxtrees remove} @emph{tree} removes a tree from the list
(if present). The trees should not contain an @code{ls-R} file (or files
-might not be found if the @code{ls-R} becomes stale). This works by
-manipulating the Kpathsea variable @code{TEXMFAUXTREES}, in
+will not be found if the @code{ls-R} becomes stale). This works by
+manipulating the Kpathsea variable @code{TEXMFAUXTREES}, in (by default)
@code{ROOT/texmf.cnf}. Example:
@verbatim
@@ -454,7 +577,8 @@ manipulating the Kpathsea variable @code{TEXMFAUXTREES}, in
@end verbatim
In all cases the configuration file can be explicitly specified via the
-option @code{--conffile} @emph{file}, if desired.
+option @code{--conffile} @emph{file}, e.g., if you don't want to change the
+system-wide configuration.
Warning: The general facility for changing configuration values is here,
but tinkering with settings in this way is strongly discouraged. Again,
@@ -531,7 +655,7 @@ The TeX Live installer and @code{tlmgr} routinely call @code{generate} for
all of these files.
For managing your own fonts, please read the @code{updmap --help}
-information and/or @url{http://tug.org/fonts/fontinstall.html}.
+information and/or @url{https://tug.org/fonts/fontinstall.html}.
For managing your own formats, please read the @code{fmtutil --help}
information.
@@ -696,6 +820,14 @@ dependencies in a similar way.
If this option is given, the installation source will not be used; only
locally installed packages, collections, or schemes are listed.
+@item @strong{--only-remote}
+@anchor{tlmgr @strong{--only-remote}}
+
+Only list packages from the remote repository. Useful when checking what
+is available in a remote repository using
+@code{tlmgr --repo ... --only-remote info}. Note that
+@code{--only-installed} and @code{--only-remote} cannot both be specified.
+
@item @strong{--data @code{item1,item2,...}}
@anchor{tlmgr @strong{--data @code{item1@comma{}item2@comma{}...}}}
@@ -731,8 +863,8 @@ with @code{--usertree}. See @ref{tlmgr USER MODE,, USER MODE} below.
@appendixsubsec install [@emph{option}...] @emph{pkg}...
Install each @emph{pkg} given on the command line, if it is not already
-installed. (It does not touch existing packages; see the @code{update}
-action for how to get the latest version of a package.)
+installed. It does not touch existing packages; see the @code{update}
+action for how to get the latest version of a package.
By default this also installs all packages on which the given @emph{pkg}s are
dependent. Options:
@@ -803,6 +935,10 @@ after all. You can get them by using these options in conjunction with
@end table
+This action does not automatically add new symlinks in system
+directories; you need to run @code{tlmgr path add} (@ref{tlmgr path,, path}) yourself if
+you are using this feature and want new symlinks added.
+
@node tlmgr key
@appendixsubsec key
@@ -824,7 +960,7 @@ With the @code{list} argument, @code{key} lists all keys.
The @code{add} argument requires another argument, either a filename or
@code{-} for stdin, from which the key is added. The key is added to the
-local keyring @code{GNUPGHOME/repository-keys.gpg}, which is normally)
+local keyring @code{GNUPGHOME/repository-keys.gpg}, which is normally
@code{tlpkg/gpg/repository-keys.gpg}.
The @code{remove} argument requires a key id and removes the requested id
@@ -844,8 +980,8 @@ Synonym for @ref{tlmgr info,, info}.
@item @strong{option [--json] [show]}
@anchor{tlmgr @strong{option [--json] [show]}}
-@item @strong{option [--json] showall}
-@anchor{tlmgr @strong{option [--json] showall}}
+@item @strong{option [--json] showall|help}
+@anchor{tlmgr @strong{option [--json] showall|help}}
@item @strong{option @emph{key} [@emph{value}]}
@anchor{tlmgr @strong{option @emph{key} [@emph{value}]}}
@@ -857,7 +993,8 @@ saved in the TLPDB with a short description and the @code{key} used for
changing it in parentheses.
The second form, @code{showall}, is similar, but also shows options which
-can be defined but are not currently set to any value.
+can be defined but are not currently set to any value (@code{help} is a
+synonym).
Both @code{show...} forms take an option @code{--json}, which dumps the option
information in JSON format. In this case, both forms dump the same
@@ -873,7 +1010,7 @@ the definitive list):
@verbatim
repository (default package repository),
- formats (create formats at installation time),
+ formats (generate formats at installation or update time),
postcode (run postinst code blobs)
docfiles (install documentation files),
srcfiles (install source files),
@@ -901,7 +1038,8 @@ be used as a synonym for @code{repository}.)
If @code{formats} is set (this is the default), then formats are regenerated
when either the engine or the format files have changed. Disable this
-only when you know how and want to regenerate formats yourself.
+only when you know how and want to regenerate formats yourself whenever
+needed (which is often, in practice).
The @code{postcode} option controls execution of per-package
postinstallation action code. It is set by default, and again disabling
@@ -915,10 +1053,11 @@ testing installations, etc. When disabled, the respective files are not
downloaded at all.
The options @code{autobackup} and @code{backupdir} determine the defaults for
-the actions @code{update}, @code{backup} and @code{restore}. These three actions
-need a directory in which to read or write the backups. If
+the actions @code{update}, @code{backup} and @code{restore}. These three actions
+need a directory in which to read or write the backups. If
@code{--backupdir} is not specified on the command line, the @code{backupdir}
-option value is used (if set).
+option value is used (if set). The TL installer sets @code{backupdir} to
+@code{.../tlpkg/backups}, under the TL root installation directory.
The @code{autobackup} option (de)activates automatic generation of backups.
Its value is an integer. If the @code{autobackup} value is @code{-1}, no
@@ -957,8 +1096,8 @@ instead of only the current user. All three options are on by default.
@item @strong{paper [a4|letter]}
@anchor{tlmgr @strong{paper [a4|letter]}}
-@item @strong{@w{[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [@emph{papersize}|--list]}}
-@anchor{tlmgr @strong{@w{[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [@emph{papersize}|--list]}}}
+@item @strong{<[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [@emph{papersize}|--list]}>
+@anchor{tlmgr @strong{<[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [@emph{papersize}|--list]}>}
@item @strong{paper --json}
@anchor{tlmgr @strong{paper --json}}
@@ -1003,10 +1142,12 @@ settings.
@item @strong{path [--w32mode=user|admin] remove}
@anchor{tlmgr @strong{path [--w32mode=user|admin] remove}}
-On Unix, merely adds or removes symlinks for binaries, man pages, and
-info pages in the system directories specified by the respective options
-(see the @ref{tlmgr option,, option} description above). Does not change any
-initialization files, either system or personal.
+On Unix, adds or removes symlinks for executables, man pages, and info
+pages in the system directories specified by the respective options (see
+the @ref{tlmgr option,, option} description above). Does not change any initialization
+files, either system or personal. Furthermore, any executables added or
+removed by future updates are not taken care of automatically; this
+command must be rerun as needed.
On Windows, the registry part where the binary directory is added or
removed is determined in the following way:
@@ -1089,7 +1230,7 @@ platform instead of auto detection.
@code{platform set auto} switches TeX Live to auto detection mode for platform.
-Platform detection is needed to select the proper @code{xz}, @code{xzdec} and
+Platform detection is needed to select the proper @code{xz} and
@code{wget} binaries that are shipped with TeX Live.
@code{arch} is a synonym for @code{platform}.
@@ -1222,6 +1363,10 @@ written to the terminal.
@end table
+This action does not automatically remove symlinks to executables from
+system directories; you need to run @code{tlmgr path remove} (@ref{tlmgr path,, path})
+yourself if you are using this feature and want stale symlinks removed.
+
@node tlmgr repository
@appendixsubsec repository
@@ -1229,8 +1374,8 @@ written to the terminal.
@item @strong{repository list}
@anchor{tlmgr @strong{repository list}}
-@item @strong{repository list @emph{path|tag}}
-@anchor{tlmgr @strong{repository list @emph{path|tag}}}
+@item @strong{repository list @emph{path|url|tag}}
+@anchor{tlmgr @strong{repository list @emph{path|url|tag}}}
@item @strong{repository add @emph{path} [@emph{tag}]}
@anchor{tlmgr @strong{repository add @emph{path} [@emph{tag}]}}
@@ -1241,21 +1386,46 @@ written to the terminal.
@item @strong{repository set @emph{path}[#@emph{tag}] [@emph{path}[#@emph{tag}] ...]}
@anchor{tlmgr @strong{repository set @emph{path}[#@emph{tag}] [@emph{path}[#@emph{tag}] ...]}}
+@item @strong{repository status}
+@anchor{tlmgr @strong{repository status}}
+
This action manages the list of repositories. See @ref{,,, MULTIPLE_REPOSITORIES} below for detailed explanations.
-The first form (@code{list}) lists all configured repositories and the
-respective tags if set. If a path, url, or tag is given after the
-@code{list} keyword, it is interpreted as source from where to
-initialize a TeX Live Database and lists the contained packages.
-This can also be an up-to-now not used repository, both locally
-and remote. If one pass in addition @code{--with-platforms}, for each
-package the available platforms (if any) are listed, too.
+The first form, @code{repository list}, lists all configured repositories
+and the respective tags if set. If a path, url, or tag is given after
+the @code{list} keyword, it is interpreted as the source from which to
+initialize a TL database and lists the contained packages. This can also
+be an otherwise-unused repository, either local or remote. If the option
+@code{--with-platforms} is specified in addition, for each package the
+available platforms (if any) are also listed.
+
+The form @code{repository add} adds a repository (optionally attaching a
+tag) to the list of repositories, while @code{repository remove} removes a
+repository, either by full path/url, or by tag.
+
+The form @code{repository set} sets the list of available repositories to
+the items given on the command line, overwriting previous settings.
+
+The form @code{repository status} reports the verification status of the
+loaded repositories with the format of one repository per line
+with fields separated by a single space:
+
+@table @asis
+@item The tag (which can be the same as the url);
+@anchor{tlmgr The tag (which can be the same as the url);}
+
+= the url;
-The third form (@code{add}) adds a repository
-(optionally attaching a tag) to the list of repositories. The forth
-form (@code{remove}) removes a repository, either by full path/url, or by
-tag. The last form (@code{set}) sets the list of repositories to the items
-given on the command line, not keeping previous settings
+= iff machine-readable output is specified, the verification code (a
+number);
+
+= a textual description of the verification status, as the last field
+extending to the end of line.
+
+@end table
+
+That is, in normal (not machine-readable) output, the third field
+(numeric verification status) is not present.
In all cases, one of the repositories must be tagged as @code{main};
otherwise, all operations will fail!
@@ -1464,9 +1634,9 @@ must be specified. Options:
@item @strong{--all}
@anchor{tlmgr @strong{--all} 5}
-Update all installed packages except for @code{tlmgr} itself. Thus, if
-updates to @code{tlmgr} itself are present, this will simply give an error,
-unless also the option @code{--force} or @code{--self} is given. (See below.)
+Update all installed packages except for @code{tlmgr} itself. If updates to
+@code{tlmgr} itself are present, this gives an error, unless also the option
+@code{--force} or @code{--self} is given. (See below.)
In addition to updating the installed packages, during the update of a
collection the local installation is (by default) synchronized to the
@@ -1483,7 +1653,7 @@ Analogously, if a package has been added to a collection on the server
that is also installed locally, it will be added to the local
installation. This is called ``auto-install'' and is announced as such
when using the option @code{--list}. This auto-installation can be
-suppressed using the option @code{--no-auto-install}.
+suppressed using the option @code{--no-auto-install} (also not recommended).
An exception to the collection dependency checks (including the
auto-installation of packages just mentioned) are those that have been
@@ -1491,6 +1661,13 @@ auto-installation of packages just mentioned) are those that have been
on them. (See the @code{remove} action documentation.) To reinstall any
such forcibly removed packages use @code{--reinstall-forcibly-removed}.
+To reiterate: automatic removals and additions are entirely determined
+by comparison of collections. Thus, if you manually install an
+individual package @code{foo} which is later removed from the server,
+@code{tlmgr} will not notice and will not remove it locally. (It has to be
+this way, without major rearchitecture work, because the tlpdb does not
+record the repository from which packages come from.)
+
If you want to exclude some packages from the current update run (e.g.,
due to a slow link), see the @code{--exclude} option below.
@@ -1563,12 +1740,12 @@ the key @code{update-exclude}.
@item @strong{--no-auto-remove} [@emph{pkg}...]
@anchor{tlmgr @strong{--no-auto-remove} [@emph{pkg}...]}
-By default, @code{tlmgr} tries to remove packages which have disappeared on
-the server, as described above under @code{--all}. This option prevents
-such removals, either for all packages (with @code{--all}), or for just the
-given @emph{pkg} names. This can lead to an inconsistent TeX installation,
-since packages are not infrequently renamed or replaced by their
-authors. Therefore this is not recommend.
+By default, @code{tlmgr} tries to remove packages in an existing collection
+which have disappeared on the server, as described above under @code{--all}.
+This option prevents such removals, either for all packages (with
+@code{--all}), or for just the given @emph{pkg} names. This can lead to an
+inconsistent TeX installation, since packages are not infrequently
+renamed or replaced by their authors. Therefore this is not recommended.
@item @strong{--no-auto-install} [@emph{pkg}...]
@anchor{tlmgr @strong{--no-auto-install} [@emph{pkg}...]}
@@ -1594,6 +1771,9 @@ is equivalent to
tlmgr remove --force foobar
@end verbatim
+Again, since packages are sometimes renamed or replaced, using this
+option is not recommended.
+
@item @strong{--reinstall-forcibly-removed}
@anchor{tlmgr @strong{--reinstall-forcibly-removed}}
@@ -1617,8 +1797,8 @@ installation with the server's idea of what is available:
@anchor{tlmgr @strong{--backupdir} @emph{directory} 3}
These two options control the creation of backups of packages @emph{before}
-updating; that is, backup of packages as currently installed. If
-neither options is given, no backup will made. If @code{--backupdir} is
+updating; that is, backing up packages as currently installed. If
+neither option is given, no backup will made. If @code{--backupdir} is
given and specifies a writable directory then a backup will be made in
that location. If only @code{--backup} is given, then a backup will be made
to the directory previously set via the @ref{tlmgr option,, option} action (see
@@ -1669,11 +1849,15 @@ fallback information, but if you don't like them accumulating (e.g.,
@code{mirror.ctan.org} resolves to many different hosts, each resulting in
a possibly different hash), it's harmless to delete them.
+This action does not automatically add or remove new symlinks in system
+directories; you need to run @code{tlmgr} @ref{tlmgr path,, path} yourself if you are using
+this feature and want new symlinks added.
+
@node tlmgr CONFIGURATION FILE FOR TLMGR
@appendixsec CONFIGURATION FILE FOR TLMGR
-There are two configuration files for @code{tlmgr}: One is system-wide in
-@code{TEXMFSYSCONFIG/tlmgr/config}, and the other is user-specific in
+@code{tlmgr} reads two configuration files: one is system-wide, in
+@code{TEXMFSYSCONFIG/tlmgr/config}, and the other is user-specific, in
@code{TEXMFCONFIG/tlmgr/config}. The user-specific one is the default for
the @code{conf tlmgr} action. (Run @code{kpsewhich
-var-value=TEXMFSYSCONFIG} or @code{... TEXMFCONFIG ...} to see the actual
@@ -1741,8 +1925,8 @@ disables this process.
The checksum algorithm is SHA-512. Your system must have one of (looked
for in this order) the Perl @code{Digest::SHA} module, the @code{openssl}
-program (@url{http://openssl.org}), the @code{sha512sum} program (from GNU
-Coreutils, @url{http://www.gnu.org/software/coreutils}), or finally the
+program (@url{https://openssl.org}), the @code{sha512sum} program (from GNU
+Coreutils, @url{https://www.gnu.org/software/coreutils}), or finally the
@code{shasum} program (just to support old Macs). If none of these are
available, a warning is issued and @code{tlmgr} proceeds without checking
checksums. (Incidentally, other SHA implementations, such as the pure
@@ -1781,8 +1965,9 @@ above) to succeed, and a working GnuPG (@code{gpg}) program (see below for
search method). Then, unless cryptographic verification has been
disabled, a signature file (@code{texlive.tlpdb.*.asc}) of the checksum file
is downloaded and the signature verified. The signature is created by
-the TeX Live Distribution GPG key 0x06BAB6BC, which in turn is signed by
-Karl Berry's key 0x30D155AD and Norbert Preining's key 0x6CACA448. All
+the TeX Live Distribution GPG key 0x0D5E5D9106BAB6BC, which in turn is
+signed by Karl Berry's key 0x0716748A30D155AD and
+Norbert Preining's key 0x6CACA448860CDC13. All
of these keys are obtainable from the standard key servers.
Additional trusted keys can be added using the @code{key} action.
@@ -1956,11 +2141,10 @@ only one enabled (as is the case by default):
@end verbatim
Ok. Let's add the @code{tlcontrib} repository (this is a real
-repository, hosted at @url{http://tlcontrib.metatex.org}, maintained by
-Taco Hoekwater et al.), with the tag @code{tlcontrib}:
+repository hosted at @url{http://contrib.texlive.info}) with the tag @code{tlcontrib}:
@verbatim
- $ tlmgr repository add http://tlcontrib.metatex.org/2012 tlcontrib
+ $ tlmgr repository add http://contrib.texlive.info/current tlcontrib
@end verbatim
Check the repository list again:
@@ -1968,64 +2152,69 @@ Check the repository list again:
@verbatim
$ tlmgr repository list
List of repositories (with tags if set):
- http://tlcontrib.metatex.org/2012 (tlcontrib)
+ http://contrib.texlive.info/current (tlcontrib)
/var/www/norbert/tlnet (main)
@end verbatim
-Now we specify a pinning entry to get the package @code{context} from
+Now we specify a pinning entry to get the package @code{classico} from
@code{tlcontrib}:
@verbatim
- $ tlmgr pinning add tlcontrib context
+ $ tlmgr pinning add tlcontrib classico
@end verbatim
-Check that we can find @code{context}:
+Check that we can find @code{classico}:
@verbatim
- $ tlmgr show context
- tlmgr: package repositories:
+ $ tlmgr show classico
+ package: classico
...
- package: context
- repository: tlcontrib/26867
+ shortdesc: URW Classico fonts
...
@end verbatim
-- install @code{context}:
+- install @code{classico}:
@verbatim
- $ tlmgr install context
+ $ tlmgr install classico
tlmgr: package repositories:
...
- [1/1, ??:??/??:??] install: context @tlcontrib [
+ [1/1, ??:??/??:??] install: classico @tlcontrib [737k]
@end verbatim
-In the output here you can see that the @code{context} package has been
+In the output here you can see that the @code{classico} package has been
installed from the @code{tlcontrib} repository (@code{@@tlcontrib}).
Finally, @code{tlmgr pinning} also supports removing certain or all packages
from a given repository:
@verbatim
- $ tlmgr pinning remove tlcontrib context # remove just context
+ $ tlmgr pinning remove tlcontrib classico # remove just classico
$ tlmgr pinning remove tlcontrib --all # take nothing from tlcontrib
@end verbatim
-A summary of the @code{tlmgr pinning} actions is given above.
+A summary of @code{tlmgr pinning} actions is given above.
@node tlmgr GUI FOR TLMGR
@appendixsec GUI FOR TLMGR
The graphical user interface for @code{tlmgr} requires Perl/Tk
-@url{http://search.cpan.org/search?query=perl%2Ftk}. For Windows the
-necessary modules are shipped within TeX Live, for all other (i.e.,
-Unix-based) systems Perl/Tk (as well as Perl of course) has to be
-installed outside of TL. @url{http://tug.org/texlive/distro.html#perltk}
-has a list of invocations for some distros.
-
-The GUI is started with the invocation @code{tlmgr gui}; assuming Tk is
-loadable, the graphical user interface will be shown. The main window
-contains a menu bar, the main display, and a status area where messages
-normally shown on the console are displayed.
+@url{https://search.cpan.org/search?query=perl%2Ftk}. For Unix-based
+systems Perl/Tk (as well as Perl of course) has to be installed
+outside of TL. @url{https://tug.org/texlive/distro.html#perltk} has a
+list of invocations for some distros. For Windows the necessary
+modules are no longer shipped within TeX Live, so you'll have to have an
+external Perl available that includes them.
+
+We are talking here about the GUI built into tlmgr itself, not about the
+other tlmgr GUIs, which are: tlshell (Tcl/Tk-based), tlcockpit
+(Java-based) and, only on Macs, TeX Live Utility. These are invoked as
+separate programs.
+
+The GUI mode of tlmgr is started with the invocation @code{tlmgr gui};
+assuming Tk is loadable, the graphical user interface will be shown.
+The main window contains a menu bar, the main display, and a status
+area where messages normally shown on the console are displayed.
Within the main display there are three main parts: the @code{Display
configuration} area, the list of packages, and the action buttons.
@@ -2237,7 +2426,7 @@ on Windows).
@anchor{tlmgr @code{Help menu}}
Provides access to the TeX Live manual (also on the web at
-@url{http://tug.org/texlive/doc.html}) and the usual ``About'' box.
+@url{https://tug.org/texlive/doc.html}) and the usual ``About'' box.
@end table
@@ -2279,7 +2468,7 @@ Pass the arbitrary X resource string @emph{xresource}.
@end table
A few other obscure options are recognized but not mentioned here. See
-the Perl/Tk documentation (@url{http://search.cpan.org/perldoc?Tk}) for the
+the Perl/Tk documentation (@url{https://search.cpan.org/perldoc?Tk}) for the
complete list, and any X documentation for general information.
@node tlmgr MACHINE-READABLE OUTPUT
@@ -2453,12 +2642,101 @@ If a value is not saved in the database the string @code{(not set)} is shown.
If you are developing a program that uses this output, and find that
changes would be helpful, do not hesitate to write the mailing list.
+@node tlmgr ENVIRONMENT VARIABLES
+@appendixsec ENVIRONMENT VARIABLES
+
+@code{tlmgr} uses many of the standard TeX environment variables, as
+reported by, e.g., @code{tlmgr conf} (@ref{tlmgr conf,, conf}).
+
+In addition, for ease in scripting and debugging, @code{tlmgr} looks for the
+following environment variables. These are not of interest for normal
+user installations.
+
+@table @asis
+@item @code{TEXLIVE_COMPRESSOR}
+@anchor{tlmgr @code{TEXLIVE_COMPRESSOR}}
+
+This variable allows selecting a different compressor program for
+backups and intermediate rollback containers. The order of selection is:
+
+@enumerate
+@item If the environment variable @code{TEXLIVE_COMPRESSOR} is
+defined, use it; abort if it doesn't work. Possible values:
+@code{lz4}, @code{gzip}, @code{xz}. The necessary options are added internally.
+
+@item If lz4 is available (either from the system or TL) and working, use that.
+
+@item If gzip is available (from the system) and working, use that.
+
+@item If xz is available (either from the system or TL) and working, use that.
+
+@end enumerate
+
+lz4 and gzip are faster in creating tlmgr's local backups, hence they
+are preferred. The unconditional use of xz for the tlnet containers is
+unaffected, to minimize download sizes.
+
+@item @code{TEXLIVE_DOWNLOADER}
+@anchor{tlmgr @code{TEXLIVE_DOWNLOADER}}
+
+@item @code{TL_DOWNLOAD_PROGRAM}
+@anchor{tlmgr @code{TL_DOWNLOAD_PROGRAM}}
+
+@item @code{TL_DOWNLOAD_ARGS}
+@anchor{tlmgr @code{TL_DOWNLOAD_ARGS}}
+
+These options allow selecting different download programs then the ones
+automatically selected by the installer. The order of selection is:
+
+@enumerate
+@item If the environment variable @code{TEXLIVE_DOWNLOADER} is defined, use it;
+abort if the specified program doesn't work. Possible values: @code{lwp},
+@code{curl}, @code{wget}. The necessary options are added internally.
+
+@item If the environment variable @code{TL_DOWNLOAD_PROGRAM} is
+defined (can be any value), use it together with
+@code{TL_DOWNLOAD_ARGS}; abort if it doesn't work.
+
+@item If LWP is available and working, use that (by far the most
+efficient method, as it supports persistent downloads).
+
+@item If curl is available (from the system) and working, use that.
+
+@item If wget is available (either from the system or TL) and working, use that.
+
+@end enumerate
+
+TL provides @code{wget} binaries for platforms where necessary, so some
+download method should always be available.
+
+@item @code{TEXLIVE_PREFER_OWN}
+@anchor{tlmgr @code{TEXLIVE_PREFER_OWN}}
+
+By default, compression and download programs provided by the system,
+i.e., found along @code{PATH} are preferred over those shipped with TeX
+Live.
+
+This can create problems with systems that are too old, and so can be
+overridden by setting the environment variable @code{TEXLIVE_PREFER_OWN} to
+1. In this case, executables shipped with TL will be preferred.
+
+Extra compression/download programs not provided by TL, such as gzip,
+lwp, and curl, are still checked for on the system and used if
+available, per the above. @code{TEXLIVE_PREFER_OWN} only applies when the
+program being checked for is shipped with TL, namely the lz4 and
+xz compressors and wget downloader.
+
+Exception: on Windows, the @code{tar.exe} shipped with TL is always used,
+regardless of any setting.
+
+@end table
+
@node tlmgr AUTHORS AND COPYRIGHT
@appendixsec AUTHORS AND COPYRIGHT
This script and its documentation were written for the TeX Live
-distribution (@url{http://tug.org/texlive}) and both are licensed under the
+distribution (@url{https://tug.org/texlive}) and both are licensed under the
GNU General Public License Version 2 or later.
-$Id: tlmgr.pl 47303 2018-04-05 17:52:22Z karl $
+$Id: tlmgr.pl 54118 2020-03-05 22:27:22Z karl $
diff --git a/Build/source/doc/tlbuild.info b/Build/source/doc/tlbuild.info
index 5777e26c5c7..6c34b8095d4 100644
--- a/Build/source/doc/tlbuild.info
+++ b/Build/source/doc/tlbuild.info
@@ -1,9 +1,9 @@
-This is tlbuild.info, produced by makeinfo version 5.1 from
+This is tlbuild.info, produced by makeinfo version 6.7 from
tlbuild.texi.
This file documents the TeX Live build system and more.
-Copyright (C) 2016-2019 Karl Berry.
+Copyright (C) 2016-2020 Karl Berry.
Copyright (C) 2013-2015 Karl Berry & Peter Breitenlohner.
Permission is granted to make and distribute verbatim copies of this
@@ -33,7 +33,7 @@ END-INFO-DIR-ENTRY

File: tlbuild.info, Node: Top, Next: Introduction, Up: (dir)
-Building TeX Live (2019)
+Building TeX Live (2020)
************************
For an overview of this manual, *note Introduction::.
@@ -59,8 +59,7 @@ File: tlbuild.info, Node: Introduction, Next: Overview of build system, Prev:
1 Introduction
**************
-This manual (dated February 2019) corresponds to the TeX Live 2019
-release.
+This manual (dated March 2020) corresponds to the TeX Live 2020 release.
This manual is aimed at system installers and programmers, and
focuses on how to configure, build, and develop the TeX Live (TL)
@@ -322,8 +321,8 @@ File: tlbuild.info, Node: Build one package, Next: Build one engine, Prev: Bu
=====================
To build one package, the basic idea is to use the 'configure' option
-'--disable-all-pkgs' (*note '--disable-all-pkgs'::). Then all program
-and library modules are configured but none are made. However, the
+'--disable-all-pkgs' (*note --disable-all-pkgs::). Then all program and
+library modules are configured but none are made. However, the
'Makefile's still contain all build rules and dependencies and can be
invoked to build an individual program or library, first building any
required libraries.
@@ -747,7 +746,7 @@ many extra hassles, so don't do that, tempting as it may be.
autoconf (GNU Autoconf) 2.69
automake (GNU automake) 1.16.1
- bison (GNU Bison) 3.5.1
+ bison (GNU Bison) 3.5.2
flex 2.6.0
ltmain.sh (GNU libtool) 2.4.6
m4 (GNU M4) 1.4.18
@@ -1038,13 +1037,13 @@ structure and variation.
* Menu:
-* 'png' library:: 'libs/libpng'
-* 'zlib' library:: 'libs/zlib'
-* 'freetype' library:: 'libs/freetype2'
-* 'kpathsea' library:: 'texk/kpathsea'
+* png library:: 'libs/libpng'
+* zlib library:: 'libs/zlib'
+* freetype library:: 'libs/freetype2'
+* kpathsea library:: 'texk/kpathsea'

-File: tlbuild.info, Node: 'png' library, Next: 'zlib' library, Up: Library modules
+File: tlbuild.info, Node: png library, Next: zlib library, Up: Library modules
6.4.1 The 'png' library in 'libs/libpng'
----------------------------------------
@@ -1100,7 +1099,7 @@ the 'make' rules to rebuild the library.
flags required for the system library.

-File: tlbuild.info, Node: 'zlib' library, Next: 'freetype' library, Prev: 'png' library, Up: Library modules
+File: tlbuild.info, Node: zlib library, Next: freetype library, Prev: png library, Up: Library modules
6.4.2 The 'zlib' library in 'libs/zlib'
---------------------------------------
@@ -1112,7 +1111,7 @@ supplies the configure option '--with-system-zlib', as well as
locations of the 'zlib' headers and/or library.

-File: tlbuild.info, Node: 'freetype' library, Next: 'kpathsea' library, Prev: 'zlib' library, Up: Library modules
+File: tlbuild.info, Node: freetype library, Next: kpathsea library, Prev: zlib library, Up: Library modules
6.4.3 The 'freetype' library in 'libs/freetype2'
------------------------------------------------
@@ -1128,7 +1127,7 @@ system provided by upstream (possibly patched).
'freetype-config'.

-File: tlbuild.info, Node: 'kpathsea' library, Prev: 'freetype' library, Up: Library modules
+File: tlbuild.info, Node: kpathsea library, Prev: freetype library, Up: Library modules
6.4.4 The 'kpathsea' library in 'texk/kpathsea'
-----------------------------------------------
@@ -1166,13 +1165,13 @@ for a few of the programs in TL.
* Menu:
-* 't1utils' package:: 'utils/t1utils'
-* 'xindy' package:: 'utils/xindy'
-* 'xdvik' package:: 'texk/xdvik'
-* 'asymptote':: 'utils/asymptote'
+* t1utils package:: 'utils/t1utils'
+* xindy package:: 'utils/xindy'
+* xdvik package:: 'texk/xdvik'
+* asymptote:: 'utils/asymptote'

-File: tlbuild.info, Node: 't1utils' package, Next: 'xindy' package, Up: Program modules
+File: tlbuild.info, Node: t1utils package, Next: xindy package, Up: Program modules
6.5.1 The 't1utils' package in 'utils/t1utils'
----------------------------------------------
@@ -1188,7 +1187,7 @@ specifying the module name without any dependencies, and supplies the
configure option '--disable-t1utils'.

-File: tlbuild.info, Node: 'xindy' package, Next: 'xdvik' package, Prev: 't1utils' package, Up: Program modules
+File: tlbuild.info, Node: xindy package, Next: xdvik package, Prev: t1utils package, Up: Program modules
6.5.2 The 'xindy' package in 'utils/xindy'
------------------------------------------
@@ -1214,7 +1213,7 @@ built if explicitly enabled by the user with 'configure --enable-xindy'
included by 'configure.ac'.

-File: tlbuild.info, Node: 'xdvik' package, Next: 'asymptote', Prev: 'xindy' package, Up: Program modules
+File: tlbuild.info, Node: xdvik package, Next: asymptote, Prev: xindy package, Up: Program modules
6.5.3 The 'xdvik' package in 'texk/xdvik'
-----------------------------------------
@@ -1239,7 +1238,7 @@ system whereas the auxiliary program 'squeeze/squeeze' has to run on the
also seen at the top level.

-File: tlbuild.info, Node: 'asymptote', Prev: 'xdvik' package, Up: Program modules
+File: tlbuild.info, Node: asymptote, Prev: xdvik package, Up: Program modules
6.5.4 The subdirectory 'utils/asymptote'
----------------------------------------
@@ -1456,21 +1455,21 @@ Here are the global configure options.
* Menu:
-* '--disable-native-texlive-build'::
-* '--prefix' '--bindir' ...::
-* '--disable-largefile'::
-* '--disable-missing'::
-* '--enable-compiler-warnings='LEVEL::
-* '--enable-cxx-runtime-hack'::
-* '--enable-maintainer-mode'::
-* '--enable-multiplatform'::
-* '--enable-shared'::
-* '--enable-silent-rules'::
-* '--without-ln-s'::
-* '--without-x'::
+* --disable-native-texlive-build::
+* --prefix --bindir ...::
+* --disable-largefile::
+* --disable-missing::
+* --enable-compiler-warnings=LEVEL::
+* --enable-cxx-runtime-hack::
+* --enable-maintainer-mode::
+* --enable-multiplatform::
+* --enable-shared::
+* --enable-silent-rules::
+* --without-ln-s::
+* --without-x::

-File: tlbuild.info, Node: '--disable-native-texlive-build', Next: '--prefix' '--bindir' ..., Up: Global configure options
+File: tlbuild.info, Node: --disable-native-texlive-build, Next: --prefix --bindir ..., Up: Global configure options
7.1.1 '--disable-native-texlive-build'
--------------------------------------
@@ -1491,7 +1490,7 @@ also be built independently from the TL tree (such as 'utils/xindy' and
TL-specific adaptations, such as installation paths.

-File: tlbuild.info, Node: '--prefix' '--bindir' ..., Next: '--disable-largefile', Prev: '--disable-native-texlive-build', Up: Global configure options
+File: tlbuild.info, Node: --prefix --bindir ..., Next: --disable-largefile, Prev: --disable-native-texlive-build, Up: Global configure options
7.1.2 '--prefix', '--bindir', ...
---------------------------------
@@ -1504,7 +1503,7 @@ set, on the 'make' command line (*note Installation in a temporary
location: (automake)Staged Installs.).

-File: tlbuild.info, Node: '--disable-largefile', Next: '--disable-missing', Prev: '--prefix' '--bindir' ..., Up: Global configure options
+File: tlbuild.info, Node: --disable-largefile, Next: --disable-missing, Prev: --prefix --bindir ..., Up: Global configure options
7.1.3 '--disable-largefile'
---------------------------
@@ -1520,7 +1519,7 @@ included by 'pdftex' or 'luatex' must, however, be <2GB when using
'poppler' version 0.22 or before (even on 64-bit systems with LFS).

-File: tlbuild.info, Node: '--disable-missing', Next: '--enable-compiler-warnings='LEVEL, Prev: '--disable-largefile', Up: Global configure options
+File: tlbuild.info, Node: --disable-missing, Next: --enable-compiler-warnings=LEVEL, Prev: --disable-largefile, Up: Global configure options
7.1.4 '--disable-missing'
-------------------------
@@ -1530,7 +1529,7 @@ feature must be disabled, e.g., due to missing libraries. This can help
when figuring out a specific (sub)set of modules to enable.

-File: tlbuild.info, Node: '--enable-compiler-warnings='LEVEL, Next: '--enable-cxx-runtime-hack', Prev: '--disable-missing', Up: Global configure options
+File: tlbuild.info, Node: --enable-compiler-warnings=LEVEL, Next: --enable-cxx-runtime-hack, Prev: --disable-missing, Up: Global configure options
7.1.5 '--enable-compiler-warnings='LEVEL
----------------------------------------
@@ -1543,7 +1542,7 @@ variables are not consistently used in all library and program modules.
At present, these warning flags assume options from the GNU compilers.

-File: tlbuild.info, Node: '--enable-cxx-runtime-hack', Next: '--enable-maintainer-mode', Prev: '--enable-compiler-warnings='LEVEL, Up: Global configure options
+File: tlbuild.info, Node: --enable-cxx-runtime-hack, Next: --enable-maintainer-mode, Prev: --enable-compiler-warnings=LEVEL, Up: Global configure options
7.1.6 '--enable-cxx-runtime-hack'
---------------------------------
@@ -1553,7 +1552,7 @@ statically link with 'libstdc++', thus improving portability of the
resulting binary. *Note Macros for compilers::.

-File: tlbuild.info, Node: '--enable-maintainer-mode', Next: '--enable-multiplatform', Prev: '--enable-cxx-runtime-hack', Up: Global configure options
+File: tlbuild.info, Node: --enable-maintainer-mode, Next: --enable-multiplatform, Prev: --enable-cxx-runtime-hack, Up: Global configure options
7.1.7 '--enable-maintainer-mode'
--------------------------------
@@ -1565,7 +1564,7 @@ rebuilds infrastructure files as needed. *Note 'missing' and
'AM_MAINTAINER_MODE': (automake)maintainer-mode.

-File: tlbuild.info, Node: '--enable-multiplatform', Next: '--enable-shared', Prev: '--enable-maintainer-mode', Up: Global configure options
+File: tlbuild.info, Node: --enable-multiplatform, Next: --enable-shared, Prev: --enable-maintainer-mode, Up: Global configure options
7.1.8 '--enable-multiplatform'
------------------------------
@@ -1578,7 +1577,7 @@ the values for 'bindir' and 'libdir' are automatically propagated to all
subdirectories.

-File: tlbuild.info, Node: '--enable-shared', Next: '--enable-silent-rules', Prev: '--enable-multiplatform', Up: Global configure options
+File: tlbuild.info, Node: --enable-shared, Next: --enable-silent-rules, Prev: --enable-multiplatform, Up: Global configure options
7.1.9 '--enable-shared'
-----------------------
@@ -1588,7 +1587,7 @@ Build shared versions of the TeX-specific libraries such as
'--disable-native-texlive-build' must also be specified).

-File: tlbuild.info, Node: '--enable-silent-rules', Next: '--without-ln-s', Prev: '--enable-shared', Up: Global configure options
+File: tlbuild.info, Node: --enable-silent-rules, Next: --without-ln-s, Prev: --enable-shared, Up: Global configure options
7.1.10 '--enable-silent-rules'
------------------------------
@@ -1599,7 +1598,7 @@ can specify 'V=1' on the 'make' command line to get more verbosity, or
'V=0' to get less, regardless of this option.

-File: tlbuild.info, Node: '--without-ln-s', Next: '--without-x', Prev: '--enable-silent-rules', Up: Global configure options
+File: tlbuild.info, Node: --without-ln-s, Next: --without-x, Prev: --enable-silent-rules, Up: Global configure options
7.1.11 '--without-ln-s'
-----------------------
@@ -1609,7 +1608,7 @@ for a Unix-like system. However, 'make install' will not create
anything useful, and might fail.

-File: tlbuild.info, Node: '--without-x', Prev: '--without-ln-s', Up: Global configure options
+File: tlbuild.info, Node: --without-x, Prev: --without-ln-s, Up: Global configure options
7.1.12 '--without-x'
--------------------
@@ -1626,18 +1625,18 @@ Here are (some of) the program-specific 'configure' options.
* Menu:
-* '--enable-PROG' '--disable-PROG'::
-* '--disable-all-pkgs'::
-* Configure options for 'texk/web2c'::
-* Configure options for 'texk/bibtex-x'::
-* Configure options for 'texk/dvipdfm-x'::
-* Configure options for 'texk/dvisvgm'::
-* Configure options for 'texk/texlive'::
-* Configure options for 'texk/xdvik'::
-* Configure options for 'utils/xindy'::
+* --enable-PROG --disable-PROG::
+* --disable-all-pkgs::
+* Configure options for texk/web2c::
+* Configure options for texk/bibtex-x::
+* Configure options for texk/dvipdfm-x::
+* Configure options for texk/dvisvgm::
+* Configure options for texk/texlive::
+* Configure options for texk/xdvik::
+* Configure options for utils/xindy::

-File: tlbuild.info, Node: '--enable-PROG' '--disable-PROG', Next: '--disable-all-pkgs', Up: Program-specific configure options
+File: tlbuild.info, Node: --enable-PROG --disable-PROG, Next: --disable-all-pkgs, Up: Program-specific configure options
7.2.1 '--enable-PROG', '--disable-PROG'
---------------------------------------
@@ -1645,7 +1644,7 @@ File: tlbuild.info, Node: '--enable-PROG' '--disable-PROG', Next: '--disable-a
Do or do not build and install the program(s) of module 'PROG'.

-File: tlbuild.info, Node: '--disable-all-pkgs', Next: Configure options for 'texk/web2c', Prev: '--enable-PROG' '--disable-PROG', Up: Program-specific configure options
+File: tlbuild.info, Node: --disable-all-pkgs, Next: Configure options for texk/web2c, Prev: --enable-PROG --disable-PROG, Up: Program-specific configure options
7.2.2 '--disable-all-pkgs'
--------------------------
@@ -1662,7 +1661,7 @@ explicitly disabled or specify 'disable' in their 'ac/withenable.ac'
fragment.

-File: tlbuild.info, Node: Configure options for 'texk/web2c', Next: Configure options for 'texk/bibtex-x', Prev: '--disable-all-pkgs', Up: Program-specific configure options
+File: tlbuild.info, Node: Configure options for texk/web2c, Next: Configure options for texk/bibtex-x, Prev: --disable-all-pkgs, Up: Program-specific configure options
7.2.3 Configure options for 'texk/web2c'
----------------------------------------
@@ -1729,7 +1728,7 @@ native TeX Live build. Defaults are defined in
Do not build the 'SyncTeX' library and tool.

-File: tlbuild.info, Node: Configure options for 'texk/bibtex-x', Next: Configure options for 'texk/dvipdfm-x', Prev: Configure options for 'texk/web2c', Up: Program-specific configure options
+File: tlbuild.info, Node: Configure options for texk/bibtex-x, Next: Configure options for texk/dvipdfm-x, Prev: Configure options for texk/web2c, Up: Program-specific configure options
7.2.4 Configure options for 'texk/bibtex-x'
-------------------------------------------
@@ -1745,7 +1744,7 @@ Do not build the 'bibtexu' program (building 'bibtexu' requires 'ICU'
libraries).

-File: tlbuild.info, Node: Configure options for 'texk/dvipdfm-x', Next: Configure options for 'texk/dvisvgm', Prev: Configure options for 'texk/bibtex-x', Up: Program-specific configure options
+File: tlbuild.info, Node: Configure options for texk/dvipdfm-x, Next: Configure options for texk/dvisvgm, Prev: Configure options for texk/bibtex-x, Up: Program-specific configure options
7.2.5 Configure options for 'texk/dvipdfm-x'
--------------------------------------------
@@ -1763,7 +1762,7 @@ Do not build the 'dvipdfmx' program or make the 'dvipdfm' symlink.
Do not build the 'xdvipdfmx' program.

-File: tlbuild.info, Node: Configure options for 'texk/dvisvgm', Next: Configure options for 'texk/texlive', Prev: Configure options for 'texk/dvipdfm-x', Up: Program-specific configure options
+File: tlbuild.info, Node: Configure options for texk/dvisvgm, Next: Configure options for texk/texlive, Prev: Configure options for texk/dvipdfm-x, Up: Program-specific configure options
7.2.6 Configure options for 'texk/dvisvgm'
------------------------------------------
@@ -1783,7 +1782,7 @@ result can crash due to library incompatibilities, e.g., on CentOS 5.
Specify non-standard locations of the Ghostscript headers and library.

-File: tlbuild.info, Node: Configure options for 'texk/texlive', Next: Configure options for 'texk/xdvik', Prev: Configure options for 'texk/dvisvgm', Up: Program-specific configure options
+File: tlbuild.info, Node: Configure options for texk/texlive, Next: Configure options for texk/xdvik, Prev: Configure options for texk/dvisvgm, Up: Program-specific configure options
7.2.7 Configure options for 'texk/texlive'
------------------------------------------
@@ -1793,7 +1792,7 @@ Do not install the "linked scripts" (*note Linked scripts::), except for
the TL scripts required to run 'texlinks'.

-File: tlbuild.info, Node: Configure options for 'texk/xdvik', Next: Configure options for 'utils/xindy', Prev: Configure options for 'texk/texlive', Up: Program-specific configure options
+File: tlbuild.info, Node: Configure options for texk/xdvik, Next: Configure options for utils/xindy, Prev: Configure options for texk/texlive, Up: Program-specific configure options
7.2.8 Configure options for 'texk/xdvik'
----------------------------------------
@@ -1810,7 +1809,7 @@ Use XInput 2.1 "smooth scrolling" if available (default: yes, except for
a native TL build).

-File: tlbuild.info, Node: Configure options for 'utils/xindy', Prev: Configure options for 'texk/xdvik', Up: Program-specific configure options
+File: tlbuild.info, Node: Configure options for utils/xindy, Prev: Configure options for texk/xdvik, Up: Program-specific configure options
7.2.9 Configure options for 'utils/xindy'
-----------------------------------------
@@ -1856,11 +1855,11 @@ required system libraries and bails out if tests fail.
* Menu:
-* Configure options for 'kpathsea'::
-* Configure options for system 'poppler'::
+* Configure options for kpathsea::
+* Configure options for system poppler::

-File: tlbuild.info, Node: Configure options for 'kpathsea', Next: Configure options for system 'poppler', Up: Library-specific configure options
+File: tlbuild.info, Node: Configure options for kpathsea, Next: Configure options for system poppler, Up: Library-specific configure options
7.3.1 Configure options for 'kpathsea'
--------------------------------------
@@ -1884,10 +1883,10 @@ is one of:
(TFM file)
to generate the specified type of file dynamically. The default can be
-overridden by the user in any case (*note 'kpathsea' library::).
+overridden by the user in any case (*note kpathsea library::).

-File: tlbuild.info, Node: Configure options for system 'poppler', Prev: Configure options for 'kpathsea', Up: Library-specific configure options
+File: tlbuild.info, Node: Configure options for system poppler, Prev: Configure options for kpathsea, Up: Library-specific configure options
7.3.2 Configure options for system 'poppler'
--------------------------------------------
@@ -1902,8 +1901,7 @@ LuaJITTeX) and XeTeX, and use 'pkg-config' to obtain the required flags.
'--with-system-xpdf'
Use a system version (0.12 or newer) of 'poppler' (and 'pkg-config') for
-pdfTeX instead of 'xpdf' from the TL tree. *Note
-'--disable-largefile'::.
+pdfTeX instead of 'xpdf' from the TL tree. *Note --disable-largefile::.

File: tlbuild.info, Node: Variables for configure, Prev: Library-specific configure options, Up: Configure options
@@ -2226,9 +2224,9 @@ A.3 DESCRIPTION
This installer creates a runnable TeX Live installation from various
media, including over the network, from local hard disk, a DVD, etc.
-The installer works across all platforms supported by TeX Live. For
-information on initially downloading the TeX Live, see
-<http://tug.org/texlive/acquire.html>.
+The installer works on all platforms supported by TeX Live. For
+information on initially downloading TeX Live, see
+<https://tug.org/texlive/acquire.html>.
The basic idea of TeX Live installation is for you to choose one of
the top-level _schemes_, each of which is defined as a different set of
@@ -2249,15 +2247,15 @@ File: tlbuild.info, Node: install-tl REFERENCES, Next: install-tl OPTIONS, Pr
A.4 REFERENCES
==============
-Post-installation configuration, package updates, and much more, are
-handled through *tlmgr*(1), the TeX Live Manager
-(<http://tug.org/texlive/tlmgr.html>).
+Post-installation configuration, package updates, and more, are handled
+through *tlmgr*(1), the TeX Live Manager
+(<https://tug.org/texlive/tlmgr.html>).
The most up-to-date version of this installer documentation is on the
-Internet at <http://tug.org/texlive/doc/install-tl.html>.
+Internet at <https://tug.org/texlive/doc/install-tl.html>.
For the full documentation of TeX Live, see
-<http://tug.org/texlive/doc>.
+<https://tug.org/texlive/doc>.

File: tlbuild.info, Node: install-tl OPTIONS, Next: install-tl PROFILES, Prev: install-tl REFERENCES, Up: install-tl
@@ -2271,7 +2269,7 @@ by either a space or '='.
*-gui* [[=]_module_]
- If no _module_ is given, starts the 'perltk' (see below) GUI
+ If no _module_ is given, starts the Tcl/Tk (see below) GUI
installer.
If _module_ is given loads the given installer module. Currently
@@ -2282,32 +2280,49 @@ by either a space or '='.
The text mode user interface (default on Unix systems). Same
as the '-no-gui' option.
+ 'tcl'
+
+ The Tcl/Tk user interface (default on Macs and Windows). It
+ starts with a small number of configuration options, roughly
+ equivalent to what the wizard option below offers, but a
+ button 'Advanced' takes you to a screen with roughly the same
+ options as the 'perltk' interface.
+
'wizard'
- The wizard mode user interface (default on Windows), asking
- only minimal questions before installing all of TeX Live.
+ The wizard mode user interface, asking only minimal questions
+ before installing all of TeX Live.
+
+ 'expert'
+
+ A generic name for, currently, 'perltk'; it may select a
+ different GUI in the future.
'perltk'
The expert GUI installer, providing access to more options.
- Can also be invoked on Windows by running
- 'install-tl-advanced.bat'.
- The 'perltk' and 'wizard' modules, and thus also when calling with
- bare '-gui' (with no _module_), require the Perl/Tk module
- (<http://tug.org/texlive/distro.html#perltk>); if Perl/Tk is not
- available, installation continues in text mode.
+ The 'perltk' and 'wizard' modules require the Perl/Tk module
+ (<https://tug.org/texlive/distro.html#perltk>). if Perl/Tk is not
+ available, installation continues in text mode, except on Windows,
+ where all gui options except 'text' are diverted to the default
+ 'tcl' GUI.
+
+ The 'tcl' GUI requires Tcl/Tk. This is standard on Macs and is
+ often already installed on GNU/Linux. For Windows, TeX Live
+ provides a Tcl/Tk runtime.
*-no-gui*
- Use the text mode installer (default except on Windows).
+ Use the text mode installer (default except on Windows and Macs).
*-lang* _llcode_
By default, the GUI tries to deduce your language from the
- environment (on Windows via the registry, on Unix via
- 'LC_MESSAGES'). If that fails you can select a different language
- by giving this option with a language code (based on ISO 639-1).
+ environment. The Tcl GUI uses the language detection built into
+ Tcl/Tk; the Perl/Tk GUIs use the 'LC_MESSAGES' environment
+ variable. If that fails you can select a different language by
+ giving this option with a language code (based on ISO 639-1).
Currently supported (but not necessarily completely translated)
are: English (en, default), Czech (cs), German (de), French (fr),
Italian (it), Japanese (ja), Dutch (nl), Polish (pl), Brazilian
@@ -2318,51 +2333,28 @@ by either a space or '='.
*-repository* _url|path_
Specify the package repository to be used as the source of the
- installation, either a local directory via '/path/to/directory' or
- a 'file:/' url, or a network location via a 'http://', 'https://',
- or 'ftp://' url. (No other protocols are supported, and 'https://'
- may not work on all platforms.)
+ installation. In short, this can be a directory name or a url
+ using http(s), ftp, or scp. The documentation for 'tlmgr' has the
+ details (<https://tug.org/texlive/doc/tlmgr.html#OPTIONS>).
- The default is to pick a mirror automatically, using
- <http://mirror.ctan.org/systems/texlive/tlnet>; the chosen mirror
- is used for the entire download. You can use the special argument
- 'ctan' as an abbreviation for this. See <http://ctan.org> for more
- about CTAN and its mirrors.
-
- If the repository is on the network, trailing '/' characters and/or
- trailing '/tlpkg' and '/archive' components are ignored. For
- example, you could choose a particular CTAN mirror with something
- like this:
-
- -repository http://ctan.example.org/its/ctan/dir/systems/texlive/tlnet
-
- Of course a real hostname and its particular top-level CTAN
- directory have to be specified. The list of CTAN mirrors is
- available at <http://ctan.org/mirrors>.
-
- If the repository is local, the installation type (compressed or
- live) is automatically determined, by checking for the presence of
- a 'archive' directory relative to the root. Compressed is
- preferred if both are available, since it is faster. Here's an
- example of using a local directory:
-
- -repository /local/TL/repository
+ For installation, the default is to pick a mirror automatically,
+ using <http://mirror.ctan.org/systems/texlive/tlnet>; the chosen
+ mirror is used for the entire download. You can use the special
+ argument 'ctan' as an abbreviation for this. (See
+ <https://ctan.org> for more about CTAN and its mirrors.)
After installation is complete, you can use that installation as
the repository for another installation. If you chose to install
less than the full scheme containing all packages, the list of
available schemes will be adjusted accordingly.
- For backward compatibility and convenience, '--location' and
- '--repo' are accepted as aliases for this option.
-
*-select-repository*
- This option allows manual selection of a mirror from the current
- list of active CTAN mirrors. This option is supported in all
- installer modes (text, wizard, perltk), and will also offer to
- install from local media if available, or from a repository
- specified on the command line (see above). It's useful when the
+ This option allows you to choose a particular mirror from the
+ current list of active CTAN mirrors. This option is supported in
+ the 'text', 'wizard' and 'perltk' installer modes, and will also
+ offer to install from local media if available, or from a
+ repository specified on the command line. It's useful when the
(default) automatic redirection does not choose a good host for
you.
@@ -2386,12 +2378,12 @@ by either a space or '='.
binary sets, manually rename 'custom' before doing each.
For more information on custom binaries, see
- <http://tug.org/texlive/custom-bin.html>. For general information
- on building TeX Live, see <http://tug.org/texlive/build.html>.
+ <https://tug.org/texlive/custom-bin.html>. For general information
+ on building TeX Live, see <https://tug.org/texlive/build.html>.
*-debug-translation*
- In GUI mode, this switch makes 'tlmgr' report any missing, or more
+ In the Perl/Tk GUI modes, this option reports any missing, or more
likely untranslated, messages to standard error. Helpful for
translators to see what remains to be done.
@@ -2404,8 +2396,8 @@ by either a space or '='.
*-help*, *-help*, *-?*
- Display this help and exit. (This help is on the web at
- <http://tug.org/texlive/doc/install-tl.html>). Sometimes the
+ Display this help and exit. (This help is also on the web at
+ <https://tug.org/texlive/doc/install-tl.html>). Sometimes the
'perldoc' and/or 'PAGER' programs on the system have problems,
possibly resulting in control characters being literally output.
This can't always be detected, but you can set the 'NOPERLDOC'
@@ -2426,7 +2418,8 @@ by either a space or '='.
Similar to *-profile* (see *note PROFILES: install-tl PROFILES.
below), but only initializes the installation configuration from
- _profile_file_ and then starts the interactive session.
+ _profile_file_ and then starts a normal interactive session.
+ Environment variables are not ignored.
*-logfile* _file_
@@ -2442,15 +2435,10 @@ by either a space or '='.
For the text mode installer only: do not clear the screen when
entering a new menu (for debugging purposes).
-*-non-admin*
-
- For Windows only: configure for the current user, not for all
- users.
+*-no-persistent-downloads*
*-persistent-downloads*
-*-no-persistent-downloads*
-
For network installs, activating this option makes the installer
try to set up a persistent connection using the 'Net::LWP' Perl
module. This opens only one connection between your computer and
@@ -2469,7 +2457,12 @@ by either a space or '='.
verified against a cryptographic signature. This option disables
such verification. The full description is in the Crytographic
Verification section of the 'tlmgr' documentation, e.g.,
- <http://tug.org/texlive/doc/tlmgr.html#CRYPTOGRAPHIC-VERIFICATION>
+ <https://tug.org/texlive/doc/tlmgr.html#CRYPTOGRAPHIC-VERIFICATION>
+
+*-non-admin*
+
+ For Windows only: configure for the current user, not for all
+ users.
*-portable*
@@ -2485,8 +2478,9 @@ by either a space or '='.
*-profile* _profile_file_
Load _profile_file_ and do the installation with no user
- interaction, that is, a batch (unattended) install. See *note
- PROFILES: install-tl PROFILES. below.
+ interaction, that is, a batch (unattended) install. Environment
+ variables are ignored. See *note PROFILES: install-tl PROFILES.
+ below.
*-q*
@@ -2509,8 +2503,8 @@ by either a space or '='.
*-version*, *-version*
- Output version information and exit. If '-v' has also been given
- the revisions of the used modules are reported, too.
+ Output version information and exit. If '-v' is also given, the
+ versions of the TeX Live modules used are also reported.

File: tlbuild.info, Node: install-tl PROFILES, Next: install-tl ENVIRONMENT VARIABLES, Prev: install-tl OPTIONS, Up: install-tl
@@ -2522,11 +2516,18 @@ A _profile_ file contains all the values needed to perform an
installation. After a normal installation has finished, a profile for
that exact installation is written to the file 'tlpkg/texlive.profile'.
In addition, from the text menu one can select 'P' to save the current
-setup as a profile at any time. Such a profile file can be given as the
-argument to '-profile', for example to redo the exact same installation
-on a different system. Alternatively, you can use a custom profile,
-most easily created by starting from a generated one and changing
-values, or an empty file, which will take all the defaults.
+setup as a profile at any time.
+
+ Such a profile file can be given as the argument to '-profile', for
+example to redo the exact same installation on a different system.
+Alternatively, you can use a custom profile, most easily created by
+starting from a generated one and changing values, or an empty file,
+which will take all the defaults.
+
+ As mentioned above, the installer only supports selection by scheme
+and collections, not individual packages, so packages cannot be
+specified in profile files either. Use 'tlmgr' to work at the package
+level.
Within a profile file, each line consists of
@@ -2605,9 +2606,9 @@ value that could cause problems later.
*tlpdb options* (prefix 'tlpdbopt_')
- The definitive list is given in 'tlpkg/TeXLive/TLConfig.pm', in
-'%TeXLive::TLConfig::TLPDBOptions', together with explanations. All
-items given there _except_ for 'tlpdbopt_location' can be specified.
+ The definitive list is given in 'tlpkg/TeXLive/TLConfig.pm', in the
+hash '%TeXLive::TLConfig::TLPDBOptions', together with explanations.
+All items given there _except_ for 'tlpdbopt_location' can be specified.
Here is the current list:
tlpdbopt_autobackup
@@ -2627,11 +2628,11 @@ Here is the current list:
*platform options* (prefix 'binary_')
For each supported platform in TeX Live (directories under 'bin/'),
-the variable 'binary_'_PLATFORM_ can be set. For example:
+the variable 'binary_'_PLATFORM_ can be set with value 1. For example:
- binary_x86_64-linux
+ binary_x86_64-linux 1
- If no 'binary_' variable is specified, the default is whatever the
+ If no 'binary_' settings are made, the default is whatever the
current machine is running.
In releases before 2017, many profile variables had different names
@@ -2640,7 +2641,7 @@ and transformed to the names given above. When a profile is written,
the names above are always used.
For more details on all of the above options, consult the TeX Live
-installation manual, linked from <http://tug.org/texlive/doc>.
+installation manual, linked from <https://tug.org/texlive/doc>.

File: tlbuild.info, Node: install-tl ENVIRONMENT VARIABLES, Next: install-tl AUTHORS AND COPYRIGHT, Prev: install-tl PROFILES, Up: install-tl
@@ -2648,10 +2649,20 @@ File: tlbuild.info, Node: install-tl ENVIRONMENT VARIABLES, Next: install-tl A
A.7 ENVIRONMENT VARIABLES
=========================
-For ease in scripting and debugging, 'install-tl' will look for the
+For ease in scripting and debugging, 'install-tl' looks for the
following environment variables. They are not of interest for normal
user installations.
+'TEXLIVE_DOWNLOADER'
+
+'TL_DOWNLOAD_PROGRAM'
+
+'TL_DOWNLOAD_ARGS'
+
+ These override the normal choice of a download program; see the
+ 'tlmgr' documentation, e.g.,
+ <https://tug.org/texlive/doc/tlmgr.html#ENVIRONMENT-VARIABLES>.
+
'TEXLIVE_INSTALL_ENV_NOCHECK'
Omit the check for environment variables containing the string
@@ -2663,10 +2674,15 @@ user installations.
Omit creating the ConTeXt cache. This is useful for
redistributors.
+'TEXLIVE_INSTALL_NO_IMPORT'
+
+ Omit check for installing on top of a previous installation and
+ then asking about importing previous settings.
+
'TEXLIVE_INSTALL_NO_WELCOME'
Omit printing the welcome message after successful installation,
- e.g., for testing.
+ e.g., when testing.
'TEXLIVE_INSTALL_PREFIX'
@@ -2702,10 +2718,10 @@ A.8 AUTHORS AND COPYRIGHT
=========================
This script and its documentation were written for the TeX Live
-distribution (<http://tug.org/texlive>) and both are licensed under the
+distribution (<https://tug.org/texlive>) and both are licensed under the
GNU General Public License Version 2 or later.
- $Id: install-tl 46908 2018-03-10 00:46:28Z preining $
+ $Id: install-tl 54143 2020-03-06 23:51:18Z karl $

File: tlbuild.info, Node: tlmgr, Next: Index, Prev: install-tl, Up: Top
@@ -2727,6 +2743,7 @@ Appendix B tlmgr
* tlmgr MULTIPLE REPOSITORIES::
* tlmgr GUI FOR TLMGR::
* tlmgr MACHINE-READABLE OUTPUT::
+* tlmgr ENVIRONMENT VARIABLES::
* tlmgr AUTHORS AND COPYRIGHT::

@@ -2753,11 +2770,11 @@ B.3 DESCRIPTION
*tlmgr* manages an existing TeX Live installation, both packages and
configuration options. For information on initially downloading and
-installing TeX Live, see <http://tug.org/texlive/acquire.html>.
+installing TeX Live, see <https://tug.org/texlive/acquire.html>.
The most up-to-date version of this documentation (updated nightly
from the development sources) is available at
-<http://tug.org/texlive/tlmgr.html>, along with procedures for updating
+<https://tug.org/texlive/tlmgr.html>, along with procedures for updating
'tlmgr' itself and information about test versions.
TeX Live is organized into a few top-level _schemes_, each of which
@@ -2767,7 +2784,7 @@ files. Schemes typically contain a mix of collections and packages, but
each package is included in exactly one collection, no more and no less.
A TeX Live installation can be customized and managed at any level.
- See <http://tug.org/texlive/doc> for all the TeX Live documentation
+ See <https://tug.org/texlive/doc> for all the TeX Live documentation
available.

@@ -2786,10 +2803,13 @@ with 'tlmgr':
Tell 'tlmgr' to use a nearby CTAN mirror for future updates; useful
if you installed TeX Live from the DVD image and want to have
continuing updates. The two commands are equivalent; 'ctan' is
- just an alias for the given url. Caveat: 'mirror.ctan.org'
- resolves to many different hosts, and they are not perfectly
- synchronized; we recommend updating only daily (at most), and not
- more often.
+ just an alias for the given url.
+
+ Caveat: 'mirror.ctan.org' resolves to many different hosts, and
+ they are not perfectly synchronized; we recommend updating only
+ daily (at most), and not more often. You can choose a particular
+ mirror if problems; the list of all CTAN mirrors with the status of
+ each is at <https://ctan.org/mirrors/mirmon>.
'tlmgr update --list'
@@ -2824,31 +2844,106 @@ name and its value.
*-repository* _url|path_
- Specifies the package repository from which packages should be
- installed or updated, overriding the default package repository
- found in the installation's TeX Live Package Database (a.k.a. the
- TLPDB, defined entirely in the file 'tlpkg/texlive.tlpdb'). The
- documentation for 'install-tl' has more details about this
- (<http://tug.org/texlive/doc/install-tl.html>).
+ Specify the package repository from which packages should be
+ installed or updated, either a local directory or network location,
+ as below. This overridesthe default package repository found in
+ the installation's TeX Live Package Database (a.k.a. the TLPDB,
+ which is given entirely in the file 'tlpkg/texlive.tlpdb').
+
+ This '--repository' option changes the location only for the
+ current run; to make a permanent change, use 'option repository'
+ (see the *note option: tlmgr option. action).
+
+ As an example, you can choose a particular CTAN mirror with
+ something like this:
+
+ -repository http://ctan.example.org/its/ctan/dir/systems/texlive/tlnet
+
+ Of course a real hostname and its particular top-level CTAN
+ directory have to be specified. The list of CTAN mirrors is
+ available at <https://ctan.org/mirrors/mirmon>.
- '--repository' changes the repository location only for the current
- run; to make a permanent change, use 'option repository' (see the
- *note option: tlmgr option. action).
+ Here's an example of using a local directory:
+
+ -repository /local/TL/repository
For backward compatibility and convenience, '--location' and
'--repo' are accepted as aliases for this option.
+ Locations can be specified as any of the following:
+
+ '/some/local/dir'
+
+ 'file:/some/local/dir'
+
+ Equivalent ways of specifying a local directory.
+
+ 'ctan'
+
+ 'http://mirror.ctan.org/systems/texlive/tlnet'
+
+ Pick a CTAN mirror automatically, trying for one that is both
+ nearby and up-to-date. The chosen mirror is used for the
+ entire download. The bare 'ctan' is merely an alias for the
+ full url. (See <https://ctan.org> for more about CTAN and its
+ mirrors.)
+
+ 'http://server/path/to/tlnet'
+
+ Standard HTTP. If the (default) LWP method is used, persistent
+ connections are supported. TL can also use 'curl' or 'wget'
+ to do the downloads, or an arbitrary user-specified program,
+ as described in the 'tlmgr' documentation
+ (<https://tug.org/texlive/doc/tlmgr.html#ENVIRONMENT-VARIABLES>).
+
+ 'https://server/path/to/tlnet'
+
+ Again, if the (default) LWP method is used, this supports
+ persistent connections. Unfortunately, some versions of
+ 'wget' and 'curl' do not support https, and even when 'wget'
+ supports https, certificates may be rejected even when the
+ certificate is fine, due to a lack of local certificate roots.
+ The simplest workaround for this problem is to use http or
+ ftp.
+
+ 'ftp://server/path/to/tlnet'
+
+ If the (default) LWP method is used, persistent connections
+ are supported.
+
+ 'user@machine:/path/to/tlnet'
+
+ 'scp://user@machine/path/to/tlnet'
+
+ 'ssh://user@machine/path/to/tlnet'
+
+ These forms are equivalent; they all use 'scp' to transfer
+ files. Using 'ssh-agent' is recommended. (Info:
+ <https://en.wikipedia.org/wiki/OpenSSH>,
+ <https://en.wikipedia.org/wiki/Ssh-agent>.)
+
+ If the repository is on the network, trailing '/' characters and/or
+ trailing '/tlpkg' and/or '/archive' components are ignored.
+
*-gui* [_action_]
- 'tlmgr' has a graphical interface as well as the command line
- interface. You can give this option, '--gui', together with an
- action to be brought directly into the respective screen of the
- GUI. For example, running
+ Two notable GUI front-ends for 'tlmgr', 'tlshell' and 'tlcockpit',
+ are started up as separate programs; see their own documentation.
+
+ 'tlmgr' itself has a graphical interface as well as the command
+ line interface. You can give the option to invoke it, '--gui',
+ together with an action to be brought directly into the respective
+ screen of the GUI. For example, running
tlmgr --gui update
starts you directly at the update screen. If no action is given,
- the GUI will be started at the main screen.
+ the GUI will be started at the main screen. See *note GUI FOR
+ TLMGR: tlmgr GUI FOR TLMGR.
+
+ However, the native GUI requires Perl/TK, which is no longer
+ included in TeX Live's Perl distribution for Windows. You may find
+ 'tlshell' or 'tlcockpit' easier to work with.
*-gui-lang* _llcode_
@@ -2858,10 +2953,12 @@ name and its value.
by giving this option with a language code (based on ISO 639-1).
Currently supported (but not necessarily completely translated)
are: English (en, default), Czech (cs), German (de), French (fr),
- Italian (it), Japanese (ja), Dutch (nl), Polish (pl), Brazilian
- Portuguese (pt_BR), Russian (ru), Slovak (sk), Slovenian (sl),
- Serbian (sr), Ukrainian (uk), Vietnamese (vi), simplified Chinese
- (zh_CN), and traditional Chinese (zh_TW).
+ Italian (it), Japanese (ja), Dutch (nl), Polish (pl),
+ Brazilian Portuguese (pt_BR), Russian (ru), Slovak (sk),
+ Slovenian (sl), Serbian (sr), Ukrainian (uk), Vietnamese (vi),
+ simplified Chinese (zh_CN), and traditional Chinese (zh_TW).
+
+ tlshell shares its message catalog with tlmgr.
*-debug-translation*
@@ -2956,7 +3053,7 @@ B.6 ACTIONS
* tlmgr version::
* tlmgr backup::
* tlmgr candidates _pkg_::
-* tlmgr check [_option_...] [files|depends|executes|runfiles|all]::
+* tlmgr check [_option_...] [depends|executes|files|runfiles|texmfdbs|all]::
* tlmgr conf::
* tlmgr dump-tlpdb [_option_...] [--json]::
* tlmgr generate::
@@ -2990,7 +3087,7 @@ B.6.1 help
----------
Display this help information and exit (same as '--help', and on the web
-at <http://tug.org/texlive/doc/tlmgr.html>). Sometimes the 'perldoc'
+at <https://tug.org/texlive/doc/tlmgr.html>). Sometimes the 'perldoc'
and/or 'PAGER' programs on the system have problems, resulting in
control characters being literally output. This can't always be
detected, but you can set the 'NOPERLDOC' environment variable and
@@ -3022,7 +3119,10 @@ B.6.3 backup
backups are saved to the value of the '--backupdir' option, if that
is an existing and writable directory. If '--backupdir' is not
given, the 'backupdir' option setting in the TLPDB is used, if
- present. If both are missing, no backups are made.
+ present. If both are missing, no backups are made. (The installer
+ sets 'backupdir' to '.../tlpkg/backups', under the TL root
+ installation directory, so it is usually defined; see the *note
+ option: tlmgr option. description for more information.)
If the '--clean' option is specified, backups are pruned (removed)
instead of saved. The optional integer value _N_ may be specified
@@ -3060,7 +3160,7 @@ B.6.3 backup
to be performed are written to the terminal.

-File: tlbuild.info, Node: tlmgr candidates _pkg_, Next: tlmgr check [_option_...] [files|depends|executes|runfiles|all], Prev: tlmgr backup, Up: tlmgr ACTIONS
+File: tlbuild.info, Node: tlmgr candidates _pkg_, Next: tlmgr check [_option_...] [depends|executes|files|runfiles|texmfdbs|all], Prev: tlmgr backup, Up: tlmgr ACTIONS
B.6.4 candidates _pkg_
----------------------
@@ -3069,17 +3169,14 @@ Shows the available candidate repositories for package _pkg_. See *note
MULTIPLE REPOSITORIES: tlmgr MULTIPLE REPOSITORIES. below.

-File: tlbuild.info, Node: tlmgr check [_option_...] [files|depends|executes|runfiles|all], Next: tlmgr conf, Prev: tlmgr candidates _pkg_, Up: tlmgr ACTIONS
-
-B.6.5 check [_option_...] [files|depends|executes|runfiles|all]
----------------------------------------------------------------
+File: tlbuild.info, Node: tlmgr check [_option_...] [depends|executes|files|runfiles|texmfdbs|all], Next: tlmgr conf, Prev: tlmgr candidates _pkg_, Up: tlmgr ACTIONS
-Executes one (or all) check(s) on the consistency of the installation.
+B.6.5 check [_option_...] [depends|executes|files|runfiles|texmfdbs|all]
+------------------------------------------------------------------------
-*files*
-
- Checks that all files listed in the local TLPDB ('texlive.tlpdb')
- are actually present, and lists those missing.
+Execute one (or all) check(s) of the consistency of the installation.
+If no problems are found, there will be no output. (To get a view of
+what is being done, run 'tlmgr -v check'.)
*depends*
@@ -3095,27 +3192,46 @@ Executes one (or all) check(s) on the consistency of the installation.
Check that the files referred to by 'execute' directives in the TeX
Live Database are present.
+*files*
+
+ Checks that all files listed in the local TLPDB ('texlive.tlpdb')
+ are actually present, and lists those missing.
+
*runfiles*
List those filenames that are occurring more than one time in the
- runfiles sections.
+ runfiles sections, except for known duplicates.
+
+*texmfdbs*
+
+ Checks related to the 'ls-R' files. If you have defined new trees,
+ or changed the 'TEXMF' or 'TEXMFDBS' variables, it can't hurt to
+ run this. It checks that:
+
+ - all items in 'TEXMFDBS' have the '!!' prefix.
+
+ - all items in 'TEXMFBDS' have an 'ls-R' file (if they exist at all).
+
+ - all items in 'TEXMF' with '!!' are listed in 'TEXMFDBS'.
+
+ - all items in 'TEXMF' with an 'ls-R' file are listed in 'TEXMFDBS'.
Options:
*-use-svn*
Use the output of 'svn status' instead of listing the files; for
- checking the TL development repository.
+ checking the TL development repository. (This is run nightly.)

-File: tlbuild.info, Node: tlmgr conf, Next: tlmgr dump-tlpdb [_option_...] [--json], Prev: tlmgr check [_option_...] [files|depends|executes|runfiles|all], Up: tlmgr ACTIONS
+File: tlbuild.info, Node: tlmgr conf, Next: tlmgr dump-tlpdb [_option_...] [--json], Prev: tlmgr check [_option_...] [depends|executes|files|runfiles|texmfdbs|all], Up: tlmgr ACTIONS
B.6.6 conf
----------
*conf [texmf|tlmgr|updmap [-conffile _file_] [-delete] [_key_ [_value_]]]*
-*conf auxtrees [-conffile _file_] [show|add|delete] [_value_]*
+*conf auxtrees [-conffile _file_] [show|add|remove] [_value_]*
With only 'conf', show general configuration information for TeX
Live, including active configuration files, path settings, and
@@ -3150,15 +3266,16 @@ B.6.6 conf
show' shows the list of additional trees, 'auxtrees add' _tree_
adds a tree to the list, and 'auxtrees remove' _tree_ removes a
tree from the list (if present). The trees should not contain an
- 'ls-R' file (or files might not be found if the 'ls-R' becomes
+ 'ls-R' file (or files will not be found if the 'ls-R' becomes
stale). This works by manipulating the Kpathsea variable
- 'TEXMFAUXTREES', in 'ROOT/texmf.cnf'. Example:
+ 'TEXMFAUXTREES', in (by default) 'ROOT/texmf.cnf'. Example:
tlmgr conf auxtrees add /quick/test/tree
tlmgr conf auxtrees remove /quick/test/tree
In all cases the configuration file can be explicitly specified via
- the option '--conffile' _file_, if desired.
+ the option '--conffile' _file_, e.g., if you don't want to change
+ the system-wide configuration.
Warning: The general facility for changing configuration values is
here, but tinkering with settings in this way is strongly
@@ -3225,7 +3342,7 @@ Live installer and 'tlmgr' routinely call 'generate' for all of these
files.
For managing your own fonts, please read the 'updmap --help'
-information and/or <http://tug.org/fonts/fontinstall.html>.
+information and/or <https://tug.org/fonts/fontinstall.html>.
For managing your own formats, please read the 'fmtutil --help'
information.
@@ -3376,6 +3493,13 @@ B.6.10 info
used; only locally installed packages, collections, or schemes
are listed.
+ *-only-remote*
+
+ Only list packages from the remote repository. Useful when
+ checking what is available in a remote repository using 'tlmgr
+ --repo ... --only-remote info'. Note that '--only-installed'
+ and '--only-remote' cannot both be specified.
+
*-data 'item1,item2,...'*
If the option '--data' is given, its argument must be a comma
@@ -3413,8 +3537,8 @@ B.6.12 install [_option_...] _pkg_...
-------------------------------------
Install each _pkg_ given on the command line, if it is not already
-installed. (It does not touch existing packages; see the 'update'
-action for how to get the latest version of a package.)
+installed. It does not touch existing packages; see the 'update' action
+for how to get the latest version of a package.
By default this also installs all packages on which the given _pkg_s
are dependent. Options:
@@ -3474,6 +3598,10 @@ are dependent. Options:
tlmgr install --reinstall --with-doc --with-src fontspec
+ This action does not automatically add new symlinks in system
+directories; you need to run 'tlmgr path add' (*note path: tlmgr path.)
+yourself if you are using this feature and want new symlinks added.
+

File: tlbuild.info, Node: tlmgr key, Next: tlmgr list, Prev: tlmgr install [_option_...] _pkg_..., Up: tlmgr ACTIONS
@@ -3495,7 +3623,7 @@ B.6.13 key
The 'add' argument requires another argument, either a filename or
'-' for stdin, from which the key is added. The key is added to
the local keyring 'GNUPGHOME/repository-keys.gpg', which is
- normally) 'tlpkg/gpg/repository-keys.gpg'.
+ normally 'tlpkg/gpg/repository-keys.gpg'.
The 'remove' argument requires a key id and removes the requested
id from the local keyring.
@@ -3516,7 +3644,7 @@ B.6.15 option
*option [-json] [show]*
-*option [-json] showall*
+*option [-json] showall|help*
*option _key_ [_value_]*
@@ -3525,7 +3653,8 @@ saved in the TLPDB with a short description and the 'key' used for
changing it in parentheses.
The second form, 'showall', is similar, but also shows options which
-can be defined but are not currently set to any value.
+can be defined but are not currently set to any value ('help' is a
+synonym).
Both 'show...' forms take an option '--json', which dumps the option
information in JSON format. In this case, both forms dump the same
@@ -3539,7 +3668,7 @@ for _key_ is displayed. If _value_ is present, _key_ is set to _value_.
definitive list):
repository (default package repository),
- formats (create formats at installation time),
+ formats (generate formats at installation or update time),
postcode (run postinst code blobs)
docfiles (install documentation files),
srcfiles (install source files),
@@ -3565,7 +3694,7 @@ possible values for 'repository'. (For backward compatibility,
If 'formats' is set (this is the default), then formats are
regenerated when either the engine or the format files have changed.
Disable this only when you know how and want to regenerate formats
-yourself.
+yourself whenever needed (which is often, in practice).
The 'postcode' option controls execution of per-package
postinstallation action code. It is set by default, and again disabling
@@ -3582,7 +3711,8 @@ downloaded at all.
the actions 'update', 'backup' and 'restore'. These three actions need
a directory in which to read or write the backups. If '--backupdir' is
not specified on the command line, the 'backupdir' option value is used
-(if set).
+(if set). The TL installer sets 'backupdir' to '.../tlpkg/backups',
+under the TL root installation directory.
The 'autobackup' option (de)activates automatic generation of
backups. Its value is an integer. If the 'autobackup' value is '-1',
@@ -3620,7 +3750,7 @@ B.6.16 paper
*paper [a4|letter]*
-*[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|-list]*
+*<[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|-list]*>
*paper -json*
@@ -3662,11 +3792,13 @@ B.6.17 path
*path [-w32mode=user|admin] remove*
- On Unix, merely adds or removes symlinks for binaries, man pages,
- and info pages in the system directories specified by the
- respective options (see the *note option: tlmgr option. description
- above). Does not change any initialization files, either system or
- personal.
+ On Unix, adds or removes symlinks for executables, man pages, and
+ info pages in the system directories specified by the respective
+ options (see the *note option: tlmgr option. description above).
+ Does not change any initialization files, either system or
+ personal. Furthermore, any executables added or removed by future
+ updates are not taken care of automatically; this command must be
+ rerun as needed.
On Windows, the registry part where the binary directory is added
or removed is determined in the following way:
@@ -3745,8 +3877,8 @@ B.6.19 platform
'platform set auto' switches TeX Live to auto detection mode for
platform.
- Platform detection is needed to select the proper 'xz', 'xzdec' and
- 'wget' binaries that are shipped with TeX Live.
+ Platform detection is needed to select the proper 'xz' and 'wget'
+ binaries that are shipped with TeX Live.
'arch' is a synonym for 'platform'.
@@ -3867,6 +3999,11 @@ package, dependencies are never removed. Options:
Nothing is actually removed; instead, the actions to be performed
are written to the terminal.
+ This action does not automatically remove symlinks to executables
+from system directories; you need to run 'tlmgr path remove' (*note
+path: tlmgr path.) yourself if you are using this feature and want stale
+symlinks removed.
+

File: tlbuild.info, Node: tlmgr repository, Next: tlmgr restore, Prev: tlmgr remove [_option_...] _pkg_..., Up: tlmgr ACTIONS
@@ -3875,7 +4012,7 @@ B.6.24 repository
*repository list*
-*repository list _path|tag_*
+*repository list _path|url|tag_*
*repository add _path_ [_tag_]*
@@ -3883,22 +4020,44 @@ B.6.24 repository
*repository set _path_[#_tag_] [_path_[#_tag_] ...]*
+*repository status*
+
This action manages the list of repositories. See *note
(MULTIPLE_REPOSITORIES):: below for detailed explanations.
- The first form ('list') lists all configured repositories and the
- respective tags if set. If a path, url, or tag is given after the
- 'list' keyword, it is interpreted as source from where to
- initialize a TeX Live Database and lists the contained packages.
- This can also be an up-to-now not used repository, both locally and
- remote. If one pass in addition '--with-platforms', for each
- package the available platforms (if any) are listed, too.
+ The first form, 'repository list', lists all configured
+ repositories and the respective tags if set. If a path, url, or
+ tag is given after the 'list' keyword, it is interpreted as the
+ source from which to initialize a TL database and lists the
+ contained packages. This can also be an otherwise-unused
+ repository, either local or remote. If the option
+ '--with-platforms' is specified in addition, for each package the
+ available platforms (if any) are also listed.
+
+ The form 'repository add' adds a repository (optionally attaching a
+ tag) to the list of repositories, while 'repository remove' removes
+ a repository, either by full path/url, or by tag.
+
+ The form 'repository set' sets the list of available repositories
+ to the items given on the command line, overwriting previous
+ settings.
+
+ The form 'repository status' reports the verification status of the
+ loaded repositories with the format of one repository per line with
+ fields separated by a single space:
+
+ The tag (which can be the same as the url);
- The third form ('add') adds a repository (optionally attaching a
- tag) to the list of repositories. The forth form ('remove')
- removes a repository, either by full path/url, or by tag. The last
- form ('set') sets the list of repositories to the items given on
- the command line, not keeping previous settings
+ = the url;
+
+ = iff machine-readable output is specified, the verification
+ code (a number);
+
+ = a textual description of the verification status, as the
+ last field extending to the end of line.
+
+ That is, in normal (not machine-readable) output, the third field
+ (numeric verification status) is not present.
In all cases, one of the repositories must be tagged as 'main';
otherwise, all operations will fail!
@@ -4089,10 +4248,9 @@ must be specified. Options:
*-all*
- Update all installed packages except for 'tlmgr' itself. Thus, if
- updates to 'tlmgr' itself are present, this will simply give an
- error, unless also the option '--force' or '--self' is given. (See
- below.)
+ Update all installed packages except for 'tlmgr' itself. If
+ updates to 'tlmgr' itself are present, this gives an error, unless
+ also the option '--force' or '--self' is given. (See below.)
In addition to updating the installed packages, during the update
of a collection the local installation is (by default) synchronized
@@ -4110,7 +4268,8 @@ must be specified. Options:
server that is also installed locally, it will be added to the
local installation. This is called "auto-install" and is announced
as such when using the option '--list'. This auto-installation can
- be suppressed using the option '--no-auto-install'.
+ be suppressed using the option '--no-auto-install' (also not
+ recommended).
An exception to the collection dependency checks (including the
auto-installation of packages just mentioned) are those that have
@@ -4119,6 +4278,14 @@ must be specified. Options:
reinstall any such forcibly removed packages use
'--reinstall-forcibly-removed'.
+ To reiterate: automatic removals and additions are entirely
+ determined by comparison of collections. Thus, if you manually
+ install an individual package 'foo' which is later removed from the
+ server, 'tlmgr' will not notice and will not remove it locally.
+ (It has to be this way, without major rearchitecture work, because
+ the tlpdb does not record the repository from which packages come
+ from.)
+
If you want to exclude some packages from the current update run
(e.g., due to a slow link), see the '--exclude' option below.
@@ -4182,12 +4349,13 @@ must be specified. Options:
*-no-auto-remove* [_pkg_...]
- By default, 'tlmgr' tries to remove packages which have disappeared
- on the server, as described above under '--all'. This option
- prevents such removals, either for all packages (with '--all'), or
- for just the given _pkg_ names. This can lead to an inconsistent
- TeX installation, since packages are not infrequently renamed or
- replaced by their authors. Therefore this is not recommend.
+ By default, 'tlmgr' tries to remove packages in an existing
+ collection which have disappeared on the server, as described above
+ under '--all'. This option prevents such removals, either for all
+ packages (with '--all'), or for just the given _pkg_ names. This
+ can lead to an inconsistent TeX installation, since packages are
+ not infrequently renamed or replaced by their authors. Therefore
+ this is not recommended.
*-no-auto-install* [_pkg_...]
@@ -4208,6 +4376,9 @@ must be specified. Options:
tlmgr update --all
tlmgr remove --force foobar
+ Again, since packages are sometimes renamed or replaced, using this
+ option is not recommended.
+
*-reinstall-forcibly-removed*
Under normal circumstances 'tlmgr' will not install packages that
@@ -4227,8 +4398,8 @@ must be specified. Options:
*-backupdir* _directory_
These two options control the creation of backups of packages
- _before_ updating; that is, backup of packages as currently
- installed. If neither options is given, no backup will made. If
+ _before_ updating; that is, backing up packages as currently
+ installed. If neither option is given, no backup will made. If
'--backupdir' is given and specifies a writable directory then a
backup will be made in that location. If only '--backup' is given,
then a backup will be made to the directory previously set via the
@@ -4278,14 +4449,18 @@ fallback information, but if you don't like them accumulating (e.g.,
'mirror.ctan.org' resolves to many different hosts, each resulting in a
possibly different hash), it's harmless to delete them.
+ This action does not automatically add or remove new symlinks in
+system directories; you need to run 'tlmgr' *note path: tlmgr path.
+yourself if you are using this feature and want new symlinks added.
+

File: tlbuild.info, Node: tlmgr CONFIGURATION FILE FOR TLMGR, Next: tlmgr CRYPTOGRAPHIC VERIFICATION, Prev: tlmgr ACTIONS, Up: tlmgr
B.7 CONFIGURATION FILE FOR TLMGR
================================
-There are two configuration files for 'tlmgr': One is system-wide in
-'TEXMFSYSCONFIG/tlmgr/config', and the other is user-specific in
+'tlmgr' reads two configuration files: one is system-wide, in
+'TEXMFSYSCONFIG/tlmgr/config', and the other is user-specific, in
'TEXMFCONFIG/tlmgr/config'. The user-specific one is the default for
the 'conf tlmgr' action. (Run 'kpsewhich -var-value=TEXMFSYSCONFIG' or
'... TEXMFCONFIG ...' to see the actual directory names.)
@@ -4335,8 +4510,8 @@ disables this process.
The checksum algorithm is SHA-512. Your system must have one of
(looked for in this order) the Perl 'Digest::SHA' module, the 'openssl'
-program (<http://openssl.org>), the 'sha512sum' program (from GNU
-Coreutils, <http://www.gnu.org/software/coreutils>), or finally the
+program (<https://openssl.org>), the 'sha512sum' program (from GNU
+Coreutils, <https://www.gnu.org/software/coreutils>), or finally the
'shasum' program (just to support old Macs). If none of these are
available, a warning is issued and 'tlmgr' proceeds without checking
checksums. (Incidentally, other SHA implementations, such as the pure
@@ -4378,9 +4553,10 @@ above) to succeed, and a working GnuPG ('gpg') program (see below for
search method). Then, unless cryptographic verification has been
disabled, a signature file ('texlive.tlpdb.*.asc') of the checksum file
is downloaded and the signature verified. The signature is created by
-the TeX Live Distribution GPG key 0x06BAB6BC, which in turn is signed by
-Karl Berry's key 0x30D155AD and Norbert Preining's key 0x6CACA448. All
-of these keys are obtainable from the standard key servers.
+the TeX Live Distribution GPG key 0x0D5E5D9106BAB6BC, which in turn is
+signed by Karl Berry's key 0x0716748A30D155AD and Norbert Preining's key
+0x6CACA448860CDC13. All of these keys are obtainable from the standard
+key servers.
Additional trusted keys can be added using the 'key' action.
@@ -4571,50 +4747,48 @@ only one enabled (as is the case by default):
List of repositories (with tags if set):
/var/www/norbert/tlnet
- Ok. Let's add the 'tlcontrib' repository (this is a real repository,
-hosted at <http://tlcontrib.metatex.org>, maintained by Taco Hoekwater
-et al.), with the tag 'tlcontrib':
+ Ok. Let's add the 'tlcontrib' repository (this is a real repository
+hosted at <http://contrib.texlive.info>) with the tag 'tlcontrib':
- $ tlmgr repository add http://tlcontrib.metatex.org/2012 tlcontrib
+ $ tlmgr repository add http://contrib.texlive.info/current tlcontrib
Check the repository list again:
$ tlmgr repository list
List of repositories (with tags if set):
- http://tlcontrib.metatex.org/2012 (tlcontrib)
+ http://contrib.texlive.info/current (tlcontrib)
/var/www/norbert/tlnet (main)
- Now we specify a pinning entry to get the package 'context' from
+ Now we specify a pinning entry to get the package 'classico' from
'tlcontrib':
- $ tlmgr pinning add tlcontrib context
+ $ tlmgr pinning add tlcontrib classico
- Check that we can find 'context':
+ Check that we can find 'classico':
- $ tlmgr show context
- tlmgr: package repositories:
+ $ tlmgr show classico
+ package: classico
...
- package: context
- repository: tlcontrib/26867
+ shortdesc: URW Classico fonts
...
- - install 'context':
+ - install 'classico':
- $ tlmgr install context
+ $ tlmgr install classico
tlmgr: package repositories:
...
- [1/1, ??:??/??:??] install: context @tlcontrib [
+ [1/1, ??:??/??:??] install: classico @tlcontrib [737k]
- In the output here you can see that the 'context' package has been
+ In the output here you can see that the 'classico' package has been
installed from the 'tlcontrib' repository ('@tlcontrib').
Finally, 'tlmgr pinning' also supports removing certain or all
packages from a given repository:
- $ tlmgr pinning remove tlcontrib context # remove just context
+ $ tlmgr pinning remove tlcontrib classico # remove just classico
$ tlmgr pinning remove tlcontrib --all # take nothing from tlcontrib
- A summary of the 'tlmgr pinning' actions is given above.
+ A summary of 'tlmgr pinning' actions is given above.

File: tlbuild.info, Node: tlmgr GUI FOR TLMGR, Next: tlmgr MACHINE-READABLE OUTPUT, Prev: tlmgr MULTIPLE REPOSITORIES, Up: tlmgr
@@ -4623,16 +4797,22 @@ B.11 GUI FOR TLMGR
==================
The graphical user interface for 'tlmgr' requires Perl/Tk
-<http://search.cpan.org/search?query=perl%2Ftk>. For Windows the
-necessary modules are shipped within TeX Live, for all other (i.e.,
-Unix-based) systems Perl/Tk (as well as Perl of course) has to be
-installed outside of TL. <http://tug.org/texlive/distro.html#perltk> has
-a list of invocations for some distros.
-
- The GUI is started with the invocation 'tlmgr gui'; assuming Tk is
-loadable, the graphical user interface will be shown. The main window
-contains a menu bar, the main display, and a status area where messages
-normally shown on the console are displayed.
+<https://search.cpan.org/search?query=perl%2Ftk>. For Unix-based
+systems Perl/Tk (as well as Perl of course) has to be installed outside
+of TL. <https://tug.org/texlive/distro.html#perltk> has a list of
+invocations for some distros. For Windows the necessary modules are no
+longer shipped within TeX Live, so you'll have to have an external Perl
+available that includes them.
+
+ We are talking here about the GUI built into tlmgr itself, not about
+the other tlmgr GUIs, which are: tlshell (Tcl/Tk-based), tlcockpit
+(Java-based) and, only on Macs, TeX Live Utility. These are invoked as
+separate programs.
+
+ The GUI mode of tlmgr is started with the invocation 'tlmgr gui';
+assuming Tk is loadable, the graphical user interface will be shown.
+The main window contains a menu bar, the main display, and a status area
+where messages normally shown on the console are displayed.
Within the main display there are three main parts: the 'Display
configuration' area, the list of packages, and the action buttons.
@@ -4838,7 +5018,7 @@ The following entries can be found in the menu bar:
'Help menu'
Provides access to the TeX Live manual (also on the web at
- <http://tug.org/texlive/doc.html>) and the usual "About" box.
+ <https://tug.org/texlive/doc.html>) and the usual "About" box.

File: tlbuild.info, Node: tlmgr GUI options, Prev: tlmgr Menu bar, Up: tlmgr GUI FOR TLMGR
@@ -4873,11 +5053,11 @@ control the display:
Pass the arbitrary X resource string _xresource_.
A few other obscure options are recognized but not mentioned here.
-See the Perl/Tk documentation (<http://search.cpan.org/perldoc?Tk>) for
+See the Perl/Tk documentation (<https://search.cpan.org/perldoc?Tk>) for
the complete list, and any X documentation for general information.

-File: tlbuild.info, Node: tlmgr MACHINE-READABLE OUTPUT, Next: tlmgr AUTHORS AND COPYRIGHT, Prev: tlmgr GUI FOR TLMGR, Up: tlmgr
+File: tlbuild.info, Node: tlmgr MACHINE-READABLE OUTPUT, Next: tlmgr ENVIRONMENT VARIABLES, Prev: tlmgr GUI FOR TLMGR, Up: tlmgr
B.12 MACHINE-READABLE OUTPUT
============================
@@ -4894,11 +5074,11 @@ _pkg_..., and *note option: tlmgr option. actions.
* Menu:
-* tlmgr Machine-readable 'update' and 'install' output::
-* tlmgr Machine-readable 'option' output::
+* tlmgr Machine-readable update and install output::
+* tlmgr Machine-readable option output::

-File: tlbuild.info, Node: tlmgr Machine-readable 'update' and 'install' output, Next: tlmgr Machine-readable 'option' output, Up: tlmgr MACHINE-READABLE OUTPUT
+File: tlbuild.info, Node: tlmgr Machine-readable update and install output, Next: tlmgr Machine-readable option output, Up: tlmgr MACHINE-READABLE OUTPUT
B.12.1 Machine-readable 'update' and 'install' output
-----------------------------------------------------
@@ -5016,7 +5196,7 @@ _esttot_
The estimated total time.

-File: tlbuild.info, Node: tlmgr Machine-readable 'option' output, Prev: tlmgr Machine-readable 'update' and 'install' output, Up: tlmgr MACHINE-READABLE OUTPUT
+File: tlbuild.info, Node: tlmgr Machine-readable option output, Prev: tlmgr Machine-readable update and install output, Up: tlmgr MACHINE-READABLE OUTPUT
B.12.2 Machine-readable 'option' output
---------------------------------------
@@ -5032,16 +5212,101 @@ shown.
changes would be helpful, do not hesitate to write the mailing list.

-File: tlbuild.info, Node: tlmgr AUTHORS AND COPYRIGHT, Prev: tlmgr MACHINE-READABLE OUTPUT, Up: tlmgr
+File: tlbuild.info, Node: tlmgr ENVIRONMENT VARIABLES, Next: tlmgr AUTHORS AND COPYRIGHT, Prev: tlmgr MACHINE-READABLE OUTPUT, Up: tlmgr
-B.13 AUTHORS AND COPYRIGHT
+B.13 ENVIRONMENT VARIABLES
+==========================
+
+'tlmgr' uses many of the standard TeX environment variables, as reported
+by, e.g., 'tlmgr conf' (*note conf: tlmgr conf.).
+
+ In addition, for ease in scripting and debugging, 'tlmgr' looks for
+the following environment variables. These are not of interest for
+normal user installations.
+
+'TEXLIVE_COMPRESSOR'
+
+ This variable allows selecting a different compressor program for
+ backups and intermediate rollback containers. The order of
+ selection is:
+
+ 1. If the environment variable 'TEXLIVE_COMPRESSOR' is defined,
+ use it; abort if it doesn't work. Possible values: 'lz4',
+ 'gzip', 'xz'. The necessary options are added internally.
+
+ 2. If lz4 is available (either from the system or TL) and
+ working, use that.
+
+ 3. If gzip is available (from the system) and working, use that.
+
+ 4. If xz is available (either from the system or TL) and working,
+ use that.
+
+ lz4 and gzip are faster in creating tlmgr's local backups, hence
+ they are preferred. The unconditional use of xz for the tlnet
+ containers is unaffected, to minimize download sizes.
+
+'TEXLIVE_DOWNLOADER'
+
+'TL_DOWNLOAD_PROGRAM'
+
+'TL_DOWNLOAD_ARGS'
+
+ These options allow selecting different download programs then the
+ ones automatically selected by the installer. The order of
+ selection is:
+
+ 1. If the environment variable 'TEXLIVE_DOWNLOADER' is defined,
+ use it; abort if the specified program doesn't work. Possible
+ values: 'lwp', 'curl', 'wget'. The necessary options are
+ added internally.
+
+ 2. If the environment variable 'TL_DOWNLOAD_PROGRAM' is defined
+ (can be any value), use it together with 'TL_DOWNLOAD_ARGS';
+ abort if it doesn't work.
+
+ 3. If LWP is available and working, use that (by far the most
+ efficient method, as it supports persistent downloads).
+
+ 4. If curl is available (from the system) and working, use that.
+
+ 5. If wget is available (either from the system or TL) and
+ working, use that.
+
+ TL provides 'wget' binaries for platforms where necessary, so some
+ download method should always be available.
+
+'TEXLIVE_PREFER_OWN'
+
+ By default, compression and download programs provided by the
+ system, i.e., found along 'PATH' are preferred over those shipped
+ with TeX Live.
+
+ This can create problems with systems that are too old, and so can
+ be overridden by setting the environment variable
+ 'TEXLIVE_PREFER_OWN' to 1. In this case, executables shipped with
+ TL will be preferred.
+
+ Extra compression/download programs not provided by TL, such as
+ gzip, lwp, and curl, are still checked for on the system and used
+ if available, per the above. 'TEXLIVE_PREFER_OWN' only applies
+ when the program being checked for is shipped with TL, namely the
+ lz4 and xz compressors and wget downloader.
+
+ Exception: on Windows, the 'tar.exe' shipped with TL is always
+ used, regardless of any setting.
+
+
+File: tlbuild.info, Node: tlmgr AUTHORS AND COPYRIGHT, Prev: tlmgr ENVIRONMENT VARIABLES, Up: tlmgr
+
+B.14 AUTHORS AND COPYRIGHT
==========================
This script and its documentation were written for the TeX Live
-distribution (<http://tug.org/texlive>) and both are licensed under the
+distribution (<https://tug.org/texlive>) and both are licensed under the
GNU General Public License Version 2 or later.
- $Id: tlmgr.pl 47303 2018-04-05 17:52:22Z karl $
+ $Id: tlmgr.pl 54118 2020-03-05 22:27:22Z karl $

File: tlbuild.info, Node: Index, Prev: tlmgr, Up: Top
@@ -5052,117 +5317,116 @@ Index
* Menu:
-* --bindir configure option: '--prefix' '--bindir' ....
+* --bindir configure option: --prefix --bindir ....
(line 6)
-* --bindir configure option <1>: '--enable-multiplatform'.
+* --bindir configure option <1>: --enable-multiplatform.
(line 6)
* --build=HOST: Cross configuring. (line 6)
* --disable-all-packages: Build one package. (line 6)
-* --disable-all-pkgs: '--disable-all-pkgs'. (line 6)
-* --disable-bibtex8: Configure options for 'texk/bibtex-x'.
+* --disable-all-pkgs: --disable-all-pkgs. (line 6)
+* --disable-bibtex8: Configure options for texk/bibtex-x.
(line 9)
-* --disable-bibtexu: Configure options for 'texk/bibtex-x'.
+* --disable-bibtexu: Configure options for texk/bibtex-x.
(line 12)
-* --disable-dump-share: Configure options for 'texk/web2c'.
+* --disable-dump-share: Configure options for texk/web2c.
(line 27)
-* --disable-dvipdfmx: Configure options for 'texk/dvipdfm-x'.
+* --disable-dvipdfmx: Configure options for texk/dvipdfm-x.
(line 12)
-* --disable-etex-synctex: Configure options for 'texk/web2c'.
+* --disable-etex-synctex: Configure options for texk/web2c.
(line 59)
-* --disable-ipc: Configure options for 'texk/web2c'.
+* --disable-ipc: Configure options for texk/web2c.
(line 31)
-* --disable-largefile: '--disable-largefile'.
+* --disable-largefile: --disable-largefile. (line 6)
+* --disable-linked-scripts: Configure options for texk/texlive.
(line 6)
-* --disable-linked-scripts: Configure options for 'texk/texlive'.
- (line 6)
-* --disable-mf-nowin: Configure options for 'texk/web2c'.
+* --disable-mf-nowin: Configure options for texk/web2c.
(line 34)
-* --disable-missing: '--disable-missing'. (line 6)
-* --disable-native-texlive-build: '--disable-native-texlive-build'.
+* --disable-missing: --disable-missing. (line 6)
+* --disable-native-texlive-build: --disable-native-texlive-build.
(line 6)
-* --disable-PROG: '--enable-PROG' '--disable-PROG'.
+* --disable-PROG: --enable-PROG --disable-PROG.
(line 6)
-* --disable-synctex: Configure options for 'texk/web2c'.
+* --disable-synctex: Configure options for texk/web2c.
(line 64)
-* --disable-tex: Configure options for 'texk/web2c'.
+* --disable-tex: Configure options for texk/web2c.
(line 37)
-* --disable-web-progs: Configure options for 'texk/web2c'.
+* --disable-web-progs: Configure options for texk/web2c.
(line 41)
-* --disable-xdvipdfmx: Configure options for 'texk/dvipdfm-x'.
+* --disable-xdvipdfmx: Configure options for texk/dvipdfm-x.
(line 15)
-* --enable-*win for Metafont window support: Configure options for 'texk/web2c'.
+* --enable-*win for Metafont window support: Configure options for texk/web2c.
(line 55)
-* --enable-auto-core: Configure options for 'texk/web2c'.
+* --enable-auto-core: Configure options for texk/web2c.
(line 45)
-* --enable-compiler-warnings=LEVEL: '--enable-compiler-warnings='LEVEL.
+* --enable-compiler-warnings=LEVEL: --enable-compiler-warnings=LEVEL.
(line 6)
* --enable-cxx-runtime-hack: Macros for compilers. (line 29)
-* --enable-etex: Configure options for 'texk/web2c'.
+* --enable-etex: Configure options for texk/web2c.
(line 37)
-* --enable-libtool-hack: Configure options for 'texk/web2c'.
+* --enable-libtool-hack: Configure options for texk/web2c.
(line 50)
* --enable-maintainer-mode: Build system tools. (line 28)
-* --enable-maintainer-mode <1>: '--enable-maintainer-mode'.
+* --enable-maintainer-mode <1>: --enable-maintainer-mode.
(line 6)
* --enable-missing to ignore dependencies: Build one package. (line 71)
-* --enable-mktextfm-default: 'kpathsea' library. (line 18)
-* --enable-multiplatform: '--enable-multiplatform'.
+* --enable-mktextfm-default: kpathsea library. (line 18)
+* --enable-multiplatform: --enable-multiplatform.
(line 6)
-* --enable-PROG: '--enable-PROG' '--disable-PROG'.
+* --enable-PROG: --enable-PROG --disable-PROG.
(line 6)
-* --enable-shared: '--enable-shared'. (line 6)
-* --enable-silent-rules: '--enable-silent-rules'.
+* --enable-shared: --enable-shared. (line 6)
+* --enable-silent-rules: --enable-silent-rules.
(line 6)
-* --enable-tex-synctex: Configure options for 'texk/web2c'.
+* --enable-tex-synctex: Configure options for texk/web2c.
(line 59)
-* --enable-texlive-build: '--disable-native-texlive-build'.
+* --enable-texlive-build: --disable-native-texlive-build.
(line 15)
-* --enable-xi2-scrolling: Configure options for 'texk/xdvik'.
+* --enable-xi2-scrolling: Configure options for texk/xdvik.
(line 13)
-* --enable-xindy-docs: Configure options for 'utils/xindy'.
+* --enable-xindy-docs: Configure options for utils/xindy.
(line 10)
-* --enable-xindy-rules: Configure options for 'utils/xindy'.
+* --enable-xindy-rules: Configure options for utils/xindy.
(line 6)
* --host=HOST: Cross configuring. (line 6)
-* --libdir configure option: '--enable-multiplatform'.
+* --libdir configure option: --enable-multiplatform.
(line 6)
* --no-clean Build option: Build problems. (line 6)
-* --prefix configure option: '--prefix' '--bindir' ....
+* --prefix configure option: --prefix --bindir ....
(line 6)
-* --with-banner-add=STR: Configure options for 'texk/web2c'.
+* --with-banner-add=STR: Configure options for texk/web2c.
(line 6)
-* --with-clisp-runtime=FILENAME: Configure options for 'utils/xindy'.
+* --with-clisp-runtime=FILENAME: Configure options for utils/xindy.
(line 14)
-* --with-editor=CMD: Configure options for 'texk/web2c'.
+* --with-editor=CMD: Configure options for texk/web2c.
(line 11)
-* --with-fontconfig-includes=DIR: Configure options for 'texk/web2c'.
+* --with-fontconfig-includes=DIR: Configure options for texk/web2c.
(line 16)
-* --with-fontconfig-libdir=DIR: Configure options for 'texk/web2c'.
+* --with-fontconfig-libdir=DIR: Configure options for texk/web2c.
(line 16)
-* --with-gs=FILENAME: Configure options for 'texk/xdvik'.
+* --with-gs=FILENAME: Configure options for texk/xdvik.
(line 6)
* --with-LIB-includes=DIR, -libdir: Library-specific configure options.
(line 16)
-* --with-libgs-includes, -libdir: Configure options for 'texk/dvisvgm'.
+* --with-libgs-includes, -libdir: Configure options for texk/dvisvgm.
(line 17)
-* --with-system-kpathsea: 'kpathsea' library. (line 13)
+* --with-system-kpathsea: kpathsea library. (line 13)
* --with-system-LIB: Adding a new generic library module.
(line 34)
* --with-system-LIB <1>: Library-specific configure options.
(line 9)
-* --with-system-libgs: Configure options for 'texk/dvisvgm'.
+* --with-system-libgs: Configure options for texk/dvisvgm.
(line 6)
-* --with-system-poppler: Configure options for system 'poppler'.
+* --with-system-poppler: Configure options for system poppler.
(line 11)
-* --with-system-xpdf: Configure options for system 'poppler'.
+* --with-system-xpdf: Configure options for system poppler.
(line 15)
-* --with-xdvi-x-toolkit: 'xdvik' package. (line 21)
-* --with-xdvi-x-toolkit=KIT: Configure options for 'texk/xdvik'.
+* --with-xdvi-x-toolkit: xdvik package. (line 21)
+* --with-xdvi-x-toolkit=KIT: Configure options for texk/xdvik.
(line 9)
-* --without-libgs: Configure options for 'texk/dvisvgm'.
+* --without-libgs: Configure options for texk/dvisvgm.
(line 12)
-* --without-ln-s: '--without-ln-s'. (line 6)
-* --without-x: '--without-x'. (line 6)
+* --without-ln-s: --without-ln-s. (line 6)
+* --without-x: --without-x. (line 6)
* -C configure option: Build in parallel. (line 11)
* -j make option: Build in parallel. (line 6)
* adapting TeX Live for distros: Distro builds. (line 54)
@@ -5173,25 +5437,25 @@ Index
* adding a new TeX-specific library: Adding a new TeX-specific library module.
(line 6)
* adding to TeX Live: Extending TeX Live. (line 6)
-* 'am/' top-level directory: Top-level directories.
+* am/ top-level directory: Top-level directories.
(line 14)
* ANSI C: Declarations and definitions.
(line 6)
-* 'ApplicationServices' Mac framework, required by 'xetex': Prerequisites.
+* ApplicationServices Mac framework, required by xetex: Prerequisites.
(line 31)
* asymptote: Linked scripts. (line 23)
-* asymptote <1>: 'asymptote'. (line 6)
+* asymptote <1>: asymptote. (line 6)
* Autoconf: Overview of build system.
(line 6)
* autoconf macros: Autoconf macros. (line 6)
* Automake: Overview of build system.
(line 6)
* biber: Linked scripts. (line 23)
-* bibtex-x: Configure options for 'texk/bibtex-x'.
+* bibtex-x: Configure options for texk/bibtex-x.
(line 6)
-* bibtex8: Configure options for 'texk/bibtex-x'.
+* bibtex8: Configure options for texk/bibtex-x.
(line 6)
-* bibtexu: Configure options for 'texk/bibtex-x'.
+* bibtexu: Configure options for texk/bibtex-x.
(line 6)
* BSD distro: Distro builds. (line 6)
* build directory, required: Building. (line 17)
@@ -5203,7 +5467,7 @@ Index
* Build script: Building. (line 6)
* build system, design of: Overview of build system.
(line 6)
-* 'build-aux/' top-level directory: Top-level directories.
+* build-aux/ top-level directory: Top-level directories.
(line 30)
* BUILDCC, BUILDCFLAGS, ...: Cross configuring. (line 42)
* building: Building. (line 6)
@@ -5215,8 +5479,8 @@ Index
(line 6)
* C99, avoided: Declarations and definitions.
(line 6)
-* cache file, for 'configure': Build in parallel. (line 11)
-* cache for 'configure': Build in parallel. (line 6)
+* cache file, for configure: Build in parallel. (line 11)
+* cache for configure: Build in parallel. (line 6)
* callexe.c: Macros for Windows. (line 32)
* CC: Variables for configure.
(line 10)
@@ -5228,43 +5492,43 @@ Index
(line 18)
* CLISP: Variables for configure.
(line 17)
-* CLISP <1>: Configure options for 'utils/xindy'.
+* CLISP <1>: Configure options for utils/xindy.
(line 14)
-* 'clisp', required by 'xindy': Prerequisites. (line 35)
-* 'Cocoa' Mac framework, required by 'xetex': Prerequisites. (line 31)
+* clisp, required by xindy: Prerequisites. (line 35)
+* Cocoa Mac framework, required by xetex: Prerequisites. (line 31)
* coding conventions: Coding conventions. (line 6)
* compilers, C and C++11: Prerequisites. (line 6)
* config.guess, config.sub, ...: Top-level directories.
(line 30)
-* 'configure' options: Configure options. (line 6)
-* 'configure' options, for 'bibtex-x': Configure options for 'texk/bibtex-x'.
+* configure options: Configure options. (line 6)
+* configure options, for bibtex-x: Configure options for texk/bibtex-x.
(line 6)
-* 'configure' options, for 'dvipdfm-x': Configure options for 'texk/dvipdfm-x'.
+* configure options, for dvipdfm-x: Configure options for texk/dvipdfm-x.
(line 6)
-* 'configure' options, for 'dvisvgm': Configure options for 'texk/dvisvgm'.
+* configure options, for dvisvgm: Configure options for texk/dvisvgm.
(line 6)
-* 'configure' options, for 'kpathsea': Configure options for 'kpathsea'.
+* configure options, for kpathsea: Configure options for kpathsea.
(line 6)
-* 'configure' options, for system 'poppler': Configure options for system 'poppler'.
+* configure options, for system poppler: Configure options for system poppler.
(line 6)
-* 'configure' options, for 'texk/texlive': Configure options for 'texk/texlive'.
+* configure options, for texk/texlive: Configure options for texk/texlive.
(line 6)
-* 'configure' options, for 'web2c': Configure options for 'texk/web2c'.
+* configure options, for web2c: Configure options for texk/web2c.
(line 6)
-* 'configure' options, for 'xdvik': Configure options for 'texk/xdvik'.
+* configure options, for xdvik: Configure options for texk/xdvik.
(line 6)
-* 'configure' options, for 'xindy': Configure options for 'utils/xindy'.
+* configure options, for xindy: Configure options for utils/xindy.
(line 6)
-* 'configure' options, global: Global configure options.
+* configure options, global: Global configure options.
(line 6)
-* 'configure' options, library-specific: Library-specific configure options.
+* configure options, library-specific: Library-specific configure options.
(line 6)
-* 'configure' options, program-specific: Program-specific configure options.
+* configure options, program-specific: Program-specific configure options.
(line 6)
-* 'configure' variables: Variables for configure.
+* configure variables: Variables for configure.
(line 6)
* configuring, for cross compilation: Cross configuring. (line 6)
-* 'const': Const. (line 6)
+* const: Const. (line 6)
* continuous integration: Continuous integration.
(line 6)
* conventions, coding: Coding conventions. (line 6)
@@ -5273,7 +5537,7 @@ Index
* cross compilation: Cross compilation. (line 6)
* cross compilation configuring: Cross configuring. (line 6)
* cross compilation problems: Cross problems. (line 6)
-* cross compilation, with host binary: 'xdvik' package. (line 14)
+* cross compilation, with host binary: xdvik package. (line 14)
* ctangle: Cross problems. (line 26)
* CXX: Variables for configure.
(line 11)
@@ -5283,38 +5547,37 @@ Index
* declarations before statements, avoiding: Declarations and definitions.
(line 6)
* dependencies, with several output files: Build in parallel. (line 6)
-* DESTDIR: '--prefix' '--bindir' ....
+* DESTDIR: --prefix --bindir ....
(line 9)
* directories, for installation: Installation directories.
(line 6)
* directories, top-level: Top-level directories.
(line 6)
* discards qualifiers warning: Const. (line 30)
-* 'dist' and 'distcheck' targets for 'make': Build distribution.
- (line 6)
+* dist and distcheck targets for make: Build distribution. (line 6)
* distribution tarball, making: Build distribution. (line 6)
* distro, building for: Distro builds. (line 6)
-* dvipdfm-x: Configure options for 'texk/dvipdfm-x'.
+* dvipdfm-x: Configure options for texk/dvipdfm-x.
(line 6)
-* dvipdfmx: Configure options for 'texk/dvipdfm-x'.
+* dvipdfmx: Configure options for texk/dvipdfm-x.
(line 6)
-* dvisvgm: Configure options for 'texk/dvisvgm'.
+* dvisvgm: Configure options for texk/dvisvgm.
(line 6)
* engine, building one: Build one engine. (line 6)
-* environment variables, for 'configure': Configure options. (line 16)
-* exec_prefix: '--enable-multiplatform'.
+* environment variables, for configure: Configure options. (line 16)
+* exec_prefix: --enable-multiplatform.
(line 6)
* extending TeX Live: Extending TeX Live. (line 6)
-* 'extern' functions: Declarations and definitions.
+* extern functions: Declarations and definitions.
(line 41)
* failure to build: Build problems. (line 6)
* flags, macros for library and header: Macros for library and header flags.
(line 6)
-* 'fontconfig' library, required by 'xetex': Prerequisites. (line 31)
+* fontconfig library, required by xetex: Prerequisites. (line 31)
* FreeType: Prerequisites. (line 11)
-* 'freetype' cross compiling: Cross problems. (line 13)
-* freetype library: 'freetype' library. (line 6)
-* freetype-config: 'freetype' library. (line 13)
+* freetype cross compiling: Cross problems. (line 13)
+* freetype library: freetype library. (line 6)
+* freetype-config: freetype library. (line 13)
* freetype-config <1>: Variables for configure.
(line 24)
* FT2_CONFIG: Variables for configure.
@@ -5323,14 +5586,14 @@ Index
* general setup macros: General setup macros. (line 6)
* generic library module, adding: Adding a new generic library module.
(line 6)
-* Ghostscript location for Xdvik: Configure options for 'texk/xdvik'.
+* Ghostscript location for Xdvik: Configure options for texk/xdvik.
(line 6)
* git-svn: Transfer from Subversion to Github.
(line 6)
-* global 'configure' options: Global configure options.
+* global configure options: Global configure options.
(line 6)
-* 'gmake', required: Prerequisites. (line 11)
-* GNU 'make', required: Prerequisites. (line 11)
+* gmake, required: Prerequisites. (line 11)
+* GNU make, required: Prerequisites. (line 11)
* GNU tools, needed for building: Build system tools. (line 6)
* GNU/Linux distro: Distro builds. (line 6)
* Gnulib, used for common files: Top-level directories.
@@ -5343,23 +5606,23 @@ Index
* ICU_CONFIG: Variables for configure.
(line 22)
* infrastructure, tools needed for: Build system tools. (line 6)
-* 'inst/' top-level directory: Top-level directories.
+* inst/ top-level directory: Top-level directories.
(line 39)
* install-tl, TeX Live installer: Installing. (line 8)
* installation directories: Installation directories.
(line 6)
* installing: Installing. (line 6)
-* interprocess communication: Configure options for 'texk/web2c'.
+* interprocess communication: Configure options for texk/web2c.
(line 31)
* introduction: Introduction. (line 6)
-* iteration through sources, by 'configure' and 'make': Build iteration.
+* iteration through sources, by configure and make: Build iteration.
(line 6)
-* kpathsea library: 'kpathsea' library. (line 6)
-* kpathsea.ac: 'kpathsea' library. (line 18)
-* kpse-libpng-flags.m4: 'png' library. (line 46)
+* kpathsea library: kpathsea library. (line 6)
+* kpathsea.ac: kpathsea library. (line 18)
+* kpse-libpng-flags.m4: png library. (line 46)
* kpse-pkgs.m4: Overview of build system.
(line 30)
-* kpse-zlib-flags.m4: 'zlib' library. (line 6)
+* kpse-zlib-flags.m4: zlib library. (line 6)
* kpsewhich: Variables for configure.
(line 30)
* KPSEWHICH: Variables for configure.
@@ -5389,7 +5652,7 @@ Index
* KPSE_LARGEFILE: Macros for libraries. (line 8)
* KPSE_LIBPNG_FLAGS: Macros for library and header flags.
(line 10)
-* KPSE_LIBPNG_FLAGS <1>: 'png' library. (line 46)
+* KPSE_LIBPNG_FLAGS <1>: png library. (line 46)
* kpse_libs_pkgs: Adding a new generic library module.
(line 6)
* KPSE_LIB_FLAGS: Macros for library and header flags.
@@ -5405,10 +5668,10 @@ Index
(line 6)
* kpse_texlibs_pkgs: Adding a new TeX-specific library module.
(line 11)
-* KPSE_TRY_LIB: 'png' library. (line 18)
+* KPSE_TRY_LIB: png library. (line 18)
* KPSE_TRY_LIB <1>: Adding a new generic library module.
(line 20)
-* KPSE_TRY_LIBXX: 'png' library. (line 31)
+* KPSE_TRY_LIBXX: png library. (line 31)
* KPSE_TRY_LIBXX <1>: Adding a new generic library module.
(line 20)
* kpse_utils_pkgs: Adding a new program module.
@@ -5418,44 +5681,42 @@ Index
(line 11)
* KPSE_WITH_TEXLIB: Adding a new TeX-specific library module.
(line 14)
-* large file support: '--disable-largefile'.
- (line 6)
+* large file support: --disable-largefile. (line 6)
* LATEX: Variables for configure.
(line 40)
* layout of sources: Layout and infrastructure.
(line 6)
-* LFS (large file support): '--disable-largefile'.
- (line 6)
-* libexpat, dependency of 'libfontconfig': Configure options for 'texk/web2c'.
+* LFS (large file support): --disable-largefile. (line 6)
+* libexpat, dependency of libfontconfig: Configure options for texk/web2c.
(line 50)
-* libfontconfig, hack for avoiding linking dependencies: Configure options for 'texk/web2c'.
+* libfontconfig, hack for avoiding linking dependencies: Configure options for texk/web2c.
(line 50)
* libfreetype: Variables for configure.
(line 24)
-* 'libfreetype', and 'const': Const. (line 21)
-* libpng library: 'png' library. (line 6)
+* libfreetype, and const: Const. (line 21)
+* libpng library: png library. (line 6)
* library module, generic, adding: Adding a new generic library module.
(line 6)
* library module, TeX-specific, adding: Adding a new TeX-specific library module.
(line 6)
* library modules: Library modules. (line 6)
-* library-specific 'configure' options: Library-specific configure options.
+* library-specific configure options: Library-specific configure options.
(line 6)
-* 'libsigsegv', required by 'xindy': Prerequisites. (line 35)
+* libsigsegv, required by xindy: Prerequisites. (line 35)
* libstc++, statically linking: Macros for compilers. (line 29)
* Libtool: Overview of build system.
(line 6)
-* libtool, hack for avoiding excessive linking: Configure options for 'texk/web2c'.
+* libtool, hack for avoiding excessive linking: Configure options for texk/web2c.
(line 50)
-* libXt: Configure options for 'texk/web2c'.
+* libXt: Configure options for texk/web2c.
(line 22)
* linked scripts: Linked scripts. (line 6)
* linking C++ libraries statically: Macros for compilers. (line 29)
-* lisp.run, lisp.exe: Configure options for 'utils/xindy'.
+* lisp.run, lisp.exe: Configure options for utils/xindy.
(line 14)
-* LittleEndian architectures: Configure options for 'texk/web2c'.
+* LittleEndian architectures: Configure options for texk/web2c.
(line 27)
-* 'm4/' top-level directory: Top-level directories.
+* m4/ top-level directory: Top-level directories.
(line 14)
* macros, for compilers: Macros for compilers. (line 6)
* macros, for libraries: Macros for libraries. (line 6)
@@ -5467,67 +5728,64 @@ Index
* MAKE: Variables for configure.
(line 33)
* make -t: Build system tools. (line 43)
-* 'make' rules, verbose vs. silent: '--enable-silent-rules'.
+* make rules, verbose vs. silent: --enable-silent-rules.
(line 6)
-* mf-nowin: Configure options for 'texk/web2c'.
+* mf-nowin: Configure options for texk/web2c.
(line 34)
-* 'mingw32': Cross configuring. (line 27)
+* mingw32: Cross configuring. (line 27)
* MINGW32, Automake conditional: Macros for Windows. (line 20)
-* mktex.ac: 'kpathsea' library. (line 18)
-* mktextfm: 'kpathsea' library. (line 18)
+* mktex.ac: kpathsea library. (line 18)
+* mktextfm: kpathsea library. (line 18)
* modules, for libraries: Library modules. (line 6)
* modules, for programs: Program modules. (line 6)
-* motif: Configure options for 'texk/xdvik'.
+* motif: Configure options for texk/xdvik.
(line 9)
* native cross compilation: Cross compilation. (line 10)
* OBJCXX=OBJC-COMPILER: Build one package. (line 78)
* one engine, building: Build one engine. (line 6)
* one package, building: Build one package. (line 6)
-* OpenGL, required for Asymptote: 'asymptote'. (line 6)
+* OpenGL, required for Asymptote: asymptote. (line 6)
* operating system distribution, building for: Distro builds. (line 6)
* otangle: Cross problems. (line 26)
* overall build process: Building. (line 6)
* parallel build: Build in parallel. (line 6)
* paths, for installation: Installation directories.
(line 6)
-* PDF files, size of: '--disable-largefile'.
- (line 11)
+* PDF files, size of: --disable-largefile. (line 11)
* PDFLATEX: Variables for configure.
(line 41)
* PERL: Variables for configure.
(line 39)
-* 'perl', required by 'web2c', etc.: Prerequisites. (line 23)
+* perl, required by web2c, etc.: Prerequisites. (line 23)
* PKG_CONFIG: Variables for configure.
(line 23)
* plain.tex, not in source tree: Installing. (line 8)
-* png library: 'png' library. (line 6)
-* poppler: Configure options for system 'poppler'.
+* png library: png library. (line 6)
+* poppler: Configure options for system poppler.
(line 6)
-* PostScript files, size of: '--disable-largefile'.
- (line 11)
+* PostScript files, size of: --disable-largefile. (line 11)
* Preining, Norbert: Distro builds. (line 54)
-* preloaded binaries: Configure options for 'texk/web2c'.
+* preloaded binaries: Configure options for texk/web2c.
(line 45)
* prerequisites for building: Prerequisites. (line 6)
* problems with build: Build problems. (line 6)
* program module, adding: Adding a new program module.
(line 6)
* program modules: Program modules. (line 6)
-* program-specific 'configure' options: Program-specific configure options.
+* program-specific configure options: Program-specific configure options.
(line 6)
-* proxy build system: 'png' library. (line 36)
+* proxy build system: png library. (line 36)
* reautoconf: Build system tools. (line 28)
* requirements for building: Prerequisites. (line 6)
* runscript.exe: Macros for Windows. (line 25)
* scripts, linked and not maintained: Linked scripts. (line 6)
-* scrolling, smooth: Configure options for 'texk/xdvik'.
+* scrolling, smooth: Configure options for texk/xdvik.
(line 13)
* SED: Variables for configure.
(line 34)
* setup macros, general: General setup macros. (line 6)
* shared libraries, using vs. avoiding: Distro builds. (line 11)
-* size of PDF and PS files: '--disable-largefile'.
- (line 11)
+* size of PDF and PS files: --disable-largefile. (line 11)
* size of source tree: Build one package. (line 53)
* source code declarations: Declarations and definitions.
(line 6)
@@ -5535,8 +5793,8 @@ Index
* source tree: Layout and infrastructure.
(line 6)
* squeeze: Cross problems. (line 13)
-* squeeze/configure.ac: 'xdvik' package. (line 14)
-* 'static' functions: Declarations and definitions.
+* squeeze/configure.ac: xdvik package. (line 14)
+* static functions: Declarations and definitions.
(line 35)
* static linking for C++: Macros for compilers. (line 29)
* stpcpy: Declarations and definitions.
@@ -5544,12 +5802,12 @@ Index
* Subversion repository: Build system tools. (line 38)
* support files, separate from build: Installing. (line 8)
* symlinks, used for scripts: Linked scripts. (line 6)
-* synctex: Configure options for 'texk/web2c'.
+* synctex: Configure options for texk/web2c.
(line 59)
-* synctex <1>: Configure options for 'texk/web2c'.
+* synctex <1>: Configure options for texk/web2c.
(line 64)
* system distribution, building for: Distro builds. (line 6)
-* t1utils package: 't1utils' package. (line 6)
+* t1utils package: t1utils package. (line 6)
* tangle: Cross problems. (line 26)
* tests, running: Overview of build system.
(line 6)
@@ -5570,12 +5828,12 @@ Index
* use-commit-times, Subversion: Build system tools. (line 38)
* variable declarations, in source code: Declarations and definitions.
(line 52)
-* variables for 'configure': Variables for configure.
+* variables for configure: Variables for configure.
(line 6)
* warning, discards qualifiers: Const. (line 30)
* WARNING_C[XX]FLAGS: Macros for compilers. (line 9)
* web2c program: Cross problems. (line 13)
-* web2c.ac: Configure options for 'texk/web2c'.
+* web2c.ac: Configure options for texk/web2c.
(line 37)
* wget: Linked scripts. (line 23)
* WIN32, Automake conditional: Macros for Windows. (line 16)
@@ -5584,405 +5842,440 @@ Index
* Windows, macros for: Macros for Windows. (line 6)
* withenable.ac, for new modules: Adding a new program module.
(line 14)
-* 'Work/' top-level directory: Top-level directories.
+* Work/ top-level directory: Top-level directories.
(line 39)
* wrapper binary for scripts on Windows: Linked scripts. (line 6)
-* wrapper build system: 'freetype' library. (line 6)
-* X toolkit: Configure options for 'texk/web2c'.
+* wrapper build system: freetype library. (line 6)
+* X toolkit: Configure options for texk/web2c.
(line 22)
* X11 development, required by X clients: Prerequisites. (line 27)
-* X11 headers, and 'const': Const. (line 21)
-* xasy: 'asymptote'. (line 6)
-* xaw: Configure options for 'texk/xdvik'.
+* X11 headers, and const: Const. (line 21)
+* xasy: asymptote. (line 6)
+* xaw: Configure options for texk/xdvik.
(line 9)
-* xdvik: 'xdvik' package. (line 6)
-* xdvik <1>: Configure options for 'texk/xdvik'.
+* xdvik: xdvik package. (line 6)
+* xdvik <1>: Configure options for texk/xdvik.
(line 6)
-* xdvipdfmx: Configure options for 'texk/dvipdfm-x'.
+* xdvipdfmx: Configure options for texk/dvipdfm-x.
(line 6)
* xindy: Linked scripts. (line 23)
-* xindy <1>: 'xindy' package. (line 6)
-* xindy <2>: Configure options for 'utils/xindy'.
+* xindy <1>: xindy package. (line 6)
+* xindy <2>: Configure options for utils/xindy.
(line 6)
-* 'xindy' cross compiling requires 'clisp': Cross problems. (line 33)
-* XInput: Configure options for 'texk/xdvik'.
+* xindy cross compiling requires clisp: Cross problems. (line 33)
+* XInput: Configure options for texk/xdvik.
(line 13)
-* Xlib: Configure options for 'texk/web2c'.
+* Xlib: Configure options for texk/web2c.
(line 22)
-* xpdf as library: Configure options for system 'poppler'.
+* xpdf as library: Configure options for system poppler.
(line 6)
* xz: Linked scripts. (line 23)
-* zlib library: 'zlib' library. (line 6)
+* zlib library: zlib library. (line 6)

Tag Table:
Node: Top1208
Node: Introduction2118
-Node: Overview of build system3946
-Node: Prerequisites5997
-Node: Building8606
-Node: Build iteration9992
-Node: Build problems11033
-Node: Build in parallel11487
-Node: Build distribution12091
-Node: Build one package12739
-Node: Build one engine16420
-Node: Cross compilation17469
-Node: Cross configuring18749
-Node: Cross problems20426
-Node: Installing22088
-Node: Installation directories23108
-Node: Linked scripts24926
-Node: Distro builds26417
-Node: Layout and infrastructure28793
-Node: Build system tools29624
-Node: Top-level directories31841
-Node: Autoconf macros34077
-Node: General setup macros34839
-Node: Macros for programs35714
-Node: Macros for compilers36515
-Node: Macros for libraries37923
-Node: Macros for library and header flags38349
-Node: Macros for Windows40260
-Node: Library modules41847
-Node: 'png' library42344
-Node: 'zlib' library44696
-Node: 'freetype' library45217
-Node: 'kpathsea' library45919
-Node: Program modules47302
-Node: 't1utils' package47738
-Node: 'xindy' package48287
-Node: 'xdvik' package49407
-Node: 'asymptote'50472
-Node: Extending TeX Live50972
-Node: Adding a new program module51755
-Node: Adding a new generic library module55094
-Node: Adding a new TeX-specific library module57323
-Node: Configure options58021
-Node: Global configure options59402
-Node: '--disable-native-texlive-build'59970
-Node: '--prefix' '--bindir' ...60938
-Node: '--disable-largefile'61486
-Node: '--disable-missing'62195
-Node: '--enable-compiler-warnings='LEVEL62602
-Node: '--enable-cxx-runtime-hack'63264
-Node: '--enable-maintainer-mode'63690
-Node: '--enable-multiplatform'64225
-Node: '--enable-shared'64804
-Node: '--enable-silent-rules'65181
-Node: '--without-ln-s'65639
-Node: '--without-x'65992
-Node: Program-specific configure options66184
-Node: '--enable-PROG' '--disable-PROG'66847
-Node: '--disable-all-pkgs'67126
-Node: Configure options for 'texk/web2c'67917
-Node: Configure options for 'texk/bibtex-x'70461
-Node: Configure options for 'texk/dvipdfm-x'71010
-Node: Configure options for 'texk/dvisvgm'71792
-Node: Configure options for 'texk/texlive'72679
-Node: Configure options for 'texk/xdvik'73106
-Node: Configure options for 'utils/xindy'73733
-Node: Library-specific configure options74627
-Node: Configure options for 'kpathsea'75633
-Node: Configure options for system 'poppler'76388
-Node: Variables for configure77158
-Node: Coding conventions78584
-Node: Declarations and definitions79299
-Node: Const81473
-Node: Continuous integration83337
-Node: Transfer from Subversion to Github84001
-Node: Automatic update of the Git mirror86163
-Node: CI testing on Travis-CI86745
-Node: Releases on Github87454
-Node: install-tl87894
-Node: install-tl NAME88263
-Node: install-tl SYNOPSIS88421
-Node: install-tl DESCRIPTION88679
-Node: install-tl REFERENCES89746
-Node: install-tl OPTIONS90272
-Ref: install-tl *-gui* [[=]_module_]90613
-Ref: install-tl 'text'90823
-Ref: install-tl 'wizard'90946
-Ref: install-tl 'perltk'91100
-Ref: install-tl *-no-gui*91531
-Ref: install-tl *-lang* _llcode_91612
-Ref: install-tl *-repository* _url|path_92299
-Ref: install-tl *-select-repository*94179
-Ref: install-tl *-all-options*94615
-Ref: install-tl *-custom-bin* _path_94870
-Ref: install-tl *-debug-translation*95702
-Ref: install-tl *-force-platform* _platform_95921
-Ref: install-tl *-help*, *--help*, *-?*96165
-Ref: install-tl *-in-place*96572
-Ref: install-tl *-init-from-profile* _profile_file_97117
-Ref: install-tl *-logfile* _file_97337
-Ref: install-tl *-no-cls*97688
-Ref: install-tl *-non-admin*97822
-Ref: install-tl *-persistent-downloads*97927
-Ref: install-tl *-no-persistent-downloads*97955
-Ref: install-tl *-no-verify-downloads*98573
-Ref: install-tl *-portable*98934
-Ref: install-tl *-print-platform*99073
-Ref: install-tl *-profile* _profile_file_99271
-Ref: install-tl *-q*99451
-Ref: install-tl *-scheme* _scheme_99513
-Ref: install-tl *-v*99987
-Ref: install-tl *-version*, *--version*100142
-Node: install-tl PROFILES100273
-Ref: install-tl 'instopt_adjustpath' (default 0 on Unix, 1 on Windows)102923
-Ref: install-tl 'instopt_adjustrepo' (default 1)102999
-Ref: install-tl 'instopt_letter' (default 0)103136
-Ref: install-tl 'instopt_portable' (default 0)103227
-Ref: install-tl 'instopt_write18_restricted' (default 1)103323
-Node: install-tl ENVIRONMENT VARIABLES104642
-Ref: install-tl 'TEXLIVE_INSTALL_ENV_NOCHECK'105033
-Ref: install-tl 'TEXLIVE_INSTALL_NO_CONTEXT_CACHE'105235
-Ref: install-tl 'TEXLIVE_INSTALL_NO_WELCOME'105345
-Ref: install-tl 'TEXLIVE_INSTALL_PREFIX'105466
-Ref: install-tl 'TEXLIVE_INSTALL_TEXDIR'105492
-Ref: install-tl 'TEXLIVE_INSTALL_TEXMFCONFIG'105523
-Ref: install-tl 'TEXLIVE_INSTALL_TEXMFVAR'105551
-Ref: install-tl 'TEXLIVE_INSTALL_TEXMFHOME'105580
-Ref: install-tl 'TEXLIVE_INSTALL_TEXMFLOCAL'105610
-Ref: install-tl 'TEXLIVE_INSTALL_TEXMFSYSCONFIG'105644
-Ref: install-tl 'TEXLIVE_INSTALL_TEXMFSYSVAR'105675
-Ref: install-tl 'NOPERLDOC'106046
-Node: install-tl AUTHORS AND COPYRIGHT106110
-Node: tlmgr106526
-Node: tlmgr NAME106979
-Node: tlmgr SYNOPSIS107111
-Node: tlmgr DESCRIPTION107301
-Node: tlmgr EXAMPLES108397
-Ref: tlmgr 'tlmgr option repository ctan'108648
-Ref: tlmgr 'tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet'108720
-Ref: tlmgr 'tlmgr update --list'109172
-Ref: tlmgr 'tlmgr update --all'109265
-Ref: tlmgr 'tlmgr info' _what_109422
-Node: tlmgr OPTIONS109684
-Ref: tlmgr *--repository* _url|path_110204
-Ref: tlmgr *--gui* [_action_]110929
-Ref: tlmgr *--gui-lang* _llcode_111336
-Ref: tlmgr *--debug-translation*112019
-Ref: tlmgr *--machine-readable*112222
-Ref: tlmgr *--no-execute-actions*112490
-Ref: tlmgr *--package-logfile* _file_112683
-Ref: tlmgr *--pause*112937
-Ref: tlmgr *--persistent-downloads*113092
-Ref: tlmgr *--no-persistent-downloads*113120
-Ref: tlmgr *--pin-file*113614
-Ref: tlmgr *--usermode*113832
-Ref: tlmgr *--usertree* _dir_113952
-Ref: tlmgr *--verify-repo=[none|main|all]*114078
-Node: tlmgr ACTIONS114977
-Node: tlmgr help115829
-Node: tlmgr version116305
-Node: tlmgr backup116568
-Ref: tlmgr *backup [_option_...] --all*116739
-Ref: tlmgr *backup [_option_...] _pkg_...*116772
-Ref: tlmgr *--backupdir* _directory_117627
-Ref: tlmgr *--all*117844
-Ref: tlmgr *--clean*[=_N_]118096
-Ref: tlmgr *--dry-run*118423
-Node: tlmgr candidates _pkg_118553
-Node: tlmgr check [_option_...] [files|depends|executes|runfiles|all]118899
-Ref: tlmgr *files*119272
-Ref: tlmgr *depends*119407
-Ref: tlmgr *executes*119749
-Ref: tlmgr *runfiles*119867
-Ref: tlmgr *--use-svn*119988
-Node: tlmgr conf120105
-Ref: tlmgr *conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]*120384
-Ref: tlmgr *conf auxtrees [--conffile _file_] [show|add|delete] [_value_]*120448
-Node: tlmgr dump-tlpdb [_option_...] [--json]122793
-Ref: tlmgr *--local*123226
-Ref: tlmgr *--remote*123265
-Ref: tlmgr *--json*123303
-Node: tlmgr generate123874
-Ref: tlmgr *generate [_option_...] language*124070
-Ref: tlmgr *generate [_option_...] language.dat*124109
-Ref: tlmgr *generate [_option_...] language.def*124148
-Ref: tlmgr *generate [_option_...] language.dat.lua*124191
-Ref: tlmgr *--dest* _output_file_126517
-Ref: tlmgr *--localcfg* _local_conf_file_127093
-Ref: tlmgr *--rebuild-sys*127216
-Node: tlmgr gui128031
-Node: tlmgr info128209
-Ref: tlmgr *info [_option_...] _pkg_...*128371
-Ref: tlmgr *info [_option_...] collections*128405
-Ref: tlmgr *info [_option_...] schemes*128435
-Ref: tlmgr *--list*129965
-Ref: tlmgr *--only-installed*130279
-Ref: tlmgr *--data 'item1,item2,...'*130478
-Ref: tlmgr *--json* 1131059
-Node: tlmgr init-usertree131442
-Node: tlmgr install [_option_...] _pkg_...131823
-Ref: tlmgr *--dry-run* 1132333
-Ref: tlmgr *--file*132450
-Ref: tlmgr *--force*132672
-Ref: tlmgr *--no-depends*132892
-Ref: tlmgr *--no-depends-at-all*133051
-Ref: tlmgr *--reinstall*133451
-Ref: tlmgr *--with-doc*133829
-Ref: tlmgr *--with-src*133842
-Node: tlmgr key134364
-Ref: tlmgr *key list*134522
-Ref: tlmgr *key add _file_*134540
-Ref: tlmgr *key remove _keyid_*134562
-Node: tlmgr list135157
-Node: tlmgr option135319
-Ref: tlmgr *option [--json] [show]*135474
-Ref: tlmgr *option [--json] showall*135500
-Ref: tlmgr *option _key_ [_value_]*135526
-Node: tlmgr paper139923
-Ref: tlmgr *paper [a4|letter]*140072
-Ref: tlmgr *[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*140146
-Ref: tlmgr *paper --json*140161
-Node: tlmgr path141376
-Ref: tlmgr *path [--w32mode=user|admin] add*141537
-Ref: tlmgr *path [--w32mode=user|admin] remove*141574
-Node: tlmgr pinning142914
-Ref: tlmgr 'pinning show'143155
-Ref: tlmgr 'pinning add' _repo_ _pkgglob_...143228
-Ref: tlmgr 'pinning remove' _repo_ _pkgglob_...143347
-Ref: tlmgr 'pinning remove _repo_ --all'143500
-Node: tlmgr platform143554
-Ref: tlmgr *platform list|add|remove _platform_...*143740
-Ref: tlmgr *platform set _platform_*143767
-Ref: tlmgr *platform set auto*143788
-Ref: tlmgr *--dry-run* 2144674
-Node: tlmgr postaction144793
-Ref: tlmgr *postaction [_option_...] install [shortcut|fileassoc|script] [_pkg_...]*145023
-Ref: tlmgr *postaction [_option_...] remove [shortcut|fileassoc|script] [_pkg_...]*145097
-Ref: tlmgr *--w32mode=[user|admin]*145412
-Ref: tlmgr *--fileassocmode=[1|2]*145828
-Ref: tlmgr *--all* 1146113
-Node: tlmgr print-platform146168
-Node: tlmgr print-platform-info146499
-Node: tlmgr remove [_option_...] _pkg_...146799
-Ref: tlmgr *--all* 2147283
-Ref: tlmgr *--backup*147393
-Ref: tlmgr *--backupdir* _directory_ 1147419
-Ref: tlmgr *--no-depends* 1147824
-Ref: tlmgr *--no-depends-at-all* 1147886
-Ref: tlmgr *--force* 1147989
-Ref: tlmgr *--dry-run* 3148462
-Node: tlmgr repository148569
-Ref: tlmgr *repository list*148757
-Ref: tlmgr *repository list _path|tag_*148787
-Ref: tlmgr *repository add _path_ [_tag_]*148820
-Ref: tlmgr *repository remove _path|tag_*148852
-Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*148906
-Node: tlmgr restore149959
-Ref: tlmgr *restore [_option_...] _pkg_ [_rev_]*150138
-Ref: tlmgr *restore [_option_...] --all*150168
-Ref: tlmgr *--all* 3150868
-Ref: tlmgr *--backupdir* _directory_ 2151082
-Ref: tlmgr *--dry-run* 4151263
-Ref: tlmgr *--force* 2151395
-Ref: tlmgr *--json* 2151441
-Node: tlmgr search151768
-Ref: tlmgr *search [_option_...] _what_*151932
-Ref: tlmgr *search [_option_...] --file _what_*151969
-Ref: tlmgr *search [_option_...] --all _what_*152005
-Ref: tlmgr *--file* 1152225
-Ref: tlmgr *--all* 4152287
-Ref: tlmgr *--global*152376
-Ref: tlmgr *--word*152503
-Node: tlmgr shell152818
-Ref: tlmgr protocol153553
-Ref: tlmgr help 1153617
-Ref: tlmgr version 1153670
-Ref: tlmgr quit, end, bye, byebye, EOF153738
-Ref: tlmgr restart153759
-Ref: tlmgr load [local|remote]153882
-Ref: tlmgr save153952
-Ref: tlmgr get [_var_] =item set [_var_ [_val_]]154075
-Node: tlmgr show154676
-Node: tlmgr uninstall154843
-Node: tlmgr update [_option_...] [_pkg_...]155073
-Ref: tlmgr *--all* 5155444
-Ref: tlmgr *--self*157185
-Ref: tlmgr *--dry-run* 5157949
-Ref: tlmgr *--list* [_pkg_]158126
-Ref: tlmgr *--exclude* _pkg_158815
-Ref: tlmgr *--no-auto-remove* [_pkg_...]159615
-Ref: tlmgr *--no-auto-install* [_pkg_...]160066
-Ref: tlmgr *--reinstall-forcibly-removed*160722
-Ref: tlmgr *--backup* 1161257
-Ref: tlmgr *--backupdir* _directory_ 3161283
-Ref: tlmgr *--no-depends* 2162449
-Ref: tlmgr *--no-depends-at-all* 2162652
-Ref: tlmgr *--force* 3162755
-Node: tlmgr CONFIGURATION FILE FOR TLMGR163570
-Ref: tlmgr 'auto-remove', value 0 or 1 (default 1), same as command-line option.164583
-Ref: tlmgr 'gui-expertmode', value 0 or 1 (default 1). This switches between the full GUI and a simplified GUI with only the most common settings.164720
-Ref: tlmgr 'gui-lang' _llcode_, with a language code value as with the command-line option.164802
-Ref: tlmgr 'no-checksums', value 0 or 1 (default 0, see below).164856
-Ref: tlmgr 'persistent-downloads', value 0 or 1 (default 1), same as command-line option.164936
-Ref: tlmgr 'require-verification', value 0 or 1 (default 0), same as command-line option.165016
-Ref: tlmgr 'update-exclude', value: comma-separated list of packages (no space allowed). Same as the command line option '--exclude' for the action 'update'.165164
-Ref: tlmgr 'verify-downloads', value 0 or 1 (default 1), same as command-line option.165240
-Ref: tlmgr 'allowed-actions' _action1_ [,_action_,...] The value is a comma-separated list of 'tlmgr' actions which are allowed to be executed when 'tlmgr' is invoked in system mode (that is, without '--usermode').165509
-Node: tlmgr CRYPTOGRAPHIC VERIFICATION166595
-Node: tlmgr Configuration of GnuPG invocation168744
-Node: tlmgr USER MODE169382
-Node: tlmgr User mode install172228
-Node: tlmgr User mode backup, restore, remove, update173372
-Node: tlmgr User mode generate, option, paper173814
-Node: tlmgr MULTIPLE REPOSITORIES174190
-Node: tlmgr Pinning175919
-Node: tlmgr GUI FOR TLMGR177894
-Node: tlmgr Main display179234
-Node: tlmgr Display configuration area179486
-Ref: tlmgr Status179847
-Ref: tlmgr Category180011
-Ref: tlmgr Match180197
-Ref: tlmgr Selection180378
-Ref: tlmgr Display configuration buttons180582
-Node: tlmgr Package list area180765
-Ref: tlmgr a checkbox181349
-Ref: tlmgr package name181485
-Ref: tlmgr local revision (and version)181584
-Ref: tlmgr remote revision (and version)181959
-Ref: tlmgr short description182256
-Node: tlmgr Main display action buttons182301
-Ref: tlmgr Update all installed182567
-Ref: tlmgr Update182939
-Ref: tlmgr Install182989
-Ref: tlmgr Remove183175
-Ref: tlmgr Backup183353
-Node: tlmgr Menu bar183510
-Ref: tlmgr 'tlmgr' menu183733
-Ref: tlmgr 'Options menu'184041
-Ref: tlmgr 'Actions menu'185124
-Ref: tlmgr 'Help menu'185552
-Node: tlmgr GUI options185685
-Ref: tlmgr '-background' _color_185931
-Ref: tlmgr '-font "' _fontname_ _fontsize_ '"'185996
-Ref: tlmgr '-foreground' _color_186154
-Ref: tlmgr '-geometry' _geomspec_186206
-Ref: tlmgr '-xrm' _xresource_186398
-Node: tlmgr MACHINE-READABLE OUTPUT186666
-Node: tlmgr Machine-readable 'update' and 'install' output187482
-Ref: tlmgr 'location-url' _location_188764
-Ref: tlmgr 'total-bytes' _count_188980
-Ref: tlmgr _pkgname_189390
-Ref: tlmgr _status_189600
-Ref: tlmgr 'd'189678
-Ref: tlmgr 'f'189738
-Ref: tlmgr 'u'189917
-Ref: tlmgr 'r'189963
-Ref: tlmgr 'a'190086
-Ref: tlmgr 'i'190264
-Ref: tlmgr 'I'190383
-Ref: tlmgr _localrev_190485
-Ref: tlmgr _serverrev_190592
-Ref: tlmgr _size_190704
-Ref: tlmgr _runtime_190873
-Ref: tlmgr _esttot_190943
-Node: tlmgr Machine-readable 'option' output190976
-Node: tlmgr AUTHORS AND COPYRIGHT191494
-Node: Index191893
+Node: Overview of build system3943
+Node: Prerequisites5994
+Node: Building8603
+Node: Build iteration9989
+Node: Build problems11030
+Node: Build in parallel11484
+Node: Build distribution12088
+Node: Build one package12736
+Node: Build one engine16415
+Node: Cross compilation17464
+Node: Cross configuring18744
+Node: Cross problems20421
+Node: Installing22083
+Node: Installation directories23103
+Node: Linked scripts24921
+Node: Distro builds26412
+Node: Layout and infrastructure28788
+Node: Build system tools29619
+Node: Top-level directories31836
+Node: Autoconf macros34072
+Node: General setup macros34834
+Node: Macros for programs35709
+Node: Macros for compilers36510
+Node: Macros for libraries37918
+Node: Macros for library and header flags38344
+Node: Macros for Windows40255
+Node: Library modules41842
+Node: png library42331
+Node: zlib library44679
+Node: freetype library45194
+Node: kpathsea library45890
+Node: Program modules47269
+Node: t1utils package47697
+Node: xindy package48242
+Node: xdvik package49356
+Node: asymptote50415
+Node: Extending TeX Live50911
+Node: Adding a new program module51694
+Node: Adding a new generic library module55033
+Node: Adding a new TeX-specific library module57262
+Node: Configure options57960
+Node: Global configure options59341
+Node: --disable-native-texlive-build59883
+Node: --prefix --bindir ...60845
+Node: --disable-largefile61385
+Node: --disable-missing62086
+Node: --enable-compiler-warnings=LEVEL62487
+Node: --enable-cxx-runtime-hack63143
+Node: --enable-maintainer-mode63563
+Node: --enable-multiplatform64092
+Node: --enable-shared64665
+Node: --enable-silent-rules65036
+Node: --without-ln-s65488
+Node: --without-x65835
+Node: Program-specific configure options66023
+Node: --enable-PROG --disable-PROG66666
+Node: --disable-all-pkgs66939
+Node: Configure options for texk/web2c67722
+Node: Configure options for texk/bibtex-x70260
+Node: Configure options for texk/dvipdfm-x70803
+Node: Configure options for texk/dvisvgm71579
+Node: Configure options for texk/texlive72460
+Node: Configure options for texk/xdvik72881
+Node: Configure options for utils/xindy73502
+Node: Library-specific configure options74392
+Node: Configure options for kpathsea75394
+Node: Configure options for system poppler76143
+Node: Variables for configure76907
+Node: Coding conventions78333
+Node: Declarations and definitions79048
+Node: Const81222
+Node: Continuous integration83086
+Node: Transfer from Subversion to Github83750
+Node: Automatic update of the Git mirror85912
+Node: CI testing on Travis-CI86494
+Node: Releases on Github87203
+Node: install-tl87643
+Node: install-tl NAME88012
+Node: install-tl SYNOPSIS88170
+Node: install-tl DESCRIPTION88428
+Node: install-tl REFERENCES89488
+Node: install-tl OPTIONS90012
+Ref: install-tl *-gui* [[=]_module_]90353
+Ref: install-tl text90561
+Ref: install-tl tcl90681
+Ref: install-tl wizard91023
+Ref: install-tl expert91156
+Ref: install-tl perltk91278
+Ref: install-tl *-no-gui*91824
+Ref: install-tl *-lang* _llcode_91914
+Ref: install-tl *-repository* _url|path_92670
+Ref: install-tl *-select-repository*93558
+Ref: install-tl *-all-options*93994
+Ref: install-tl *-custom-bin* _path_94249
+Ref: install-tl *-debug-translation*95083
+Ref: install-tl *-force-platform* _platform_95302
+Ref: install-tl *-help*, *--help*, *-?*95546
+Ref: install-tl *-in-place*95959
+Ref: install-tl *-init-from-profile* _profile_file_96504
+Ref: install-tl *-logfile* _file_96773
+Ref: install-tl *-no-cls*97124
+Ref: install-tl *-no-persistent-downloads*97272
+Ref: install-tl *-persistent-downloads*97297
+Ref: install-tl *-no-verify-downloads*97915
+Ref: install-tl *-non-admin*98278
+Ref: install-tl *-portable*98371
+Ref: install-tl *-print-platform*98510
+Ref: install-tl *-profile* _profile_file_98708
+Ref: install-tl *-q*98929
+Ref: install-tl *-scheme* _scheme_98991
+Ref: install-tl *-v*99465
+Ref: install-tl *-version*, *--version*99620
+Node: install-tl PROFILES99754
+Ref: install-tl instopt_adjustpath (default 0 on Unix, 1 on Windows)102620
+Ref: install-tl instopt_adjustrepo (default 1)102696
+Ref: install-tl instopt_letter (default 0)102833
+Ref: install-tl instopt_portable (default 0)102924
+Ref: install-tl instopt_write18_restricted (default 1)103020
+Node: install-tl ENVIRONMENT VARIABLES104359
+Ref: install-tl TEXLIVE_DOWNLOADER104737
+Ref: install-tl TL_DOWNLOAD_PROGRAM104760
+Ref: install-tl TL_DOWNLOAD_ARGS104780
+Ref: install-tl TEXLIVE_INSTALL_ENV_NOCHECK104984
+Ref: install-tl TEXLIVE_INSTALL_NO_CONTEXT_CACHE105186
+Ref: install-tl TEXLIVE_INSTALL_NO_IMPORT105295
+Ref: install-tl TEXLIVE_INSTALL_NO_WELCOME105447
+Ref: install-tl TEXLIVE_INSTALL_PREFIX105569
+Ref: install-tl TEXLIVE_INSTALL_TEXDIR105595
+Ref: install-tl TEXLIVE_INSTALL_TEXMFCONFIG105626
+Ref: install-tl TEXLIVE_INSTALL_TEXMFVAR105654
+Ref: install-tl TEXLIVE_INSTALL_TEXMFHOME105683
+Ref: install-tl TEXLIVE_INSTALL_TEXMFLOCAL105713
+Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSCONFIG105747
+Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSVAR105778
+Ref: install-tl NOPERLDOC106149
+Node: install-tl AUTHORS AND COPYRIGHT106213
+Node: tlmgr106626
+Node: tlmgr NAME107111
+Node: tlmgr SYNOPSIS107243
+Node: tlmgr DESCRIPTION107433
+Node: tlmgr EXAMPLES108532
+Ref: tlmgr tlmgr option repository ctan108783
+Ref: tlmgr tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet108855
+Ref: tlmgr tlmgr update --list109460
+Ref: tlmgr tlmgr update --all109553
+Ref: tlmgr tlmgr info _what_109710
+Node: tlmgr OPTIONS109972
+Ref: tlmgr *--repository* _url|path_110492
+Ref: tlmgr /some/local/dir111678
+Ref: tlmgr file:/some/local/dir111707
+Ref: tlmgr ctan111780
+Ref: tlmgr http://mirror.ctan.org/systems/texlive/tlnet111833
+Ref: tlmgr http://server/path/to/tlnet112174
+Ref: tlmgr https://server/path/to/tlnet112555
+Ref: tlmgr ftp://server/path/to/tlnet113023
+Ref: tlmgr user@machine:/path/to/tlnet113155
+Ref: tlmgr scp://user@machine/path/to/tlnet113196
+Ref: tlmgr ssh://user@machine/path/to/tlnet113237
+Ref: tlmgr *--gui* [_action_]113630
+Ref: tlmgr *--gui-lang* _llcode_114443
+Ref: tlmgr *--debug-translation*115179
+Ref: tlmgr *--machine-readable*115382
+Ref: tlmgr *--no-execute-actions*115650
+Ref: tlmgr *--package-logfile* _file_115843
+Ref: tlmgr *--pause*116097
+Ref: tlmgr *--persistent-downloads*116252
+Ref: tlmgr *--no-persistent-downloads*116280
+Ref: tlmgr *--pin-file*116774
+Ref: tlmgr *--usermode*116992
+Ref: tlmgr *--usertree* _dir_117112
+Ref: tlmgr *--verify-repo=[none|main|all]*117238
+Node: tlmgr ACTIONS118137
+Node: tlmgr help118998
+Node: tlmgr version119475
+Node: tlmgr backup119738
+Ref: tlmgr *backup [_option_...] --all*119909
+Ref: tlmgr *backup [_option_...] _pkg_...*119942
+Ref: tlmgr *--backupdir* _directory_121008
+Ref: tlmgr *--all*121225
+Ref: tlmgr *--clean*[=_N_]121477
+Ref: tlmgr *--dry-run*121804
+Node: tlmgr candidates _pkg_121934
+Node: tlmgr check [_option_...] [depends|executes|files|runfiles|texmfdbs|all]122289
+Ref: tlmgr *depends*122803
+Ref: tlmgr *executes*123145
+Ref: tlmgr *files*123260
+Ref: tlmgr *runfiles*123396
+Ref: tlmgr *texmfdbs*123533
+Ref: tlmgr - all items in TEXMFDBS have the !! prefix.123763
+Ref: tlmgr - all items in TEXMFBDS have an ls-R file (if they exist at all).123839
+Ref: tlmgr - all items in TEXMF with !! are listed in TEXMFDBS.123904
+Ref: tlmgr - all items in TEXMF with an ls-R file are listed in TEXMFDBS.123979
+Ref: tlmgr *--use-svn*124004
+Node: tlmgr conf124145
+Ref: tlmgr *conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]*124433
+Ref: tlmgr *conf auxtrees [--conffile _file_] [show|add|remove] [_value_]*124497
+Node: tlmgr dump-tlpdb [_option_...] [--json]126912
+Ref: tlmgr *--local*127345
+Ref: tlmgr *--remote*127384
+Ref: tlmgr *--json*127422
+Node: tlmgr generate127993
+Ref: tlmgr *generate [_option_...] language*128189
+Ref: tlmgr *generate [_option_...] language.dat*128228
+Ref: tlmgr *generate [_option_...] language.def*128267
+Ref: tlmgr *generate [_option_...] language.dat.lua*128310
+Ref: tlmgr *--dest* _output_file_130637
+Ref: tlmgr *--localcfg* _local_conf_file_131213
+Ref: tlmgr *--rebuild-sys*131336
+Node: tlmgr gui132151
+Node: tlmgr info132329
+Ref: tlmgr *info [_option_...] _pkg_...*132491
+Ref: tlmgr *info [_option_...] collections*132525
+Ref: tlmgr *info [_option_...] schemes*132555
+Ref: tlmgr *--list*134085
+Ref: tlmgr *--only-installed*134399
+Ref: tlmgr *--only-remote*134587
+Ref: tlmgr *--data item1,item2,...*134891
+Ref: tlmgr *--json* 1135472
+Node: tlmgr init-usertree135855
+Node: tlmgr install [_option_...] _pkg_...136236
+Ref: tlmgr *--dry-run* 1136744
+Ref: tlmgr *--file*136861
+Ref: tlmgr *--force*137083
+Ref: tlmgr *--no-depends*137303
+Ref: tlmgr *--no-depends-at-all*137462
+Ref: tlmgr *--reinstall*137862
+Ref: tlmgr *--with-doc*138240
+Ref: tlmgr *--with-src*138253
+Node: tlmgr key138981
+Ref: tlmgr *key list*139139
+Ref: tlmgr *key add _file_*139157
+Ref: tlmgr *key remove _keyid_*139179
+Node: tlmgr list139773
+Node: tlmgr option139935
+Ref: tlmgr *option [--json] [show]*140090
+Ref: tlmgr *option [--json] showall|help*140121
+Ref: tlmgr *option _key_ [_value_]*140147
+Node: tlmgr paper144725
+Ref: tlmgr *paper [a4|letter]*144874
+Ref: tlmgr *<[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*>144950
+Ref: tlmgr *paper --json*144965
+Node: tlmgr path146180
+Ref: tlmgr *path [--w32mode=user|admin] add*146341
+Ref: tlmgr *path [--w32mode=user|admin] remove*146378
+Node: tlmgr pinning147863
+Ref: tlmgr pinning show148104
+Ref: tlmgr pinning add _repo_ _pkgglob_...148177
+Ref: tlmgr pinning remove _repo_ _pkgglob_...148296
+Ref: tlmgr pinning remove _repo_ --all148449
+Node: tlmgr platform148503
+Ref: tlmgr *platform list|add|remove _platform_...*148689
+Ref: tlmgr *platform set _platform_*148716
+Ref: tlmgr *platform set auto*148737
+Ref: tlmgr *--dry-run* 2149614
+Node: tlmgr postaction149733
+Ref: tlmgr *postaction [_option_...] install [shortcut|fileassoc|script] [_pkg_...]*149963
+Ref: tlmgr *postaction [_option_...] remove [shortcut|fileassoc|script] [_pkg_...]*150037
+Ref: tlmgr *--w32mode=[user|admin]*150352
+Ref: tlmgr *--fileassocmode=[1|2]*150768
+Ref: tlmgr *--all* 1151053
+Node: tlmgr print-platform151108
+Node: tlmgr print-platform-info151439
+Node: tlmgr remove [_option_...] _pkg_...151739
+Ref: tlmgr *--all* 2152223
+Ref: tlmgr *--backup*152333
+Ref: tlmgr *--backupdir* _directory_ 1152359
+Ref: tlmgr *--no-depends* 1152764
+Ref: tlmgr *--no-depends-at-all* 1152826
+Ref: tlmgr *--force* 1152929
+Ref: tlmgr *--dry-run* 3153402
+Node: tlmgr repository153738
+Ref: tlmgr *repository list*153926
+Ref: tlmgr *repository list _path|url|tag_*153960
+Ref: tlmgr *repository add _path_ [_tag_]*153993
+Ref: tlmgr *repository remove _path|tag_*154025
+Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*154079
+Ref: tlmgr *repository status*154100
+Ref: tlmgr The tag (which can be the same as the url);155327
+Node: tlmgr restore155805
+Ref: tlmgr *restore [_option_...] _pkg_ [_rev_]*155984
+Ref: tlmgr *restore [_option_...] --all*156014
+Ref: tlmgr *--all* 3156714
+Ref: tlmgr *--backupdir* _directory_ 2156928
+Ref: tlmgr *--dry-run* 4157109
+Ref: tlmgr *--force* 2157241
+Ref: tlmgr *--json* 2157287
+Node: tlmgr search157614
+Ref: tlmgr *search [_option_...] _what_*157778
+Ref: tlmgr *search [_option_...] --file _what_*157815
+Ref: tlmgr *search [_option_...] --all _what_*157851
+Ref: tlmgr *--file* 1158071
+Ref: tlmgr *--all* 4158133
+Ref: tlmgr *--global*158222
+Ref: tlmgr *--word*158349
+Node: tlmgr shell158664
+Ref: tlmgr protocol159399
+Ref: tlmgr help 1159463
+Ref: tlmgr version 1159516
+Ref: tlmgr quit, end, bye, byebye, EOF159584
+Ref: tlmgr restart159605
+Ref: tlmgr load [local|remote]159728
+Ref: tlmgr save159798
+Ref: tlmgr get [_var_] =item set [_var_ [_val_]]159921
+Node: tlmgr show160522
+Node: tlmgr uninstall160689
+Node: tlmgr update [_option_...] [_pkg_...]160919
+Ref: tlmgr *--all* 5161290
+Ref: tlmgr *--self*163469
+Ref: tlmgr *--dry-run* 5164233
+Ref: tlmgr *--list* [_pkg_]164410
+Ref: tlmgr *--exclude* _pkg_165099
+Ref: tlmgr *--no-auto-remove* [_pkg_...]165899
+Ref: tlmgr *--no-auto-install* [_pkg_...]166383
+Ref: tlmgr *--reinstall-forcibly-removed*167145
+Ref: tlmgr *--backup* 1167680
+Ref: tlmgr *--backupdir* _directory_ 3167706
+Ref: tlmgr *--no-depends* 2168872
+Ref: tlmgr *--no-depends-at-all* 2169075
+Ref: tlmgr *--force* 3169178
+Node: tlmgr CONFIGURATION FILE FOR TLMGR170198
+Ref: tlmgr auto-remove, value 0 or 1 (default 1), same as command-line option.171205
+Ref: tlmgr gui-expertmode, value 0 or 1 (default 1). This switches between the full GUI and a simplified GUI with only the most common settings.171342
+Ref: tlmgr gui-lang _llcode_, with a language code value as with the command-line option.171424
+Ref: tlmgr no-checksums, value 0 or 1 (default 0, see below).171478
+Ref: tlmgr persistent-downloads, value 0 or 1 (default 1), same as command-line option.171558
+Ref: tlmgr require-verification, value 0 or 1 (default 0), same as command-line option.171638
+Ref: tlmgr update-exclude, value: comma-separated list of packages (no space allowed). Same as the command line option --exclude for the action update.171786
+Ref: tlmgr verify-downloads, value 0 or 1 (default 1), same as command-line option.171862
+Ref: tlmgr allowed-actions _action1_ [,_action_,...] The value is a comma-separated list of tlmgr actions which are allowed to be executed when tlmgr is invoked in system mode (that is, without --usermode).172131
+Node: tlmgr CRYPTOGRAPHIC VERIFICATION173219
+Node: tlmgr Configuration of GnuPG invocation175392
+Node: tlmgr USER MODE176030
+Node: tlmgr User mode install178876
+Node: tlmgr User mode backup, restore, remove, update180020
+Node: tlmgr User mode generate, option, paper180462
+Node: tlmgr MULTIPLE REPOSITORIES180838
+Node: tlmgr Pinning182567
+Node: tlmgr GUI FOR TLMGR184490
+Node: tlmgr Main display186139
+Node: tlmgr Display configuration area186391
+Ref: tlmgr Status186752
+Ref: tlmgr Category186916
+Ref: tlmgr Match187102
+Ref: tlmgr Selection187283
+Ref: tlmgr Display configuration buttons187487
+Node: tlmgr Package list area187670
+Ref: tlmgr a checkbox188254
+Ref: tlmgr package name188390
+Ref: tlmgr local revision (and version)188489
+Ref: tlmgr remote revision (and version)188864
+Ref: tlmgr short description189161
+Node: tlmgr Main display action buttons189206
+Ref: tlmgr Update all installed189472
+Ref: tlmgr Update189844
+Ref: tlmgr Install189894
+Ref: tlmgr Remove190080
+Ref: tlmgr Backup190258
+Node: tlmgr Menu bar190415
+Ref: tlmgr tlmgr menu190638
+Ref: tlmgr Options menu190946
+Ref: tlmgr Actions menu192029
+Ref: tlmgr Help menu192457
+Node: tlmgr GUI options192591
+Ref: tlmgr -background _color_192837
+Ref: tlmgr -font " _fontname_ _fontsize_ "192902
+Ref: tlmgr -foreground _color_193060
+Ref: tlmgr -geometry _geomspec_193112
+Ref: tlmgr -xrm _xresource_193304
+Node: tlmgr MACHINE-READABLE OUTPUT193573
+Node: tlmgr Machine-readable update and install output194383
+Ref: tlmgr location-url _location_195659
+Ref: tlmgr total-bytes _count_195875
+Ref: tlmgr _pkgname_196285
+Ref: tlmgr _status_196495
+Ref: tlmgr d196573
+Ref: tlmgr f196633
+Ref: tlmgr u196812
+Ref: tlmgr r196858
+Ref: tlmgr a196981
+Ref: tlmgr i197159
+Ref: tlmgr I197278
+Ref: tlmgr _localrev_197380
+Ref: tlmgr _serverrev_197487
+Ref: tlmgr _size_197599
+Ref: tlmgr _runtime_197768
+Ref: tlmgr _esttot_197838
+Node: tlmgr Machine-readable option output197871
+Node: tlmgr ENVIRONMENT VARIABLES198383
+Ref: tlmgr TEXLIVE_COMPRESSOR198894
+Ref: tlmgr TEXLIVE_DOWNLOADER199742
+Ref: tlmgr TL_DOWNLOAD_PROGRAM199765
+Ref: tlmgr TL_DOWNLOAD_ARGS199785
+Ref: tlmgr TEXLIVE_PREFER_OWN200811
+Node: tlmgr AUTHORS AND COPYRIGHT201635
+Node: Index202033

End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/Build/source/doc/tlbuild.texi b/Build/source/doc/tlbuild.texi
index 3ea08d701b6..f0011a7df76 100644
--- a/Build/source/doc/tlbuild.texi
+++ b/Build/source/doc/tlbuild.texi
@@ -1,8 +1,8 @@
\input texinfo
@setfilename tlbuild.info
-@set version 2019
-@set month-year February 2019
+@set version 2020
+@set month-year March 2020
@set mytitle Building @TeX{} Live (@value{version})
@settitle @value{mytitle}
@@ -15,7 +15,7 @@
This file documents the @TL{} build system and more.
@noindent
-Copyright @copyright{} 2016--2019 Karl Berry.@*
+Copyright @copyright{} 2016--2020 Karl Berry.@*
Copyright @copyright{} 2013--2015 Karl Berry & Peter Breitenlohner.
Permission is granted to make and distribute verbatim copies of this
diff --git a/Master/tlpkg/doc/releng.txt b/Master/tlpkg/doc/releng.txt
index 3ad7084b596..eb3fefc7dea 100644
--- a/Master/tlpkg/doc/releng.txt
+++ b/Master/tlpkg/doc/releng.txt
@@ -248,7 +248,9 @@ M. As work proceeds, update the doc:
update "Builders of the binaries" and "Translators of this manual",
and changes throughout if behavior has changed.
Update tlbuild.texi text, then
- make tlbuild-incl.texi && make readme-files && make readme-install.
+ W=.../Work
+ make -C $W/doc script-links tlbuild-incl.texi readme-files readme-install
+ cd .../Build/source
Consider updates of core man pages in Build/source/texk/web2c/man.
Remake updmap,fmtutil man pages with help2man:
make -C Build/source/Work/texk/texlive/tl_scripts xupdmap.1 xfmtutil.1