diff options
author | Karl Berry <karl@freefriends.org> | 2020-11-28 22:38:51 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-11-28 22:38:51 +0000 |
commit | a15b98ee17678246556913f71f46e8b12c402b4a (patch) | |
tree | 447ae1df124a5c042a7a79f01aabb4c6d8f89c5b | |
parent | 9751df8fcab071b412e307ff1aa3f27504179cbb (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/ChangeLog | 5 | ||||
-rw-r--r-- | Build/source/doc/tlbuild.info | 877 | ||||
-rw-r--r-- | Build/source/doc/tlbuild.texi | 75 |
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 |