summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-11-28 22:38:51 +0000
committerKarl Berry <karl@freefriends.org>2020-11-28 22:38:51 +0000
commita15b98ee17678246556913f71f46e8b12c402b4a (patch)
tree447ae1df124a5c042a7a79f01aabb4c6d8f89c5b
parent9751df8fcab071b412e307ff1aa3f27504179cbb (diff)
more on adding a new program
git-svn-id: svn://tug.org/texlive/trunk@57026 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/doc/ChangeLog5
-rw-r--r--Build/source/doc/tlbuild.info877
-rw-r--r--Build/source/doc/tlbuild.texi75
3 files changed, 522 insertions, 435 deletions
diff --git a/Build/source/doc/ChangeLog b/Build/source/doc/ChangeLog
index d209dc0afd1..aff2bbb51e8 100644
--- a/Build/source/doc/ChangeLog
+++ b/Build/source/doc/ChangeLog
@@ -1,3 +1,8 @@
+2020-11-28 Karl Berry <karl@freefriends.org>
+
+ * tlbuild.texi (Adding a new program module): more explicit
+ info. Suggested by Bob Tennent.
+
2020-08-31 Karl Berry <karl@freefriends.org>
* tlbuild.texi (Build one engine): rewrite procedure.
diff --git a/Build/source/doc/tlbuild.info b/Build/source/doc/tlbuild.info
index 660770f7848..c68d9ff2f7d 100644
--- a/Build/source/doc/tlbuild.info
+++ b/Build/source/doc/tlbuild.info
@@ -59,7 +59,8 @@ File: tlbuild.info, Node: Introduction, Next: Overview of build system, Prev:
1 Introduction
**************
-This manual (dated March 2020) corresponds to the TeX Live 2020 release.
+This manual (dated November 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)
@@ -1322,7 +1323,8 @@ In that case, as above, we put the upstream sources into a subdirectory
'configure' in this original '...-src' directory, but only in our own
directory; but we do compile using the source files in '...-src'.
- So, to summarize the files that we must (usually) create:
+ So, to summarize the files that must (usually) be created inside a
+new TL source directory ('texk/newprog' or 'utils/newprog'):
'ac/withenable.ac'
The 'KPSE_ENABLE_PROG' call just explained.
@@ -1330,37 +1332,62 @@ directory; but we do compile using the source files in '...-src'.
'configure.ac'
'Makefile.am'
By merging the contents of the original 'configure.ac' (if
- provided) and a comparable program already in TL. There is no magic
- recipe, it's necessary to think about needs to be done in the
- original vs. in TeX Live.
+ provided) and a comparable program already in TL. In the above
+ example, one line that will be needed in 'configure.ac' (can be
+ added before the 'AC_CONFIG_FILES' at the end) is:
+
+ AC_SUBST([NEWPROG_TREE], [newprog-src])
+
+ and then use '@NEWPROG_TREE@' in 'Makefile.am' where needed.
+
+ In general, there is no magic recipe for this part of the job.
+ It's necessary to think about what needs to be done in the original
+ vs. in TeX Live. It's useful to look at the setup for the most
+ comparable programs already in TL that you can find. It's also
+ useful to grep the entire 'Build/source' tree for whatever you can
+ think of to investigate how something is done. Most of the
+ TL-specific macros are defined in 'Build/source/m4/*'.
'TLpatches/TL-Changes'
- Actions taken after getting the original source tree; typically
- removal of derived or unused common files.
+ First actions taken after getting the original source tree;
+ typically removal of derived or unused common files.
'TLpatches/patch-...'
If any changes are needed to the original sources, record the
- patches here so they can be applied next time. And send them
- upstream so that perhaps they won't have to be.
+ patches here so they can be applied next time. Also, send them
+ upstream so that we don't have to maintain them forever.
'ChangeLog'
Record all TL-specific changes, now and in the future.
- Then, run GNU 'autoreconf' in the new directory (*note Build system
-tools::). After that works, 'svn add' the necessary files, including
-the generated 'Makefile.in aclocal.m4 configure', and 'svn:ignore' the
-Automake cache 'autom4te.cache'. (This is so people checking out the TL
-source tree do not have to run any autotools, but can simply run
-'configure'.)
+ After populating the new TL source directory ('.../newprog/', in the
+above), run GNU 'autoreconf' there (*note Build system tools::). Once
+that works, if you are the one who's eventually going to commit the new
+package, 'svn add' the necessary files, including the generated
+'Makefile.in aclocal.m4 configure', and 'svn:ignore' the Automake cache
+'autom4te.cache'. (This is so people checking out the TL source tree do
+not have to run any autotools, but can simply run 'configure'.)
+
+ Then, run the TL tool 'reautoconf' in the top-level TL
+'Build/source/' directory, to incorporate the new program into the build
+tree. It is good to then rebuild the whole tree (e.g., using TL's
+'Build/Build' script) to get all the necessary files generated.
- Then, run the TL tool 'reautoconf' in the top-level TL 'source/'
-directory, to incorporate the new program into the build tree.
+ It will probably fail. So then you need to keep at it until the
+program compiles and tests successfully. The most efficient way is to
+rerun 'autoreconf' as needed in the new source directory
+('Build/source/.../newprog'), then 'make' in the corresponding build
+directory ('Build/work/.../newprog'), then 'make check', etc. In the
+end, also make sure that the whole tree builds from scratch.
- Then, run (and rerun) a build until the program compiles and tests
-successfully, probably involving rerunning autoreconf in the source
-directory, 'make' in the build directory, etc.
+ After final success, don't forget to commit. (Or email the TL
+maintainers with the patch.)
- After final success, don't forget to commit.
+ Caveat: adding a new TeX engine is not completely different, but it's
+not all that similar, either. In that case, the work is done inside a
+new subdirectory of 'texk/web2c/'. Many things are common to all the
+engines, other things need to be copied and possibly modified for each
+one, yet others are unique to each. No general recipe is possible.

File: tlbuild.info, Node: Adding a new generic library module, Next: Adding a new TeX-specific library module, Prev: Adding a new program module, Up: Extending TeX Live
@@ -5416,6 +5443,8 @@ Index
* --without-x: --without-x. (line 6)
* -C configure option: Build in parallel. (line 11)
* -j make option: Build in parallel. (line 6)
+* ac/withenable.ac: Adding a new program module.
+ (line 42)
* adapting TeX Live for distros: Distro builds. (line 54)
* adding a new generic library: Adding a new generic library module.
(line 6)
@@ -5437,6 +5466,8 @@ Index
* autoconf macros: Autoconf macros. (line 6)
* Automake: Overview of build system.
(line 6)
+* autoreconf, for new program: Adding a new program module.
+ (line 76)
* biber: Linked scripts. (line 23)
* bibtex-x: Configure options for texk/bibtex-x.
(line 6)
@@ -5473,6 +5504,8 @@ Index
(line 10)
* CC=C-COMPILER: Build one package. (line 78)
* CC_BUILD: Cross problems. (line 13)
+* ChangeLog: Adding a new program module.
+ (line 73)
* chktex: Declarations and definitions.
(line 18)
* clisp: Variables for configure.
@@ -5512,6 +5545,8 @@ Index
(line 6)
* configure variables: Variables for configure.
(line 6)
+* configure.ac: Adding a new program module.
+ (line 45)
* configuring, for cross compilation: Cross configuring. (line 6)
* const: Const. (line 6)
* continuous integration: Continuous integration.
@@ -5548,6 +5583,8 @@ Index
(line 6)
* dvisvgm: Configure options for texk/dvisvgm.
(line 6)
+* engine, adding new: Adding a new program module.
+ (line 99)
* engine, building one: Build one engine. (line 6)
* environment variables, for configure: Configure options. (line 16)
* exec_prefix: --enable-multiplatform.
@@ -5715,6 +5752,8 @@ Index
* make -t: Build system tools. (line 43)
* make rules, verbose vs. silent: --enable-silent-rules.
(line 6)
+* Makefile.am: Adding a new program module.
+ (line 46)
* mf-nowin: Configure options for texk/web2c.
(line 34)
* mingw32: Cross configuring. (line 27)
@@ -5726,6 +5765,8 @@ Index
* motif: Configure options for texk/xdvik.
(line 9)
* native cross compilation: Cross compilation. (line 10)
+* NEWPROG-SRC, original source subdirectory: Adding a new program module.
+ (line 33)
* OBJCXX=OBJC-COMPILER: Build one package. (line 78)
* one engine, building: Build one engine. (line 6)
* one package, building: Build one package. (line 6)
@@ -5759,6 +5800,8 @@ Index
(line 6)
* proxy build system: png library. (line 36)
* reautoconf: Build system tools. (line 28)
+* reautoconf, for new program: Adding a new program module.
+ (line 84)
* requirements for building: Prerequisites. (line 6)
* runscript.exe: Macros for Windows. (line 25)
* scripts, linked and not maintained: Linked scripts. (line 6)
@@ -5799,6 +5842,10 @@ Index
* texlive.tlpdb, TeX Live database: Installing. (line 8)
* tie: Cross problems. (line 26)
* timestamps, in repository: Build system tools. (line 38)
+* TLpatches/patch-...: Adding a new program module.
+ (line 68)
+* TLpatches/TL-Changes: Adding a new program module.
+ (line 64)
* tools, for building: Build system tools. (line 6)
* top-level directories: Top-level directories.
(line 6)
@@ -5858,400 +5905,400 @@ Index
Tag Table:
Node: Top1208
Node: Introduction2118
-Node: Overview of build system3943
-Node: Prerequisites5994
-Node: Building8590
-Node: Build iteration9976
-Node: Build problems11017
-Node: Build in parallel11471
-Node: Build distribution12075
-Node: Build one package12723
-Node: Build one engine16368
-Node: Cross compilation17882
-Node: Cross configuring19162
-Node: Cross problems20839
-Node: Installing22501
-Node: Installation directories23521
-Node: Linked scripts25339
-Node: Distro builds26830
-Node: Layout and infrastructure29206
-Node: Build system tools30037
-Node: Top-level directories32254
-Node: Autoconf macros34490
-Node: General setup macros35252
-Node: Macros for programs36127
-Node: Macros for compilers36928
-Node: Macros for libraries38336
-Node: Macros for library and header flags38762
-Node: Macros for Windows40673
-Node: Library modules42260
-Node: png library42749
-Node: zlib library45097
-Node: freetype library45612
-Node: kpathsea library46308
-Node: Program modules47687
-Node: t1utils package48115
-Node: xindy package48660
-Node: xdvik package49774
-Node: asymptote50833
-Node: Extending TeX Live51329
-Node: Adding a new program module52112
-Node: Adding a new generic library module55451
-Node: Adding a new TeX-specific library module57680
-Node: Configure options58378
-Node: Global configure options59759
-Node: --disable-native-texlive-build60301
-Node: --prefix --bindir ...61263
-Node: --disable-largefile61803
-Node: --disable-missing62345
-Node: --enable-compiler-warnings=LEVEL62746
-Node: --enable-cxx-runtime-hack63402
-Node: --enable-maintainer-mode63822
-Node: --enable-multiplatform64351
-Node: --enable-shared64924
-Node: --enable-silent-rules65295
-Node: --without-ln-s65747
-Node: --without-x66094
-Node: Program-specific configure options66282
-Node: --enable-PROG --disable-PROG66925
-Node: --disable-all-pkgs67198
-Node: Configure options for texk/web2c67981
-Node: Configure options for texk/bibtex-x70519
-Node: Configure options for texk/dvipdfm-x71062
-Node: Configure options for texk/dvisvgm71838
-Node: Configure options for texk/texlive72719
-Node: Configure options for texk/xdvik73140
-Node: Configure options for utils/xindy73761
-Node: Library-specific configure options74651
-Node: Configure options for kpathsea75612
-Node: Variables for configure76316
-Node: Coding conventions77742
-Node: Declarations and definitions78457
-Node: Const80631
-Node: Continuous integration82495
-Node: Transfer from Subversion to Github83159
-Node: Automatic update of the Git mirror85321
-Node: CI testing on Travis-CI85903
-Node: Releases on Github86612
-Node: install-tl87052
-Node: install-tl NAME87421
-Node: install-tl SYNOPSIS87579
-Node: install-tl DESCRIPTION87837
-Node: install-tl REFERENCES88897
-Node: install-tl OPTIONS89421
-Ref: install-tl *-gui* [[=]_module_]89762
-Ref: install-tl text89970
-Ref: install-tl tcl90090
-Ref: install-tl wizard90432
-Ref: install-tl expert90565
-Ref: install-tl perltk90687
-Ref: install-tl *-no-gui*91233
-Ref: install-tl *-lang* _llcode_91323
-Ref: install-tl *-repository* _url|path_92079
-Ref: install-tl *-select-repository*92967
-Ref: install-tl *-all-options*93403
-Ref: install-tl *-custom-bin* _path_93658
-Ref: install-tl *-debug-translation*94492
-Ref: install-tl *-force-platform* _platform_94711
-Ref: install-tl *-help*, *--help*, *-?*94955
-Ref: install-tl *-in-place*95368
-Ref: install-tl *-init-from-profile* _profile_file_95913
-Ref: install-tl *-logfile* _file_96182
-Ref: install-tl *-no-cls*96533
-Ref: install-tl *-no-persistent-downloads*96681
-Ref: install-tl *-persistent-downloads*96706
-Ref: install-tl *-no-verify-downloads*97324
-Ref: install-tl *-non-admin*97687
-Ref: install-tl *-portable*97780
-Ref: install-tl *-print-platform*97919
-Ref: install-tl *-profile* _profile_file_98117
-Ref: install-tl *-q*98338
-Ref: install-tl *-scheme* _scheme_98400
-Ref: install-tl *-v*98874
-Ref: install-tl *-version*, *--version*99029
-Node: install-tl PROFILES99163
-Ref: install-tl instopt_adjustpath (default 0 on Unix, 1 on Windows)102029
-Ref: install-tl instopt_adjustrepo (default 1)102105
-Ref: install-tl instopt_letter (default 0)102242
-Ref: install-tl instopt_portable (default 0)102333
-Ref: install-tl instopt_write18_restricted (default 1)102429
-Node: install-tl ENVIRONMENT VARIABLES103768
-Ref: install-tl TEXLIVE_DOWNLOADER104146
-Ref: install-tl TL_DOWNLOAD_PROGRAM104169
-Ref: install-tl TL_DOWNLOAD_ARGS104189
-Ref: install-tl TEXLIVE_INSTALL_ENV_NOCHECK104393
-Ref: install-tl TEXLIVE_INSTALL_NO_CONTEXT_CACHE104595
-Ref: install-tl TEXLIVE_INSTALL_NO_IMPORT104704
-Ref: install-tl TEXLIVE_INSTALL_NO_WELCOME104856
-Ref: install-tl TEXLIVE_INSTALL_PREFIX104978
-Ref: install-tl TEXLIVE_INSTALL_TEXDIR105004
-Ref: install-tl TEXLIVE_INSTALL_TEXMFCONFIG105035
-Ref: install-tl TEXLIVE_INSTALL_TEXMFVAR105063
-Ref: install-tl TEXLIVE_INSTALL_TEXMFHOME105092
-Ref: install-tl TEXLIVE_INSTALL_TEXMFLOCAL105122
-Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSCONFIG105156
-Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSVAR105187
-Ref: install-tl NOPERLDOC105558
-Node: install-tl AUTHORS AND COPYRIGHT105622
-Node: tlmgr106035
-Node: tlmgr NAME106520
-Node: tlmgr SYNOPSIS106652
-Node: tlmgr DESCRIPTION106842
-Node: tlmgr EXAMPLES107941
-Ref: tlmgr tlmgr option repository ctan108192
-Ref: tlmgr tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet108264
-Ref: tlmgr tlmgr update --list108869
-Ref: tlmgr tlmgr update --all108962
-Ref: tlmgr tlmgr info _what_109119
-Node: tlmgr OPTIONS109381
-Ref: tlmgr *--repository* _url|path_109901
-Ref: tlmgr /some/local/dir111087
-Ref: tlmgr file:/some/local/dir111116
-Ref: tlmgr ctan111189
-Ref: tlmgr http://mirror.ctan.org/systems/texlive/tlnet111242
-Ref: tlmgr http://server/path/to/tlnet111583
-Ref: tlmgr https://server/path/to/tlnet111964
-Ref: tlmgr ftp://server/path/to/tlnet112432
-Ref: tlmgr user@machine:/path/to/tlnet112564
-Ref: tlmgr scp://user@machine/path/to/tlnet112605
-Ref: tlmgr ssh://user@machine/path/to/tlnet112646
-Ref: tlmgr *--gui* [_action_]113039
-Ref: tlmgr *--gui-lang* _llcode_113852
-Ref: tlmgr *--debug-translation*114588
-Ref: tlmgr *--machine-readable*114791
-Ref: tlmgr *--no-execute-actions*115059
-Ref: tlmgr *--package-logfile* _file_115252
-Ref: tlmgr *--pause*115506
-Ref: tlmgr *--persistent-downloads*115661
-Ref: tlmgr *--no-persistent-downloads*115689
-Ref: tlmgr *--pin-file*116183
-Ref: tlmgr *--usermode*116401
-Ref: tlmgr *--usertree* _dir_116521
-Ref: tlmgr *--verify-repo=[none|main|all]*116647
-Node: tlmgr ACTIONS117546
-Node: tlmgr help118407
-Node: tlmgr version118884
-Node: tlmgr backup119147
-Ref: tlmgr *backup [_option_...] --all*119318
-Ref: tlmgr *backup [_option_...] _pkg_...*119351
-Ref: tlmgr *--backupdir* _directory_120417
-Ref: tlmgr *--all*120634
-Ref: tlmgr *--clean*[=_N_]120886
-Ref: tlmgr *--dry-run*121213
-Node: tlmgr candidates _pkg_121343
-Node: tlmgr check [_option_...] [depends|executes|files|runfiles|texmfdbs|all]121698
-Ref: tlmgr *depends*122212
-Ref: tlmgr *executes*122554
-Ref: tlmgr *files*122669
-Ref: tlmgr *runfiles*122805
-Ref: tlmgr *texmfdbs*122942
-Ref: tlmgr - all items in TEXMFDBS have the !! prefix.123172
-Ref: tlmgr - all items in TEXMFBDS have an ls-R file (if they exist at all).123248
-Ref: tlmgr - all items in TEXMF with !! are listed in TEXMFDBS.123313
-Ref: tlmgr - all items in TEXMF with an ls-R file are listed in TEXMFDBS.123388
-Ref: tlmgr *--use-svn*123413
-Node: tlmgr conf123554
-Ref: tlmgr *conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]*123842
-Ref: tlmgr *conf auxtrees [--conffile _file_] [show|add|remove] [_value_]*123906
-Node: tlmgr dump-tlpdb [_option_...] [--json]126321
-Ref: tlmgr *--local*126754
-Ref: tlmgr *--remote*126793
-Ref: tlmgr *--json*126831
-Node: tlmgr generate127402
-Ref: tlmgr *generate [_option_...] language*127598
-Ref: tlmgr *generate [_option_...] language.dat*127637
-Ref: tlmgr *generate [_option_...] language.def*127676
-Ref: tlmgr *generate [_option_...] language.dat.lua*127719
-Ref: tlmgr *--dest* _output_file_130046
-Ref: tlmgr *--localcfg* _local_conf_file_130622
-Ref: tlmgr *--rebuild-sys*130745
-Node: tlmgr gui131560
-Node: tlmgr info131738
-Ref: tlmgr *info [_option_...] _pkg_...*131900
-Ref: tlmgr *info [_option_...] collections*131934
-Ref: tlmgr *info [_option_...] schemes*131964
-Ref: tlmgr *--list*133494
-Ref: tlmgr *--only-installed*133808
-Ref: tlmgr *--only-remote*133996
-Ref: tlmgr *--data item1,item2,...*134300
-Ref: tlmgr *--json* 1134881
-Node: tlmgr init-usertree135264
-Node: tlmgr install [_option_...] _pkg_...135645
-Ref: tlmgr *--dry-run* 1136153
-Ref: tlmgr *--file*136270
-Ref: tlmgr *--force*136492
-Ref: tlmgr *--no-depends*136712
-Ref: tlmgr *--no-depends-at-all*136871
-Ref: tlmgr *--reinstall*137271
-Ref: tlmgr *--with-doc*137649
-Ref: tlmgr *--with-src*137662
-Node: tlmgr key138390
-Ref: tlmgr *key list*138548
-Ref: tlmgr *key add _file_*138566
-Ref: tlmgr *key remove _keyid_*138588
-Node: tlmgr list139182
-Node: tlmgr option139344
-Ref: tlmgr *option [--json] [show]*139499
-Ref: tlmgr *option [--json] showall|help*139530
-Ref: tlmgr *option _key_ [_value_]*139556
-Node: tlmgr paper144134
-Ref: tlmgr *paper [a4|letter]*144283
-Ref: tlmgr *<[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*>144359
-Ref: tlmgr *paper --json*144374
-Node: tlmgr path145589
-Ref: tlmgr *path [--w32mode=user|admin] add*145750
-Ref: tlmgr *path [--w32mode=user|admin] remove*145787
-Node: tlmgr pinning147272
-Ref: tlmgr pinning show147513
-Ref: tlmgr pinning add _repo_ _pkgglob_...147586
-Ref: tlmgr pinning remove _repo_ _pkgglob_...147705
-Ref: tlmgr pinning remove _repo_ --all147858
-Node: tlmgr platform147912
-Ref: tlmgr *platform list|add|remove _platform_...*148098
-Ref: tlmgr *platform set _platform_*148125
-Ref: tlmgr *platform set auto*148146
-Ref: tlmgr *--dry-run* 2149023
-Node: tlmgr postaction149142
-Ref: tlmgr *postaction [_option_...] install [shortcut|fileassoc|script] [_pkg_...]*149372
-Ref: tlmgr *postaction [_option_...] remove [shortcut|fileassoc|script] [_pkg_...]*149446
-Ref: tlmgr *--w32mode=[user|admin]*149761
-Ref: tlmgr *--fileassocmode=[1|2]*150177
-Ref: tlmgr *--all* 1150462
-Node: tlmgr print-platform150517
-Node: tlmgr print-platform-info150848
-Node: tlmgr remove [_option_...] _pkg_...151148
-Ref: tlmgr *--all* 2151632
-Ref: tlmgr *--backup*151742
-Ref: tlmgr *--backupdir* _directory_ 1151768
-Ref: tlmgr *--no-depends* 1152173
-Ref: tlmgr *--no-depends-at-all* 1152235
-Ref: tlmgr *--force* 1152338
-Ref: tlmgr *--dry-run* 3152811
-Node: tlmgr repository153147
-Ref: tlmgr *repository list*153335
-Ref: tlmgr *repository list _path|url|tag_*153369
-Ref: tlmgr *repository add _path_ [_tag_]*153402
-Ref: tlmgr *repository remove _path|tag_*153434
-Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*153488
-Ref: tlmgr *repository status*153509
-Ref: tlmgr The tag (which can be the same as the url);154736
-Node: tlmgr restore155214
-Ref: tlmgr *restore [_option_...] _pkg_ [_rev_]*155393
-Ref: tlmgr *restore [_option_...] --all*155423
-Ref: tlmgr *--all* 3156123
-Ref: tlmgr *--backupdir* _directory_ 2156337
-Ref: tlmgr *--dry-run* 4156518
-Ref: tlmgr *--force* 2156650
-Ref: tlmgr *--json* 2156696
-Node: tlmgr search157023
-Ref: tlmgr *search [_option_...] _what_*157187
-Ref: tlmgr *search [_option_...] --file _what_*157224
-Ref: tlmgr *search [_option_...] --all _what_*157260
-Ref: tlmgr *--file* 1157480
-Ref: tlmgr *--all* 4157542
-Ref: tlmgr *--global*157631
-Ref: tlmgr *--word*157758
-Node: tlmgr shell158073
-Ref: tlmgr protocol158808
-Ref: tlmgr help 1158872
-Ref: tlmgr version 1158925
-Ref: tlmgr quit, end, bye, byebye, EOF158993
-Ref: tlmgr restart159014
-Ref: tlmgr load [local|remote]159137
-Ref: tlmgr save159207
-Ref: tlmgr get [_var_] =item set [_var_ [_val_]]159330
-Node: tlmgr show159931
-Node: tlmgr uninstall160098
-Node: tlmgr update [_option_...] [_pkg_...]160328
-Ref: tlmgr *--all* 5160699
-Ref: tlmgr *--self*162878
-Ref: tlmgr *--dry-run* 5163642
-Ref: tlmgr *--list* [_pkg_]163819
-Ref: tlmgr *--exclude* _pkg_164508
-Ref: tlmgr *--no-auto-remove* [_pkg_...]165308
-Ref: tlmgr *--no-auto-install* [_pkg_...]165792
-Ref: tlmgr *--reinstall-forcibly-removed*166554
-Ref: tlmgr *--backup* 1167089
-Ref: tlmgr *--backupdir* _directory_ 3167115
-Ref: tlmgr *--no-depends* 2168281
-Ref: tlmgr *--no-depends-at-all* 2168484
-Ref: tlmgr *--force* 3168587
-Node: tlmgr CONFIGURATION FILE FOR TLMGR169607
-Ref: tlmgr auto-remove, value 0 or 1 (default 1), same as command-line option.170614
-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.170751
-Ref: tlmgr gui-lang _llcode_, with a language code value as with the command-line option.170833
-Ref: tlmgr no-checksums, value 0 or 1 (default 0, see below).170887
-Ref: tlmgr persistent-downloads, value 0 or 1 (default 1), same as command-line option.170967
-Ref: tlmgr require-verification, value 0 or 1 (default 0), same as command-line option.171047
-Ref: tlmgr update-exclude, value: comma-separated list of packages (no space allowed). Same as the command line option --exclude for the action update.171195
-Ref: tlmgr verify-downloads, value 0 or 1 (default 1), same as command-line option.171271
-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).171540
-Node: tlmgr CRYPTOGRAPHIC VERIFICATION172628
-Node: tlmgr Configuration of GnuPG invocation174801
-Node: tlmgr USER MODE175439
-Node: tlmgr User mode install178285
-Node: tlmgr User mode backup, restore, remove, update179429
-Node: tlmgr User mode generate, option, paper179871
-Node: tlmgr MULTIPLE REPOSITORIES180247
-Node: tlmgr Pinning181976
-Node: tlmgr GUI FOR TLMGR183899
-Node: tlmgr Main display185548
-Node: tlmgr Display configuration area185800
-Ref: tlmgr Status186161
-Ref: tlmgr Category186325
-Ref: tlmgr Match186511
-Ref: tlmgr Selection186692
-Ref: tlmgr Display configuration buttons186896
-Node: tlmgr Package list area187079
-Ref: tlmgr a checkbox187663
-Ref: tlmgr package name187799
-Ref: tlmgr local revision (and version)187898
-Ref: tlmgr remote revision (and version)188273
-Ref: tlmgr short description188570
-Node: tlmgr Main display action buttons188615
-Ref: tlmgr Update all installed188881
-Ref: tlmgr Update189253
-Ref: tlmgr Install189303
-Ref: tlmgr Remove189489
-Ref: tlmgr Backup189667
-Node: tlmgr Menu bar189824
-Ref: tlmgr tlmgr menu190047
-Ref: tlmgr Options menu190355
-Ref: tlmgr Actions menu191438
-Ref: tlmgr Help menu191866
-Node: tlmgr GUI options192000
-Ref: tlmgr -background _color_192246
-Ref: tlmgr -font " _fontname_ _fontsize_ "192311
-Ref: tlmgr -foreground _color_192469
-Ref: tlmgr -geometry _geomspec_192521
-Ref: tlmgr -xrm _xresource_192713
-Node: tlmgr MACHINE-READABLE OUTPUT192982
-Node: tlmgr Machine-readable update and install output193792
-Ref: tlmgr location-url _location_195068
-Ref: tlmgr total-bytes _count_195284
-Ref: tlmgr _pkgname_195694
-Ref: tlmgr _status_195904
-Ref: tlmgr d195982
-Ref: tlmgr f196042
-Ref: tlmgr u196221
-Ref: tlmgr r196267
-Ref: tlmgr a196390
-Ref: tlmgr i196568
-Ref: tlmgr I196687
-Ref: tlmgr _localrev_196789
-Ref: tlmgr _serverrev_196896
-Ref: tlmgr _size_197008
-Ref: tlmgr _runtime_197177
-Ref: tlmgr _esttot_197247
-Node: tlmgr Machine-readable option output197280
-Node: tlmgr ENVIRONMENT VARIABLES197792
-Ref: tlmgr TEXLIVE_COMPRESSOR198303
-Ref: tlmgr TEXLIVE_DOWNLOADER199151
-Ref: tlmgr TL_DOWNLOAD_PROGRAM199174
-Ref: tlmgr TL_DOWNLOAD_ARGS199194
-Ref: tlmgr TEXLIVE_PREFER_OWN200220
-Node: tlmgr AUTHORS AND COPYRIGHT201044
-Node: Index201442
+Node: Overview of build system3946
+Node: Prerequisites5997
+Node: Building8593
+Node: Build iteration9979
+Node: Build problems11020
+Node: Build in parallel11474
+Node: Build distribution12078
+Node: Build one package12726
+Node: Build one engine16371
+Node: Cross compilation17885
+Node: Cross configuring19165
+Node: Cross problems20842
+Node: Installing22504
+Node: Installation directories23524
+Node: Linked scripts25342
+Node: Distro builds26833
+Node: Layout and infrastructure29209
+Node: Build system tools30040
+Node: Top-level directories32257
+Node: Autoconf macros34493
+Node: General setup macros35255
+Node: Macros for programs36130
+Node: Macros for compilers36931
+Node: Macros for libraries38339
+Node: Macros for library and header flags38765
+Node: Macros for Windows40676
+Node: Library modules42263
+Node: png library42752
+Node: zlib library45100
+Node: freetype library45615
+Node: kpathsea library46311
+Node: Program modules47690
+Node: t1utils package48118
+Node: xindy package48663
+Node: xdvik package49777
+Node: asymptote50836
+Node: Extending TeX Live51332
+Node: Adding a new program module52115
+Node: Adding a new generic library module57025
+Node: Adding a new TeX-specific library module59254
+Node: Configure options59952
+Node: Global configure options61333
+Node: --disable-native-texlive-build61875
+Node: --prefix --bindir ...62837
+Node: --disable-largefile63377
+Node: --disable-missing63919
+Node: --enable-compiler-warnings=LEVEL64320
+Node: --enable-cxx-runtime-hack64976
+Node: --enable-maintainer-mode65396
+Node: --enable-multiplatform65925
+Node: --enable-shared66498
+Node: --enable-silent-rules66869
+Node: --without-ln-s67321
+Node: --without-x67668
+Node: Program-specific configure options67856
+Node: --enable-PROG --disable-PROG68499
+Node: --disable-all-pkgs68772
+Node: Configure options for texk/web2c69555
+Node: Configure options for texk/bibtex-x72093
+Node: Configure options for texk/dvipdfm-x72636
+Node: Configure options for texk/dvisvgm73412
+Node: Configure options for texk/texlive74293
+Node: Configure options for texk/xdvik74714
+Node: Configure options for utils/xindy75335
+Node: Library-specific configure options76225
+Node: Configure options for kpathsea77186
+Node: Variables for configure77890
+Node: Coding conventions79316
+Node: Declarations and definitions80031
+Node: Const82205
+Node: Continuous integration84069
+Node: Transfer from Subversion to Github84733
+Node: Automatic update of the Git mirror86895
+Node: CI testing on Travis-CI87477
+Node: Releases on Github88186
+Node: install-tl88626
+Node: install-tl NAME88995
+Node: install-tl SYNOPSIS89153
+Node: install-tl DESCRIPTION89411
+Node: install-tl REFERENCES90471
+Node: install-tl OPTIONS90995
+Ref: install-tl *-gui* [[=]_module_]91336
+Ref: install-tl text91544
+Ref: install-tl tcl91664
+Ref: install-tl wizard92006
+Ref: install-tl expert92139
+Ref: install-tl perltk92261
+Ref: install-tl *-no-gui*92807
+Ref: install-tl *-lang* _llcode_92897
+Ref: install-tl *-repository* _url|path_93653
+Ref: install-tl *-select-repository*94541
+Ref: install-tl *-all-options*94977
+Ref: install-tl *-custom-bin* _path_95232
+Ref: install-tl *-debug-translation*96066
+Ref: install-tl *-force-platform* _platform_96285
+Ref: install-tl *-help*, *--help*, *-?*96529
+Ref: install-tl *-in-place*96942
+Ref: install-tl *-init-from-profile* _profile_file_97487
+Ref: install-tl *-logfile* _file_97756
+Ref: install-tl *-no-cls*98107
+Ref: install-tl *-no-persistent-downloads*98255
+Ref: install-tl *-persistent-downloads*98280
+Ref: install-tl *-no-verify-downloads*98898
+Ref: install-tl *-non-admin*99261
+Ref: install-tl *-portable*99354
+Ref: install-tl *-print-platform*99493
+Ref: install-tl *-profile* _profile_file_99691
+Ref: install-tl *-q*99912
+Ref: install-tl *-scheme* _scheme_99974
+Ref: install-tl *-v*100448
+Ref: install-tl *-version*, *--version*100603
+Node: install-tl PROFILES100737
+Ref: install-tl instopt_adjustpath (default 0 on Unix, 1 on Windows)103603
+Ref: install-tl instopt_adjustrepo (default 1)103679
+Ref: install-tl instopt_letter (default 0)103816
+Ref: install-tl instopt_portable (default 0)103907
+Ref: install-tl instopt_write18_restricted (default 1)104003
+Node: install-tl ENVIRONMENT VARIABLES105342
+Ref: install-tl TEXLIVE_DOWNLOADER105720
+Ref: install-tl TL_DOWNLOAD_PROGRAM105743
+Ref: install-tl TL_DOWNLOAD_ARGS105763
+Ref: install-tl TEXLIVE_INSTALL_ENV_NOCHECK105967
+Ref: install-tl TEXLIVE_INSTALL_NO_CONTEXT_CACHE106169
+Ref: install-tl TEXLIVE_INSTALL_NO_IMPORT106278
+Ref: install-tl TEXLIVE_INSTALL_NO_WELCOME106430
+Ref: install-tl TEXLIVE_INSTALL_PREFIX106552
+Ref: install-tl TEXLIVE_INSTALL_TEXDIR106578
+Ref: install-tl TEXLIVE_INSTALL_TEXMFCONFIG106609
+Ref: install-tl TEXLIVE_INSTALL_TEXMFVAR106637
+Ref: install-tl TEXLIVE_INSTALL_TEXMFHOME106666
+Ref: install-tl TEXLIVE_INSTALL_TEXMFLOCAL106696
+Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSCONFIG106730
+Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSVAR106761
+Ref: install-tl NOPERLDOC107132
+Node: install-tl AUTHORS AND COPYRIGHT107196
+Node: tlmgr107609
+Node: tlmgr NAME108094
+Node: tlmgr SYNOPSIS108226
+Node: tlmgr DESCRIPTION108416
+Node: tlmgr EXAMPLES109515
+Ref: tlmgr tlmgr option repository ctan109766
+Ref: tlmgr tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet109838
+Ref: tlmgr tlmgr update --list110443
+Ref: tlmgr tlmgr update --all110536
+Ref: tlmgr tlmgr info _what_110693
+Node: tlmgr OPTIONS110955
+Ref: tlmgr *--repository* _url|path_111475
+Ref: tlmgr /some/local/dir112661
+Ref: tlmgr file:/some/local/dir112690
+Ref: tlmgr ctan112763
+Ref: tlmgr http://mirror.ctan.org/systems/texlive/tlnet112816
+Ref: tlmgr http://server/path/to/tlnet113157
+Ref: tlmgr https://server/path/to/tlnet113538
+Ref: tlmgr ftp://server/path/to/tlnet114006
+Ref: tlmgr user@machine:/path/to/tlnet114138
+Ref: tlmgr scp://user@machine/path/to/tlnet114179
+Ref: tlmgr ssh://user@machine/path/to/tlnet114220
+Ref: tlmgr *--gui* [_action_]114613
+Ref: tlmgr *--gui-lang* _llcode_115426
+Ref: tlmgr *--debug-translation*116162
+Ref: tlmgr *--machine-readable*116365
+Ref: tlmgr *--no-execute-actions*116633
+Ref: tlmgr *--package-logfile* _file_116826
+Ref: tlmgr *--pause*117080
+Ref: tlmgr *--persistent-downloads*117235
+Ref: tlmgr *--no-persistent-downloads*117263
+Ref: tlmgr *--pin-file*117757
+Ref: tlmgr *--usermode*117975
+Ref: tlmgr *--usertree* _dir_118095
+Ref: tlmgr *--verify-repo=[none|main|all]*118221
+Node: tlmgr ACTIONS119120
+Node: tlmgr help119981
+Node: tlmgr version120458
+Node: tlmgr backup120721
+Ref: tlmgr *backup [_option_...] --all*120892
+Ref: tlmgr *backup [_option_...] _pkg_...*120925
+Ref: tlmgr *--backupdir* _directory_121991
+Ref: tlmgr *--all*122208
+Ref: tlmgr *--clean*[=_N_]122460
+Ref: tlmgr *--dry-run*122787
+Node: tlmgr candidates _pkg_122917
+Node: tlmgr check [_option_...] [depends|executes|files|runfiles|texmfdbs|all]123272
+Ref: tlmgr *depends*123786
+Ref: tlmgr *executes*124128
+Ref: tlmgr *files*124243
+Ref: tlmgr *runfiles*124379
+Ref: tlmgr *texmfdbs*124516
+Ref: tlmgr - all items in TEXMFDBS have the !! prefix.124746
+Ref: tlmgr - all items in TEXMFBDS have an ls-R file (if they exist at all).124822
+Ref: tlmgr - all items in TEXMF with !! are listed in TEXMFDBS.124887
+Ref: tlmgr - all items in TEXMF with an ls-R file are listed in TEXMFDBS.124962
+Ref: tlmgr *--use-svn*124987
+Node: tlmgr conf125128
+Ref: tlmgr *conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]*125416
+Ref: tlmgr *conf auxtrees [--conffile _file_] [show|add|remove] [_value_]*125480
+Node: tlmgr dump-tlpdb [_option_...] [--json]127895
+Ref: tlmgr *--local*128328
+Ref: tlmgr *--remote*128367
+Ref: tlmgr *--json*128405
+Node: tlmgr generate128976
+Ref: tlmgr *generate [_option_...] language*129172
+Ref: tlmgr *generate [_option_...] language.dat*129211
+Ref: tlmgr *generate [_option_...] language.def*129250
+Ref: tlmgr *generate [_option_...] language.dat.lua*129293
+Ref: tlmgr *--dest* _output_file_131620
+Ref: tlmgr *--localcfg* _local_conf_file_132196
+Ref: tlmgr *--rebuild-sys*132319
+Node: tlmgr gui133134
+Node: tlmgr info133312
+Ref: tlmgr *info [_option_...] _pkg_...*133474
+Ref: tlmgr *info [_option_...] collections*133508
+Ref: tlmgr *info [_option_...] schemes*133538
+Ref: tlmgr *--list*135068
+Ref: tlmgr *--only-installed*135382
+Ref: tlmgr *--only-remote*135570
+Ref: tlmgr *--data item1,item2,...*135874
+Ref: tlmgr *--json* 1136455
+Node: tlmgr init-usertree136838
+Node: tlmgr install [_option_...] _pkg_...137219
+Ref: tlmgr *--dry-run* 1137727
+Ref: tlmgr *--file*137844
+Ref: tlmgr *--force*138066
+Ref: tlmgr *--no-depends*138286
+Ref: tlmgr *--no-depends-at-all*138445
+Ref: tlmgr *--reinstall*138845
+Ref: tlmgr *--with-doc*139223
+Ref: tlmgr *--with-src*139236
+Node: tlmgr key139964
+Ref: tlmgr *key list*140122
+Ref: tlmgr *key add _file_*140140
+Ref: tlmgr *key remove _keyid_*140162
+Node: tlmgr list140756
+Node: tlmgr option140918
+Ref: tlmgr *option [--json] [show]*141073
+Ref: tlmgr *option [--json] showall|help*141104
+Ref: tlmgr *option _key_ [_value_]*141130
+Node: tlmgr paper145708
+Ref: tlmgr *paper [a4|letter]*145857
+Ref: tlmgr *<[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*>145933
+Ref: tlmgr *paper --json*145948
+Node: tlmgr path147163
+Ref: tlmgr *path [--w32mode=user|admin] add*147324
+Ref: tlmgr *path [--w32mode=user|admin] remove*147361
+Node: tlmgr pinning148846
+Ref: tlmgr pinning show149087
+Ref: tlmgr pinning add _repo_ _pkgglob_...149160
+Ref: tlmgr pinning remove _repo_ _pkgglob_...149279
+Ref: tlmgr pinning remove _repo_ --all149432
+Node: tlmgr platform149486
+Ref: tlmgr *platform list|add|remove _platform_...*149672
+Ref: tlmgr *platform set _platform_*149699
+Ref: tlmgr *platform set auto*149720
+Ref: tlmgr *--dry-run* 2150597
+Node: tlmgr postaction150716
+Ref: tlmgr *postaction [_option_...] install [shortcut|fileassoc|script] [_pkg_...]*150946
+Ref: tlmgr *postaction [_option_...] remove [shortcut|fileassoc|script] [_pkg_...]*151020
+Ref: tlmgr *--w32mode=[user|admin]*151335
+Ref: tlmgr *--fileassocmode=[1|2]*151751
+Ref: tlmgr *--all* 1152036
+Node: tlmgr print-platform152091
+Node: tlmgr print-platform-info152422
+Node: tlmgr remove [_option_...] _pkg_...152722
+Ref: tlmgr *--all* 2153206
+Ref: tlmgr *--backup*153316
+Ref: tlmgr *--backupdir* _directory_ 1153342
+Ref: tlmgr *--no-depends* 1153747
+Ref: tlmgr *--no-depends-at-all* 1153809
+Ref: tlmgr *--force* 1153912
+Ref: tlmgr *--dry-run* 3154385
+Node: tlmgr repository154721
+Ref: tlmgr *repository list*154909
+Ref: tlmgr *repository list _path|url|tag_*154943
+Ref: tlmgr *repository add _path_ [_tag_]*154976
+Ref: tlmgr *repository remove _path|tag_*155008
+Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*155062
+Ref: tlmgr *repository status*155083
+Ref: tlmgr The tag (which can be the same as the url);156310
+Node: tlmgr restore156788
+Ref: tlmgr *restore [_option_...] _pkg_ [_rev_]*156967
+Ref: tlmgr *restore [_option_...] --all*156997
+Ref: tlmgr *--all* 3157697
+Ref: tlmgr *--backupdir* _directory_ 2157911
+Ref: tlmgr *--dry-run* 4158092
+Ref: tlmgr *--force* 2158224
+Ref: tlmgr *--json* 2158270
+Node: tlmgr search158597
+Ref: tlmgr *search [_option_...] _what_*158761
+Ref: tlmgr *search [_option_...] --file _what_*158798
+Ref: tlmgr *search [_option_...] --all _what_*158834
+Ref: tlmgr *--file* 1159054
+Ref: tlmgr *--all* 4159116
+Ref: tlmgr *--global*159205
+Ref: tlmgr *--word*159332
+Node: tlmgr shell159647
+Ref: tlmgr protocol160382
+Ref: tlmgr help 1160446
+Ref: tlmgr version 1160499
+Ref: tlmgr quit, end, bye, byebye, EOF160567
+Ref: tlmgr restart160588
+Ref: tlmgr load [local|remote]160711
+Ref: tlmgr save160781
+Ref: tlmgr get [_var_] =item set [_var_ [_val_]]160904
+Node: tlmgr show161505
+Node: tlmgr uninstall161672
+Node: tlmgr update [_option_...] [_pkg_...]161902
+Ref: tlmgr *--all* 5162273
+Ref: tlmgr *--self*164452
+Ref: tlmgr *--dry-run* 5165216
+Ref: tlmgr *--list* [_pkg_]165393
+Ref: tlmgr *--exclude* _pkg_166082
+Ref: tlmgr *--no-auto-remove* [_pkg_...]166882
+Ref: tlmgr *--no-auto-install* [_pkg_...]167366
+Ref: tlmgr *--reinstall-forcibly-removed*168128
+Ref: tlmgr *--backup* 1168663
+Ref: tlmgr *--backupdir* _directory_ 3168689
+Ref: tlmgr *--no-depends* 2169855
+Ref: tlmgr *--no-depends-at-all* 2170058
+Ref: tlmgr *--force* 3170161
+Node: tlmgr CONFIGURATION FILE FOR TLMGR171181
+Ref: tlmgr auto-remove, value 0 or 1 (default 1), same as command-line option.172188
+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.172325
+Ref: tlmgr gui-lang _llcode_, with a language code value as with the command-line option.172407
+Ref: tlmgr no-checksums, value 0 or 1 (default 0, see below).172461
+Ref: tlmgr persistent-downloads, value 0 or 1 (default 1), same as command-line option.172541
+Ref: tlmgr require-verification, value 0 or 1 (default 0), same as command-line option.172621
+Ref: tlmgr update-exclude, value: comma-separated list of packages (no space allowed). Same as the command line option --exclude for the action update.172769
+Ref: tlmgr verify-downloads, value 0 or 1 (default 1), same as command-line option.172845
+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).173114
+Node: tlmgr CRYPTOGRAPHIC VERIFICATION174202
+Node: tlmgr Configuration of GnuPG invocation176375
+Node: tlmgr USER MODE177013
+Node: tlmgr User mode install179859
+Node: tlmgr User mode backup, restore, remove, update181003
+Node: tlmgr User mode generate, option, paper181445
+Node: tlmgr MULTIPLE REPOSITORIES181821
+Node: tlmgr Pinning183550
+Node: tlmgr GUI FOR TLMGR185473
+Node: tlmgr Main display187122
+Node: tlmgr Display configuration area187374
+Ref: tlmgr Status187735
+Ref: tlmgr Category187899
+Ref: tlmgr Match188085
+Ref: tlmgr Selection188266
+Ref: tlmgr Display configuration buttons188470
+Node: tlmgr Package list area188653
+Ref: tlmgr a checkbox189237
+Ref: tlmgr package name189373
+Ref: tlmgr local revision (and version)189472
+Ref: tlmgr remote revision (and version)189847
+Ref: tlmgr short description190144
+Node: tlmgr Main display action buttons190189
+Ref: tlmgr Update all installed190455
+Ref: tlmgr Update190827
+Ref: tlmgr Install190877
+Ref: tlmgr Remove191063
+Ref: tlmgr Backup191241
+Node: tlmgr Menu bar191398
+Ref: tlmgr tlmgr menu191621
+Ref: tlmgr Options menu191929
+Ref: tlmgr Actions menu193012
+Ref: tlmgr Help menu193440
+Node: tlmgr GUI options193574
+Ref: tlmgr -background _color_193820
+Ref: tlmgr -font " _fontname_ _fontsize_ "193885
+Ref: tlmgr -foreground _color_194043
+Ref: tlmgr -geometry _geomspec_194095
+Ref: tlmgr -xrm _xresource_194287
+Node: tlmgr MACHINE-READABLE OUTPUT194556
+Node: tlmgr Machine-readable update and install output195366
+Ref: tlmgr location-url _location_196642
+Ref: tlmgr total-bytes _count_196858
+Ref: tlmgr _pkgname_197268
+Ref: tlmgr _status_197478
+Ref: tlmgr d197556
+Ref: tlmgr f197616
+Ref: tlmgr u197795
+Ref: tlmgr r197841
+Ref: tlmgr a197964
+Ref: tlmgr i198142
+Ref: tlmgr I198261
+Ref: tlmgr _localrev_198363
+Ref: tlmgr _serverrev_198470
+Ref: tlmgr _size_198582
+Ref: tlmgr _runtime_198751
+Ref: tlmgr _esttot_198821
+Node: tlmgr Machine-readable option output198854
+Node: tlmgr ENVIRONMENT VARIABLES199366
+Ref: tlmgr TEXLIVE_COMPRESSOR199877
+Ref: tlmgr TEXLIVE_DOWNLOADER200725
+Ref: tlmgr TL_DOWNLOAD_PROGRAM200748
+Ref: tlmgr TL_DOWNLOAD_ARGS200768
+Ref: tlmgr TEXLIVE_PREFER_OWN201794
+Node: tlmgr AUTHORS AND COPYRIGHT202618
+Node: Index203016

End Tag Table
diff --git a/Build/source/doc/tlbuild.texi b/Build/source/doc/tlbuild.texi
index 19f2c438cc0..63dbbca0fc6 100644
--- a/Build/source/doc/tlbuild.texi
+++ b/Build/source/doc/tlbuild.texi
@@ -2,7 +2,7 @@
@setfilename tlbuild.info
@set version 2020
-@set month-year March 2020
+@set month-year November 2020
@set mytitle Building @TeX{} Live (@value{version})
@settitle @value{mytitle}
@@ -1660,6 +1660,7 @@ the top level, they should be defined in an additional fragment
@file{ac/@var{prog}.ac} included from @file{ac/withenable.ac} and
@file{configure.ac}.
+@cindex @var{newprog-src}, original source subdirectory
Usually, the new program is maintained somewhere outside of @TL{}. In
that case, as above, we put the upstream sources into a subdirectory
@file{@var{prog}-src} (e.g., @file{utils/newprog/newprog-src}). We do
@@ -1667,49 +1668,83 @@ not typically run @code{configure} in this original @code{...-src}
directory, but only in our own directory; but we do compile using the
source files in @code{...-src}.
-So, to summarize the files that we must (usually) create:
+So, to summarize the files that must (usually) be created inside a new
+TL source directory (@file{texk/newprog} or @file{utils/newprog}):
-@table @file
+@ftable @file
@item ac/withenable.ac
The @code{KPSE_ENABLE_PROG} call just explained.
@item configure.ac
@itemx Makefile.am
By merging the contents of the original @file{configure.ac} (if
-provided) and a comparable program already in TL. There is no magic
-recipe, it's necessary to think about needs to be done in the original
-vs.@: in @TL{}.
+provided) and a comparable program already in TL. In the above
+example, one line that will be needed in @file{configure.ac} (can be
+added before the @code{AC_CONFIG_FILES} at the end) is:
+
+@example
+AC_SUBST([NEWPROG_TREE], [newprog-src])
+@end example
+
+@noindent and then use @code{@@NEWPROG_TREE@@} in
+@code{Makefile.am} where needed.
+
+In general, there is no magic recipe for this part of the job. It's
+necessary to think about what needs to be done in the original vs.@:
+in @TL{}. It's useful to look at the setup for the most comparable
+programs already in TL that you can find. It's also useful to grep the
+entire @file{Build/source} tree for whatever you can think of to
+investigate how something is done. Most of the TL-specific macros are
+defined in @file{Build/source/m4/*}.
@item TLpatches/TL-Changes
-Actions taken after getting the original source tree; typically
+First actions taken after getting the original source tree; typically
removal of derived or unused common files.
@item TLpatches/patch-...
If any changes are needed to the original sources, record the patches
-here so they can be applied next time. And send them upstream so that
-perhaps they won't have to be.
+here so they can be applied next time. Also, send them upstream so
+that we don't have to maintain them forever.
@item ChangeLog
Record all TL-specific changes, now and in the future.
-@end table
+@end ftable
-Then, run GNU @code{autoreconf} in the new directory (@pxref{Build
-system tools}). After that works, @code{svn add} the necessary files,
+@pindex autoreconf@r{, for new program}
+After populating the new TL source directory (@file{.../newprog/}, in
+the above), run GNU @code{autoreconf} there (@pxref{Build system
+tools}). Once that works, if you are the one who's eventually going
+to commit the new package, @code{svn add} the necessary files,
including the generated @file{Makefile.in aclocal.m4 configure}, and
@code{svn:ignore} the Automake cache @file{autom4te.cache}. (This is
so people checking out the TL source tree do not have to run any
autotools, but can simply run @code{configure}.)
+@pindex reautoconf@r{, for new program}
Then, run the TL tool @code{reautoconf} in the top-level TL
-@code{source/} directory, to incorporate the new program into the
-build tree.
-
-Then, run (and rerun) a build until the program compiles and tests
-successfully, probably involving rerunning autoreconf in the source
-directory, @code{make} in the build directory, etc.
-
-After final success, don't forget to commit.
+@code{Build/source/} directory, to incorporate the new program into
+the build tree. It is good to then rebuild the whole tree (e.g., using
+TL's @file{Build/Build} script) to get all the necessary files generated.
+
+It will probably fail. So then you need to keep at it until the
+program compiles and tests successfully. The most efficient way is to
+rerun @code{autoreconf} as needed in the new source directory
+(@code{Build/source/.../newprog}), then @code{make} in the
+corresponding build directory (@code{Build/work/.../newprog}), then
+@code{make check}, etc. In the end, also make sure that the whole tree
+builds from scratch.
+
+After final success, don't forget to commit. (Or email the TL
+maintainers with the patch.)
+
+@cindex engine, adding new
+Caveat: adding a new @TeX{} engine is not completely different, but
+it's not all that similar, either. In that case, the work is done
+inside a new subdirectory of @file{texk/web2c/}. Many things are
+common to all the engines, other things need to be copied and possibly
+modified for each one, yet others are unique to each. No general
+recipe is possible.
@node Adding a new generic library module