summaryrefslogtreecommitdiff
path: root/Master/tlpkg/doc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-11-26 23:04:18 +0000
committerKarl Berry <karl@freefriends.org>2019-11-26 23:04:18 +0000
commit5ac249e0b8e20d3f0d0d46c4273c5dc9544bbc9d (patch)
treecedbef294c3122467b39e82b16ada419ea965b9e /Master/tlpkg/doc
parent31450d732388e28b31fbcec85cd5e9af4285d33b (diff)
versioned .tar.xz containers for the tlnet repository
git-svn-id: svn://tug.org/texlive/trunk@52931 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/doc')
-rw-r--r--Master/tlpkg/doc/packages.txt115
1 files changed, 111 insertions, 4 deletions
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.