$Id$ Public domain. Information on package maintenance in TeX Live. Related: - See http://tug.org/texlive/pkgupdate.html (and scripts) for information on the CTAN-to-TL update process. - See ./releng.txt for info about setting up the pretest and doing a release. To add a new platform: - check that the config.guess output maps to our architecture name in the `platform_name' routine in TeXLive/TLUtils.pm. - add the abbreviation to the full-name mapping in `platform_desc'. - create directory in Master/bin and add at least one file, more likely the whole set. - if windows-ish (.exe extension), update regexps in TLTREE.pm and tlmgr.pl and ctan2tds. - add xz, maybe lz4, maybe wget binaries in Master/tlpkg/installer, update texlive.infra.tlpsrc if no wget or otherwise provided, update 00texlive.installer.tlpsrc if needed. - update .tlpsrc files if necessary: most likely asymptote, biber, xindy. - consider adding to prune= list in tl-update-images. - regenerate tlpdb if desired. - commit bin/NEWDIR/ tlpkg/ - update web texlive/build.html (and texlive-en.tex, at some point). - if desired, put binaries into texlive/files and link on custom-bin.html. - ask builder for entry in source/README. To remove a platform: - remove directory in Master/bin. - remove xz, maybe wget, maybe lz4, binaries in Master/tlpkg/installer. - remove any special cases in Master/tlpkg/tlpsrc. - remove from prune list in tl-update-images, if present. - remove entry in Build/source/README, if there is one. To check tlpsrc changes without committing: tl-update-tlpdb --save-anyway tlmgr check --use-svn files # or whatever Do not fail to revert the tlpdb, or it will create an svn conflict. To remake tlcritical from scratch: cd /home/ftp/texlive rm -rf tlcritical mkdir tlcritical tl-update-tlcritical --recreate To branch before a release, in the unlikely event of separate development work before switching trunk: svn copy -r 12205 -m'texlive-2009-dev tag based on r12205' \ svn://tug.org/texlive/trunk svn://tug.org/texlive/tags/texlive-2009-dev svn copy -r 12205 -m'branch2009-dev branch based on r12205' \ svn://tug.org/texlive/trunk svn://tug.org/texlive/branches/branch2009-dev (Use -dev instead of .something because - will sort first, keeping the listings in a nice chronological order.) To build tlnet in a separate location, e.g., if making changes to its structure. (e.g., in Oct 2019 we changed to versioned containers .rNNN.tar.xz.) # First we build the test repository and test installation from scratch. # Do it with no (significant) changes from the current source, for sanity. # # Use subdir of /home/ftp/texlive or another dir ignored for backups # (see /etc/rsnapshot.conf). destdir=/home/ftp/texlive/test-tlnet # # since we're building into a new hierarchy for testing, have to touch tlpdb. rm -rf $destdir mkdir -p $destdir/tlpkg touch !$/texlive.tlpdb # Update (populate, the first time) the new repo. # should take about 15 minutes; updating with the full scheme (which # should be done at least once) instead of infraonly takes about 35 min. tl-update-tlnet --critical --scheme infraonly --dest $destdir # if there are errors, the build hierarchy will not be moved to the # destination; can do it by hand if desired: cd /home/ftp rm -rf texlive/test-tlnet/ # just removing the empty file we created mv tlnet-trial-*/tlsrc.try texlive/test-tlnet/ rmdir tlnet-trial-* # If ever desired, could recreate every package from scratch. # This will take hours. #tl-update-tlnet --critical --recreate --scheme infraonly --dest $destdir # Now we can test the new repo: do an installation into /tmp/ki (hardwired). # The default scheme here is again infraonly. tl-try-install --repo $destdir # We'll want to test network, local disk, and from-development repositories. # So move /tmp/ki, set the repository, and do it again. mv /tmp/ki /tmp/tldsk tl-try-install --repo $destdir /tmp/tldsk/bin/x86_64-linux/tlmgr option repo $destdir # # For ftp access, want to use ftpmirror to log in, since anonymous ftp # will often fail. See tug.org:~karl/.netrc or the ftpd setup on tug. mv /tmp/ki /tmp/tlftp /tmp/tlftp/bin/x86_64-linux/tlmgr option repo ftp://fm.tug.org/texlive/test-tlnet # # Create test installation from development tree. # This exercises yet another code path. Master=... $Master/install-tl --profile=$Master/tlpkg/dev/profiles/TLinfra.pro mv /tmp/ki /tmp/tldev # Now, from those repos, initial check with current tlmgr; # update list should be empty at first. /tmp/tldsk/bin/x86_64-linux/tlmgr update --list /tmp/tlftp/bin/x86_64-linux/tlmgr update --list /tmp/tldev/bin/x86_64-linux/tlmgr update --list # So much for the setup and sanity checks. Now it's time to test # whatever the real changes are. Make the changes (without # committing), and update our test repo just as above (no need to recreate): tl-update-tlnet --critical --scheme infraonly --dest $destdir # Then re-update the installations: /tmp/tldsk/bin/x86_64-linux/tlmgr update --self --all /tmp/tlftp/bin/x86_64-linux/tlmgr update --self --all /tmp/tldev/bin/x86_64-linux/tlmgr update --self --all # Also try an older tlmgr against the test repo (readonly, don't want to # update /usr/local/texlive/2019): env PATH=/usr/local/texlive/2019/bin/x86_64-linux:/usr/bin \ tlmgr -repo $destdir update --list | head # # Also must try creating and updating a 2019 install from the test- # repo; best to do a full install here for complete testing. rm -rf /tmp/ki pro=--profile=/home/texlive/trunk/Master/tlpkg/dev/profiles/TLfull.pro env PATH=/usr/bin \ /usr/local/texlive/2019/install-tl $pro test19=/tmp/tlt19 mv /tmp/ki $test19 # so we don't accidentally lose it with rm /tmp/ki # env PATH=$test19/bin/x86_64-linux:/usr/bin \ tlmgr -repo $destdir update --self --all # To create the disaster recovery scripts in the test repo: tl-update-tlcritical --tlcrit $destdir --no-containers # Repeat until satisfied: all changes are in test-tlnet and # installations and working as intended. For the Nov 2019 update, that # means symlinks pointing to new files for updated packages, old # versioned containers removed, backups made, etc. # The tlpkg/bin/tltestnet script has minimal support for some of the # above in the November 2019 change - moving the dev files (to and # back), creating a 2019-original-release installation, etc. Take a look # for ideas and hacking; don't take it too seriously. # If you need to make changes to files without a nightly build # intervening, as will usually be the case, it is necessary to manually # edit the Master/tlpkg/texlive.tlpdb in the test- repo to # increment the "revision" number for texlive.infra, or whatever # packages need to be updated. Otherwise tl-update-containers will think # that nothing needs to be updated.