pdftex[824] branches/stable/source/src: sync with tl20 release,

commits+karl at tug.org commits+karl at tug.org
Thu May 14 20:05:47 CEST 2020


Revision: 824
          http://tug.org/svn/pdftex?view=revision&revision=824
Author:   karl
Date:     2020-05-14 20:05:47 +0200 (Thu, 14 May 2020)
Log Message:
-----------
sync with tl20 release, r54631

Revision Links:
--------------
    http://tug.org/svn/pdftex?view=revision&revision=54631

Modified Paths:
--------------
    branches/stable/source/src/configure
    branches/stable/source/src/doc/ChangeLog
    branches/stable/source/src/doc/Makefile.am
    branches/stable/source/src/doc/Makefile.in
    branches/stable/source/src/doc/README.solaris
    branches/stable/source/src/doc/build-tools.txt
    branches/stable/source/src/doc/tlbuild-incl/install-tl.texi
    branches/stable/source/src/doc/tlbuild-incl/tlmgr.texi
    branches/stable/source/src/doc/tlbuild.info
    branches/stable/source/src/doc/tlbuild.texi
    branches/stable/source/src/libs/configure
    branches/stable/source/src/libs/libpng/ChangeLog
    branches/stable/source/src/libs/libpng/Makefile.am
    branches/stable/source/src/libs/libpng/Makefile.in
    branches/stable/source/src/libs/libpng/config.h.in
    branches/stable/source/src/libs/libpng/configure
    branches/stable/source/src/libs/libpng/configure.ac
    branches/stable/source/src/m4/ChangeLog
    branches/stable/source/src/m4/kpse-setup.m4
    branches/stable/source/src/tardate.ac
    branches/stable/source/src/texk/README
    branches/stable/source/src/texk/configure
    branches/stable/source/src/texk/kpathsea/ChangeLog
    branches/stable/source/src/texk/kpathsea/NEWS
    branches/stable/source/src/texk/kpathsea/doc/kpathsea.info
    branches/stable/source/src/texk/kpathsea/doc/kpathsea.texi
    branches/stable/source/src/texk/kpathsea/doc/unixtex.texi
    branches/stable/source/src/texk/kpathsea/pathsearch.c
    branches/stable/source/src/texk/tests/TeXLive/TLConfig.pm
    branches/stable/source/src/texk/tests/TeXLive/TLUtils.pm
    branches/stable/source/src/texk/web2c/ChangeLog
    branches/stable/source/src/texk/web2c/Makefile.in
    branches/stable/source/src/texk/web2c/NEWS
    branches/stable/source/src/texk/web2c/doc/web2c.info
    branches/stable/source/src/texk/web2c/doc/web2c.texi
    branches/stable/source/src/texk/web2c/pdftexdir/ChangeLog
    branches/stable/source/src/texk/web2c/pdftexdir/NEWS
    branches/stable/source/src/texk/web2c/pdftexdir/pdftex.web
    branches/stable/source/src/texk/web2c/pdftexdir/pdftoepdf-poppler0.83.0.cc
    branches/stable/source/src/utils/README
    branches/stable/source/src/utils/configure

Added Paths:
-----------
    branches/stable/source/src/texk/web2c/pdftexdir/pdftoepdf-poppler0.86.0.cc

Modified: branches/stable/source/src/configure
===================================================================
--- branches/stable/source/src/configure	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/configure	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for TeX Live 2019-04-07.
+# Generated by GNU Autoconf 2.69 for TeX Live 2020-03-27.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='TeX Live'
 PACKAGE_TARNAME='tex-live'
-PACKAGE_VERSION='2019-04-07'
-PACKAGE_STRING='TeX Live 2019-04-07'
+PACKAGE_VERSION='2020-03-27'
+PACKAGE_STRING='TeX Live 2020-03-27'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1504,7 +1504,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures TeX Live 2019-04-07 to adapt to many kinds of systems.
+\`configure' configures TeX Live 2020-03-27 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1578,7 +1578,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of TeX Live 2019-04-07:";;
+     short | recursive ) echo "Configuration of TeX Live 2020-03-27:";;
    esac
   cat <<\_ACEOF
 
@@ -1889,7 +1889,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-TeX Live configure 2019-04-07
+TeX Live configure 2020-03-27
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2666,7 +2666,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by TeX Live $as_me 2019-04-07, which was
+It was created by TeX Live $as_me 2020-03-27, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4157,7 +4157,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-luajittex'" >&5
 $as_echo "$as_me: $host -> \`--disable-luajittex'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-luajittex'" ;; #(
@@ -4170,7 +4170,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-luajithbtex'" >&5
 $as_echo "$as_me: $host -> \`--disable-luajithbtex'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-luajithbtex'" ;; #(
@@ -4183,7 +4183,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-mfluajit'" >&5
 $as_echo "$as_me: $host -> \`--disable-mfluajit'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-mfluajit'" ;; #(
@@ -4196,7 +4196,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-mfluajit-nowin'" >&5
 $as_echo "$as_me: $host -> \`--disable-mfluajit-nowin'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-mfluajit-nowin'" ;; #(
@@ -10824,7 +10824,7 @@
 
 # Define the identity of the package.
  PACKAGE='tex-live'
- VERSION='2019-04-07'
+ VERSION='2020-03-27'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -22947,7 +22947,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by TeX Live $as_me 2019-04-07, which was
+This file was extended by TeX Live $as_me 2020-03-27, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -23004,7 +23004,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-TeX Live config.status 2019-04-07
+TeX Live config.status 2020-03-27
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: branches/stable/source/src/doc/ChangeLog
===================================================================
--- branches/stable/source/src/doc/ChangeLog	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/doc/ChangeLog	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,3 +1,9 @@
+2020-03-13  Karl Berry  <karl at tug.org>
+
+	* tlbuild.texi: update for 2020.
+
+	* build-tools.txt: bison 3.5.2.
+
 2019-12-22  Karl Berry  <karl at freefriends.org>
 
 	* build-tools.txt: bison 3.5.

Modified: branches/stable/source/src/doc/Makefile.am
===================================================================
--- branches/stable/source/src/doc/Makefile.am	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/doc/Makefile.am	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,6 +1,7 @@
+## $Id: Makefile.am 54277 2020-03-13 17:12:03Z karl $
 ## Makefile.am for the TeX Live subdirectory ./doc/
 ##
-## Copyright 2015-2018 Karl Berry <tex-live at tug.org>
+## Copyright 2015-2020 Karl Berry <tex-live at tug.org>
 ## Copyright 2013-2015 Peter Breitenlohner <tex-live at tug.org>
 ## You may freely use, modify and/or distribute this file.
 ##
@@ -29,7 +30,7 @@
 	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 @@
 
 # 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

Modified: branches/stable/source/src/doc/Makefile.in
===================================================================
--- branches/stable/source/src/doc/Makefile.in	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/doc/Makefile.in	2020-05-14 18:05:47 UTC (rev 824)
@@ -493,6 +493,12 @@
 #
 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 @@
 	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

Modified: branches/stable/source/src/doc/README.solaris
===================================================================
--- branches/stable/source/src/doc/README.solaris	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/doc/README.solaris	2020-05-14 18:05:47 UTC (rev 824)
@@ -135,13 +135,13 @@
 
 --- Makefile.in.orig
 +++ Makefile.in
-@@ -11,7 +11,7 @@
+@@ -12,7 +12,7 @@
  GCPPLIB = @GCPPLIB@
  GCLIBS = $(GCPPLIB) $(GCLIB)
  LFLAGS = @LDFLAGS@
--LIBS = $(LFLAGS) @PTHREAD_LIBS@ @LIBS@ $(GCLIBS)
-+LIBS = $(LFLAGS) $(GCLIBS) -nodefaultlibs -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic @PTHREAD_LIBS@ @LIBS@ -lgcc_eh -lgcc -lc
- DOSLIBS = $(subst -lncurses, -ltermcap, $(LIBS)) -s -static
+-LIBS = $(LFLAGS) @PTHREAD_LIBS@ @GLEW@ @LIBS@ $(GCLIBS)
++LIBS = $(LFLAGS) $(GCLIBS) -nodefaultlibs -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic @PTHREAD_LIBS@ @GLEW@ @LIBS@ -lgcc_eh -lgcc -lc -lm
+ DOSLIBS = $(subst -lncurses, -ltermcap, $(LIBS)) -lgdi32 -lwinmm -s -static
  
  PERL = perl
 ------

Modified: branches/stable/source/src/doc/build-tools.txt
===================================================================
--- branches/stable/source/src/doc/build-tools.txt	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/doc/build-tools.txt	2020-05-14 18:05:47 UTC (rev 824)
@@ -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

Modified: branches/stable/source/src/doc/tlbuild-incl/install-tl.texi
===================================================================
--- branches/stable/source/src/doc/tlbuild-incl/install-tl.texi	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/doc/tlbuild-incl/install-tl.texi	2020-05-14 18:05:47 UTC (rev 824)
@@ -30,10 +30,10 @@
 @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
- at 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
+ at 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 @@
 @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
- at url{http://tug.org/texlive/doc}.
+ at url{https://tug.org/texlive/doc}.
 
 @node install-tl OPTIONS
 @appendixsec OPTIONS
@@ -72,7 +72,7 @@
 @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 @@
 The text mode user interface (default on Unix systems).  Same as the
 @code{-no-gui} option.
 
+ at item @code{tcl}
+ at 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.
 
+ at item @code{expert}
+ at 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
+ at 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
- at code{file:/} url, or a network location via a @code{http://}, @code{https://}, or
- at 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.
+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.)
 
-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:
-
- at verbatim
-  -repository http://ctan.example.org/its/ctan/dir/systems/texlive/tlnet
- at 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
- 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
- at 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:
-
- at verbatim
-  -repository /local/TL/repository
- at end verbatim
-
 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},
+ at 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 @@
 @code{custom} before doing each.
 
 For more information on custom binaries, see
- at url{http://tug.org/texlive/custom-bin.html}.  For general information on
-building TeX Live, see @url{http://tug.org/texlive/build.html}.
+ at 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 @@
 @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
- at url{http://tug.org/texlive/doc/install-tl.html}).  Sometimes the
- at 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
+ 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
+ at code{perldoc} will not be used.
 
 @item @strong{-in-place}
 @anchor{install-tl @strong{-in-place}}
@@ -239,9 +234,9 @@
 @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 @@
 For the text mode installer only: do not clear the screen when entering
 a new menu (for debugging purposes).
 
- at item @strong{-non-admin}
- at anchor{install-tl @strong{-non-admin}}
+ at item @strong{-no-persistent-downloads}
+ at anchor{install-tl @strong{-no-persistent-downloads}}
 
-For Windows only: configure for the current user, not for all users.
-
 @item @strong{-persistent-downloads}
 @anchor{install-tl @strong{-persistent-downloads}}
 
- at item @strong{-no-persistent-downloads}
- at 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,8 +278,13 @@
 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.,
- at url{http://tug.org/texlive/doc/tlmgr.html#CRYPTOGRAPHIC-VERIFICATION}
+ at url{https://tug.org/texlive/doc/tlmgr.html#CRYPTOGRAPHIC-VERIFICATION}
 
+ at item @strong{-non-admin}
+ at 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 @@
 @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 @@
 @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,12 +342,18 @@
 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
 
 @emph{variable} [@emph{value}]
@@ -441,7 +443,7 @@
 
 @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 @@
 @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 @@
 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
+ at item @code{TEXLIVE_DOWNLOADER}
+ at anchor{install-tl @code{TEXLIVE_DOWNLOADER}}
+
+ at item @code{TL_DOWNLOAD_PROGRAM}
+ at anchor{install-tl @code{TL_DOWNLOAD_PROGRAM}}
+
+ at item @code{TL_DOWNLOAD_ARGS}
+ at anchor{install-tl @code{TL_DOWNLOAD_ARGS}}
+
+These override the normal choice of a download program; see the @code{tlmgr}
+documentation, e.g.,
+ at 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 @@
 
 Omit creating the ConTeXt cache.  This is useful for redistributors.
 
+ at item @code{TEXLIVE_INSTALL_NO_IMPORT}
+ at 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 @@
 @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 $
 

Modified: branches/stable/source/src/doc/tlbuild-incl/tlmgr.texi
===================================================================
--- branches/stable/source/src/doc/tlbuild-incl/tlmgr.texi	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/doc/tlbuild-incl/tlmgr.texi	2020-05-14 18:05:47 UTC (rev 824)
@@ -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 @@
 
 @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
- at url{http://tug.org/texlive/tlmgr.html}, along with procedures for updating
+ at 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 @@
 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,10 +66,14 @@
 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
+ at url{https://ctan.org/mirrors/mirmon}.
+
 @item @code{tlmgr update --list}
 @anchor{tlmgr @code{tlmgr update --list}}
 
@@ -105,35 +110,124 @@
 @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
- at 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}).
 
- at 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:
+
+ at verbatim
+  -repository http://ctan.example.org/its/ctan/dir/systems/texlive/tlnet
+ at 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
+ at url{https://ctan.org/mirrors/mirmon}.
+
+Here's an example of using a local directory:
+
+ at verbatim
+  -repository /local/TL/repository
+ at 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:
+
+ at table @asis
+ at item @code{/some/local/dir}
+ at anchor{tlmgr @code{/some/local/dir}}
+
+ at item @code{file:/some/local/dir}
+ at anchor{tlmgr @code{file:/some/local/dir}}
+
+Equivalent ways of specifying a local directory.
+
+ at item @code{ctan}
+ at anchor{tlmgr @code{ctan}}
+
+ at item @code{http://mirror.ctan.org/systems/texlive/tlnet}
+ at 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
+ at code{ctan} is merely an alias for the full url. (See @url{https://ctan.org} for
+more about CTAN and its mirrors.)
+
+ at item @code{http://server/path/to/tlnet}
+ at 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
+ at code{tlmgr} documentation
+(@url{https://tug.org/texlive/doc/tlmgr.html#ENVIRONMENT-VARIABLES}).
+
+ at item @code{https://server/path/to/tlnet}
+ at 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.
+
+ at item @code{ftp://server/path/to/tlnet}
+ at anchor{tlmgr @code{ftp://server/path/to/tlnet}}
+
+If the (default) LWP method is used, persistent connections are
+supported.
+
+ at item @code{user@@machine:/path/to/tlnet}
+ at anchor{tlmgr @code{user@@machine:/path/to/tlnet}}
+
+ at item @code{scp://user@@machine/path/to/tlnet}
+ at anchor{tlmgr @code{scp://user@@machine/path/to/tlnet}}
+
+ at item @code{ssh://user@@machine/path/to/tlnet}
+ at anchor{tlmgr @code{ssh://user@@machine/path/to/tlnet}}
+
+These forms are equivalent; they all use @code{scp} to transfer files. Using
+ at code{ssh-agent} is recommended. (Info:
+ at url{https://en.wikipedia.org/wiki/OpenSSH},
+ at url{https://en.wikipedia.org/wiki/Ssh-agent}.)
+
+ at 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}]}
 
- at 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.
 
+ at 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
+ at code{tlcockpit} easier to work with. 
+
 @item @strong{--gui-lang} @emph{llcode}
 @anchor{tlmgr @strong{--gui-lang} @emph{llcode}}
 
@@ -140,13 +234,16 @@
 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)},
+ at w{Czech (cs)}, @w{German (de)}, @w{French (fr)}, @w{Italian (it)},
+ at 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 @@
 * 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 @@
 @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 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
+ at 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 @@
 Shows the available candidate repositories for package @emph{pkg}.
 See @ref{tlmgr MULTIPLE REPOSITORIES,, MULTIPLE REPOSITORIES} below.
 
- at node tlmgr check [@emph{option}...] [files|depends|executes|runfiles|all]
- at appendixsubsec check [@emph{option}...] [files|depends|executes|runfiles|all]
+ at node tlmgr check [@emph{option}...] [depends|executes|files|runfiles|texmfdbs|all]
+ at 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
- at item @strong{files}
- at 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,14 +476,42 @@
 Check that the files referred to by @code{execute} directives in the TeX
 Live Database are present.
 
+ at item @strong{files}
+ at 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.
 
+ at item @strong{texmfdbs}
+ at 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:
+
+ at table @asis
+ at item - all items in @code{TEXMFDBS} have the @code{!!} prefix.
+ at anchor{tlmgr - all items in @code{TEXMFDBS} have the @code{!!} prefix.}
+
+ at item - all items in @code{TEXMFBDS} have an @code{ls-R} file (if they exist at all).
+ at anchor{tlmgr - all items in @code{TEXMFBDS} have an @code{ls-R} file (if they exist at all).}
+
+ at item - all items in @code{TEXMF} with @code{!!} are listed in @code{TEXMFDBS}.
+ at anchor{tlmgr - all items in @code{TEXMF} with @code{!!} are listed in @code{TEXMFDBS}.}
+
+ at item - all items in @code{TEXMF} with an @code{ls-R} file are listed in @code{TEXMFDBS}.
+ at anchor{tlmgr - all items in @code{TEXMF} with an @code{ls-R} file are listed in @code{TEXMFDBS}.}
+
 @end table
 
+ at end table
+
 Options:
 
 @table @asis
@@ -396,7 +519,7 @@
 @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 @@
 @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}]]]}}
 
- at item @strong{conf auxtrees [--conffile @emph{file}] [show|add|delete] [@emph{value}]}
- at anchor{tlmgr @strong{conf auxtrees [--conffile @emph{file}] [show|add|delete] [@emph{value}]}}
+ at item @strong{conf auxtrees [--conffile @emph{file}] [show|add|remove] [@emph{value}]}
+ at 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 @@
 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 @@
 @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 @@
 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 @@
 If this option is given, the installation source will not be used; only
 locally installed packages, collections, or schemes are listed.
 
+ at item @strong{--only-remote}
+ at anchor{tlmgr @strong{--only-remote}}
+
+Only list packages from the remote repository. Useful when checking what
+is available in a remote repository using
+ at code{tlmgr --repo ... --only-remote info}. Note that
+ at code{--only-installed} and @code{--only-remote} cannot both be specified.
+
 @item @strong{--data @code{item1,item2,...}}
 @anchor{tlmgr @strong{--data @code{item1 at comma{}item2 at comma{}...}}}
 
@@ -731,8 +863,8 @@
 @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 @@
 
 @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 @@
 
 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 @@
 @item @strong{option [--json] [show]}
 @anchor{tlmgr @strong{option [--json] [show]}}
 
- at item @strong{option [--json] showall}
- at anchor{tlmgr @strong{option [--json] showall}}
+ at item @strong{option [--json] showall|help}
+ at 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 @@
 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 @@
 
 @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 @@
 
 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 @@
 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
+ at 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 @@
 @item @strong{paper [a4|letter]}
 @anchor{tlmgr @strong{paper [a4|letter]}}
 
- at item @strong{@w{[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [@emph{papersize}|--list]}}
- at anchor{tlmgr @strong{@w{[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [@emph{papersize}|--list]}}}
+ at item @strong{<[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [@emph{papersize}|--list]}>
+ at 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 @@
 @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 @@
 
 @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 @@
 
 @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 @@
 @item @strong{repository list}
 @anchor{tlmgr @strong{repository list}}
 
- at item @strong{repository list @emph{path|tag}}
- at anchor{tlmgr @strong{repository list @emph{path|tag}}}
+ at item @strong{repository list @emph{path|url|tag}}
+ at 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,22 +1386,47 @@
 @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}] ...]}}
 
+ at item @strong{repository status}
+ at 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
- at 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
+ at code{--with-platforms} is specified in addition, for each package the
+available platforms (if any) are also listed.
 
-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
+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:
+
+ at table @asis
+ at item The tag (which can be the same as the url);
+ at anchor{tlmgr The tag (which can be the same as the url);}
+
+= 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.
+
+ at 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 @@
 @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
+ at code{tlmgr} itself are present, this gives an error, unless also the option
+ at 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 @@
 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 @@
 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,
+ at 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 @@
 @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
+ at 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 @@
   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 @@
 @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 @@
 @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
- at code{TEXMFSYSCONFIG/tlmgr/config}, and the other is user-specific in
+ at code{tlmgr} reads two configuration files: one is system-wide, in
+ at 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 @@
 
 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 @@
 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 @@
 @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,38 +2152,37 @@
 @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
@@ -2006,27 +2189,33 @@
 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
- at 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.
+ at 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.
 
-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.
+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 @@
 @anchor{tlmgr @code{Help menu}}
 
 Provides access to the TeX Live manual (also on the web at
- at url{http://tug.org/texlive/doc.html}) and the usual ``About'' box.
+ at url{https://tug.org/texlive/doc.html}) and the usual ``About'' box.
 
 @end table
 
@@ -2279,7 +2468,7 @@
 @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 you are developing a program that uses this output, and find that
 changes would be helpful, do not hesitate to write the mailing list.
 
+ at node tlmgr ENVIRONMENT VARIABLES
+ at appendixsec ENVIRONMENT VARIABLES
+
+ at 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.
+
+ at table @asis
+ at item @code{TEXLIVE_COMPRESSOR}
+ at anchor{tlmgr @code{TEXLIVE_COMPRESSOR}}
+
+This variable allows selecting a different compressor program for
+backups and intermediate rollback containers. The order of selection is:
+
+ at enumerate
+ at item If the environment variable @code{TEXLIVE_COMPRESSOR} is
+defined, use it; abort if it doesn't work. Possible values:
+ at code{lz4}, @code{gzip}, @code{xz}. The necessary options are added internally.
+
+ at item If lz4 is available (either from the system or TL) and working, use that.
+
+ at item If gzip is available (from the system) and working, use that.
+
+ at item If xz is available (either from the system or TL) and working, use that.
+
+ at 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.
+
+ at item @code{TEXLIVE_DOWNLOADER}
+ at anchor{tlmgr @code{TEXLIVE_DOWNLOADER}}
+
+ at item @code{TL_DOWNLOAD_PROGRAM}
+ at anchor{tlmgr @code{TL_DOWNLOAD_PROGRAM}}
+
+ at item @code{TL_DOWNLOAD_ARGS}
+ at 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:
+
+ at enumerate
+ at item If the environment variable @code{TEXLIVE_DOWNLOADER} is defined, use it;
+abort if the specified program doesn't work. Possible values: @code{lwp},
+ at code{curl}, @code{wget}. The necessary options are added internally.
+
+ at item If the environment variable @code{TL_DOWNLOAD_PROGRAM} is
+defined (can be any value), use it together with
+ at code{TL_DOWNLOAD_ARGS}; abort if it doesn't work.
+
+ at item If LWP is available and working, use that (by far the most
+efficient method, as it supports persistent downloads).
+
+ at item If curl is available (from the system) and working, use that.
+
+ at item If wget is available (either from the system or TL) and working, use that.
+
+ at end enumerate
+
+TL provides @code{wget} binaries for platforms where necessary, so some
+download method should always be available.
+
+ at item @code{TEXLIVE_PREFER_OWN}
+ at 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.
+
+ at 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 $
 

Modified: branches/stable/source/src/doc/tlbuild.info
===================================================================
--- branches/stable/source/src/doc/tlbuild.info	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/doc/tlbuild.info	2020-05-14 18:05:47 UTC (rev 824)
@@ -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 @@
 
 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 @@
 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 @@
 =====================
 
 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 @@
 
      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 @@
 
 * 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 @@
 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 @@
 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 @@
 '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 @@
 
 * 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 @@
 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 @@
 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 @@
 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 @@
 
 * 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 @@
 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 @@
 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 @@
 '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 @@
 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 @@
 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 @@
 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 @@
 '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 @@
 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 @@
 '--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 @@
 '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 @@
 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 @@
 
 * 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 @@
 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 @@
 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 @@
 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 @@
 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 '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 @@
 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 @@
 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 @@
 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 @@
 
 * 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 @@
      (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 @@
 
 '--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 @@
 
 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 @@
 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 @@
 
 *-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 @@
           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 @@
 *-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.
+     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.)
 
-     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
-
      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 @@
      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 @@
 
 *-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 @@
 
      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 @@
      For the text mode installer only: do not clear the screen when
      entering a new menu (for debugging purposes).
 
-*-non-admin*
+*-no-persistent-downloads*
 
-     For Windows only: configure for the current user, not for all
-     users.
-
 *-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,8 +2457,13 @@
      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*
 
      Install for portable use, e.g., on a USB stick.  Also selectable
@@ -2485,8 +2478,9 @@
 *-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 @@
 
 *-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,12 +2516,19 @@
 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
 
    _variable_ [_value_]
@@ -2605,9 +2606,9 @@
 
    *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 @@
    *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 @@
 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 @@
 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 @@
      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 @@
 =========================
 
 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 @@
 * tlmgr MULTIPLE REPOSITORIES::
 * tlmgr GUI FOR TLMGR::
 * tlmgr MACHINE-READABLE OUTPUT::
+* tlmgr ENVIRONMENT VARIABLES::
 * tlmgr AUTHORS AND COPYRIGHT::
 
 
@@ -2753,11 +2770,11 @@
 
 *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 @@
 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,11 +2803,14 @@
      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'
 
      Report what would be updated without actually updating anything.
@@ -2824,32 +2844,107 @@
 
 *-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').
 
-     '--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).
+     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>.
+
+     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 at 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_
 
      By default, the GUI tries to deduce your language from the
@@ -2858,11 +2953,13 @@
      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*
 
      In GUI mode, this switch tells 'tlmgr' to report any untranslated
@@ -2956,7 +3053,7 @@
 * 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 @@
 ----------
 
 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 @@
      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 @@
           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,18 +3169,15 @@
 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
+File: tlbuild.info,  Node: tlmgr check [_option_...] [depends|executes|files|runfiles|texmfdbs|all],  Next: tlmgr conf,  Prev: tlmgr candidates _pkg_,  Up: tlmgr ACTIONS
 
-B.6.5 check [_option_...] [files|depends|executes|runfiles|all]
----------------------------------------------------------------
+B.6.5 check [_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 'tlmgr -v check'.)
 
-*files*
-
-     Checks that all files listed in the local TLPDB ('texlive.tlpdb')
-     are actually present, and lists those missing.
-
 *depends*
 
      Lists those packages which occur as dependencies in an installed
@@ -3095,20 +3192,39 @@
      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
 ----------
@@ -3115,7 +3231,7 @@
 
 *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 @@
      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 @@
 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 @@
           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 @@
 -------------------------------------
 
 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 @@
 
        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 @@
      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 @@
 
 *option [-json] [show]*
 
-*option [-json] showall*
+*option [-json] showall|help*
 
 *option _key_ [_value_]*
 
@@ -3525,7 +3653,8 @@
 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 @@
 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 @@
    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 @@
 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 @@
 
 *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 @@
 
 *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 @@
      '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 @@
      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 @@
 
 *repository list*
 
-*repository list _path|tag_*
+*repository list _path|url|tag_*
 
 *repository add _path_ [_tag_]*
 
@@ -3883,23 +4020,45 @@
 
 *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 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 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 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 @@
 
 *-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 @@
      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 @@
      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 @@
 
 *-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 @@
        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 @@
 *-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,6 +4449,10 @@
 '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
 
@@ -4284,8 +4459,8 @@
 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 @@
 
    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 @@
 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 @@
  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,17 +4797,23 @@
 ==================
 
 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.
+<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.
 
-   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.
+   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 @@
 '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 @@
      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 @@
 
 * 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 @@
      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 @@
 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,14 +5437,14 @@
 * 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)
@@ -5187,11 +5451,11 @@
 * 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 @@
 * 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 @@
                                                                (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 @@
                                                                (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 @@
 * 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,7 +5547,7 @@
 * 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)
@@ -5290,31 +5554,30 @@
 * 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 @@
 * 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 @@
 * 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 @@
 * 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 @@
                                                                (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 @@
                                                                (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,23 +5728,23 @@
 * 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)
@@ -5490,23 +5751,21 @@
 * 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)
@@ -5513,21 +5772,20 @@
 * 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 @@
 * 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 @@
 * 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 @@
 * 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,35 +5842,35 @@
 * 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)
 
 
 
@@ -5619,370 +5877,405 @@
 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 at 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:

Modified: branches/stable/source/src/doc/tlbuild.texi
===================================================================
--- branches/stable/source/src/doc/tlbuild.texi	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/doc/tlbuild.texi	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,8 +1,8 @@
 \input texinfo
 @setfilename tlbuild.info
 
- at set version 2019
- at set month-year February 2019
+ at set version 2020
+ at 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

Modified: branches/stable/source/src/libs/configure
===================================================================
--- branches/stable/source/src/libs/configure	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/libs/configure	2020-05-14 18:05:47 UTC (rev 824)
@@ -3337,7 +3337,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-luajittex'" >&5
 $as_echo "$as_me: $host -> \`--disable-luajittex'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-luajittex'" ;; #(
@@ -3350,7 +3350,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-luajithbtex'" >&5
 $as_echo "$as_me: $host -> \`--disable-luajithbtex'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-luajithbtex'" ;; #(
@@ -3363,7 +3363,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-mfluajit'" >&5
 $as_echo "$as_me: $host -> \`--disable-mfluajit'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-mfluajit'" ;; #(
@@ -3376,7 +3376,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-mfluajit-nowin'" >&5
 $as_echo "$as_me: $host -> \`--disable-mfluajit-nowin'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-mfluajit-nowin'" ;; #(

Modified: branches/stable/source/src/libs/libpng/ChangeLog
===================================================================
--- branches/stable/source/src/libs/libpng/ChangeLog	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/libs/libpng/ChangeLog	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,3 +1,12 @@
+2020-03-14  Karl Berry  <karl at freefriends.org>
+
+	Import VSX support from upstream to TL configure.
+	* configure.ac (powerpc-vsx): new AC_ARG_ENABLE, copied
+	from libpng-src/configure.ac.
+	* Makefile.am (nodist_libpng_a_SOURCES) [PNG_POWERPC_VSX]:
+	add powerpc/*.c, copied from libpng-src/Makefile.am.
+	From Johannes Hielscher, tlbuild mail 16 Feb 2020 23:09:54 (item 2).
+
 2019-05-03 Akira Kakuto  <kakuto at w32tex.org>
 
 	Import libpng-1.6.37.

Modified: branches/stable/source/src/libs/libpng/Makefile.am
===================================================================
--- branches/stable/source/src/libs/libpng/Makefile.am	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/libs/libpng/Makefile.am	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,7 +1,7 @@
-## $Id: Makefile.am 50024 2019-02-14 17:11:10Z karl $
+## $Id: Makefile.am 54291 2020-03-14 16:03:19Z karl $
 ## Proxy Makefile.am to build libpng for TeX Live.
 ##
-##   Copyright 2016-2017 Karl Berry <tex-live at tug.org>
+##   Copyright 2016-2020 Karl Berry <tex-live at tug.org>
 ##   Copyright 2009-2015 Peter Breitenlohner <tex-live at tug.org>
 ##
 ##   This file is free software; the copyright holder
@@ -49,6 +49,11 @@
 	@LIBPNG_TREE@/arm/palette_neon_intrinsics.c
 endif
 
+if PNG_POWERPC_VSX
+nodist_libpng_a_SOURCES += @LIBPNG_TREE@/powerpc/powerpc_init.c\
+        @LIBPNG_TREE@/powerpc/filter_vsx_intrinsics.c
+endif
+
 $(libpng_a_OBJECTS): config.force
 
 ## Tests

Modified: branches/stable/source/src/libs/libpng/Makefile.in
===================================================================
--- branches/stable/source/src/libs/libpng/Makefile.in	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/libs/libpng/Makefile.in	2020-05-14 18:05:47 UTC (rev 824)
@@ -90,6 +90,9 @@
 @PNG_ARM_NEON_TRUE@	@LIBPNG_TREE@/arm/filter_neon.S @LIBPNG_TREE@/arm/filter_neon_intrinsics.c \
 @PNG_ARM_NEON_TRUE@	@LIBPNG_TREE@/arm/palette_neon_intrinsics.c
 
+ at PNG_POWERPC_VSX_TRUE@am__append_2 = @LIBPNG_TREE@/powerpc/powerpc_init.c\
+ at PNG_POWERPC_VSX_TRUE@        @LIBPNG_TREE@/powerpc/filter_vsx_intrinsics.c
+
 @build_TRUE at check_PROGRAMS = pngtest$(EXEEXT)
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -124,6 +127,8 @@
 @PNG_ARM_NEON_TRUE@	@LIBPNG_TREE@/arm/filter_neon.$(OBJEXT) \
 @PNG_ARM_NEON_TRUE@	@LIBPNG_TREE@/arm/filter_neon_intrinsics.$(OBJEXT) \
 @PNG_ARM_NEON_TRUE@	@LIBPNG_TREE@/arm/palette_neon_intrinsics.$(OBJEXT)
+ at PNG_POWERPC_VSX_TRUE@am__objects_2 = @LIBPNG_TREE@/powerpc/powerpc_init.$(OBJEXT) \
+ at PNG_POWERPC_VSX_TRUE@	@LIBPNG_TREE@/powerpc/filter_vsx_intrinsics.$(OBJEXT)
 nodist_libpng_a_OBJECTS = @LIBPNG_TREE@/png.$(OBJEXT) \
 	@LIBPNG_TREE@/pngerror.$(OBJEXT) \
 	@LIBPNG_TREE@/pngget.$(OBJEXT) @LIBPNG_TREE@/pngmem.$(OBJEXT) \
@@ -136,7 +141,8 @@
 	@LIBPNG_TREE@/pngwio.$(OBJEXT) \
 	@LIBPNG_TREE@/pngwrite.$(OBJEXT) \
 	@LIBPNG_TREE@/pngwtran.$(OBJEXT) \
-	@LIBPNG_TREE@/pngwutil.$(OBJEXT) $(am__objects_1)
+	@LIBPNG_TREE@/pngwutil.$(OBJEXT) $(am__objects_1) \
+	$(am__objects_2)
 libpng_a_OBJECTS = $(nodist_libpng_a_OBJECTS)
 nodist_pngtest_OBJECTS = @LIBPNG_TREE@/pngtest.$(OBJEXT)
 pngtest_OBJECTS = $(nodist_pngtest_OBJECTS)
@@ -177,7 +183,9 @@
 	@LIBPNG_TREE@/arm/$(DEPDIR)/arm_init.Po \
 	@LIBPNG_TREE@/arm/$(DEPDIR)/filter_neon.Po \
 	@LIBPNG_TREE@/arm/$(DEPDIR)/filter_neon_intrinsics.Po \
-	@LIBPNG_TREE@/arm/$(DEPDIR)/palette_neon_intrinsics.Po
+	@LIBPNG_TREE@/arm/$(DEPDIR)/palette_neon_intrinsics.Po \
+	@LIBPNG_TREE@/powerpc/$(DEPDIR)/filter_vsx_intrinsics.Po \
+	@LIBPNG_TREE@/powerpc/$(DEPDIR)/powerpc_init.Po
 am__mv = mv -f
 CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
@@ -621,7 +629,7 @@
 	@LIBPNG_TREE@/pngrutil.c @LIBPNG_TREE@/pngset.c \
 	@LIBPNG_TREE@/pngtrans.c @LIBPNG_TREE@/pngwio.c \
 	@LIBPNG_TREE@/pngwrite.c @LIBPNG_TREE@/pngwtran.c \
-	@LIBPNG_TREE@/pngwutil.c $(am__append_1)
+	@LIBPNG_TREE@/pngwutil.c $(am__append_1) $(am__append_2)
 AM_TESTS_ENVIRONMENT = LIBPNG_TREE=$(LIBPNG_TREE); export LIBPNG_TREE;
 @build_TRUE at TESTS = libpng.test
 @build_TRUE at dist_check_SCRIPTS = libpng.test
@@ -750,6 +758,18 @@
 @LIBPNG_TREE@/arm/palette_neon_intrinsics.$(OBJEXT):  \
 	@LIBPNG_TREE@/arm/$(am__dirstamp) \
 	@LIBPNG_TREE@/arm/$(DEPDIR)/$(am__dirstamp)
+ at LIBPNG_TREE@/powerpc/$(am__dirstamp):
+	@$(MKDIR_P) @LIBPNG_TREE@/powerpc
+	@: > @LIBPNG_TREE@/powerpc/$(am__dirstamp)
+ at LIBPNG_TREE@/powerpc/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) @LIBPNG_TREE@/powerpc/$(DEPDIR)
+	@: > @LIBPNG_TREE@/powerpc/$(DEPDIR)/$(am__dirstamp)
+ at LIBPNG_TREE@/powerpc/powerpc_init.$(OBJEXT):  \
+	@LIBPNG_TREE@/powerpc/$(am__dirstamp) \
+	@LIBPNG_TREE@/powerpc/$(DEPDIR)/$(am__dirstamp)
+ at LIBPNG_TREE@/powerpc/filter_vsx_intrinsics.$(OBJEXT):  \
+	@LIBPNG_TREE@/powerpc/$(am__dirstamp) \
+	@LIBPNG_TREE@/powerpc/$(DEPDIR)/$(am__dirstamp)
 
 libpng.a: $(libpng_a_OBJECTS) $(libpng_a_DEPENDENCIES) $(EXTRA_libpng_a_DEPENDENCIES) 
 	$(AM_V_at)-rm -f libpng.a
@@ -766,6 +786,7 @@
 	-rm -f *.$(OBJEXT)
 	-rm -f @LIBPNG_TREE@/*.$(OBJEXT)
 	-rm -f @LIBPNG_TREE@/arm/*.$(OBJEXT)
+	-rm -f @LIBPNG_TREE@/powerpc/*.$(OBJEXT)
 
 distclean-compile:
 	-rm -f *.tab.c
@@ -790,6 +811,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote@@LIBPNG_TREE@/arm/$(DEPDIR)/filter_neon.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@@LIBPNG_TREE@/arm/$(DEPDIR)/filter_neon_intrinsics.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@@LIBPNG_TREE@/arm/$(DEPDIR)/palette_neon_intrinsics.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote@@LIBPNG_TREE@/powerpc/$(DEPDIR)/filter_vsx_intrinsics.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote@@LIBPNG_TREE@/powerpc/$(DEPDIR)/powerpc_init.Po at am__quote@ # am--include-marker
 
 $(am__depfiles_remade):
 	@$(MKDIR_P) $(@D)
@@ -1327,6 +1350,8 @@
 	-rm -f @LIBPNG_TREE@/$(am__dirstamp)
 	-rm -f @LIBPNG_TREE@/arm/$(DEPDIR)/$(am__dirstamp)
 	-rm -f @LIBPNG_TREE@/arm/$(am__dirstamp)
+	-rm -f @LIBPNG_TREE@/powerpc/$(DEPDIR)/$(am__dirstamp)
+	-rm -f @LIBPNG_TREE@/powerpc/$(am__dirstamp)
 	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
 
 maintainer-clean-generic:
@@ -1359,6 +1384,8 @@
 	-rm -f @LIBPNG_TREE@/arm/$(DEPDIR)/filter_neon.Po
 	-rm -f @LIBPNG_TREE@/arm/$(DEPDIR)/filter_neon_intrinsics.Po
 	-rm -f @LIBPNG_TREE@/arm/$(DEPDIR)/palette_neon_intrinsics.Po
+	-rm -f @LIBPNG_TREE@/powerpc/$(DEPDIR)/filter_vsx_intrinsics.Po
+	-rm -f @LIBPNG_TREE@/powerpc/$(DEPDIR)/powerpc_init.Po
 	-rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
 	distclean-hdr distclean-tags
@@ -1426,6 +1453,8 @@
 	-rm -f @LIBPNG_TREE@/arm/$(DEPDIR)/filter_neon.Po
 	-rm -f @LIBPNG_TREE@/arm/$(DEPDIR)/filter_neon_intrinsics.Po
 	-rm -f @LIBPNG_TREE@/arm/$(DEPDIR)/palette_neon_intrinsics.Po
+	-rm -f @LIBPNG_TREE@/powerpc/$(DEPDIR)/filter_vsx_intrinsics.Po
+	-rm -f @LIBPNG_TREE@/powerpc/$(DEPDIR)/powerpc_init.Po
 	-rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 

Modified: branches/stable/source/src/libs/libpng/config.h.in
===================================================================
--- branches/stable/source/src/libs/libpng/config.h.in	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/libs/libpng/config.h.in	2020-05-14 18:05:47 UTC (rev 824)
@@ -63,6 +63,15 @@
 /* Enable ARM Neon optimizations */
 #undef PNG_ARM_NEON_OPT
 
+/* Turn on POWERPC VSX optimizations at run-time */
+#undef PNG_POWERPC_VSX_API_SUPPORTED
+
+/* Check for POWERPC VSX support at run-time */
+#undef PNG_POWERPC_VSX_CHECK_SUPPORTED
+
+/* Enable POWERPC VSX optimizations */
+#undef PNG_POWERPC_VSX_OPT
+
 /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
 

Modified: branches/stable/source/src/libs/libpng/configure
===================================================================
--- branches/stable/source/src/libs/libpng/configure	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/libs/libpng/configure	2020-05-14 18:05:47 UTC (rev 824)
@@ -625,6 +625,8 @@
 ac_subst_vars='am__EXEEXT_FALSE
 am__EXEEXT_TRUE
 LTLIBOBJS
+PNG_POWERPC_VSX_FALSE
+PNG_POWERPC_VSX_TRUE
 PNG_ARM_NEON_FALSE
 PNG_ARM_NEON_TRUE
 LIBPNG_DEFINES
@@ -745,6 +747,7 @@
 with_zlib_includes
 with_zlib_libdir
 enable_arm_neon
+enable_powerpc_vsx
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1391,6 +1394,12 @@
                           call to png_set_option; yes/on: turn on
                           unconditionally. If not specified: determined by the
                           compiler.
+  --enable-powerpc-vsx  Enable POWERPC VSX optimizations: =no/off, check,
+                          api, yes/on: no/off: disable the optimizations;
+                          check: use internal checking code api: disable by
+                          default, enable by a call to png_set_option yes/on:
+                          turn on unconditionally. If not specified:
+                          determined by the compiler.
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -6029,6 +6038,67 @@
 fi
 
 
+# emacs-page
+# PowerPC
+# ===
+#
+# PowerPC VSX (SIMD) support.
+
+# Check whether --enable-powerpc-vsx was given.
+if test "${enable_powerpc_vsx+set}" = set; then :
+  enableval=$enable_powerpc_vsx; case "$enableval" in
+      no|off)
+         # disable the default enabling on __ppc64__ systems:
+
+$as_echo "#define PNG_POWERPC_VSX_OPT 0" >>confdefs.h
+
+         # Prevent inclusion of the platform specific files below:
+         enable_powerpc_vsx=no;;
+      check)
+
+$as_echo "#define PNG_POWERPC_VSX_CHECK_SUPPORTED /**/" >>confdefs.h
+
+         { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-powerpc-vsx Please check contrib/powerpc/README file
+            for the list of supported OSes." >&5
+$as_echo "$as_me: WARNING: --enable-powerpc-vsx Please check contrib/powerpc/README file
+            for the list of supported OSes." >&2;};;
+      api)
+
+$as_echo "#define PNG_POWERPC_VSX_API_SUPPORTED /**/" >>confdefs.h
+;;
+      yes|on)
+
+$as_echo "#define PNG_POWERPC_VSX_OPT 2" >>confdefs.h
+
+         { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-powerpc-vsx: please specify 'check' or 'api', if
+            you want the optimizations unconditionally pass '-maltivec -mvsx'
+            or '-mcpu=power8'to the compiler." >&5
+$as_echo "$as_me: WARNING: --enable-powerpc-vsx: please specify 'check' or 'api', if
+            you want the optimizations unconditionally pass '-maltivec -mvsx'
+            or '-mcpu=power8'to the compiler." >&2;};;
+      *)
+         as_fn_error $? "--enable-powerpc-vsx=${enable_powerpc_vsx}: invalid value" "$LINENO" 5
+   esac
+fi
+
+
+# Add PowerPC specific files to all builds where the host_cpu is powerpc('powerpc*') or
+# where POWERPC optimizations were explicitly requested (this allows a fallback if a
+# future host CPU does not match 'powerpc*')
+
+ if test "$enable_powerpc_vsx" != 'no' &&
+    case "$host_cpu" in
+      powerpc*|ppc64*) :;;
+    esac; then
+  PNG_POWERPC_VSX_TRUE=
+  PNG_POWERPC_VSX_FALSE='#'
+else
+  PNG_POWERPC_VSX_TRUE='#'
+  PNG_POWERPC_VSX_FALSE=
+fi
+
+
+
 ac_config_files="$ac_config_files Makefile include/Makefile"
 
 
@@ -6185,6 +6255,10 @@
   as_fn_error $? "conditional \"PNG_ARM_NEON\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${PNG_POWERPC_VSX_TRUE}" && test -z "${PNG_POWERPC_VSX_FALSE}"; then
+  as_fn_error $? "conditional \"PNG_POWERPC_VSX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 
 : "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0

Modified: branches/stable/source/src/libs/libpng/configure.ac
===================================================================
--- branches/stable/source/src/libs/libpng/configure.ac	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/libs/libpng/configure.ac	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,7 +1,7 @@
-dnl $Id: configure.ac 46308 2018-01-14 17:25:27Z karl $
+dnl $Id: configure.ac 54291 2020-03-14 16:03:19Z karl $
 dnl Process this file with autoconf to produce a configure script.
 dnl
-dnl   Copyright 2016-2017 Karl Berry <tex-live at tug.org>
+dnl   Copyright 2016-2020 Karl Berry <tex-live at tug.org>
 dnl   Copyright 2009-2015 Peter Breitenlohner <tex-live at tug.org>
 dnl
 dnl   This file is free software; the copyright holder
@@ -124,6 +124,55 @@
       *)    test "$enable_arm_neon" != '';;
     esac])
 
+# emacs-page
+# PowerPC
+# ===
+#
+# PowerPC VSX (SIMD) support.
+
+AC_ARG_ENABLE([powerpc-vsx],
+AS_HELP_STRING([[[--enable-powerpc-vsx]]],
+      [Enable POWERPC VSX optimizations: =no/off, check, api, yes/on:]
+      [no/off: disable the optimizations; check: use internal checking code]
+      [api: disable by default, enable by a call to png_set_option]
+      [yes/on: turn on unconditionally.]
+      [If not specified: determined by the compiler.]),
+   [case "$enableval" in
+      no|off)
+         # disable the default enabling on __ppc64__ systems:
+         AC_DEFINE([PNG_POWERPC_VSX_OPT], [0],
+                   [Disable POWERPC VSX optimizations])
+         # Prevent inclusion of the platform specific files below:
+         enable_powerpc_vsx=no;;
+      check)
+         AC_DEFINE([PNG_POWERPC_VSX_CHECK_SUPPORTED], [],
+                   [Check for POWERPC VSX support at run-time])
+         AC_MSG_WARN([--enable-powerpc-vsx Please check contrib/powerpc/README file]
+            [for the list of supported OSes.]);;
+      api)
+         AC_DEFINE([PNG_POWERPC_VSX_API_SUPPORTED], [],
+                   [Turn on POWERPC VSX optimizations at run-time]);;
+      yes|on)
+         AC_DEFINE([PNG_POWERPC_VSX_OPT], [2],
+                   [Enable POWERPC VSX optimizations])
+         AC_MSG_WARN([--enable-powerpc-vsx: please specify 'check' or 'api', if]
+            [you want the optimizations unconditionally pass '-maltivec -mvsx']
+            [or '-mcpu=power8'to the compiler.]);;
+      *)
+         AC_MSG_ERROR([--enable-powerpc-vsx=${enable_powerpc_vsx}: invalid value])
+   esac])
+
+# Add PowerPC specific files to all builds where the host_cpu is powerpc('powerpc*') or
+# where POWERPC optimizations were explicitly requested (this allows a fallback if a
+# future host CPU does not match 'powerpc*')
+
+AM_CONDITIONAL([PNG_POWERPC_VSX],
+   [test "$enable_powerpc_vsx" != 'no' &&
+    case "$host_cpu" in
+      powerpc*|ppc64*) :;;
+    esac])
+
+
 AC_CONFIG_FILES([Makefile include/Makefile])
 
 AC_OUTPUT

Modified: branches/stable/source/src/m4/ChangeLog
===================================================================
--- branches/stable/source/src/m4/ChangeLog	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/m4/ChangeLog	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,3 +1,18 @@
+2020-03-14  Karl Berry  <karl at freefriends.org>
+
+	* kpse-setup.m4 (KPSE_SETUP): make that powerpc*, not powerpc-*.
+	Johannes H tlbuild mail, 16 Feb 2020 23:09:54.
+
+2020-03-12  Karl Berry  <karl at freefriends.org>
+
+	* kpse-setup.m4 (KPSE_SETUP): disable jit programs on any
+	powerpc-*, not just powerpc-darwin, since jit is also unavailable
+	on powerpc-linux (specifically powerpc64le-unknown-linux-gnu),
+	per Johannes Hielscher. Although apparently there are patches to
+	"floating around" to make jit work on powerpc, they are not in TL,
+	and let's await anyone who actually needs them before refining.
+	https://tug.org/pipermail/tlbuild/2020q1/004627.html (item 1).
+
 2020-01-13  Karl Berry  <karl at tug.org>
 
 	* kpse-setup.m4 (KPSE_SETUP): use AS_TR_SH on the argument when

Modified: branches/stable/source/src/m4/kpse-setup.m4
===================================================================
--- branches/stable/source/src/m4/kpse-setup.m4	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/m4/kpse-setup.m4	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,6 +1,6 @@
-# $Id: kpse-setup.m4 53385 2020-01-13 00:02:12Z karl $
+# $Id: kpse-setup.m4 54307 2020-03-14 22:22:16Z karl $
 # Private macros for the TeX Live (TL) tree.
-# Copyright 2017-2018 Karl Berry <tex-live at tug.org>
+# Copyright 2017-2020 Karl Berry <tex-live at tug.org>
 # Copyright 2009-2015 Peter Breitenlohner <tex-live at tug.org>
 #
 # This file is free software; the copyright holder
@@ -88,7 +88,7 @@
 AS_CASE([$enable_[]AS_TR_SH([Kpse_Pkg])],
         [yes | no], [:],
           [AS_CASE([$host],
-                   [alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ],
+                   [alpha* | sparc* | x86_64-*-solaris* | powerpc* ],
                      [AC_MSG_NOTICE([$host -> `--disable-]Kpse_Pkg['])
                       ac_configure_args="$ac_configure_args '--disable-]Kpse_Pkg['"])])
 ])

Modified: branches/stable/source/src/tardate.ac
===================================================================
--- branches/stable/source/src/tardate.ac	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/tardate.ac	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,5 +1,5 @@
-dnl $Id: tardate.ac 50836 2019-04-07 01:42:55Z karl $
-dnl   Copyright 2016-2019 Karl Berry <tex-live at tug.org>
+dnl $Id: tardate.ac 54578 2020-03-27 00:29:26Z karl $
+dnl   Copyright 2016-2020 Karl Berry <tex-live at tug.org>
 dnl   Copyright 2010-2015 Peter Breitenlohner <tex-live at tug.org>
 dnl
 dnl   This file is free software; the copyright holder
@@ -9,4 +9,4 @@
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current TeX Live tarball version
-m4_define([tex_live_tardate], [2019-04-07])
+m4_define([tex_live_tardate], [2020-03-27])

Modified: branches/stable/source/src/texk/README
===================================================================
--- branches/stable/source/src/texk/README	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/README	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,5 +1,5 @@
-$Id: README 53328 2020-01-05 22:16:43Z kakuto $
-Copyright 2006-2019 TeX Users Group.
+$Id: README 54456 2020-03-21 22:04:56Z karl $
+Copyright 2006-2020 TeX Users Group.
 You may freely use, modify and/or distribute this file.
 
 This TeX Live directory contains the programs that use the kpathsea
@@ -27,7 +27,7 @@
   bibtexu
     old info: http://omega.enstb.org/yannis/bibtexu/
 
-chktex 1.7.6 - checked 15sep16
+chktex 1.7.6 - checked 15mar20
   http://mirror.ctan.org/support/chktex/
   http://download.savannah.gnu.org/releases/chktex/
 
@@ -34,14 +34,14 @@
 cjkutils 4.8.4 - checked 18apr15
   http://cjk.ffii.org/cjk-4.8.4.tar.gz
 
-detex 2.8.5 - checked 03feb19
-  https://github.com/pkubowicz/opendetex
+detex 2.8.6 - checked 15mar20
+  https://github.com/pkubowicz/opendetex/releases
     old info: http://www.cs.purdue.edu/homes/trinkle/detex/
 
 dtl - maintained here, by Takuji
 
-dvi2tty 6.0.0 - checked 05mar16
-  https://github.com/t-tk/dvi2tty
+dvi2tty 6.0.0 - checked 15mar20
+  https://github.com/t-tk/dvi2tty/releases
 
 dvidvi - maintained here
 
@@ -63,17 +63,17 @@
 
 dvipsk - maintained here, by us
 
-dvisvgm 2.8.2 - checked 10dec19
+dvisvgm 2.9.1 - checked 21mar20
   https://dvisvgm.de/Downloads/
 
 gregorio 5.2.1 - checked 19dec19
   CTAN/support/gregoriotex/gregorio-5.2.1.zip
 
-gsftopk - from Paul Vojta's xdvi?
+gsftopk - from Paul Vojta's xdvi.
 
 kpathsea - maintained here, by us
 
-lcdf-typetools 2.108 - checked 28jan19
+lcdf-typetools 2.108 - checked 15mar20
   http://www.lcdf.org/type/
 
 makeindexk - maintained here, by us
@@ -84,13 +84,13 @@
 mendexk - by Japanese TeX Development Community (Takuji, Hironobu et al.)
   https://github.com/texjporg/tex-jp-build
 
-musixtnt 2016-01-30 - checked 10feb16
+musixtnt 2016-01-30 - checked 15mar20
   http://mirror.ctan.org/macros/musixtnt/
 
 ps2pk - maintained here, by us
 
 psutils 1.23 - checked 16jan14
-  https://github.com/rrthomas/psutils/archive/v1.23.tar.gz
+  https://github.com/rrthomas/psutils/releases/
 
 ptexenc - maintained here, by us (Akira et al.)
   but also: https://github.com/texjporg/tex-jp-build
@@ -97,16 +97,16 @@
 
 seetexk - maintained here, by us (Takuji, Hironobu et al.)
 
-tex4htk - checked 25apr11
-  http://tug.org/tex4ht/
+tex4htk - part of tex4ht, needs full release
+  https://tug.org/tex4ht/
 
-texlive - scripts maintained here, by us
+texlive - scripts and files maintained here, by us
 
 ttf2pk2 - maintained here, by us
 
 ttfdump - maintained here, by us, since Taiwan upstream apparently gone.
 
-upmendex 0.52 - by Takuji Tanaka
+upmendex 0.54 - by Takuji Tanaka
   http://www.ctan.org/pkg/upmendex
   https://github.com/t-tk/upmendex-package
 
@@ -129,12 +129,12 @@
       pdftex - http://pdftex.org/
    [u]pmpost - nothing current, see README for old info
         ptex - https://github.com/texjporg/tex-jp-build
-               old info: http://ascii.asciimw.jp/pb/ptex/
+               old info: https://asciidwango.github.io/ptex/
      synctex - maintained here, but also https://github.com/jlaurens/synctex
        uptex - http://www.t-lab.opal.ne.jp/tex/uptex_en.html
        xetex - http://tug.org/xetex/
    
-xdvik 22.87.03 - checked 6apr16
+xdvik 22.87.04 - checked 15mar20
   http://sourceforge.net/projects/xdvi/files/xdvik/
   Procedure for updating xdvik from sourceforge release:
 tar xf ...
@@ -146,5 +146,5 @@
 reautoconf
 add import entry to ChangeLog, update texk/README
 remove unpacked ../xdvik-*
-make sure it builds
+make sure it builds.
 commit.

Modified: branches/stable/source/src/texk/configure
===================================================================
--- branches/stable/source/src/texk/configure	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/configure	2020-05-14 18:05:47 UTC (rev 824)
@@ -3337,7 +3337,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-luajittex'" >&5
 $as_echo "$as_me: $host -> \`--disable-luajittex'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-luajittex'" ;; #(
@@ -3350,7 +3350,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-luajithbtex'" >&5
 $as_echo "$as_me: $host -> \`--disable-luajithbtex'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-luajithbtex'" ;; #(
@@ -3363,7 +3363,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-mfluajit'" >&5
 $as_echo "$as_me: $host -> \`--disable-mfluajit'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-mfluajit'" ;; #(
@@ -3376,7 +3376,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-mfluajit-nowin'" >&5
 $as_echo "$as_me: $host -> \`--disable-mfluajit-nowin'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-mfluajit-nowin'" ;; #(

Modified: branches/stable/source/src/texk/kpathsea/ChangeLog
===================================================================
--- branches/stable/source/src/texk/kpathsea/ChangeLog	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/kpathsea/ChangeLog	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,3 +1,13 @@
+2020-03-27  Karl Berry  <karl at tug.org>
+
+	* TeX Live 2020.
+
+2020-02-29  Karl Berry  <karl at freefriends.org>
+
+	* pathsearch.c: doc fix.
+	
+	* doc/unixtex.texi: update urls, typos, etc.
+
 2020-01-19  Karl Berry  <karl at freefriends.org>
 
 	* kpsewhich.c (ENSURE_NONEMPTY_STRING): new macro.

Modified: branches/stable/source/src/texk/kpathsea/NEWS
===================================================================
--- branches/stable/source/src/texk/kpathsea/NEWS	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/kpathsea/NEWS	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,7 +1,7 @@
-$Id: NEWS 53427 2020-01-16 22:02:50Z karl $
+$Id: NEWS 54578 2020-03-27 00:29:26Z karl $
 This file records noteworthy changes.  (Public domain.)
 
-6.3.2 (for TeX Live 2020)
+6.3.2 (for TeX Live 2020, 27 March 2020)
 * New option --cnf-line for kpsewhich (and tex and mf) to support
   arbitrary configuration settings on the command line.
 * Warn about unusual program name qualifiers.

Modified: branches/stable/source/src/texk/kpathsea/doc/kpathsea.info
===================================================================
--- branches/stable/source/src/texk/kpathsea/doc/kpathsea.info	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/kpathsea/doc/kpathsea.info	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,4 +1,4 @@
-This is kpathsea.info, produced by makeinfo version 5.1 from
+This is kpathsea.info, produced by makeinfo version 6.7 from
 kpathsea.texi.
 
 This file documents the Kpathsea library for path searching.
@@ -37,7 +37,7 @@
 ****************
 
 This manual documents the Kpathsea library for path searching.  It
-corresponds to version 6.3.2, released in January 2020.
+corresponds to version 6.3.2, released in March 2020.
 
 * Menu:
 
@@ -62,7 +62,7 @@
 **************
 
 This manual corresponds to version 6.3.2 of the Kpathsea library,
-released in January 2020.
+released in March 2020.
 
    The library's fundamental purpose is to return a filename from a list
 of directories specified by the user, similar to what shells do when
@@ -201,24 +201,25 @@
 2 'unixtex.ftp': Obtaining TeX
 ******************************
 
-This is <https://tug.org/tex/unixtex.ftp>, last updated 28 November
-2017.  Email <tex-k at tug.org> with comments or questions.
+This is <ftp://tug.org/tex/unixtex.ftp>, a.k.a.
+<https://tug.org/unixtex.ftp>, last updated 29 February 2020.  Email
+<tex-k at tug.org> with comments or questions.
 
    The principal free TeX distribution for Unix-like systems is TeX
 Live, on the web at <http://tug.org/texlive>.  The pages there describe
-many ways to acquire and.or build TeX, over the Internet or on physical
+many ways to acquire and/or build TeX, over the Internet or on physical
 media, both the sources and precompiled binaries for many systems,
 either standalone or as part of various operating system distributions.
 
-   Web2c, Kpathsea, Dvips, and Dviljk are no longer released as a
-separate packages.  Their sources are now maintained as part of TeX
-Live.
+   Web2c, Kpathsea, Dvips, and Dviljk, among others, are no longer
+released as a separate packages.  Their sources are now maintained as
+part of TeX Live.
 
    The host ftp.cs.stanford.edu is the original source for the files for
 which Donald Knuth is directly responsible: 'tex.web', 'plain.tex', etc.
 However, unless you want to undertake the project of building your TeX
-installation from scratch, it is more reliable and less work to retrieve
-these files as part of a larger package.
+system from scratch, it is more reliable and less work to retrieve these
+files as part of a larger package.
 
    In any case, the Stanford ftp site is not the canonical source for
 anything except what was created as part of Knuth's original TeX, so do
@@ -879,8 +880,8 @@
 
    This same problematic scenario has always existed on Windows, but for
 whatever reason, it has become much more common since Apple also went to
-a case-insensitive filesystem.  Hence the move to change the Kpathsea
-behavior now.
+a case-insensitive filesystem.  Hence the relatively late change to the
+Kpathsea behavior.
 
    The fallback case-insensitive search is omitted at compile-time on
 Windows, where (for practical purposes) all file names are
@@ -3037,7 +3038,7 @@
 * !! and casefolding:                    Casefolding examples.
                                                               (line  57)
 * !! in path specifications:             ls-R.                (line  57)
-* !! in 'TEXMFDBS':                      ls-R.                (line  11)
+* !! in TEXMFDBS:                        ls-R.                (line  11)
 * $ expansion:                           Variable expansion.  (line   6)
 * --all:                                 Path searching options.
                                                               (line  12)
@@ -3045,7 +3046,7 @@
                                                               (line  19)
 * --cnf-line:                            Path searching options.
                                                               (line  28)
-* '--cnf-line', source for path:         Path sources.        (line   9)
+* --cnf-line, source for path:           Path sources.        (line   9)
 * --color=tty:                           ls-R.                (line  25)
 * --debug=NUM:                           Auxiliary tasks.     (line   9)
 * --dpi=NUM:                             Path searching options.
@@ -3091,12 +3092,12 @@
 * --without-mktexpk-default:             mktex configuration. (line  12)
 * --without-mktextfm-default:            mktex configuration. (line  12)
 * -1 debugging value:                    Debugging.           (line  23)
-* -A option to 'ls':                     ls-R.                (line  39)
+* -A option to ls:                       ls-R.                (line  39)
 * -D NUM:                                Path searching options.
                                                               (line  49)
 * -iname, find predicate:                Casefolding examples.
                                                               (line  78)
-* -L option to 'ls':                     ls-R.                (line  44)
+* -L option to ls:                       ls-R.                (line  44)
 * . directories, ignored:                ls-R.                (line  39)
 * . files:                               ls-R.                (line  39)
 * .2602gf:                               Unable to generate fonts.
@@ -3173,7 +3174,7 @@
                                                               (line 195)
 * .pro:                                  Supported file formats.
                                                               (line 169)
-* .PROGNAME qualifier in 'texmf.cnf':    Config files.        (line  50)
+* .PROGNAME qualifier in texmf.cnf:      Config files.        (line  50)
 * .rhosts, writable by TeX:              Security.            (line  10)
 * .ris:                                  Supported file formats.
                                                               (line 173)
@@ -3183,7 +3184,7 @@
                                                               (line  42)
 * .tex:                                  Supported file formats.
                                                               (line 180)
-* .tex file, included in 'ls-R':         ls-R.                (line  39)
+* .tex file, included in ls-R:           ls-R.                (line  39)
 * .tfm:                                  Supported file formats.
                                                               (line 199)
 * .ttc:                                  Supported file formats.
@@ -3211,9 +3212,9 @@
 * 8.3 filenames, using:                  mktex configuration. (line  68)
 * : may not be ::                        Searching overview.  (line  13)
 * :: expansion:                          Default expansion.   (line   6)
-* ; translated to ':' in 'texmf.cnf':    Config files.        (line  66)
-* = omitted in 'texmf.cnf' and misparsing: Config files.      (line  93)
-* \, line continuation in 'texmf.cnf':   Config files.        (line  37)
+* ; translated to : in texmf.cnf:        Config files.        (line  66)
+* = omitted in texmf.cnf and misparsing: Config files.        (line  93)
+* \, line continuation in texmf.cnf:     Config files.        (line  37)
 * \openin:                               Searching overview.  (line  31)
 * \special, suppressing warnings about:  Suppressing warnings.
                                                               (line  31)
@@ -3236,15 +3237,15 @@
 * announcement mailing list:             Mailing lists.       (line   6)
 * API, re-entrant:                       Programming overview.
                                                               (line  16)
-* append-only directories and 'mktexpk': Security.            (line  36)
+* append-only directories and mktexpk:   Security.            (line  36)
 * appendonlydir:                         mktex configuration. (line  60)
 * Apple filesystem, case-insensitive:    Casefolding rationale.
                                                               (line   6)
-* arguments to 'mktex':                  mktex script arguments.
+* arguments to mktex:                    mktex script arguments.
                                                               (line   6)
 * argv[0]:                               Calling sequence.    (line  14)
 * autoconf, recommended:                 Calling sequence.    (line 117)
-* automounter, and 'ls-R':               ls-R.                (line  46)
+* automounter, and ls-R:                 ls-R.                (line  46)
 * auxiliary tasks:                       Auxiliary tasks.     (line   6)
 * Bach, Johann Sebastian:                Default expansion.   (line  41)
 * backslash-newline:                     Config files.        (line  37)
@@ -3254,7 +3255,7 @@
                                                               (line  30)
 * BIBINPUTS <1>:                         Supported file formats.
                                                               (line 121)
-* blank lines, in 'texmf.cnf':           Config files.        (line  35)
+* blank lines, in texmf.cnf:             Config files.        (line  35)
 * BLTXMLINPUTS:                          Supported file formats.
                                                               (line  34)
 * brace expansion:                       Brace expansion.     (line   6)
@@ -3282,7 +3283,7 @@
 * checksum:                              Suppressing warnings.
                                                               (line  16)
 * circle fonts:                          Fontmap.             (line  19)
-* client_path in 'kpse->format_info':    Calling sequence.    (line  47)
+* client_path in kpse->format_info:      Calling sequence.    (line  47)
 * CLUAINPUTS:                            Supported file formats.
                                                               (line  42)
 * CMAPFONTS:                             Supported file formats.
@@ -3293,7 +3294,7 @@
 * cnf.h:                                 Programming with config files.
                                                               (line  27)
 * comments, in fontmap files:            Fontmap.             (line  27)
-* comments, in 'texmf.cnf':              Config files.        (line  27)
+* comments, in texmf.cnf:                Config files.        (line  27)
 * comments, making:                      Introduction.        (line  29)
 * common features in glyph lookup:       Basic glyph lookup.  (line   6)
 * common problems:                       Common problems.     (line   6)
@@ -3319,9 +3320,8 @@
 * configuration bugs:                    Bug checklist.       (line  27)
 * configuration file, source for path:   Path sources.        (line  20)
 * configuration files as shell scripts.: Config files.        (line  86)
-* configuration of 'mktex' scripts:      mktex configuration. (line   6)
-* 'configure' options for 'mktex' scripts: mktex configuration.
-                                                              (line  12)
+* configuration of mktex scripts:        mktex configuration. (line   6)
+* configure options for mktex scripts:   mktex configuration. (line  12)
 * context diff:                          Bug checklist.       (line  52)
 * continuation character:                Config files.        (line  37)
 * core dumps, reporting:                 Bug checklist.       (line  58)
@@ -3345,7 +3345,7 @@
 * directory permissions:                 Security.            (line  51)
 * directory structure, for TeX files:    TeX directory structure.
                                                               (line   6)
-* disabling 'mktex' scripts:             mktex configuration. (line   6)
+* disabling mktex scripts:               mktex configuration. (line   6)
 * disk search:                           Searching overview.  (line  22)
 * disk searching, avoiding:              ls-R.                (line  57)
 * disk usage, reducing:                  Logging.             (line   6)
@@ -3372,7 +3372,7 @@
                                                               (line  41)
 * elt-dirs.c <1>:                        Subdirectory expansion.
                                                               (line  48)
-* enabling 'mktex' scripts:              mktex configuration. (line   6)
+* enabling mktex scripts:                mktex configuration. (line   6)
 * ENCFONTS:                              Supported file formats.
                                                               (line  61)
 * engine name:                           Path searching options.
@@ -3401,7 +3401,7 @@
 * extensions, filename:                  File lookup.         (line  24)
 * externally-built filename database:    Filename database.   (line   6)
 * extra colons:                          Default expansion.   (line   6)
-* failed 'mktex...' script invocation:   mktex script names.  (line  35)
+* failed mktex... script invocation:     mktex script names.  (line  35)
 * fallback font:                         Fallback font.       (line   6)
 * fallback resolutions:                  Fallback font.       (line   6)
 * FAQ, Kpathsea:                         Common problems.     (line   6)
@@ -3449,7 +3449,7 @@
                                                               (line 239)
 * fopen, redefined:                      Debugging.           (line  54)
 * format of external database:           Database format.     (line   6)
-* ftp.cs.stanford.edu:                   unixtex.ftp.         (line  19)
+* ftp.cs.stanford.edu:                   unixtex.ftp.         (line  20)
 * ftp.tug.org:                           unixtex.ftp.         (line   6)
 * fundamental purpose of Kpathsea:       Introduction.        (line   6)
 * gdb, recommended:                      Bug checklist.       (line  58)
@@ -3487,10 +3487,10 @@
                                                               (line 151)
 * interface, not frozen:                 Introduction.        (line  29)
 * introduction:                          Introduction.        (line   6)
-* 'kdebug:':                             Debugging.           (line 105)
+* kdebug::                               Debugging.           (line 105)
 * kdefault.c:                            Default expansion.   (line  48)
 * Knuth, Donald E.:                      History.             (line   6)
-* Knuth, Donald E., archive of programs by: unixtex.ftp.      (line  19)
+* Knuth, Donald E., archive of programs by: unixtex.ftp.      (line  20)
 * Kpathsea config file, source for path: Path sources.        (line  20)
 * kpathsea.h:                            Programming overview.
                                                               (line  26)
@@ -3590,9 +3590,9 @@
                                                               (line  20)
 * mkocp:                                 mktex script names.  (line  18)
 * mkofm:                                 mktex script names.  (line  21)
-* 'mktex' script configuration:          mktex configuration. (line   6)
-* 'mktex' script names:                  mktex script names.  (line   6)
-* 'mktex' scripts:                       mktex scripts.       (line   6)
+* mktex script configuration:            mktex configuration. (line   6)
+* mktex script names:                    mktex script names.  (line   6)
+* mktex scripts:                         mktex scripts.       (line   6)
 * mktex.cnf:                             Specially-recognized files.
                                                               (line  28)
 * mktex.cnf <1>:                         mktex configuration. (line  29)
@@ -3602,7 +3602,7 @@
 * mktexfmt:                              mktex script names.  (line  10)
 * mktexmf:                               mktex script names.  (line  15)
 * mktexpk:                               mktex script names.  (line  24)
-* 'mktexpk' can't guess mode:            Unable to generate fonts.
+* mktexpk can't guess mode:              Unable to generate fonts.
                                                               (line  12)
 * mktextex:                              mktex script names.  (line  27)
 * mktextfm:                              mktex script names.  (line  30)
@@ -3623,9 +3623,9 @@
 * MT_FEATURES:                           mktex configuration. (line  39)
 * multiple TeX hierarchies:              Brace expansion.     (line  20)
 * must exist:                            Searching overview.  (line  31)
-* names for 'mktex' scripts:             mktex script names.  (line   6)
+* names for mktex scripts:               mktex script names.  (line   6)
 * Neumann, Gustaf:                       History.             (line  56)
-* NFS and 'ls-R':                        ls-R.                (line  46)
+* NFS and ls-R:                          ls-R.                (line  46)
 * nomfdrivers:                           mktex configuration. (line  92)
 * nomode:                                mktex configuration. (line  97)
 * none:                                  Suppressing warnings.
@@ -3738,7 +3738,7 @@
 * shell variables:                       Variable expansion.  (line  17)
 * shell_escape, example for code:        Programming with config files.
                                                               (line  10)
-* site overrides for 'mktex...':         mktex configuration. (line  29)
+* site overrides for mktex...:           mktex configuration. (line  29)
 * skeleton TeX directory:                TeX directory structure.
                                                               (line   6)
 * slow startup time:                     Slow path searching. (line   6)
@@ -3773,7 +3773,7 @@
                                                               (line   6)
 * symbolic links not found:              Unable to find files.
                                                               (line  21)
-* symbolic links, and 'ls-R':            ls-R.                (line  44)
+* symbolic links, and ls-R:              ls-R.                (line  44)
 * symlinks, resolving:                   Calling sequence.    (line  31)
 * system C compiler bugs:                TeX or Metafont failing.
                                                               (line  16)
@@ -3807,7 +3807,7 @@
                                                               (line  26)
 * tex-k at tug.org:                         Mailing lists.       (line   6)
 * tex-k at tug.org (bug address):           Reporting bugs.      (line   6)
-* tex.web:                               unixtex.ftp.         (line  19)
+* tex.web:                               unixtex.ftp.         (line  20)
 * TEXBIB:                                Supported file formats.
                                                               (line  30)
 * TEXBIB <1>:                            Supported file formats.
@@ -3839,7 +3839,7 @@
                                                               (line   6)
 * texmf.cnf:                             Specially-recognized files.
                                                               (line  38)
-* 'texmf.cnf' missing, warning about:    Config files.        (line  18)
+* texmf.cnf missing, warning about:      Config files.        (line  18)
 * texmf.cnf, and variable expansion:     Variable expansion.  (line   6)
 * texmf.cnf, definition for:             Config files.        (line   6)
 * texmf.cnf, source for path:            Path sources.        (line  20)
@@ -3884,7 +3884,7 @@
 * tilde.c:                               Tilde expansion.     (line  25)
 * time system call:                      Logging.             (line  15)
 * tolerance for glyph lookup:            Basic glyph lookup.  (line  15)
-* trailing '/' in home directory:        Tilde expansion.     (line  19)
+* trailing / in home directory:          Tilde expansion.     (line  19)
 * trailing colons:                       Default expansion.   (line   6)
 * translations, of path searching description: Path searching.
                                                               (line  10)
@@ -3910,7 +3910,7 @@
 * unreadable file warnings:              Suppressing warnings.
                                                               (line  27)
 * unreadable files:                      Searching overview.  (line  63)
-* unusable 'ls-R' warning:               ls-R.                (line  51)
+* unusable ls-R warning:                 ls-R.                (line  51)
 * usage patterns, finding:               Logging.             (line   6)
 * USERPROFILE, as ~ expansion:           Tilde expansion.     (line   6)
 * USE_TEXMFVAR:                          mktex configuration. (line 128)
@@ -3928,8 +3928,8 @@
                                                               (line 219)
 * Vojta, Paul:                           History.             (line  30)
 * Walsh, Norman:                         History.             (line  56)
-* warning about unusable 'ls-R':         ls-R.                (line  51)
-* warning, about missing 'texmf.cnf':    Config files.        (line  18)
+* warning about unusable ls-R:           ls-R.                (line  51)
+* warning, about missing texmf.cnf:      Config files.        (line  18)
 * warnings, file access:                 Searching overview.  (line  63)
 * warnings, suppressing:                 Suppressing warnings.
                                                               (line   6)
@@ -3956,61 +3956,66 @@
 
 Tag Table:
 Node: Top1480
-Node: Introduction2262
-Node: History4331
-Node: unixtex.ftp8927
-Node: Security10352
-Node: TeX directory structure12856
-Node: Path searching16897
-Node: Searching overview17855
-Node: Path sources21674
-Node: Config files22900
-Node: Path expansion28163
-Node: Default expansion29116
-Node: Variable expansion31186
-Node: Tilde expansion32587
-Node: Brace expansion33567
-Node: KPSE_DOT expansion34506
-Node: Subdirectory expansion35019
-Node: Casefolding search37367
-Node: Casefolding rationale38136
-Node: Casefolding examples39475
-Node: Filename database44521
-Node: ls-R45503
-Node: Filename aliases49179
-Node: Database format50357
-Node: Invoking kpsewhich51370
-Node: Path searching options52325
-Node: Specially-recognized files61923
-Node: Auxiliary tasks63278
-Node: Standard options67003
-Node: TeX support67359
-Node: Supported file formats68713
-Node: File lookup76381
-Node: Glyph lookup78130
-Node: Basic glyph lookup79254
-Node: Fontmap80134
-Node: Fallback font82663
-Node: Suppressing warnings83575
-Node: mktex scripts84702
-Node: mktex configuration85917
-Node: mktex script names91720
-Node: mktex script arguments93106
-Node: Programming93985
-Node: Programming overview94558
-Node: Calling sequence97419
-Node: Program-specific files103948
-Node: Programming with config files104971
-Node: Reporting bugs106558
-Node: Bug checklist107236
-Node: Mailing lists110705
-Node: Debugging111382
-Node: Logging116459
-Node: Common problems118326
-Node: Unable to find files118803
-Node: Slow path searching121213
-Node: Unable to generate fonts122588
-Node: TeX or Metafont failing125060
-Node: Index126262
+Node: Introduction2260
+Node: History4327
+Node: unixtex.ftp8923
+Node: Security10393
+Node: TeX directory structure12897
+Node: Path searching16938
+Node: Searching overview17896
+Node: Path sources21715
+Node: Config files22941
+Node: Path expansion28204
+Node: Default expansion29157
+Node: Variable expansion31227
+Node: Tilde expansion32628
+Node: Brace expansion33608
+Node: KPSE_DOT expansion34547
+Node: Subdirectory expansion35060
+Node: Casefolding search37408
+Node: Casefolding rationale38177
+Node: Casefolding examples39523
+Node: Filename database44569
+Node: ls-R45551
+Node: Filename aliases49227
+Node: Database format50405
+Node: Invoking kpsewhich51418
+Node: Path searching options52373
+Node: Specially-recognized files61971
+Node: Auxiliary tasks63326
+Node: Standard options67051
+Node: TeX support67407
+Node: Supported file formats68761
+Node: File lookup76429
+Node: Glyph lookup78178
+Node: Basic glyph lookup79302
+Node: Fontmap80182
+Node: Fallback font82711
+Node: Suppressing warnings83623
+Node: mktex scripts84750
+Node: mktex configuration85965
+Node: mktex script names91768
+Node: mktex script arguments93154
+Node: Programming94033
+Node: Programming overview94606
+Node: Calling sequence97467
+Node: Program-specific files103996
+Node: Programming with config files105019
+Node: Reporting bugs106606
+Node: Bug checklist107284
+Node: Mailing lists110753
+Node: Debugging111430
+Node: Logging116507
+Node: Common problems118374
+Node: Unable to find files118851
+Node: Slow path searching121261
+Node: Unable to generate fonts122636
+Node: TeX or Metafont failing125108
+Node: Index126310
 
 End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:

Modified: branches/stable/source/src/texk/kpathsea/doc/kpathsea.texi
===================================================================
--- branches/stable/source/src/texk/kpathsea/doc/kpathsea.texi	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/kpathsea/doc/kpathsea.texi	2020-05-14 18:05:47 UTC (rev 824)
@@ -3,7 +3,7 @@
 @settitle Kpathsea: A library for path searching
 
 @set version 6.3.2
- at set month-year January 2020
+ at set month-year March 2020
 
 @copying
 This file documents the Kpathsea library for path searching.
@@ -1104,8 +1104,8 @@
 
 This same problematic scenario has always existed on Windows, but for
 whatever reason, it has become much more common since Apple also went
-to a case-insensitive filesystem.  Hence the move to change the
-Kpathsea behavior now.
+to a case-insensitive filesystem.  Hence the relatively late change
+to the Kpathsea behavior.
 
 @cindex Windows and casefolding
 The fallback case-insensitive search is omitted at compile-time on

Modified: branches/stable/source/src/texk/kpathsea/doc/unixtex.texi
===================================================================
--- branches/stable/source/src/texk/kpathsea/doc/unixtex.texi	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/kpathsea/doc/unixtex.texi	2020-05-14 18:05:47 UTC (rev 824)
@@ -17,19 +17,20 @@
 @iftex
 chapter
 @end iftex
-is @uref{https://tug.org/tex/unixtex.ftp}, last updated 28 November
-2017.  Email @email{tex-k@@tug.org} with comments or questions.
+is @uref{ftp://tug.org/tex/unixtex.ftp}, a.k.a.@:
+ at uref{https://tug.org/unixtex.ftp}, last updated 29 February 2020.
+Email @email{tex-k@@tug.org} with comments or questions.
 
 The principal free @TeX{} distribution for Unix-like systems is @TeX{}
 Live, on the web at @url{http://tug.org/texlive}.  The pages there
-describe many ways to acquire and.or build @TeX{}, over the Internet
+describe many ways to acquire and/or build @TeX{}, over the Internet
 or on physical media, both the sources and precompiled binaries for
 many systems, either standalone or as part of various operating system
 distributions.
 
-Web2c, Kpathsea, Dvips, and Dviljk are no longer released as a
-separate packages.  Their sources are now maintained as part of @TeX{}
-Live.
+Web2c, Kpathsea, Dvips, and Dviljk, among others, are no longer
+released as a separate packages.  Their sources are now maintained as
+part of @TeX{} Live.
 
 @flindex ftp.cs.stanford.edu
 @flindex tex.web
@@ -37,7 +38,7 @@
 The host @t{ftp.cs.stanford.edu} is the original source for the files
 for which Donald Knuth is directly responsible: @file{tex.web},
 @file{plain.tex}, etc. However, unless you want to undertake the
-project of building your @TeX{} installation from scratch, it is more
+project of building your @TeX{} system from scratch, it is more
 reliable and less work to retrieve these files as part of a larger
 package.
 

Modified: branches/stable/source/src/texk/kpathsea/pathsearch.c
===================================================================
--- branches/stable/source/src/texk/kpathsea/pathsearch.c	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/kpathsea/pathsearch.c	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,6 +1,6 @@
 /* pathsearch.c: look up a filename in a path.
 
-   Copyright 1993, 1994, 1995, 1997, 2007, 2009-2012, 2018 Karl Berry.
+   Copyright 1993, 1994, 1995, 1997, 2007, 2009-2012, 2018, 2020 Karl Berry.
    Copyright 1997-2005 Olaf Weber.
 
    This library is free software; you can redistribute it and/or
@@ -173,7 +173,7 @@
         if (kpathsea_readable_file (kpse, ret)) {
           break; /* success */
         } else {
-          /* This only happens the name matches, but the potential file is
+          /* This only happens when the name matches, but the potential file is
              not actually readable, e.g., a broken symlink.  It seems
              sufficiently unusual to be worth logging.  */
   #ifdef KPSE_DEBUG

Modified: branches/stable/source/src/texk/tests/TeXLive/TLConfig.pm
===================================================================
--- branches/stable/source/src/texk/tests/TeXLive/TLConfig.pm	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/tests/TeXLive/TLConfig.pm	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,11 +1,11 @@
 # TeXLive::TLConfig.pm - module exporting configuration values
-# Copyright 2007-2019 Norbert Preining
+# Copyright 2007-2020 Norbert Preining
 # This file is licensed under the GNU General Public License version 2
 # or any later version.
 
 package TeXLive::TLConfig;
 
-my $svnrev = '$Revision: 53076 $';
+my $svnrev = '$Revision: 54123 $';
 my $_modulerevision = ($svnrev =~ m/: ([0-9]+) /) ? $1 : "unknown";
 sub module_revision { return $_modulerevision; }
 
@@ -45,6 +45,8 @@
     %TLPDBSettings
     %TLPDBConfigs
     $NetworkTimeout
+    $MaxLWPErrors
+    $MaxLWPReinitCount
     $PartialEngineSupport
     $F_OK $F_WARNING $F_ERROR $F_NOPOSTACTION
     $ChecksumLength
@@ -56,11 +58,11 @@
 
 # the year of our release, will be used in the location of the
 # network packages, and in menu names, and other places.
-$ReleaseYear = 2019;
+$ReleaseYear = 2020;
 
 # users can upgrade from this year to the current year; might be the
 # same as the release year, or any number of releases earlier.
-# Generally not tested.
+# Generally not tested, but should be.
 $MinRelease = 2016;
 
 # Meta Categories do not ship files, but only call for other packages.
@@ -92,6 +94,10 @@
 
 # timeout for network connections (wget, LWP) in seconds
 our $NetworkTimeout = 30;
+# number of errors during an LWP session until it is marked as disabled
+our $MaxLWPErrors = 5;
+# max number of times we reenable LWP after it was disabled
+our $MaxLWPReinitCount = 10;
 
 our $Archive = "archive";
 our $TeXLiveServerURL = "http://mirror.ctan.org";
@@ -189,7 +195,7 @@
       "Directory for backups" ],
   "create_formats" =>
     [ "b", 1, "formats",  
-      "Create formats on installation" ],
+      "Generate formats at installation or update" ],
   "desktop_integration" =>
     [ "b", 1, "desktop_integration",
       "Create Start menu shortcuts (w32)" ],
@@ -235,7 +241,7 @@
 our $WindowsMainMenuName = "TeX Live $ReleaseYear";
 
 # Comma-separated list of engines which do not exist on all platforms.
-our $PartialEngineSupport = "luahbtex,luajittex,mfluajit";
+our $PartialEngineSupport = "luajithbtex,luajittex,mfluajit";
 
 # Flags for error handling across the scripts and modules
 # all fine

Modified: branches/stable/source/src/texk/tests/TeXLive/TLUtils.pm
===================================================================
--- branches/stable/source/src/texk/tests/TeXLive/TLUtils.pm	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/tests/TeXLive/TLUtils.pm	2020-05-14 18:05:47 UTC (rev 824)
@@ -5,7 +5,7 @@
 
 package TeXLive::TLUtils;
 
-my $svnrev = '$Revision: 53343 $';
+my $svnrev = '$Revision: 54143 $';
 my $_modulerevision = ($svnrev =~ m/: ([0-9]+) /) ? $1 : "unknown";
 sub module_revision { return $_modulerevision; }
 
@@ -273,16 +273,16 @@
 
 =item C<platform_name($canonical_host)>
 
-Convert a canonical host names as returned by C<config.guess> into
-TeX Live platform names.
+Convert ORIG_PLATFORM, a canonical host name as returned by
+C<config.guess>, into a TeX Live platform name.
 
 CPU type is determined by a regexp, and any C</^i.86/> name is replaced
 by C<i386>.
 
-For OS we need a list because what's returned is not likely to match our
-historical names, e.g., C<config.guess> returns C<linux-gnu> but we need
-C<linux>.  This list might/should contain OSs which are not currently
-supported.
+For the OS value we need a list because what's returned is not likely to
+match our historical names, e.g., C<config.guess> returns C<linux-gnu>
+but we need C<linux>. This list contains old OSs which are not currently
+supported, just in case.
 
 If a particular platform is not found in this list we use the regexp
 C</.*-(.*$)/> as a last resort and hope it provides something useful.
@@ -290,12 +290,15 @@
 =cut
 
 sub platform_name {
-  my ($guessed_platform) = @_;
+  my ($orig_platform) = @_;
+  my $guessed_platform = $orig_platform;
 
+  # try to parse out some bsd variants that use amd64.
   $guessed_platform =~ s/^x86_64-(.*-k?)(free|net)bsd/amd64-$1$2bsd/;
   my $CPU; # CPU type as reported by config.guess.
   my $OS;  # O/S type as reported by config.guess.
   ($CPU = $guessed_platform) =~ s/(.*?)-.*/$1/;
+
   $CPU =~ s/^alpha(.*)/alpha/;   # alphaev whatever
   $CPU =~ s/mips64el/mipsel/;    # don't distinguish mips64 and 32 el
   $CPU =~ s/powerpc64/powerpc/;  # don't distinguish ppc64
@@ -307,7 +310,7 @@
     $CPU = $guessed_platform =~ /hf$/ ? "armhf" : "armel";
   }
 
-  my @OSs = qw(aix cygwin darwin freebsd hpux irix
+  my @OSs = qw(aix cygwin darwin dragonfly freebsd hpux irix
                kfreebsd linux netbsd openbsd solaris);
   for my $os (@OSs) {
     # Match word boundary at the beginning of the os name so that
@@ -316,7 +319,12 @@
     #   solaris2 is matched.
     $OS = $os if $guessed_platform =~ /\b$os/;
   }
-
+  
+  if (! $OS) {
+    warn "$0: could not guess OS from config.guess string: $orig_platform";
+    $OS = "unknownOS";
+  }
+  
   if ($OS eq "linux") {
     # deal with the special case of musl based distributions
     # config.guess returns
@@ -336,7 +344,7 @@
     # We don't use uname numbers here.)
     #
     # this changes each year, per above:
-    my $mactex_darwin = 12;  # lowest minor rev supported by x86_64-darwin.
+    my $mactex_darwin = 13;  # lowest minor rev supported by x86_64-darwin.
     #
     # Most robust approach is apparently to check sw_vers (os version,
     # returns "10.x" values), and sysctl (processor hardware).
@@ -345,7 +353,7 @@
     if ($os_major != 10) {
       warn "$0: only MacOSX is supported, not $OS $os_major.$os_minor "
            . " (from sw_vers -productVersion: $sw_vers)\n";
-      return "unknown-unknown";
+      return "unknownmac-unknownmac";
     }
     if ($os_minor >= $mactex_darwin) {
       ; # current version, default is ok (x86_64-darwin).
@@ -412,8 +420,9 @@
     'universal-darwin' => 'MacOSX universal binaries',
     'win32'            => 'Windows',
     'x86_64-cygwin'    => 'Cygwin on x86_64',
-    'x86_64-darwin'       => 'MacOSX current (10.12-) on x86_64',
+    'x86_64-darwin'       => 'MacOSX current (10.13-) on x86_64',
     'x86_64-darwinlegacy' => 'MacOSX legacy (10.6-) on x86_64',
+    'x86_64-dragonfly' => 'DragonFlyBSD on x86_64',
     'x86_64-linux'     => 'GNU/Linux on x86_64',
     'x86_64-linuxmusl' => 'GNU/Linux on x86_64 with musl',
     'x86_64-solaris'   => 'Solaris on x86_64',
@@ -2789,31 +2798,42 @@
   }
 }
 
+
 sub _download_file_lwp {
   my ($url, $dest) = @_;
-  if (defined($::tldownload_server) && $::tldownload_server->enabled) {
-    debug("persistent connection set up, trying to get $url (for $dest)\n");
-    my $ret = $::tldownload_server->get_file($url, $dest);
-    if ($ret) {
-      ddebug("downloading file via persistent connection succeeded\n");
-      return $ret;
-    } else {
-      debug("TLUtils::download_file: persistent connection ok,"
-             . " but download failed: $url\n");
-      debug("TLUtils::download_file: retrying with wget.\n");
+  if (!defined($::tldownload_server)) {
+    ddebug("::tldownload_server not defined\n");
+    return(0);
+  }
+  if (!$::tldownload_server->enabled) {
+    # try to reinitialize a disabled connection
+    # disabling happens after 6 failed download trials
+    # we just re-initialize the connection
+    if (!setup_persistent_downloads()) {
+      # setup failed, give up
+      debug("reinitialization of LWP download failed\n");
+      return(0);
     }
+    # we don't need to check for ->enabled, because
+    # setup_persistent_downloads calls TLDownload->new()
+    # which, if it succeeds, automatically set enabled to 1
+  }
+  # we are still here, so try to download
+  debug("persistent connection set up, trying to get $url (for $dest)\n");
+  my $ret = $::tldownload_server->get_file($url, $dest);
+  if ($ret) {
+    ddebug("downloading file via persistent connection succeeded\n");
+    return $ret;
   } else {
-    if (!defined($::tldownload_server)) {
-      ddebug("::tldownload_server not defined\n");
-    } else {
-      ddebug("::tldownload_server->enabled is not set\n");
-    }
-    debug("persistent connection not set up\n");
+    debug("TLUtils::download_file: persistent connection ok,"
+           . " but download failed: $url\n");
+    debug("TLUtils::download_file: retrying with other downloaders.\n");
   }
   # if we are still here, download with LWP didn't succeed.
   return(0);
 }
 
+
 sub _download_file_program {
   my ($url, $dest, $type) = @_;
   if (win32()) {
@@ -3418,9 +3438,11 @@
 If the log file (see L<process_logging_options>) is defined, it also
 writes there.
 
-This third level debugging message reports messages about processing
-each line of any tlpdb files read, in addition to the first and second
-levels.
+In addition to the first and second levels, this third level debugging
+message reports messages about processing each line of any tlpdb files
+read, and messages about files tested or matched against tlpsrc
+patterns. This output is extremely voluminous, so unless you're
+debugging those parts of the code, it just gets in the way.
 
 =cut
 
@@ -3839,7 +3861,16 @@
 sub setup_persistent_downloads {
   if ($TeXLive::TLDownload::net_lib_avail) {
     ddebug("setup_persistent_downloads has net_lib_avail set\n");
-    $::tldownload_server = TeXLive::TLDownload->new;
+    if ($::tldownload_server) {
+      if ($::tldownload_server->initcount() > $TeXLive::TLConfig::MaxLWPReinitCount) {
+        debug("stop retrying to initialize LWP after 10 failures\n");
+        return 0;
+      } else {
+        $::tldownload_server->reinit();
+      }
+    } else {
+      $::tldownload_server = TeXLive::TLDownload->new;
+    }
     if (!defined($::tldownload_server)) {
       ddebug("TLUtils:setup_persistent_downloads: failed to get ::tldownload_server\n");
     } else {

Modified: branches/stable/source/src/texk/web2c/ChangeLog
===================================================================
--- branches/stable/source/src/texk/web2c/ChangeLog	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/web2c/ChangeLog	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,3 +1,13 @@
+2020-03-27  Karl Berry  <karl at tug.org>
+
+	* TeX Live 2020.
+
+2020-03-12  Karl Berry  <karl at freefriends.org>
+
+	* doc/web2c.texi (\input quoted filename),
+	(\input braced filename),
+	(\input filename caveats): new subnodes of "\input filenames".
+
 2020-02-09  Phelype Oleinik  <phe.h.o1 at gmail.com>
 
 	* tex.ch (29.256, scan_file_name): new procedure to implement

Modified: branches/stable/source/src/texk/web2c/Makefile.in
===================================================================
--- branches/stable/source/src/texk/web2c/Makefile.in	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/web2c/Makefile.in	2020-05-14 18:05:47 UTC (rev 824)
@@ -229,7 +229,8 @@
 @LUAHBTEX_TRUE@@WIN32_TRUE at am__append_90 = call_luahbtex
 @LUAHBTEX_TRUE@@WIN32_TRUE at am__append_91 = install-luahbtex-links
 @LUAHBTEX_TRUE@@WIN32_TRUE at am__append_92 = uninstall-luahbtex-links
- at LUAHBTEX_TRUE@@WIN32_FALSE at am__append_93 = luahbtex$(EXEEXT):texlua luahbtex$(EXEEXT):texluac
+# keep texlua[c] as links to luatex unless luatex is not installed.
+ at LUAHBTEX_TRUE@@LUATEX_FALSE@@WIN32_FALSE at am__append_93 = luahbtex$(EXEEXT):texlua luahbtex$(EXEEXT):texluac
 @LUAJITTEX_TRUE at am__append_94 = luajittex
 @LUAJITTEX_TRUE@@WIN32_TRUE at am__append_95 = call_luajittex
 @LUAJITTEX_TRUE@@WIN32_TRUE at am__append_96 = install-luajittex-links
@@ -239,7 +240,8 @@
 @LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_100 = call_luajithbtex
 @LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_101 = install-luajithbtex-links
 @LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_102 = uninstall-luajithbtex-links
- at LUAJITHBTEX_TRUE@@WIN32_FALSE at am__append_103 = luajithbtex$(EXEEXT):texluajit luajithbtex$(EXEEXT):texluajitc
+# keep texluajit[c] as links to luajittex unless luajittex is not installed.
+ at LUAJITHBTEX_TRUE@@LUAJITTEX_FALSE@@WIN32_FALSE at am__append_103 = luajithbtex$(EXEEXT):texluajit luajithbtex$(EXEEXT):texluajitc
 @LUATEX_TRUE at am__append_104 = $(luatex_tests)
 @LUAHBTEX_TRUE at am__append_105 = $(luahbtex_tests)
 @LUAJITTEX_TRUE at am__append_106 = $(luajittex_tests)
@@ -20036,7 +20038,7 @@
 synctexdir/synctex.log: synctex$(EXEEXT)
 libmd5/md5.log: md5main$(EXEEXT)
 
-# $Id: Makefile.in 53791 2020-02-15 21:46:35Z karl $
+# $Id: Makefile.in 54133 2020-03-06 21:48:55Z karl $
 # am/bin_links.am: Makefile fragment for bindir links.
 .PHONY: install-bin-links uninstall-bin-links
 

Modified: branches/stable/source/src/texk/web2c/NEWS
===================================================================
--- branches/stable/source/src/texk/web2c/NEWS	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/web2c/NEWS	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,6 +1,6 @@
 This file records noteworthy changes.  (Public domain.)
 
-2020 (for TeX Live 2020)
+2020 (for TeX Live 2020, 27 March 2020)
 * \input now also accepts a group-delimited filename, e.g.,
 \input{foo.tex}. The usage with a standard space/token-delimited
 filename is completely unchanged.

Modified: branches/stable/source/src/texk/web2c/doc/web2c.info
===================================================================
--- branches/stable/source/src/texk/web2c/doc/web2c.info	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/web2c/doc/web2c.info	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,10 +1,10 @@
-This is web2c.info, produced by makeinfo version 5.1 from web2c.texi.
+This is web2c.info, produced by makeinfo version 6.7 from web2c.texi.
 
 This file documents the installation and use of the programs in Web2c,
 an implementation of Donald Knuth's TeX system.
 
    Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-2005, 2007, 2008, 2009 Karl Berry & Olaf Weber.
+2005, 2007, 2008, 2009, 2010-2020 Karl Berry & Olaf Weber.
 
    Permission is granted to make and distribute verbatim copies of this
 manual provided the copyright notice and this permission notice are
@@ -58,7 +58,7 @@
 
 This document describes how to install and use the programs in the Web2c
 implementation of the TeX system, especially for Unix systems.  It
-corresponds to Web2c version 2020, released in January 2020.
+corresponds to Web2c version 2020, released in March 2020.
 
 * Menu:
 
@@ -82,7 +82,7 @@
 1 Introduction
 **************
 
-This manual corresponds to version 2020 of Web2c, released in January
+This manual corresponds to version 2020 of Web2c, released in March
 2020.
 
    "Web2c" is the name of a TeX implementation, originally for Unix, but
@@ -634,7 +634,7 @@
 * Initial and virgin::          Making memory dumps vs. production runs.
 * Memory dumps::                .fmt/.base files for fast startup.
 * Editor invocation::           The 'e' response at errors.
-* \input filenames::            ~ and $ expansion in TeX/MF/MP.
+* \input filenames::            Filename delimiters and Kpathsea expansion.
 
 
 File: web2c.info,  Node: Initial and virgin,  Next: Memory dumps,  Up: Three programs
@@ -835,8 +835,35 @@
 macro packages provide other interfaces to '\input' that allow different
 notation; here we are concerned only with the primitive operation.)
 
-   As of Web2c version 7.5.3, double-quote characters can be used to
-include spaces or other special cases.  In typical use, the '"'
+   As (allowed) extensions to standard TeX, Web2c also supports
+specifying the filename in double quotes ('"some name"') and in braces
+('{"some name"}'), which is convenient for filenames containing spaces
+or other special characters, as described in the sections below.
+
+   In all cases, space tokens are ignored after the filename is read.
+
+   Also, double quote ('"') characters are ignored within the filename;
+there is no way to read files whose names contain a '"'.
+
+   However, for maximal portability of your document across systems, use
+only the characters 'a'-'z', '0'-'9', and '.'.  Do not use anything but
+simple filenames, since directory separators vary among systems;
+instead, add the necessary directories to the appropriate search path.
+
+* Menu:
+
+* Quotes: \input quoted filename.   \input "some name"
+* Braces: \input braced filename.   \input {some name}
+* Caveats: \input filename caveats. Tokenization, nulls, Kpathsea expansion.
+
+
+File: web2c.info,  Node: \input quoted filename,  Next: \input braced filename,  Up: \input filenames
+
+3.5.4.1 '\input' quoted filename: '\input "some name"'
+......................................................
+
+As of Web2c version 7.5.3 (2004), double-quote characters can be used to
+include spaces or other special characters.  In typical use, the '"'
 characters surround the entire filename:
      \input "filename with spaces"
 
@@ -844,46 +871,69 @@
 can enclose any characters, as in:
      \input filename" "with" "spaces
 
-   One more point.  In LaTeX, the quotes are needed inside the braces,
-thus
+   One more point.  In LaTeX, the quotes are needed inside the braces of
+its '\input' macro, thus:
      \input{a b}    % fails
      \input{"a b"}  % ok
 
-   This quoting mechanism comes into play _after_ TeX has tokenized and
-expanded the input.  So, multiple spaces and tabs may be seen as a
-single space, active characters such as '~' are expanded first, and so
-on.  (See below.)
+   There is no way to quote the quote character.
 
+
+File: web2c.info,  Node: \input braced filename,  Next: \input filename caveats,  Prev: \input quoted filename,  Up: \input filenames
+
+3.5.4.2 '\input' braced filename: '\input{some name}'
+.....................................................
+
+As of Web2c 2020, '\input' filenames in TeX engines (this does not apply
+in Metafont and MetaPost) can also be specified within a TeX group,
+typically curly braces.  For example:
+     \input{filename with spaces}
+
+   As always with TeX, the brace characters are not hardwired; what
+counts is the category code: the first token after the '\input' must be
+of catcode 1 (begin group), and it is matched with the next character of
+catcode 2 (end group).
+
+   Within the group-delimited filename, braces are treated as normal
+characters.
+
+   As with all forms of filenames, following spaces are ignored (after
+the end group), and double quote ('"') characters are ignored within the
+filename.
+
+
+File: web2c.info,  Node: \input filename caveats,  Prev: \input braced filename,  Up: \input filenames
+
+3.5.4.3 '\input' filename caveats
+.................................
+
+The quoting mechanisms just described come into play _after_ TeX has
+tokenized and expanded the input.  So, multiple spaces and tabs will
+generally be seen as a single space, active characters such as '~' are
+expanded first (generally causing an error), and so on.  More examples
+below.
+
    On the other hand, various C library routines and Unix itself use the
 null byte (character code zero, ASCII NUL) to terminate strings.  So
 filenames in Web2c cannot contain nulls, even though TeX itself does not
-treat NUL specially.  In addition, some older Unix variants do not allow
-eight-bit characters (codes 128-255) in filenames.
+treat NUL specially.
 
-   For maximal portability of your document across systems, use only the
-characters 'a'-'z', '0'-'9', and '.', and restrict your filenames to at
-most eight characters (not including the extension), and at most a
-three-character extension.  Do not use anything but simple filenames,
-since directory separators vary among systems; instead, add the
-necessary directories to the appropriate search path.
-
    Finally, the present Web2c implementation does '~' and '$' expansion
-on NAME, unlike Knuth's original implementation and older versions of
-Web2c.  Thus:
+on NAME, unlike Knuth's original implementation.  Thus:
      \input ~jsmith/$foo.bar
    will dereference the environment variable or Kpathsea config file
-value 'foo' and read that file extended with '.bar' in user 'jsmith''s
-home directory.  You can also use braces, as in '${foo}bar', if you want
-to follow the variable name with a letter, numeral, or '_'.
+value 'foo' and read that file, extended with '.bar', in user 'jsmith''s
+home directory.  You can also use braces in the variable expansion, as
+in '${foo}bar', if you want to follow the variable name with a letter,
+numeral, or '_'.
 
    (So another way to get a program to read a filename containing
 whitespace is to define an environment variable and dereference it.)
 
-   In all the common TeX formats (plain TeX, LaTeX, AMSTeX), the
-characters '~' and '$' have special category codes, so to actually use
-these in a document you have to change their catcodes or use '\string'.
-(The result is unportable anyway, see the suggestions above.)  The place
-where they are most likely to be useful is when typing interactively.
+   In all the common TeX formats (plain TeX, LaTeX, ConTeXt, AMSTeX,
+...), the characters '~' and '$' have special category codes, so to
+actually use these in a document you have to change their catcodes or
+use '\string'.
 
 
 File: web2c.info,  Node: TeX,  Next: Metafont,  Prev: Commonalities,  Up: Top
@@ -2323,9 +2373,9 @@
 
 * Menu:
 
-* tangle invocation::           
-* weave invocation::            
-* pooltype invocation::         
+* tangle invocation::
+* weave invocation::
+* pooltype invocation::
 
 
 File: web2c.info,  Node: tangle invocation,  Next: weave invocation,  Up: WEB
@@ -2564,7 +2614,7 @@
 
 * Menu:
 
-* dvitype output example::      
+* dvitype output example::
 
 
 File: web2c.info,  Node: dvitype output example,  Up: dvitype invocation
@@ -3425,9 +3475,11 @@
  [index ]
 * Menu:
 
-* '#define' options:                     Compile-time options.
+* " character, ignored in filenames:     \input filenames.    (line  22)
+* #define options:                       Compile-time options.
                                                               (line   6)
-* $ expansion in filenames:              \input filenames.    (line  47)
+* $ expansion in filenames:              \input filename caveats.
+                                                              (line  17)
 * %& magic number:                       Determining the memory dump to use.
                                                               (line  19)
 * - starting a filename:                 Option conventions.  (line  19)
@@ -3466,7 +3518,7 @@
 * -base=BASE:                            Determining the memory dump to use.
                                                               (line  15)
 * -base=DUMPNAME:                        Common options.      (line  34)
-* -change=CHFILE:                        mft invocation.      (line  62)
+* -change=CHFILE:                        mft invocation.      (line  63)
 * -charcode-format=TYPE:                 tftopl invocation.   (line  27)
 * -charcode-format=TYPE <1>:             vftovp invocation.   (line  30)
 * -D compiler options:                   Compile-time options.
@@ -3527,7 +3579,7 @@
 * -shell-restricted:                     tex invocation.      (line 121)
 * -show-opcodes:                         dvitype invocation.  (line  52)
 * -strict:                               tangle invocation.   (line  46)
-* -style=MFTFILE:                        mft invocation.      (line  66)
+* -style=MFTFILE:                        mft invocation.      (line  67)
 * -T:                                    mpost invocation.    (line 115)
 * -terse:                                bibtex invocation.   (line  28)
 * -tex=TEXPROGRAM:                       mpost invocation.    (line 118)
@@ -3547,7 +3599,7 @@
 * .fmt:                                  Initial TeX.         (line   6)
 * .mf:                                   mf invocation.       (line  24)
 * .mp:                                   mpost invocation.    (line  30)
-* '.mps' files and PDF:                  mpost invocation.    (line  86)
+* .mps files and PDF:                    mpost invocation.    (line  86)
 * .NNN PostScript figures:               mpost invocation.    (line  35)
 * .NNNgf generic fonts:                  mf invocation.       (line  34)
 * .tcx character translation files:      Common options.      (line  98)
@@ -3571,7 +3623,13 @@
 * \font and dynamic generation:          tex invocation.      (line  41)
 * \fontdimen:                            tftopl invocation.   (line  99)
 * \immediate\write18:                    Shell escapes.       (line   6)
+* \input braced (grouped) filename:      \input braced filename.
+                                                              (line   6)
+* \input filename caveats:               \input filename caveats.
+                                                              (line   6)
 * \input filenames:                      \input filenames.    (line   6)
+* \input quoted filename:                \input quoted filename.
+                                                              (line   6)
 * \input, and pipes:                     Shell escapes.       (line  64)
 * \mag:                                  dvicopy invocation.  (line  20)
 * \mag <1>:                              dvitype invocation.  (line  28)
@@ -3578,14 +3636,16 @@
 * \openin, and pipes:                    Shell escapes.       (line  64)
 * \openout and security:                 tex invocation.      (line  48)
 * \openout, and pipes:                   Shell escapes.       (line  64)
-* \output routine, and '\write':         Shell escapes.       (line  28)
+* \output routine, and \write:           Shell escapes.       (line  28)
 * \pdfshellescape:                       Shell escapes.       (line  64)
-* \string:                               \input filenames.    (line  59)
+* \string, and \input filenames:         \input filename caveats.
+                                                              (line  29)
 * \tracingcharsubdef and MLTeX:          \tracingcharsubdef.  (line   6)
 * \tracinglostchars and MLTeX:           \tracingcharsubdef.  (line  11)
 * \write18 shell escape extension:       Shell escapes.       (line   6)
 * ^^ notation, avoiding:                 TCX files.           (line  87)
-* ~ expansion in filenames:              \input filenames.    (line  47)
+* ~ expansion in filenames:              \input filename caveats.
+                                                              (line  17)
 * abbrv.bst:                             Basic BibTeX style files.
                                                               (line  16)
 * accented character:                    TCX files.           (line   6)
@@ -3648,6 +3708,8 @@
 * binaries, linking:                     Common options.      (line  77)
 * blank lines, in TCX files:             TCX files.           (line  66)
 * boxes, memory for:                     Runtime options.     (line  20)
+* braced filename for \input:            \input braced filename.
+                                                              (line   6)
 * breakpoints, memory for:               Runtime options.     (line  20)
 * Breitenlohner, Peter:                  Introduction.        (line   9)
 * BSTINPUTS, search path for bst files:  bibtex invocation.   (line  18)
@@ -3660,7 +3722,9 @@
 * byte swapping:                         Hardware and memory dumps.
                                                               (line  13)
 * c-sources Makefile target:             Additional targets.  (line  12)
-* change files, and MFT:                 mft invocation.      (line  62)
+* caveats for \input filenames:          \input filename caveats.
+                                                              (line   6)
+* change files, and MFT:                 mft invocation.      (line  63)
 * change files, and Tangle:              tangle invocation.   (line  11)
 * change files, and Weave:               weave invocation.    (line  14)
 * changing error messages style:         Common options.      (line  26)
@@ -3680,7 +3744,7 @@
                                                               (line  69)
 * cm.base:                               Initial Metafont.    (line  26)
 * cmbase.mf:                             Initial Metafont.    (line  26)
-* cmbase.mft:                            mft invocation.      (line  72)
+* cmbase.mft:                            mft invocation.      (line  73)
 * cmmf.base not recommended:             Initial Metafont.    (line  26)
 * color, in DVItoMP:                     dvitomp invocation.  (line  15)
 * comments, in TCX files:                TCX files.           (line  70)
@@ -3693,7 +3757,7 @@
                                                               (line   6)
 * Computer Modern fonts, and Troff:      mpost invocation.    (line  65)
 * Computer Modern macros:                Initial Metafont.    (line  26)
-* 'Computer Modern Typefaces', production of: mft invocation. (line  72)
+* Computer Modern Typefaces, production of: mft invocation.   (line  73)
 * configuration:                         Installation.        (line   6)
 * configuration file reading:            Path searching.      (line   6)
 * configuration file values:             Runtime options.     (line   6)
@@ -3737,6 +3801,8 @@
 * DISPLAY:                               Online Metafont graphics.
                                                               (line  76)
 * dot files, written by TeX programs:    tex invocation.      (line  48)
+* double quote character, ignored in filenames: \input filenames.
+                                                              (line  22)
 * downloading of fonts for MetaPost labels: mpost invocation. (line  70)
 * DrawingServant:                        Online Metafont graphics.
                                                               (line  35)
@@ -3758,18 +3824,19 @@
 * dx horizontal escapement <1>:          gftype invocation.   (line 106)
 * dy vertical escapement:                gftype invocation.   (line 106)
 * dynamic array allocation:              Runtime options.     (line  35)
-* dynamic Metafont mode definitions with 'smode': Modes.      (line  28)
+* dynamic Metafont mode definitions with smode: Modes.        (line  28)
 * dynamic packing variable:              pktype invocation.   (line  44)
 * e response at error prompt:            Editor invocation.   (line   6)
 * e-circumflex:                          \charsubdef.         (line  20)
 * e-TeX:                                 TeX extensions.      (line  10)
-* e.mft:                                 mft invocation.      (line  72)
+* e.mft:                                 mft invocation.      (line  73)
 * EC fonts:                              tex invocation.      (line  41)
 * EC fonts <1>:                          mf invocation.       (line  24)
 * editing of bitmap fonts:               Font utilities available elsewhere.
                                                               (line  23)
 * editor invoked at error:               Editor invocation.   (line   6)
-* eight-bit characters in filenames:     \input filenames.    (line  34)
+* eight-bit characters in filenames:     \input filename caveats.
+                                                              (line  12)
 * empty.tcx:                             TCX files.           (line  48)
 * endian dependencies:                   Hardware and memory dumps.
                                                               (line   6)
@@ -3785,6 +3852,8 @@
 * executables, shared initial and virgin: Initial and virgin. (line   6)
 * exit status, of shell escape:          Shell escapes.       (line  34)
 * expanded plain format:                 Formats.             (line  54)
+* expansion, and \input filenames:       \input filename caveats.
+                                                              (line   6)
 * extensions to TeX:                     TeX extensions.      (line   6)
 * extra_mem_bot:                         Runtime options.     (line  19)
 * FACE property:                         tftopl invocation.   (line  95)
@@ -3794,7 +3863,7 @@
 * file formats for fonts:                Font file formats.   (line   6)
 * file recorder:                         Common options.      (line  84)
 * filename conventions, in input files:  \input filenames.    (line   6)
-* filenames starting with '-':           Option conventions.  (line  19)
+* filenames starting with -:             Option conventions.  (line  19)
 * first line of the main input file:     Common options.      (line  98)
 * fixed-point arithmetic:                Compile-time options.
                                                               (line  21)
@@ -3859,6 +3928,8 @@
 * glue, memory for:                      Runtime options.     (line  20)
 * glyph substitutions:                   MLTeX.               (line   6)
 * gray font:                             gftodvi invocation.  (line  29)
+* group-delimited filename for \input:   \input braced filename.
+                                                              (line   6)
 * Gruff, Billy Goat:                     Triptrap.            (line   6)
 * gsftopk:                               Font utilities available elsewhere.
                                                               (line  35)
@@ -3914,7 +3985,7 @@
 * install-formats Make target:           Additional targets.  (line  17)
 * install-mems Make target:              Additional targets.  (line  34)
 * installation:                          Installation.        (line   6)
-* interaction between TCX files and '-8bit'.: TCX files.      (line 104)
+* interaction between TCX files and -8bit.: TCX files.        (line 104)
 * interaction mode:                      Common options.      (line  50)
 * international characters:              TCX files.           (line   6)
 * introduction:                          Introduction.        (line   6)
@@ -3984,7 +4055,8 @@
 * memory dumps, creating:                Creating memory dumps.
                                                               (line   6)
 * mems Make target:                      Additional targets.  (line  34)
-* meta characters in filenames:          \input filenames.    (line  34)
+* meta characters in filenames:          \input filename caveats.
+                                                              (line  12)
 * Metafont:                              Metafont.            (line   6)
 * Metafont geometry:                     Online Metafont graphics.
                                                               (line  69)
@@ -4004,7 +4076,7 @@
                                                               (line  15)
 * MetaPost input files:                  mpost invocation.    (line  30)
 * MetaPost invocation:                   mpost invocation.    (line   6)
-* MetaPost source, prettyprinting:       mft invocation.      (line  78)
+* MetaPost source, prettyprinting:       mft invocation.      (line  79)
 * MetaPost, initial:                     Initial MetaPost.    (line   6)
 * MetaPost, TeX, and Metafont:           Three programs.      (line   6)
 * metatype1:                             Font utilities available elsewhere.
@@ -4044,6 +4116,8 @@
 * mptrap.readme:                         Triptrap.            (line   6)
 * MPX files, converting from DVI files:  dvitomp invocation.  (line   6)
 * Multi-lingual TeX:                     MLTeX.               (line   6)
+* multiple spaces, and \input filenames: \input filename caveats.
+                                                              (line   6)
 * N tilde:                               \charsubdef.         (line  36)
 * new graphics support for Metafont:     Online Metafont graphics.
                                                               (line  79)
@@ -4055,7 +4129,8 @@
                                                               (line  65)
 * NO_X11WIN:                             Online Metafont graphics.
                                                               (line  56)
-* NUL, not allowed in filenames:         \input filenames.    (line  34)
+* NUL, not allowed in filenames:         \input filename caveats.
+                                                              (line  12)
 * octal character codes, in TCX files:   TCX files.           (line  77)
 * offset for overflow labels:            gftodvi invocation.  (line  59)
 * online Metafont graphics:              Online Metafont graphics.
@@ -4081,7 +4156,7 @@
 * path searching:                        Path searching.      (line   6)
 * path searching debugging:              Common options.      (line  59)
 * PDF:                                   TeX extensions.      (line  20)
-* PDF, and '.mps' files:                 mpost invocation.    (line  86)
+* PDF, and .mps files:                   mpost invocation.    (line  86)
 * pdfTeX:                                TeX extensions.      (line  20)
 * permissions, legal:                    Legalisms.           (line   6)
 * PFA and PFB conversion:                Font utilities available elsewhere.
@@ -4114,13 +4189,13 @@
 * plain.bst:                             Basic BibTeX style files.
                                                               (line  11)
 * plain.fmt:                             Initial TeX.         (line  13)
-* plain.mft:                             mft invocation.      (line  66)
+* plain.mft:                             mft invocation.      (line  67)
 * pltotf:                                pltotf invocation.   (line   6)
 * pool file, writing:                    tangle invocation.   (line  16)
 * Poole, Simon:                          Online Metafont graphics.
                                                               (line  50)
 * pooltype:                              pooltype invocation. (line   6)
-* portable filenames:                    \input filenames.    (line  40)
+* portable filenames:                    \input filenames.    (line  25)
 * PostScript fonts, and Troff:           mpost invocation.    (line  65)
 * PostScript meets Metafont:             MetaPost.            (line   6)
 * PostScript output:                     mpost invocation.    (line  35)
@@ -4156,6 +4231,8 @@
 * PXL files, explained:                  Font file formats.   (line  39)
 * pxtoch:                                Font utilities available elsewhere.
                                                               (line  23)
+* quoted filename for \input:            \input quoted filename.
+                                                              (line   6)
 * Raichle, Bernd:                        MLTeX.               (line   6)
 * reading, additional:                   Introduction.        (line  60)
 * readonly directory, running TeX in:    Output file location.
@@ -4187,8 +4264,8 @@
                                                               (line  42)
 * security, and output files:            tex invocation.      (line  48)
 * security, and shell escapes:           Shell escapes.       (line   6)
-* security, and 'write':                 mpost invocation.    (line  92)
-* security, and '\openout':              tex invocation.      (line  48)
+* security, and write:                   mpost invocation.    (line  92)
+* security, and \openout:                tex invocation.      (line  48)
 * shapes:                                Metafont.            (line   6)
 * sharing memory dumps:                  Hardware and memory dumps.
                                                               (line   6)
@@ -4218,7 +4295,7 @@
 * string pool, writing:                  tangle invocation.   (line  16)
 * string representation:                 pooltype invocation. (line  30)
 * style design, for BibTeX:              bibtex invocation.   (line  49)
-* style files:                           mft invocation.      (line  66)
+* style files:                           mft invocation.      (line  67)
 * substitutions of font glyphs:          MLTeX.               (line   6)
 * sun:                                   Online Metafont graphics.
                                                               (line  42)
@@ -4235,6 +4312,8 @@
 * system C library function:             Shell escapes.       (line   6)
 * system command:                        Shell escapes.       (line   6)
 * T1 encoding and ISO input:             TCX files.           (line  48)
+* tabs, and \input filenames:            \input filename caveats.
+                                                              (line   6)
 * Tachikawa, Elizabeth:                  Font file formats.   (line  62)
 * tangle:                                tangle invocation.   (line   6)
 * targets, additional Make:              Additional targets.  (line   6)
@@ -4271,7 +4350,7 @@
                                                               (line  79)
 * TEXMFOUTPUT, used for reading:         Output file location.
                                                               (line  25)
-* TEXMFOUTPUT, used if '.' unwritable:   Output file location.
+* TEXMFOUTPUT, used if . unwritable:     Output file location.
                                                               (line  19)
 * texput:                                tex invocation.      (line  33)
 * TFM files, converting property lists to: pltotf invocation. (line   6)
@@ -4286,6 +4365,8 @@
 * time and date, in memory dumps:        Hardware and memory dumps.
                                                               (line  30)
 * title font:                            gftodvi invocation.  (line  33)
+* tokenization, and \input filenames:    \input filename caveats.
+                                                              (line   6)
 * toolkits, X:                           Online Metafont graphics.
                                                               (line  59)
 * torture tests:                         Triptrap.            (line   6)
@@ -4390,75 +4471,83 @@
 
 
 Tag Table:
-Node: Top2754
-Node: Introduction3751
-Node: Installation6911
-Node: configure options9013
-Node: Compile-time options11035
-Node: Additional targets12137
-Node: Triptrap13414
-Node: Runtime options14941
-Node: Commonalities16699
-Node: Option conventions17300
-Node: Common options18523
-Node: Path searching22903
-Node: Output file location23875
-Node: Three programs25200
-Node: Initial and virgin25954
-Node: Memory dumps26883
-Node: Creating memory dumps27339
-Node: Determining the memory dump to use28550
-Node: Hardware and memory dumps30131
-Node: Editor invocation32581
-Node: \input filenames33448
-Node: TeX36441
-Node: tex invocation37592
-Node: Initial TeX44495
-Node: Formats45859
-Node: Languages and hyphenation48785
-Node: MLTeX49215
-Node: \charsubdef50703
-Node: \tracingcharsubdef53026
-Node: TCX files53601
-Node: patgen invocation59041
-Node: Shell escapes59747
-Node: IPC and TeX63327
-Node: TeX extensions63897
-Node: Metafont65028
-Node: mf invocation66316
-Node: Initial Metafont70153
-Node: Modes71783
-Node: Online Metafont graphics74033
-Node: gftodvi invocation77458
-Node: mft invocation80278
-Node: MetaPost84276
-Node: mpost invocation85038
-Node: Initial MetaPost90214
-Node: dvitomp invocation91136
-Node: BibTeX91801
-Node: bibtex invocation92162
-Node: Basic BibTeX style files94636
-Node: WEB95966
-Node: tangle invocation97207
-Node: weave invocation99330
-Node: pooltype invocation100737
-Node: DVI utilities101867
-Node: dvicopy invocation102799
-Node: dvitype invocation104082
-Node: dvitype output example106417
-Node: Font utilities109468
-Node: Font file formats110648
-Node: gftopk invocation113917
-Node: pktogf invocation115108
-Node: pktype invocation116274
-Node: gftype invocation119097
-Node: tftopl invocation123600
-Node: pltotf invocation128193
-Node: vftovp invocation129244
-Node: vptovf invocation131479
-Node: Font utilities available elsewhere132506
-Node: Legalisms134886
-Node: References137040
-Node: Index141607
+Node: Top2765
+Node: Introduction3760
+Node: Installation6918
+Node: configure options9020
+Node: Compile-time options11042
+Node: Additional targets12144
+Node: Triptrap13421
+Node: Runtime options14948
+Node: Commonalities16706
+Node: Option conventions17307
+Node: Common options18530
+Node: Path searching22910
+Node: Output file location23882
+Node: Three programs25207
+Node: Initial and virgin25973
+Node: Memory dumps26902
+Node: Creating memory dumps27358
+Node: Determining the memory dump to use28569
+Node: Hardware and memory dumps30150
+Node: Editor invocation32600
+Node: \input filenames33467
+Node: \input quoted filename35012
+Node: \input braced filename35793
+Node: \input filename caveats36727
+Node: TeX38245
+Node: tex invocation39396
+Node: Initial TeX46299
+Node: Formats47663
+Node: Languages and hyphenation50589
+Node: MLTeX51019
+Node: \charsubdef52507
+Node: \tracingcharsubdef54830
+Node: TCX files55405
+Node: patgen invocation60845
+Node: Shell escapes61551
+Node: IPC and TeX65131
+Node: TeX extensions65701
+Node: Metafont66832
+Node: mf invocation68120
+Node: Initial Metafont71957
+Node: Modes73587
+Node: Online Metafont graphics75837
+Node: gftodvi invocation79262
+Node: mft invocation82082
+Node: MetaPost86080
+Node: mpost invocation86842
+Node: Initial MetaPost92018
+Node: dvitomp invocation92940
+Node: BibTeX93605
+Node: bibtex invocation93966
+Node: Basic BibTeX style files96440
+Node: WEB97770
+Node: tangle invocation98979
+Node: weave invocation101102
+Node: pooltype invocation102509
+Node: DVI utilities103639
+Node: dvicopy invocation104571
+Node: dvitype invocation105854
+Node: dvitype output example108183
+Node: Font utilities111234
+Node: Font file formats112414
+Node: gftopk invocation115683
+Node: pktogf invocation116874
+Node: pktype invocation118040
+Node: gftype invocation120863
+Node: tftopl invocation125366
+Node: pltotf invocation129959
+Node: vftovp invocation131010
+Node: vptovf invocation133245
+Node: Font utilities available elsewhere134272
+Node: Legalisms136652
+Node: References138806
+Node: Index143373
 
 End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:

Modified: branches/stable/source/src/texk/web2c/doc/web2c.texi
===================================================================
--- branches/stable/source/src/texk/web2c/doc/web2c.texi	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/web2c/doc/web2c.texi	2020-05-14 18:05:47 UTC (rev 824)
@@ -12,7 +12,7 @@
 @end tex
 
 @set version 2020
- at set month-year January 2020
+ at set month-year March 2020
 
 @c Define new indices for commands in auxiliary files, filenames, and options.
 @defcodeindex cm
@@ -63,7 +63,7 @@
 an implementation of Donald Knuth's TeX system.
 
 Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-2004, 2005, 2007, 2008, 2009 Karl Berry & Olaf Weber.
+2004, 2005, 2007, 2008, 2009, 2010-2020 Karl Berry & Olaf Weber.
 
 Permission is granted to make and distribute verbatim copies of this
 manual provided the copyright notice and this permission notice are
@@ -88,7 +88,6 @@
 
 
 @titlepage
-
 @title Web2c
 @subtitle for version @value{version}
 @subtitle @value{month-year}
@@ -525,7 +524,7 @@
 * Initial and virgin::          Making memory dumps vs. production runs.
 * Memory dumps::                .fmt/.base files for fast startup.
 * Editor invocation::           The `e' response at errors.
-* \input filenames::            ~ and $ expansion in TeX/MF/MP.
+* \input filenames::            Filename delimiters and Kpathsea expansion.
 @end menu
 
 
@@ -808,9 +807,42 @@
 @code{\input} that allow different notation; here we are concerned only
 with the primitive operation.)  
 
-As of Web2c version 7.5.3, double-quote characters can be used to
-include spaces or other special cases.  In typical use, the @samp{"}
-characters surround the entire filename:
+As (allowed) extensions to standard @TeX{}, Web2c also supports
+specifying the filename in double quotes (@code{"some name"}) and in
+braces (@code{@{"some name"@}}), which is convenient for filenames
+containing spaces or other special characters, as described in the
+sections below.
+
+In all cases, space tokens are ignored after the filename is read.
+
+ at cindex @code{"} character, ignored in filenames
+ at cindex double quote character, ignored in filenames
+Also, double quote (@code{"}) characters are ignored within the
+filename; there is no way to read files whose names contain a @code{"}.
+
+ at cindex portable filenames
+However, for maximal portability of your document across systems, use
+only the characters @samp{a}-- at samp{z}, @samp{0}-- at samp{9}, and
+ at samp{.}.  Do not use anything but simple filenames, since directory
+separators vary among systems; instead, add the necessary directories
+to the appropriate search path.
+
+ at menu
+* Quotes: \input quoted filename.   \input "some name"
+* Braces: \input braced filename.   \input @{some name@}
+* Caveats: \input filename caveats. Tokenization, nulls, Kpathsea expansion.
+ at end menu
+
+
+ at node \input quoted filename
+ at subsubsection @code{\input} quoted filename: @code{\input "some name"}
+
+ at cindex @code{\input} quoted filename
+ at cindex quoted filename for @code{\input}
+
+As of Web2c version 7.5.3 (2004), double-quote characters can be used
+to include spaces or other special characters.  In typical use, the
+ at samp{"} characters surround the entire filename:
 @example
 \input "filename with spaces"
 @end example
@@ -821,17 +853,58 @@
 \input filename" "with" "spaces
 @end example
 
-One more point.  In @LaTeX{}, the quotes are needed inside the braces, thus
+One more point.  In @LaTeX{}, the quotes are needed inside the braces
+of its @code{\input} macro, thus:
 @example
 \input@{a b@}    % fails
 \input@{"a b"@}  % ok
 @end example
 
-This quoting mechanism comes into play @emph{after} @TeX{} has
-tokenized and expanded the input.  So, multiple spaces and tabs may be
-seen as a single space, active characters such as @samp{~} are
-expanded first, and so on.  (See below.)
+There is no way to quote the quote character.
 
+
+ at node \input braced filename
+ at subsubsection @code{\input} braced filename: @code{\input@{some name@}}
+
+ at cindex @code{\input} braced (grouped) filename
+ at cindex braced filename for @code{\input}
+ at cindex group-delimited filename for @code{\input}
+
+As of Web2c 2020, @code{\input} filenames in @TeX{} engines (this does
+not apply in Metafont and MetaPost) can also be specified within a
+ at TeX{} group, typically curly braces. For example:
+ at example
+\input@{filename with spaces@}
+ at end example
+
+As always with @TeX{}, the brace characters are not hardwired; what
+counts is the category code: the first token after the @code{\input}
+must be of catcode at tie{}1 (begin group), and it is matched with the
+next character of catcode at tie{}2 (end group).
+
+Within the group-delimited filename, braces are treated as normal
+characters.
+
+As with all forms of filenames, following spaces are ignored (after
+the end group), and double quote (@code{"}) characters are ignored
+within the filename.
+
+
+ at node \input filename caveats
+ at subsubsection @code{\input} filename caveats
+
+ at cindex @code{\input} filename caveats
+ at cindex caveats for @code{\input} filenames
+ at cindex tokenization, and @code{\input} filenames
+ at cindex expansion, and @code{\input} filenames
+ at cindex multiple spaces, and @code{\input} filenames
+ at cindex tabs, and @code{\input} filenames
+The quoting mechanisms just described come into play @emph{after}
+ at TeX{} has tokenized and expanded the input.  So, multiple spaces and
+tabs will generally be seen as a single space, active characters such
+as @samp{~} are expanded first (generally causing an error), and so
+on.  More examples below.
+
 @cindex NUL, not allowed in filenames
 @cindex eight-bit characters in filenames
 @cindex meta characters in filenames
@@ -839,42 +912,29 @@
 byte (character code zero, ASCII NUL) to terminate strings.  So
 filenames in Web2c cannot contain nulls, even though @TeX{} itself does
 not treat NUL specially.
-In addition, some older Unix variants do not allow eight-bit characters
-(codes 128--255) in filenames.
 
- at cindex portable filenames
-For maximal portability of your document across systems, use only the
-characters @samp{a}-- at samp{z}, @samp{0}-- at samp{9}, and @samp{.}, and
-restrict your filenames to at most eight characters (not including the
-extension), and at most a three-character extension.  Do not use
-anything but simple filenames, since directory separators vary among
-systems; instead, add the necessary directories to the appropriate
-search path.
-
 @kindex ~ @r{expansion in filenames}
 @kindex $ @r{expansion in filenames}
 Finally, the present Web2c implementation does @samp{~} and @samp{$}
-expansion on @var{name}, unlike Knuth's original implementation and
-older versions of Web2c.  Thus:
+expansion on @var{name}, unlike Knuth's original implementation.
+Thus:
 @example
 \input ~jsmith/$foo.bar
 @end example
-will dereference the environment variable or Kpathsea config file value
- at samp{foo} and read that file extended with @samp{.bar} in user
- at samp{jsmith}'s home directory.  You can also use braces, as in
- at samp{$@{foo@}bar}, if you want to follow the variable name with a letter,
-numeral, or @samp{_}.
+will dereference the environment variable or Kpathsea config file
+value @samp{foo} and read that file, extended with @samp{.bar}, in
+user @samp{jsmith}'s home directory.  You can also use braces in the
+variable expansion, as in @samp{$@{foo@}bar}, if you want to follow
+the variable name with a letter, numeral, or @samp{_}.
 
 (So another way to get a program to read a filename containing
 whitespace is to define an environment variable and dereference it.)
 
- at findex \string
-In all the common @TeX{} formats (plain @TeX{}, @LaTeX{}, AMS at TeX{}),
-the characters @samp{~} and @samp{$} have special category codes, so to
-actually use these in a document you have to change their catcodes or
-use @code{\string}.  (The result is unportable anyway, see the
-suggestions above.)  The place where they are most likely to be useful
-is when typing interactively.
+ at findex \string at r{, and @code{\input filenames}}
+In all the common @TeX{} formats (plain @TeX{}, @LaTeX{}, Con at TeX{}t,
+AMS at TeX{}, @dots{}), the characters @samp{~} and @samp{$} have special
+category codes, so to actually use these in a document you have to
+change their catcodes or use @code{\string}.
 
 
 @node TeX

Modified: branches/stable/source/src/texk/web2c/pdftexdir/ChangeLog
===================================================================
--- branches/stable/source/src/texk/web2c/pdftexdir/ChangeLog	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/web2c/pdftexdir/ChangeLog	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,3 +1,11 @@
+2020-03-27  Karl Berry  <karl at tug.org>
+
+	* TeX Live 2020, pdftex 1.40.21.
+
+2020-02-29  Akira Kakuto  <kakuto at w32tex.org>
+
+	Add pdftoepdf-poppler0.86.0.cc to support system poppler 0.86.0.
+
 2019-12-30  Akira Kakuto  <kakuto at w32tex.org>
 
 	* utils.c: Not include poppler-config.h, by assuming that

Modified: branches/stable/source/src/texk/web2c/pdftexdir/NEWS
===================================================================
--- branches/stable/source/src/texk/web2c/pdftexdir/NEWS	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/web2c/pdftexdir/NEWS	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,4 +1,4 @@
-pdfTeX 3.14159265-2.6-1.40.21 (TeX Live 2020)
+pdfTeX 3.14159265-2.6-1.40.21 (TeX Live 2020) (March 27, 2020)
 - changes:
   - new primitive \pdfmajorversion; this merely changes the version
     number in the PDF output, has no effect on PDF content.
@@ -49,11 +49,12 @@
   pdftoepdf-poppler0.72.0.cc for poppler-0.72.0 upto poppler-0.74.0.
   pdftoepdf-poppler0.75.0.cc for poppler-0.75.0.
   pdftoepdf-poppler0.76.0.cc for poppler-0.76.0 upto poppler-0.82.0.
-  pdftoepdf-poppler0.83.0.cc for poppler-0.83.0 and newer.
+  pdftoepdf-poppler0.83.0.cc for poppler-0.83.0 upto poppler-0.85.0.
+  pdftoepdf-poppler0.86.0.cc for poppler-0.86.0 and newer.
   Note that pdftosrc-*.cc and pdftoepdf-*.cc should be
   renamed as pdftosrc.cc, and pdftoepdf.cc, respectively, before
   compilation. Further, POPPLER_VERSION should be defined properly
-  like -DPOPPLER_VERSION='"0.84.0"'.
+  like -DPOPPLER_VERSION='"0.86.0"'.
 
 ---------------------------------------------------------------
 pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017)  (April 27, 2017)

Modified: branches/stable/source/src/texk/web2c/pdftexdir/pdftex.web
===================================================================
--- branches/stable/source/src/texk/web2c/pdftexdir/pdftex.web	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/web2c/pdftexdir/pdftex.web	2020-05-14 18:05:47 UTC (rev 824)
@@ -17434,8 +17434,7 @@
         else
             k := read_font_info(null_cs, s, "", font_size[f]);
     end;
-    if k <> null_font then
-        copy_expand_params(k, f, e);
+    copy_expand_params(k, f, e);
     load_expand_font := k;
 end;
 
@@ -17991,12 +17990,12 @@
             vf_local_font_warning(f, k, "checksum mismatch");
         if ds <> font_dsize[k] then
             vf_local_font_warning(f, k, "design size mismatch");
-        if (pdf_font_step[f] <> 0) then
-            set_expand_params(k, pdf_font_auto_expand[f],
-                              pdf_font_expand_ratio[pdf_font_stretch[f]],
-                              -pdf_font_expand_ratio[pdf_font_shrink[f]],
-                              pdf_font_step[f], pdf_font_expand_ratio[f]);
     end;
+    if (pdf_font_step[f] <> 0) then
+        set_expand_params(k, pdf_font_auto_expand[f],
+                          pdf_font_expand_ratio[pdf_font_stretch[f]],
+                          -pdf_font_expand_ratio[pdf_font_shrink[f]],
+                          pdf_font_step[f], pdf_font_expand_ratio[f]);
     vf_def_font := k;
 end;
 

Modified: branches/stable/source/src/texk/web2c/pdftexdir/pdftoepdf-poppler0.83.0.cc
===================================================================
--- branches/stable/source/src/texk/web2c/pdftexdir/pdftoepdf-poppler0.83.0.cc	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/texk/web2c/pdftexdir/pdftoepdf-poppler0.83.0.cc	2020-05-14 18:05:47 UTC (rev 824)
@@ -22,7 +22,7 @@
 https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk
 by Arch Linux. A little modifications are made to avoid a crash for
 some kind of pdf images, such as figure_missing.pdf in gnuplot.
-The poppler should be 0.83.0 or newer versions.
+The poppler should be 0.83.0 up to 0.85.0.
 POPPLER_VERSION should be defined.
 */
 

Added: branches/stable/source/src/texk/web2c/pdftexdir/pdftoepdf-poppler0.86.0.cc
===================================================================
--- branches/stable/source/src/texk/web2c/pdftexdir/pdftoepdf-poppler0.86.0.cc	                        (rev 0)
+++ branches/stable/source/src/texk/web2c/pdftexdir/pdftoepdf-poppler0.86.0.cc	2020-05-14 18:05:47 UTC (rev 824)
@@ -0,0 +1,1110 @@
+/*
+Copyright 1996-2017 Han The Thanh, <thanh at pdftex.org>
+
+This file is part of pdfTeX.
+
+pdfTeX is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+pdfTeX is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+This is based on the patch texlive-poppler-0.59.patch <2017-09-19> at
+https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk
+by Arch Linux. A little modifications are made to avoid a crash for
+some kind of pdf images, such as figure_missing.pdf in gnuplot.
+The poppler should be 0.86.0 or newer versions.
+POPPLER_VERSION should be defined.
+*/
+
+/* Do this early in order to avoid a conflict between
+   MINGW32 <rpcndr.h> defining 'boolean' as 'unsigned char' and
+   <kpathsea/types.h> defining Pascal's boolean as 'int'.
+*/
+#include <w2c/config.h>
+#include <kpathsea/lib.h>
+
+#include <stdlib.h>
+#include <math.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+
+#ifdef POPPLER_VERSION
+#include <dirent.h>
+#include <poppler-config.h>
+#include <goo/GooString.h>
+#include <goo/gmem.h>
+#include <goo/gfile.h>
+#define GString GooString
+#else
+#error POPPLER_VERSION should be defined.
+#endif
+#include <assert.h>
+
+#include "Object.h"
+#include "Stream.h"
+#include "Array.h"
+#include "Dict.h"
+#include "XRef.h"
+#include "Catalog.h"
+#include "Link.h"
+#include "Page.h"
+#include "GfxFont.h"
+#include "PDFDoc.h"
+#include "GlobalParams.h"
+#include "Error.h"
+
+// This file is mostly C and not very much C++; it's just used to interface
+// the functions of xpdf, which are written in C++.
+
+extern "C" {
+#include <pdftexdir/ptexmac.h>
+#include <pdftexdir/pdftex-common.h>
+
+// These functions from pdftex.web gets declared in pdftexcoerce.h in the
+// usual web2c way, but we cannot include that file here because C++
+// does not allow it.
+extern int getpdfsuppresswarningpagegroup(void);
+extern integer getpdfsuppressptexinfo(void);
+extern integer zround(double);
+}
+
+// The prefix "PTEX" for the PDF keys is special to pdfTeX;
+// this has been registered with Adobe by Hans Hagen.
+
+#define pdfkeyprefix "PTEX"
+
+#define MASK_SUPPRESS_PTEX_FULLBANNER 0x01
+#define MASK_SUPPRESS_PTEX_FILENAME   0x02
+#define MASK_SUPPRESS_PTEX_PAGENUMBER 0x04
+#define MASK_SUPPRESS_PTEX_INFODICT   0x08
+
+// When copying the Resources of the selected page, all objects are copied
+// recusively top-down. Indirect objects however are not fetched during
+// copying, but get a new object number from pdfTeX and then will be
+// appended into a linked list. Duplicates are checked and removed from the
+// list of indirect objects during appending.
+
+enum InObjType {
+    objFont,
+    objFontDesc,
+    objOther
+};
+
+struct InObj {
+    Ref ref;                    // ref in original PDF
+    InObjType type;             // object type
+    InObj *next;                // next entry in list of indirect objects
+    int num;                    // new object number in output PDF
+    fd_entry *fd;               // pointer to /FontDescriptor object structure
+    int enc_objnum;             // Encoding for objFont
+    int written;                // has it been written to output PDF?
+};
+
+struct UsedEncoding {
+    int enc_objnum;
+    GfxFont *font;
+    UsedEncoding *next;
+};
+
+static InObj *inObjList;
+static UsedEncoding *encodingList;
+static bool isInit = false;
+
+// --------------------------------------------------------------------
+// Maintain list of open embedded PDF files
+// --------------------------------------------------------------------
+
+struct PdfDocument {
+    char *file_name;
+    PDFDoc *doc;
+    XRef *xref;
+    InObj *inObjList;
+    int occurences;             // number of references to the document; the doc can be
+    // deleted when this is negative
+    PdfDocument *next;
+};
+
+static PdfDocument *pdfDocuments = 0;
+
+static XRef *xref = 0;
+
+// Returns pointer to PdfDocument record for PDF file.
+// Creates a new record if it doesn't exist yet.
+// xref is made current for the document.
+
+static PdfDocument *find_add_document(char *file_name)
+{
+    PdfDocument *p = pdfDocuments;
+    while (p && strcmp(p->file_name, file_name) != 0)
+        p = p->next;
+    if (p) {
+        xref = p->xref;
+        (p->occurences)++;
+        return p;
+    }
+    p = new PdfDocument;
+    p->file_name = xstrdup(file_name);
+    p->xref = xref = 0;
+    p->occurences = 0;
+    GString *docName = new GString(p->file_name);
+    p->doc = new PDFDoc(docName);       // takes ownership of docName
+    if (!p->doc->isOk() || !p->doc->okToPrint()) {
+        pdftex_fail("xpdf: reading PDF image failed");
+    }
+    p->inObjList = 0;
+    p->next = pdfDocuments;
+    pdfDocuments = p;
+    return p;
+}
+
+// Deallocate a PdfDocument with all its resources
+
+static void delete_document(PdfDocument * pdf_doc)
+{
+    PdfDocument **p = &pdfDocuments;
+    while (*p && *p != pdf_doc)
+        p = &((*p)->next);
+    // should not happen:
+    if (!*p)
+        return;
+    // unlink from list
+    *p = pdf_doc->next;
+    // free pdf_doc's resources
+    InObj *r, *n;
+    for (r = pdf_doc->inObjList; r != 0; r = n) {
+        n = r->next;
+        delete r;
+    }
+    xref = pdf_doc->xref;
+    delete pdf_doc->doc;
+    xfree(pdf_doc->file_name);
+    delete pdf_doc;
+}
+
+// --------------------------------------------------------------------
+
+static int addEncoding(GfxFont * gfont)
+{
+    UsedEncoding *n;
+    n = new UsedEncoding;
+    n->next = encodingList;
+    encodingList = n;
+    n->font = gfont;
+    n->enc_objnum = pdfnewobjnum();
+    return n->enc_objnum;
+}
+
+#define addFont(ref, fd, enc_objnum) \
+        addInObj(objFont, ref, fd, enc_objnum)
+
+// addFontDesc is only used to avoid writing the original FontDescriptor
+// from the PDF file.
+
+#define addFontDesc(ref, fd) \
+        addInObj(objFontDesc, ref, fd, 0)
+
+#define addOther(ref) \
+        addInObj(objOther, ref, 0, 0)
+
+static int addInObj(InObjType type, Ref ref, fd_entry * fd, int e)
+{
+    InObj *p, *q, *n = new InObj;
+    if (ref.num == 0)
+        pdftex_fail("PDF inclusion: invalid reference");
+    n->ref = ref;
+    n->type = type;
+    n->next = 0;
+    n->fd = fd;
+    n->enc_objnum = e;
+    n->written = 0;
+    if (inObjList == 0)
+        inObjList = n;
+    else {
+        for (p = inObjList; p != 0; p = p->next) {
+            if (p->ref.num == ref.num && p->ref.gen == ref.gen) {
+                delete n;
+                return p->num;
+            }
+            q = p;
+        }
+        // it is important to add new objects at the end of the list,
+        // because new objects are being added while the list is being
+        // written out.
+        q->next = n;
+    }
+    if (type == objFontDesc)
+        n->num = get_fd_objnum(fd);
+    else
+        n->num = pdfnewobjnum();
+    return n->num;
+}
+
+#if 0 /* unusewd */
+static int getNewObjectNumber(Ref ref)
+{
+    InObj *p;
+    if (inObjList == 0) {
+        pdftex_fail("No objects copied yet");
+    } else {
+        for (p = inObjList; p != 0; p = p->next) {
+            if (p->ref.num == ref.num && p->ref.gen == ref.gen) {
+                return p->num;
+            }
+        }
+        pdftex_fail("Object not yet copied: %i %i", ref.num, ref.gen);
+    }
+#ifdef _MSC_VER
+    /* Never reached, but without __attribute__((noreturn)) for pdftex_fail()
+       MSVC 5.0 requires an int return value.  */
+    return -60000;
+#endif
+}
+#endif
+
+static void copyObject(Object *);
+
+static void copyName(char *s)
+{
+    pdf_puts("/");
+    for (; *s != 0; s++) {
+        if (isdigit(*s) || isupper(*s) || islower(*s) || *s == '_' ||
+            *s == '.' || *s == '-' || *s == '+')
+            pdfout(*s);
+        else
+            pdf_printf("#%.2X", *s & 0xFF);
+    }
+}
+
+static void copyDictEntry(Object * obj, int i)
+{
+    Object obj1;
+    copyName((char *)obj->dictGetKey(i));
+    pdf_puts(" ");
+    obj1 = obj->dictGetValNF(i).copy();
+    copyObject(&obj1);
+    pdf_puts("\n");
+}
+
+static void copyDict(Object * obj)
+{
+    int i, l;
+    if (!obj->isDict())
+        pdftex_fail("PDF inclusion: invalid dict type <%s>",
+                    obj->getTypeName());
+    for (i = 0, l = obj->dictGetLength(); i < l; ++i)
+        copyDictEntry(obj, i);
+}
+
+static void copyFontDict(Object * obj, InObj * r)
+{
+    int i, l;
+    char *key;
+    if (!obj->isDict())
+        pdftex_fail("PDF inclusion: invalid dict type <%s>",
+                    obj->getTypeName());
+    pdf_puts("<<\n");
+    assert(r->type == objFont); // FontDescriptor is in fd_tree
+    for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
+        key = (char *)obj->dictGetKey(i);
+        if (strncmp("FontDescriptor", key, strlen("FontDescriptor")) == 0
+            || strncmp("BaseFont", key, strlen("BaseFont")) == 0
+            || strncmp("Encoding", key, strlen("Encoding")) == 0)
+            continue;           // skip original values
+        copyDictEntry(obj, i);
+    }
+    // write new FontDescriptor, BaseFont, and Encoding
+    pdf_printf("/FontDescriptor %d 0 R\n", get_fd_objnum(r->fd));
+    pdf_printf("/BaseFont %d 0 R\n", get_fn_objnum(r->fd));
+    pdf_printf("/Encoding %d 0 R\n", r->enc_objnum);
+    pdf_puts(">>");
+}
+
+static void copyStream(Stream * str)
+{
+    int c, c2 = 0;
+    str->reset();
+    while ((c = str->getChar()) != EOF) {
+        pdfout(c);
+        c2 = c;
+    }
+    pdflastbyte = c2;
+}
+
+static void copyProcSet(Object * obj)
+{
+    int i, l;
+    Object procset;
+    if (!obj->isArray())
+        pdftex_fail("PDF inclusion: invalid ProcSet array type <%s>",
+                    obj->getTypeName());
+    pdf_puts("/ProcSet [ ");
+    for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
+        procset = obj->arrayGetNF(i).copy();
+        if (!procset.isName())
+            pdftex_fail("PDF inclusion: invalid ProcSet entry type <%s>",
+                        procset.getTypeName());
+        copyName((char *)procset.getName());
+        pdf_puts(" ");
+    }
+    pdf_puts("]\n");
+}
+
+#define REPLACE_TYPE1C true
+
+static bool embeddableFont(Object * fontdesc)
+{
+    Object fontfile, ffsubtype;
+
+    if (!fontdesc->isDict())
+        return false;
+    fontfile = fontdesc->dictLookup("FontFile");
+    if (fontfile.isStream())
+        return true;
+    if (REPLACE_TYPE1C) {
+        fontfile = fontdesc->dictLookup("FontFile3");
+        if (!fontfile.isStream())
+            return false;
+        ffsubtype = fontfile.streamGetDict()->lookup("Subtype");
+        return ffsubtype.isName() && !strcmp(ffsubtype.getName(), "Type1C");
+    }
+    return false;
+}
+
+static void copyFont(char *tag, Object * fontRef)
+{
+    Object fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
+        stemV;
+    GfxFont *gfont;
+    fd_entry *fd;
+    fm_entry *fontmap;
+    // Check whether the font has already been embedded before analysing it.
+    InObj *p;
+    Ref ref = fontRef->getRef();
+    for (p = inObjList; p; p = p->next) {
+        if (p->ref.num == ref.num && p->ref.gen == ref.gen) {
+            copyName(tag);
+            pdf_printf(" %d 0 R ", p->num);
+            return;
+        }
+    }
+    // Only handle included Type1 (and Type1C) fonts; anything else will be copied.
+    // Type1C fonts are replaced by Type1 fonts, if REPLACE_TYPE1C is true.
+    fontdict = fontRef->fetch(xref);
+    fontdesc = Object(objNull);
+    if (fontdict.isDict()) {
+        subtype = fontdict.dictLookup("Subtype");
+        basefont = fontdict.dictLookup("BaseFont");
+        fontdescRef = fontdict.dictLookupNF("FontDescriptor").copy();
+        if (fontdescRef.isRef()) {
+            fontdesc = fontdescRef.fetch(xref);
+        }
+    }
+    if (!fixedinclusioncopyfont && fontdict.isDict()
+        && subtype.isName()
+        && !strcmp(subtype.getName(), "Type1")
+        && basefont.isName()
+        && fontdescRef.isRef()
+        && fontdesc.isDict()
+        && embeddableFont(&fontdesc)
+        && (fontmap = lookup_fontmap((char *)basefont.getName())) != NULL) {
+        // round /StemV value, since the PDF input is a float
+        // (see Font Descriptors in PDF reference), but we only store an
+        // integer, since we don't want to change the struct.
+        stemV = fontdesc.dictLookup("StemV");
+        fd = epdf_create_fontdescriptor(fontmap, zround(stemV.getNum()));
+        charset = fontdesc.dictLookup("CharSet");
+        if (!charset.isNull() &&
+            charset.isString() && is_subsetable(fontmap))
+            epdf_mark_glyphs(fd, (char *)charset.getString()->c_str());
+        else
+            embed_whole_font(fd);
+        addFontDesc(fontdescRef.getRef(), fd);
+        copyName(tag);
+        gfont = GfxFont::makeFont(xref, tag, fontRef->getRef(),
+                                  fontdict.getDict());
+        pdf_printf(" %d 0 R ", addFont(fontRef->getRef(), fd,
+                                       addEncoding(gfont)));
+    } else {
+        copyName(tag);
+        pdf_puts(" ");
+        copyObject(fontRef);
+    }
+}
+
+static void copyFontResources(Object * obj)
+{
+    Object fontRef;
+    int i, l;
+    if (!obj->isDict())
+        pdftex_fail("PDF inclusion: invalid font resources dict type <%s>",
+                    obj->getTypeName());
+    pdf_puts("/Font << ");
+    for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
+        fontRef = obj->dictGetValNF(i).copy();
+        if (fontRef.isRef())
+            copyFont((char *)obj->dictGetKey(i), &fontRef);
+        else if (fontRef.isDict()) {   // some programs generate pdf with embedded font object
+            copyName((char *)obj->dictGetKey(i));
+            pdf_puts(" ");
+            copyObject(&fontRef);
+        }
+        else
+            pdftex_fail("PDF inclusion: invalid font in reference type <%s>",
+                        fontRef.getTypeName());
+    }
+    pdf_puts(">>\n");
+}
+
+static void copyOtherResources(Object * obj, char *key)
+{
+    // copies all other resources (write_epdf handles Fonts and ProcSets),
+
+    // if Subtype is present, it must be a name
+    if (strcmp("Subtype", key) == 0) {
+        if (!obj->isName()) {
+            pdftex_warn("PDF inclusion: Subtype in Resources dict is not a name"
+                        " (key '%s', type <%s>); ignored.",
+                        key, obj->getTypeName());
+            return;
+        }
+    } else if (!obj->isDict()) {
+        //FIXME: Write the message only to the log file
+        pdftex_warn("PDF inclusion: invalid other resource which is no dict"
+                    " (key '%s', type <%s>); ignored.",
+                    key, obj->getTypeName());
+        return;
+    }
+    copyName(key);
+    pdf_puts(" ");
+    copyObject(obj);
+}
+
+// Function onverts double to string; very small and very large numbers
+// are NOT converted to scientific notation.
+// n must be a number or real conforming to the implementation limits
+// of PDF as specified in appendix C.1 of the PDF Ref.
+// These are:
+// maximum value of ints is +2^32
+// maximum value of reals is +2^15
+// smalles values of reals is 1/(2^16)
+
+static char *convertNumToPDF(double n)
+{
+    static const int precision = 6;
+    static const int fact = (int) 1E6;  // must be 10^precision
+    static const double epsilon = 0.5E-6;       // 2epsilon must be 10^-precision
+    static char buf[64];
+    // handle very small values: return 0
+    if (fabs(n) < epsilon) {
+        buf[0] = '0';
+        buf[1] = '\0';
+    } else {
+        char ints[64];
+        int bindex = 0, sindex = 0;
+        int ival, fval;
+        // handle the sign part if n is negative
+        if (n < 0) {
+            buf[bindex++] = '-';
+            n = -n;
+        }
+        n += epsilon;           // for rounding
+        // handle the integer part, simply with sprintf
+        ival = (int) floor(n);
+        n -= ival;
+        sprintf(ints, "%d", ival);
+        while (ints[sindex] != 0)
+            buf[bindex++] = ints[sindex++];
+        // handle the fractional part up to 'precision' digits
+        fval = (int) floor(n * fact);
+        if (fval) {
+            // set a dot
+            buf[bindex++] = '.';
+            sindex = bindex + precision;
+            buf[sindex--] = '\0';
+            // fill up trailing zeros with the string terminator NULL
+            while (((fval % 10) == 0) && (sindex >= bindex)) {
+                buf[sindex--] = '\0';
+                fval /= 10;
+            }
+            // fill up the fractional part back to front
+            while (sindex >= bindex) {
+                buf[sindex--] = (fval % 10) + '0';
+                fval /= 10;
+            }
+        } else
+            buf[bindex++] = 0;
+    }
+    return (char *) buf;
+}
+
+static void copyObject(Object * obj)
+{
+    Object obj1;
+    int i, l, c;
+    Ref ref;
+    char *p;
+    GString *s;
+    if (obj->isBool()) {
+        pdf_printf("%s", obj->getBool()? "true" : "false");
+    } else if (obj->isInt()) {
+        pdf_printf("%i", obj->getInt());
+    } else if (obj->isReal()) {
+        pdf_printf("%s", convertNumToPDF(obj->getReal()));
+    } else if (obj->isNum()) {
+        pdf_printf("%s", convertNumToPDF(obj->getNum()));
+    } else if (obj->isString()) {
+        s = (GooString *)obj->getString();
+        p = (char *)s->c_str();
+        l = s->getLength();
+        if (strlen(p) == (unsigned int) l) {
+            pdf_puts("(");
+            for (; *p != 0; p++) {
+                c = (unsigned char) *p;
+                if (c == '(' || c == ')' || c == '\\')
+                    pdf_printf("\\%c", c);
+                else if (c < 0x20 || c > 0x7F)
+                    pdf_printf("\\%03o", c);
+                else
+                    pdfout(c);
+            }
+            pdf_puts(")");
+        } else {
+            pdf_puts("<");
+            for (i = 0; i < l; i++) {
+                c = s->getChar(i) & 0xFF;
+                pdf_printf("%.2x", c);
+            }
+            pdf_puts(">");
+        }
+    } else if (obj->isName()) {
+        copyName((char *)obj->getName());
+    } else if (obj->isNull()) {
+        pdf_puts("null");
+    } else if (obj->isArray()) {
+        pdf_puts("[");
+        for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
+            obj1 = obj->arrayGetNF(i).copy();
+            if (!obj1.isName())
+                pdf_puts(" ");
+            copyObject(&obj1);
+        }
+        pdf_puts("]");
+    } else if (obj->isDict()) {
+        pdf_puts("<<\n");
+        copyDict(obj);
+        pdf_puts(">>");
+    } else if (obj->isStream()) {
+        pdf_puts("<<\n");
+        copyDict(obj->getStream()->getDictObject());
+        pdf_puts(">>\n");
+        pdf_puts("stream\n");
+        copyStream(obj->getStream()->getUndecodedStream());
+        pdf_puts("\nendstream");
+    } else if (obj->isRef()) {
+        ref = obj->getRef();
+        if (ref.num == 0) {
+            pdftex_fail
+                ("PDF inclusion: reference to invalid object"
+                 " (is the included pdf broken?)");
+        } else
+            pdf_printf("%d 0 R", addOther(ref));
+    } else {
+        pdftex_fail("PDF inclusion: type <%s> cannot be copied",
+                    obj->getTypeName());
+    }
+}
+
+static void writeRefs()
+{
+    InObj *r;
+    for (r = inObjList; r != 0; r = r->next) {
+        if (!r->written) {
+            r->written = 1;
+            Object obj1 = xref->fetch(r->ref.num, r->ref.gen);
+            if (r->type == objFont) {
+                assert(!obj1.isStream());
+                pdfbeginobj(r->num, 2);         // \pdfobjcompresslevel = 2 is for this
+                copyFontDict(&obj1, r);
+                pdf_puts("\n");
+                pdfendobj();
+            } else if (r->type != objFontDesc) {        // /FontDescriptor is written via write_fontdescriptor()
+                if (obj1.isStream())
+                    pdfbeginobj(r->num, 0);
+                else
+                    pdfbeginobj(r->num, 2);     // \pdfobjcompresslevel = 2 is for this
+                copyObject(&obj1);
+                pdf_puts("\n");
+                pdfendobj();
+            }
+        }
+    }
+}
+
+static void writeEncodings()
+{
+    UsedEncoding *r, *n;
+    char *glyphNames[256], *s;
+    int i;
+    for (r = encodingList; r != 0; r = r->next) {
+        for (i = 0; i < 256; i++) {
+            if (r->font->isCIDFont()) {
+                pdftex_fail
+                    ("PDF inclusion: CID fonts are not supported"
+                     " (try to disable font replacement to fix this)");
+            }
+            if ((s = (char *)((Gfx8BitFont *) r->font)->getCharName(i)) != 0)
+                glyphNames[i] = s;
+            else
+                glyphNames[i] = notdef;
+        }
+        epdf_write_enc(glyphNames, r->enc_objnum);
+    }
+    for (r = encodingList; r != 0; r = n) {
+        n = r->next;
+#ifdef POPPLER_VERSION
+        r->font->decRefCnt();
+#else
+#error POPPLER_VERSION should be defined.
+#endif
+        delete r;
+    }
+}
+
+// get the pagebox according to the pagebox_spec
+static const PDFRectangle *get_pagebox(Page * page, int pagebox_spec)
+{
+    if (pagebox_spec == pdfboxspecmedia)
+        return page->getMediaBox();
+    else if (pagebox_spec == pdfboxspeccrop)
+        return page->getCropBox();
+    else if (pagebox_spec == pdfboxspecbleed)
+        return page->getBleedBox();
+    else if (pagebox_spec == pdfboxspectrim)
+        return page->getTrimBox();
+    else if (pagebox_spec == pdfboxspecart)
+        return page->getArtBox();
+    else
+        pdftex_fail("PDF inclusion: unknown value of pagebox spec (%i)",
+                    (int) pagebox_spec);
+    return page->getMediaBox(); // to make the compiler happy
+}
+
+
+// Reads various information about the PDF and sets it up for later inclusion.
+// This will fail if the PDF version of the PDF is higher than
+// minor_pdf_version_wanted or page_name is given and can not be found.
+// It makes no sense to give page_name _and_ page_num.
+// Returns the page number.
+
+int
+read_pdf_info(char *image_name, char *page_name, int page_num,
+              int pagebox_spec, int major_pdf_version_wanted, int minor_pdf_version_wanted,
+              int pdf_inclusion_errorlevel)
+{
+    PdfDocument *pdf_doc;
+    Page *page;
+    const PDFRectangle *pagebox;
+#ifdef POPPLER_VERSION
+    int pdf_major_version_found, pdf_minor_version_found;
+#else
+#error POPPLER_VERSION should be defined.
+#endif
+    // initialize
+    if (!isInit) {
+        globalParams = std::make_unique<GlobalParams>();
+        globalParams->setErrQuiet(false);
+        isInit = true;
+    }
+    // open PDF file
+    pdf_doc = find_add_document(image_name);
+    epdf_doc = (void *) pdf_doc;
+
+    // check PDF version
+    // this works only for PDF 1.x -- but since any versions of PDF newer
+    // than 1.x will not be backwards compatible to PDF 1.x, pdfTeX will
+    // then have to changed drastically anyway.
+#ifdef POPPLER_VERSION
+    pdf_major_version_found = pdf_doc->doc->getPDFMajorVersion();
+    pdf_minor_version_found = pdf_doc->doc->getPDFMinorVersion();
+    if ((pdf_major_version_found > major_pdf_version_wanted)
+     || (pdf_minor_version_found > minor_pdf_version_wanted)) {
+        const char *msg =
+            "PDF inclusion: found PDF version <%d.%d>, but at most version <%d.%d> allowed";
+        if (pdf_inclusion_errorlevel > 0) {
+            pdftex_fail(msg, pdf_major_version_found, pdf_minor_version_found, major_pdf_version_wanted, minor_pdf_version_wanted);
+        } else if (pdf_inclusion_errorlevel < 0) {
+            ; /* do nothing */
+        } else { /* = 0, give warning */
+            pdftex_warn(msg, pdf_major_version_found, pdf_minor_version_found, major_pdf_version_wanted, minor_pdf_version_wanted);
+        }
+    }
+#else
+#error POPPLER_VERSION should be defined.
+#endif
+    epdf_num_pages = pdf_doc->doc->getCatalog()->getNumPages();
+    if (page_name) {
+        // get page by name
+        GString name(page_name);
+        std::unique_ptr<LinkDest> link = pdf_doc->doc->findDest(&name);
+        if (link == 0 || !link->isOk())
+            pdftex_fail("PDF inclusion: invalid destination <%s>", page_name);
+        Ref ref = link->getPageRef();
+        page_num = pdf_doc->doc->getCatalog()->findPage(ref);
+        if (page_num == 0)
+            pdftex_fail("PDF inclusion: destination is not a page <%s>",
+                        page_name);
+    } else {
+        // get page by number
+        if (page_num <= 0 || page_num > epdf_num_pages)
+            pdftex_fail("PDF inclusion: required page does not exist <%i>",
+                        epdf_num_pages);
+    }
+    // get the required page
+    page = pdf_doc->doc->getCatalog()->getPage(page_num);
+
+    // get the pagebox (media, crop...) to use.
+    pagebox = get_pagebox(page, pagebox_spec);
+    if (pagebox->x2 > pagebox->x1) {
+        epdf_orig_x = pagebox->x1;
+        epdf_width = pagebox->x2 - pagebox->x1;
+    } else {
+        epdf_orig_x = pagebox->x2;
+        epdf_width = pagebox->x1 - pagebox->x2;
+    }
+    if (pagebox->y2 > pagebox->y1) {
+        epdf_orig_y = pagebox->y1;
+        epdf_height = pagebox->y2 - pagebox->y1;
+    } else {
+        epdf_orig_y = pagebox->y2;
+        epdf_height = pagebox->y1 - pagebox->y2;
+    }
+
+    // get page rotation
+    epdf_rotate = page->getRotate() % 360;
+    if (epdf_rotate < 0)
+        epdf_rotate += 360;
+
+    // page group
+    if (page->getGroup() != NULL)
+        epdf_has_page_group = 1;    // only flag that page group is present;
+                                    // the actual object number will be
+                                    // generated in pdftex.web
+    else
+        epdf_has_page_group = 0;    // no page group present
+
+    pdf_doc->xref = pdf_doc->doc->getXRef();
+    return page_num;
+}
+
+// writes the current epf_doc.
+// Here the included PDF is copied, so most errors that can happen during PDF
+// inclusion will arise here.
+
+void write_epdf(void)
+{
+    Page *page;
+    Ref *pageRef;
+    Dict *pageDict;
+    Object contents, obj1, obj2, pageObj, dictObj;
+    Object groupDict;
+    bool writeSepGroup = false;
+    Object info;
+    char *key;
+    char s[256];
+    int i, l;
+    int rotate;
+    double scale[6] = { 0, 0, 0, 0, 0, 0 };
+    bool writematrix = false;
+    int suppress_ptex_info = getpdfsuppressptexinfo();
+    static const char *pageDictKeys[] = {
+        "LastModified",
+        "Metadata",
+        "PieceInfo",
+        "SeparationInfo",
+//         "Group",
+//         "Resources",
+        NULL
+    };
+
+    PdfDocument *pdf_doc = (PdfDocument *) epdf_doc;
+    (pdf_doc->occurences)--;
+    xref = pdf_doc->xref;
+    inObjList = pdf_doc->inObjList;
+    encodingList = 0;
+    page = pdf_doc->doc->getCatalog()->getPage(epdf_selected_page);
+    pageRef = pdf_doc->doc->getCatalog()->getPageRef(epdf_selected_page);
+    pageObj = xref->fetch(pageRef->num, pageRef->gen);
+    pageDict = pageObj.getDict();
+    rotate = page->getRotate();
+    const PDFRectangle *pagebox;
+    // write the Page header
+    pdf_puts("/Type /XObject\n");
+    pdf_puts("/Subtype /Form\n");
+    pdf_puts("/FormType 1\n");
+
+    // write additional information
+    if ((suppress_ptex_info & MASK_SUPPRESS_PTEX_FILENAME) == 0) {
+        pdf_printf("/%s.FileName (%s)\n", pdfkeyprefix,
+                   convertStringToPDFString(pdf_doc->file_name,
+                                            strlen(pdf_doc->file_name)));
+    }
+    if ((suppress_ptex_info & MASK_SUPPRESS_PTEX_PAGENUMBER) == 0) {
+        pdf_printf("/%s.PageNumber %i\n", pdfkeyprefix, (int) epdf_selected_page);
+    }
+    if ((suppress_ptex_info & MASK_SUPPRESS_PTEX_INFODICT) == 0) {
+        info = pdf_doc->doc->getDocInfoNF().copy();
+        if (info.isRef()) {
+            // the info dict must be indirect (PDF Ref p. 61)
+            pdf_printf("/%s.InfoDict ", pdfkeyprefix);
+            pdf_printf("%d 0 R\n", addOther(info.getRef()));
+        }
+    }
+    // get the pagebox (media, crop...) to use.
+    pagebox = get_pagebox(page, epdf_page_box);
+
+    // handle page rotation
+    if (rotate != 0) {
+        if (rotate % 90 == 0) {
+            // this handles only the simple case: multiple of 90s but these
+            // are the only values allowed according to the reference
+            // (v1.3, p. 78).
+            // the image is rotated around its center.
+            // the /Rotate key is clockwise while the matrix is
+            // counterclockwise :-%
+            tex_printf(", page is rotated %d degrees", rotate);
+            switch (rotate) {
+            case 90:
+                scale[1] = -1;
+                scale[2] = 1;
+                scale[4] = pagebox->x1 - pagebox->y1;
+                scale[5] = pagebox->y1 + pagebox->x2;
+                writematrix = true;
+                break;
+            case 180:
+                scale[0] = scale[3] = -1;
+                scale[4] = pagebox->x1 + pagebox->x2;
+                scale[5] = pagebox->y1 + pagebox->y2;
+                writematrix = true;
+                break;          // width and height are exchanged
+            case 270:
+                scale[1] = 1;
+                scale[2] = -1;
+                scale[4] = pagebox->x1 + pagebox->y2;
+                scale[5] = pagebox->y1 - pagebox->x1;
+                writematrix = true;
+                break;
+            }
+            if (writematrix) {  // The matrix is only written if the image is rotated.
+                sprintf(s, "/Matrix [%.8f %.8f %.8f %.8f %.8f %.8f]\n",
+                        scale[0],
+                        scale[1], scale[2], scale[3], scale[4], scale[5]);
+                pdf_puts(stripzeros(s));
+            }
+        }
+    }
+
+    sprintf(s, "/BBox [%.8f %.8f %.8f %.8f]\n",
+            pagebox->x1, pagebox->y1, pagebox->x2, pagebox->y2);
+    pdf_puts(stripzeros(s));
+
+    // Metadata validity check (as a stream it must be indirect)
+    dictObj = pageDict->lookupNF("Metadata").copy();
+    if (!dictObj.isNull() && !dictObj.isRef())
+        pdftex_warn("PDF inclusion: /Metadata must be indirect object");
+
+    // copy selected items in Page dictionary except Resources & Group
+    for (i = 0; pageDictKeys[i] != NULL; i++) {
+        dictObj = pageDict->lookupNF(pageDictKeys[i]).copy();
+        if (!dictObj.isNull()) {
+            pdf_newline();
+            pdf_printf("/%s ", pageDictKeys[i]);
+            copyObject(&dictObj); // preserves indirection
+        }
+    } 
+
+    // handle page group
+    dictObj = pageDict->lookupNF("Group").copy();
+    if (!dictObj.isNull()) {
+        if (pdfpagegroupval == 0) { 
+            // another pdf with page group was included earlier on the
+            // same page; copy the Group entry as is.  See manual for
+            // info on why this is a warning.
+            if (getpdfsuppresswarningpagegroup() == 0) {
+                pdftex_warn
+    ("PDF inclusion: multiple pdfs with page group included in a single page");
+            }
+            pdf_newline();
+            pdf_puts("/Group ");
+            copyObject(&dictObj);
+        } else {
+            // write Group dict as a separate object, since the Page dict also refers to it
+            dictObj = pageDict->lookup("Group");
+            if (!dictObj.isDict())
+                pdftex_fail("PDF inclusion: /Group dict missing");
+            writeSepGroup = true;
+/*
+This part is only a single line
+            groupDict = Object(page->getGroup());
+in the original patch. In this case, however, pdftex crashes at
+"delete pdf_doc->doc" in "delete_document()" for inclusion of some
+kind of pdf images, for example, figure_missing.pdf in gnuplot.
+A change
+            groupDict = Object(page->getGroup()).copy();
+does not improve the situation.
+The changes below seem to work fine. 
+*/
+// begin modification
+            groupDict = pageDict->lookup("Group");
+            const Dict& dic1 = page->getGroup();
+            const Dict& dic2 = groupDict.getDict();
+            // replace dic2 in groupDict with dic1
+            l = dic2.getLength();
+            for (i = 0; i < l; i++) {
+                groupDict.dictRemove(dic2.getKey(i));
+            }
+            l = dic1.getLength();
+            for (i = 0; i < l; i++) {
+                groupDict.dictAdd((const char *)copyString(dic1.getKey(i)),
+                                  dic1.getValNF(i).copy());
+            }
+// end modification
+            pdf_printf("/Group %ld 0 R\n", (long)pdfpagegroupval);
+        }
+    }
+
+    // write the Resources dictionary
+    if (page->getResourceDict() == NULL) {
+        // Resources can be missing (files without them have been spotted
+        // in the wild); in which case the /Resouces of the /Page will be used.
+        // "This practice is not recommended".
+        pdftex_warn
+            ("PDF inclusion: /Resources missing. 'This practice is not recommended' (PDF Ref)");
+    } else {
+        Object *obj1 = page->getResourceDictObject();
+        if (!obj1->isDict())
+            pdftex_fail("PDF inclusion: invalid resources dict type <%s>",
+                        obj1->getTypeName());
+        pdf_newline();
+        pdf_puts("/Resources <<\n");
+        for (i = 0, l = obj1->dictGetLength(); i < l; ++i) {
+            obj2 = obj1->dictGetVal(i);
+            key = (char *)obj1->dictGetKey(i);
+            if (strcmp("Font", key) == 0)
+                copyFontResources(&obj2);
+            else if (strcmp("ProcSet", key) == 0)
+                copyProcSet(&obj2);
+            else
+                copyOtherResources(&obj2, (char *)key);
+        }
+        pdf_puts(">>\n");
+    }
+
+    // write the page contents
+    contents = page->getContents();
+    if (contents.isStream()) {
+
+        // Variant A: get stream and recompress under control
+        // of \pdfcompresslevel
+        //
+        // pdfbeginstream();
+        // copyStream(contents->getStream());
+        // pdfendstream();
+
+        // Variant B: copy stream without recompressing
+        //
+        obj1 = contents.streamGetDict()->lookup("F");
+        if (!obj1.isNull()) {
+            pdftex_fail("PDF inclusion: Unsupported external stream");
+        }
+        obj1 = contents.streamGetDict()->lookup("Length");
+        assert(!obj1.isNull());
+        pdf_puts("/Length ");
+        copyObject(&obj1);
+        pdf_puts("\n");
+        obj1 = contents.streamGetDict()->lookup("Filter");
+        if (!obj1.isNull()) {
+            pdf_puts("/Filter ");
+            copyObject(&obj1);
+            pdf_puts("\n");
+            obj1 = contents.streamGetDict()->lookup("DecodeParms");
+            if (!obj1.isNull()) {
+                pdf_puts("/DecodeParms ");
+                copyObject(&obj1);
+                pdf_puts("\n");
+            }
+        }
+        pdf_puts(">>\nstream\n");
+        copyStream(contents.getStream()->getUndecodedStream());
+        pdfendstream();
+    } else if (contents.isArray()) {
+        pdfbeginstream();
+        for (i = 0, l = contents.arrayGetLength(); i < l; ++i) {
+            Object contentsobj = contents.arrayGet(i);
+            copyStream(contentsobj.getStream());
+            if (i < l - 1)
+                pdf_newline();  // add a newline after each stream except the last
+        }
+        pdfendstream();
+    } else {                    // the contents are optional, but we need to include an empty stream
+        pdfbeginstream();
+        pdfendstream();
+    }
+
+    // write out all indirect objects
+    writeRefs();
+
+    // write out all used encodings (and delete list)
+    writeEncodings();
+
+    // write the Group dict if needed
+    if (writeSepGroup) {
+        pdfbeginobj(pdfpagegroupval, 2);
+        copyObject(&groupDict);
+        pdf_puts("\n");
+        pdfendobj();
+        pdfpagegroupval = 0;    // only the 1st included pdf on a page gets its
+                                // Group included in the Page dict
+    }
+
+    // save object list, xref
+    pdf_doc->inObjList = inObjList;
+    pdf_doc->xref = xref;
+}
+
+// Called when an image has been written and it's resources in image_tab are
+// freed and it's not referenced anymore.
+
+void epdf_delete()
+{
+    PdfDocument *pdf_doc = (PdfDocument *) epdf_doc;
+    xref = pdf_doc->xref;
+    if (pdf_doc->occurences < 0) {
+        delete_document(pdf_doc);
+    }
+}
+
+// Called when PDF embedding system is finalized.
+// Now deallocate all remaining PdfDocuments.
+
+void epdf_check_mem()
+{
+    if (isInit) {
+        PdfDocument *p, *n;
+        for (p = pdfDocuments; p; p = n) {
+            n = p->next;
+            delete_document(p);
+        }
+    }
+}


Property changes on: branches/stable/source/src/texk/web2c/pdftexdir/pdftoepdf-poppler0.86.0.cc
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: branches/stable/source/src/utils/README
===================================================================
--- branches/stable/source/src/utils/README	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/utils/README	2020-05-14 18:05:47 UTC (rev 824)
@@ -1,10 +1,10 @@
-$Id: README 53703 2020-02-06 23:29:37Z kakuto $
+$Id: README 54566 2020-03-26 21:33:06Z karl $
 Public domain.  Originally written 2005 by Karl Berry.
 
 Extra utilities we (optionally) compile for TeX Live.
 See comments in ../texk/README.
 
-asymptote 2.62 - checked 16jan20
+asymptote 2.65 - checked 26mar20
   update to TL from CTAN, to include prebuilt doc.
   see http://tug.org/texlive/build.html#asymptote
   and tlpkg/bin/tl-update-asy
@@ -19,7 +19,7 @@
 m-tx 0.63a - checked 29apr18
   http://ctan.org/pkg/m-tx/
 
-pmx 2.9.4 - checked 07feb20
+pmx 2.9.4 - checked 19mar20
   http://ctan.org/pkg/pmx/
 
 ps2eps 1.68 - checked 10may12
@@ -81,7 +81,7 @@
 # when running configure for clisp.
 
 # may be able to omit iconv if have new enough in libc or elsewhere.
-libiconv_ver=libiconv-1.15
+libiconv_ver=libiconv-1.16
 cd $clisp_basedir
 $wget http://ftp.gnu.org/gnu/libiconv/$libiconv_ver.tar.gz
 gzip -dc $libiconv_ver.tar.gz | tar xf -

Modified: branches/stable/source/src/utils/configure
===================================================================
--- branches/stable/source/src/utils/configure	2020-03-27 09:47:47 UTC (rev 823)
+++ branches/stable/source/src/utils/configure	2020-05-14 18:05:47 UTC (rev 824)
@@ -3337,7 +3337,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-luajittex'" >&5
 $as_echo "$as_me: $host -> \`--disable-luajittex'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-luajittex'" ;; #(
@@ -3350,7 +3350,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-luajithbtex'" >&5
 $as_echo "$as_me: $host -> \`--disable-luajithbtex'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-luajithbtex'" ;; #(
@@ -3363,7 +3363,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-mfluajit'" >&5
 $as_echo "$as_me: $host -> \`--disable-mfluajit'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-mfluajit'" ;; #(
@@ -3376,7 +3376,7 @@
     : ;; #(
   *) :
     case $host in #(
-  alpha* | sparc* | x86_64-*-solaris* | powerpc-*-darwin* ) :
+  alpha* | sparc* | x86_64-*-solaris* | powerpc* ) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: $host -> \`--disable-mfluajit-nowin'" >&5
 $as_echo "$as_me: $host -> \`--disable-mfluajit-nowin'" >&6;}
                       ac_configure_args="$ac_configure_args '--disable-mfluajit-nowin'" ;; #(



More information about the pdftex-commits mailing list.