From 5ac249e0b8e20d3f0d0d46c4273c5dc9544bbc9d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 26 Nov 2019 23:04:18 +0000 Subject: versioned .tar.xz containers for the tlnet repository git-svn-id: svn://tug.org/texlive/trunk@52931 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/doc/packages.txt | 115 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 111 insertions(+), 4 deletions(-) (limited to 'Master/tlpkg/doc') diff --git a/Master/tlpkg/doc/packages.txt b/Master/tlpkg/doc/packages.txt index 089415eb20d..d9587f09bee 100644 --- a/Master/tlpkg/doc/packages.txt +++ b/Master/tlpkg/doc/packages.txt @@ -44,10 +44,10 @@ Do not fail to revert the tlpdb, or it will create an svn conflict. rm -rf tlcritical mkdir tlcritical tl-update-tlcritical --recreate - - -To branch before a release, in the unlikely event of separate - development work before we want to switch trunk over: + + + 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' \ @@ -55,3 +55,110 @@ svn copy -r 12205 -m'branch2009-dev branch based on r12205' \ (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. -- cgit v1.2.3