summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-05-23 20:57:09 +0000
committerKarl Berry <karl@freefriends.org>2020-05-23 20:57:09 +0000
commited8341447cc7f6c32b3d0b0ec21ba210deaa5d69 (patch)
tree4f8fcc1beb4e61593e16ba7dc6212497fe4e7926
parent8e9eccbfc7c9128d0a654c31fecad3406199ac9b (diff)
tltestnet: run tl-update-tlnet from working hierarchy, per PATH, to
allow for test builds without modifying the production directory. Test hierarchy set up in /home/texlive/tstnet. tl-update-install-pkg, tl-update-tlnet, releng.txt: doc. git-svn-id: svn://tug.org/texlive/trunk@55247 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xMaster/tlpkg/bin/tl-update-install-pkg2
-rwxr-xr-xMaster/tlpkg/bin/tl-update-tlnet13
-rwxr-xr-xMaster/tlpkg/bin/tltestnet100
-rw-r--r--Master/tlpkg/doc/releng.txt2
4 files changed, 31 insertions, 86 deletions
diff --git a/Master/tlpkg/bin/tl-update-install-pkg b/Master/tlpkg/bin/tl-update-install-pkg
index d0800750e06..a1743d5d5a5 100755
--- a/Master/tlpkg/bin/tl-update-install-pkg
+++ b/Master/tlpkg/bin/tl-update-install-pkg
@@ -1,6 +1,6 @@
#!/usr/bin/env perl
# $Id$
-# Copyright 2008-2018 Reinhard Kotucha, Norbert Preining, Karl Berry
+# Copyright 2008-2020 Reinhard Kotucha, Norbert Preining, Karl Berry
# This file is licensed under the GNU General Public License version 2
# or any later version.
diff --git a/Master/tlpkg/bin/tl-update-tlnet b/Master/tlpkg/bin/tl-update-tlnet
index 3a69ac806e8..1c939e28221 100755
--- a/Master/tlpkg/bin/tl-update-tlnet
+++ b/Master/tlpkg/bin/tl-update-tlnet
@@ -81,8 +81,9 @@ $Master/tlpkg/bin/tl-check-symlinks $Master/bin
test -z "$tltrybase" \
&& tltrybase=`cd $tlweb/../.. && pwd`/tlnet-trial-`date +%y%m%d`
tltry=$tltrybase/tlsrc.try
-echo "$0: Using tltry=$tltry" # local working dir
-echo "$0: Using tlweb=$tlweb" # top level network directory, mirrored
+echo "$0: running from Master=$Master"
+echo "$0: working in tltry=$tltry"
+echo "$0: output to tlweb=$tlweb"
# Save current tlpdb in case of disaster.
cp --force --backup $tlweb/tlpkg/texlive.tlpdb* /tmp
@@ -104,15 +105,13 @@ for f in $tlweb/*; do
: # skip mactex
elif test "x$cow_shell" = xcow-shell; then
cp -al "$f" $tltry # assume GNU cp so we can link instead of copy
- # However, cow-shell may be introducing strange errors on the
+ # However, cow-shell is evidently introducing strange errors on the
# tug.org server we switched to in 2020, causing the release (tlnet)
# directory to be modified even when changes should be kept to the
# test (tltry) directory (ultimately resulting in checksum errors
# since the containers and tlpdb don't match, after a failed rebuild).
- #
- # We're not sure. But let's just default to straight copies,
- # avoiding cow-shell, at least until we see if the problem happens
- # without it, or we can get to the bottom of it.
+ # This can be confirmed with a test hierarchy and build; see tltestnet.
+ # So, do not use cow-shell.
else
# no cow-shell, straight copy.
cp -a "$f" $tltry # still assuming GNU cp for -a
diff --git a/Master/tlpkg/bin/tltestnet b/Master/tlpkg/bin/tltestnet
index c3fb4e228db..75ab0544add 100755
--- a/Master/tlpkg/bin/tltestnet
+++ b/Master/tlpkg/bin/tltestnet
@@ -1,86 +1,30 @@
#!/bin/sh
# $Id$
# Public domain. Originally written 2019, Karl Berry.
-#
-# Convenience script for the 2019 change to versioned containers.
-# See tlpkg/doc/packages.txt for some info. Assumes variables
-# in ~karl/.bash_login and plenty more, sorry.
-
-renice 20 $$ >/dev/null 2>&1
-cd $HOME
-
-if test "x$1" = x-s; then
- svn=/usr/local/bin/svn
- for f in $xx/tlmgr.pl $pp/TLPOBJ.pm $pb/tl-update-containers; do
- test -z "`$svn status $f`" || { echo "$f modified, goodbye"; exit 1; }
- cp -pv $f.new $f || exit 1
- done
- exit 0
-
-elif test "x$1" = x-S; then
- svn=/usr/local/bin/svn
- for f in $xx/tlmgr.pl $pp/TLPOBJ.pm $pb/tl-update-containers; do
- cmp -s $f $f.new || { echo "modified $f, goodbye"; exit 1; }
- mv $f $f.new || exit 1
- $svn update $f
- done
- exit 0
-
-elif test "x$1" = x-d; then
- for f in $xx/tlmgr.pl $pp/TLPOBJ.pm $pb/tl-update-containers; do
- diff -u1 $f $f.new
- done >/tmp/dif
- exit 0
+# Run an update of tlnet, but in a test directory.
-elif test "x$1" = x-i; then
- dest=/tmp/ki
- PATH=$dest/bin/x86_64-linux:/usr/bin; export PATH
- rm -rf $dest*
- #
- TEXLIVE_INSTALL_ENV_NOCHECK=1; export TEXLIVE_INSTALL_ENV_NOCHECK
- TEXLIVE_INSTALL_NO_WELCOME=1; export TEXLIVE_INSTALL_NO_WELCOME
- #
- pro=--profile=/home/texlive/trunk/Master/tlpkg/dev/profiles/TLinfra.pro
- #
- thisrel=/usr/local/texlive/`date +%Y`
- $thisrel/install-tl $pro || exit 1 # make throwaway test install
- exit $?
-
-elif test "x$1" = x--rebuild; then
- # update test repository. Do -s first to put code in place, and -S after.
- destdir=/home/ftp/texlive/test-tlnet
- set -x
- tl-update-tlnet --critical --scheme infraonly --dest $destdir
- tl-update-tlcritical --tlcrit $destdir --no-containers
-
-elif test "x$1" = x-u || test "x$1" = x--all || test "x$1" = x--self; then
- # update installations.
- if test "x$1" = x-u || test "x$1" = x--all; then
- uarg=--all
- elif test "x$1" = x--self; then
- uarg=--self
- else
- echo "$0: impossible update arg: $1" >&2
- exit 1
- fi
- for i in tlhttp tlftp tldsk tldev tla; do
- bin=/tmp/$i/bin/x86_64-linux
- printf "\n\f $bin/tlmgr update $uarg\n"
- env PATH=$bin:/usr/bin tlmgr update $uarg
- done
+testnet=/home/texlive/tstftp/tstlive/tstnet
+# the subdirectories there are necessary because we make the trial
+# directories two levels up. Imagine tstftp = ~ftp, tstlive = ~ftp/texlive.
+fast=true
+if $fast; then
+ scheme=minimal
+ install_pkg=--no-install-pkg
+ consistency=--no-consistency
else
- echo "$0: what to do? ($*)" >&2
- exit 1
+ scheme=full
+ install_pkg=
+ consistency=
fi
-##repo=--repo=/home/ftp/texlive/test-tlnet
-##repo=--repo=/home/ftp/texlive/tlnet
-##repo=--repo=/home/ftp/texlive/tlcritical
-##repo=--repo=/home/ftp/texlive/tlverpkg
-##repo=--repo=ftp://fm.tug.org/texlive/test-tlnet
-#
-#set -x
-#tlmgr version
-#tlmgr -v $repo update --self
-##tlmgr $repo update
+# We assume the texlive.tlpdb file is up to date. It could be rebuilt
+# with the command here, but it's usually not desirable, because with
+# --fix-reverse updates can get committed, and without it, the result
+# may not be consistent.
+#
+#catup= #--catalogue-compare=$tlnet_dir
+#./tlpkg/bin/tl-update-tlpdb -v --fix-reverse-revisions $catup
+
+# run out of PATH, not the reference tree.
+tl-update-tlnet --dest $testnet --scheme $scheme $install_pkg $consistency
diff --git a/Master/tlpkg/doc/releng.txt b/Master/tlpkg/doc/releng.txt
index 374ba7a24f8..18513def35c 100644
--- a/Master/tlpkg/doc/releng.txt
+++ b/Master/tlpkg/doc/releng.txt
@@ -16,6 +16,8 @@ Check if pretest mirrors need renewing, talk to mirror admins if so:
To stop updating of certain packages before the general freeze:
tlpkg/dev/tlnet-disabled-packages.txt
+To run test builds without affecting production dirs, see:
+ tlpkg/bin/tltestnet
I. Preparing, can be done before pretest starts.