diff options
Diffstat (limited to 'Master')
-rwxr-xr-x | Master/tlpkg/bin/tl-update-containers | 15 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tl-update-tlnet | 23 | ||||
-rw-r--r-- | Master/tlpkg/doc/releng.txt | 22 |
3 files changed, 40 insertions, 20 deletions
diff --git a/Master/tlpkg/bin/tl-update-containers b/Master/tlpkg/bin/tl-update-containers index 1c50b03cc95..b37349212a1 100755 --- a/Master/tlpkg/bin/tl-update-containers +++ b/Master/tlpkg/bin/tl-update-containers @@ -562,13 +562,14 @@ Forces rebuild of all containers, including creation of the output C<texlive.tlpdb> if need be. We used to recreate all containers for the release each year. Starting -with TL20, we no longer do this, since it causes files with the same name -(foo.tar.xz) to change contents, either just compression options, etc., -or because the Catalogue values changed. We did not normally push out -Catalogue-only changes to tlnet during the year since they frequently -happen without any change to the package itself. Now, instead of the -yearly recreate, we explicitly push Catalogue-only changes every so -often using C<tl-update-tlpdb --catalogue-compare> (from C<cron.tl>). +with TL20, we no longer do this, since it often causes files with the +same name (foo.tar.xz) to change contents, either due to compression +options, etc., or because the Catalogue values changed. We did not +normally push out Catalogue-only changes to tlnet during the year since +they frequently happen without any change to the package itself. Now, +instead of the yearly recreate, we explicitly push Catalogue-only +changes every so often using C<tl-update-tlpdb --catalogue-compare> +(from C<cron.tl>). The upshot is that C<-recreate> is now used only for the tlcritical repository in C<cron.tl>, and to make new repositories for testing; we diff --git a/Master/tlpkg/bin/tl-update-tlnet b/Master/tlpkg/bin/tl-update-tlnet index 649e632d289..7a4fe36c3da 100755 --- a/Master/tlpkg/bin/tl-update-tlnet +++ b/Master/tlpkg/bin/tl-update-tlnet @@ -99,7 +99,7 @@ for f in $tlweb/*; do done # Update packages in our working dir. -echo "$0: Updating $tltry with cow-shell..." +echo "$0: Updating $tltry (from $Master) with cow-shell..." containers_prog="$Master/tlpkg/bin/tl-update-containers" containers_args=" $verbose -location $tltry $critical $recreate $gpgcmd" containers_invoke="$containers_prog $containers_args" @@ -108,13 +108,22 @@ cd $tltry cow-shell <<END_COW echo "$0: Updating containers with (critical=$critical recreate=$recreate gpgcmd=$gpgcmd)" echo "$0: $containers_invoke" -$containers_invoke +if $containers_invoke; then :; else + echo "$0: tl-update-containers failed, goodbye." >&2 + exit 1 +fi # It is scary, but I guess we should update the installer package every # day, partly for the sake of doc.html and partly so it actually gets # tested. Hopefully we don't break the Perl modules very often. -echo "$0: Running tl-update-install-pkg (also from $Master)..." -$Master/tlpkg/bin/tl-update-install-pkg $gpgcmd -o $tltry +update_install_prog=$Master/tlpkg/bin/tl-update-install-pkg +update_install_invoke="$update_install_prog $gpgcmd -o $tltry" +echo "$0: Updating install pkg with" +echo "$0: $update_install_invoke" +if $update_install_invoke; then :; else + echo "$0: tl-update-install-pkg failed, goodbye." >&2 + exit 1 +fi END_COW # cow-shell leaves this around, haven't tracked down (or reported). @@ -252,11 +261,13 @@ fi # This might not exist if the test install didn't get this far. install_tl_log=$tltryinst/$yyyy/install-tl.log -if test ! -r $install_tl_log \ - || grep -i '^fmtutil.*error.*' $install_tl_log >/dev/null; then +if test -r $install_tl_log \ + && grep -i '^fmtutil.*error.*' $install_tl_log >/dev/null; then echo >&2 echo "$0: seems fmtutil failed, check $install_tl_log." >&2 failure=true +else + : # appease -e fi # In all cases, make copies in /tmp for inspection in case of diff --git a/Master/tlpkg/doc/releng.txt b/Master/tlpkg/doc/releng.txt index a62567f15b2..8608ceeb3ba 100644 --- a/Master/tlpkg/doc/releng.txt +++ b/Master/tlpkg/doc/releng.txt @@ -72,6 +72,10 @@ and 1a. Then preserve final tlnet of current release YYYY: cd /home/ftp/texlive/tlnet cp -ar ../tlnet /home/ftp/historic/systems/texlive/YYYY/tlnet-final +# if and when post-freeze updates are made, also update tlnet-final with: +rsync -anv \ + /home/ftp/texlive/tlnet/ /home/ftp/historic/systems/texlive/YYYY/tlnet-final/ +to see what will be changed, and then remove the -n to actually do it. 1b. Set up tlpretest: Update /home/ftp/texlive/tlpretest/README. @@ -126,14 +130,16 @@ It's likely that .tlpsrc files will need to be adjusted. 8a. svn commit all the above. -9. After that trial build looks ok, set in cron.tl: -net_frozen=false - And do: -mkdir /home/ftp/texlive/tlpretest/tlpkg -touch !$/texlive.tlpdb -force_rebuild=true cron.tl +9. After that trial build looks ok, set up tlpretest: + cd /home/ftp/texlive/tlpretest + cp -ar ../tlnet/[a-u]* . # omit tlnet/README* + force_rebuild=true cron.tl +We use cp because we want to start with exactly the last tlnet, +and not recreate all packages, so that a file with a given name is never +rewritten. See recreate comments in tl-update-tlpdb and tl-update-containers. -10. Life and daily updates go on. +10. Life and daily updates go on. In cron.tl, set: + net_frozen=false A. At some point, after tlnet freeze: Update gpg expiration, see tlpkg/gpg/tl-key-extension.txt. @@ -238,6 +244,8 @@ hx=/home/ftp/historic/systems/texlive prev=`date -d "last year" +%Y`; echo $prev this=`date +%Y`; echo $this mkdir $hx/$this +chgrp texlive !$ +chmod g+ws !$ cd /home/ftp/texlive/Images cp README.md $hx/$prev/ |