Part II.5: As a special case, we need to update tlnet even after the final freeze. pretest is going on. To do that, the idea is to make a tag+branch for the last update before switching to the pretest, check that out, and use it for such critical updates. To do that, a) look at https://tug.org/svn/texlive/tags/ to choose the right tag name. For TL19 (during the TL20 pretest), it was texlive-2019.4, since .0-3 were used during the release. b) look at https://tug.org/pipermail/tex-live-commits/ to determine the right revision number: probably the "autoupdate" during the last build before the pretest setup. For TL19, that was 53984. c) run the svn commands given below to create the tag and branch. d) make working checkout of the new branch (at this point we should be fine to wipe out the old branch checkout, if there was one). mkdir /home/texlive/branch cd !$ tlyear=2019 subnum=4 nice -19 svn co -q svn://tug.org/texlive/branches/branch$tlyear.$subnum . e) make the required update, probably most easily by copying the affected files from the trunk. Running ctan2tl (or c2l) inside the branch checkout should also work, if no other changes have intervened. f) remake tlnet (not tlpretest); cron.tl does too much overhead for this delicate situation, so run the commands by hand. 1) update tlpdb so we'll get the new revision number; must run from branch, not trunk, or all will be wrong! cd /home/texlive/branch/Master/tlpkg/bin # must be in branch directory Use Catalogue snapshot saved above (at "preserve Catalogue") to avoid myriad Catalogue changes. If files have been removed without any other changes to a given package (hopefully not), add --fix-reverse-revisions. catdir=/home/texlive/catalogue-freeze ./tl-update-tlpdb --catalogue=$catdir Check that only expected changes are made. Might be easier to run this, get the new revision number(s), then revert and manually edit if there are additional unneeded changes. Don't worry about 00texlive.*, they aren't distributed. 2) for safety, make a backup of tlnet: tar -cf /tmp/tlnet.tar -C /home/ftp/texlive/tlnet . # remove when done 3) update tlnet, again from the branch, not trunk. Double check! we don't want to update the installer packages, as they have already been getting updated from trunk, so are newer. cd /home/texlive/branch/Master/tlpkg/bin ./tl-update-tlnet --no-install-pkgs It will take about an hour to run. hopefully only the intended packages will get updated. if not, that's why we made the tar backup. g) Update the tlnet-final directory in historic: tlnet_live=/home/ftp/texlive/tlnet tlnet_historic=/home/ftp/historic/systems/texlive/2019/tlnet-final rsync -av -n $tlnet_live/ $tlnet_historic/ # trailing /'s needed # remove the -n after checking that only expected files are updated.