From ed8341447cc7f6c32b3d0b0ec21ba210deaa5d69 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 23 May 2020 20:57:09 +0000 Subject: 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 --- Master/tlpkg/bin/tl-update-install-pkg | 2 +- Master/tlpkg/bin/tl-update-tlnet | 13 ++--- Master/tlpkg/bin/tltestnet | 100 ++++++++------------------------- Master/tlpkg/doc/releng.txt | 2 + 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. -- cgit v1.2.3