summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xMaster/tlpkg/bin/tl-update-containers15
-rwxr-xr-xMaster/tlpkg/bin/tl-update-tlnet23
-rw-r--r--Master/tlpkg/doc/releng.txt22
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/