From 4ca1cb3da46997c41eff1ae88aad0d090f717b3c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 4 Apr 2022 17:45:51 +0000 Subject: tl-update-tlnet: --no-adjust-repo option; tl-update-images: no need for global writability; releng.txt, tlmgr.pl: doc git-svn-id: svn://tug.org/texlive/trunk@62899 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/scripts/texlive/tlmgr.pl | 3 - Master/tlpkg/bin/tl-update-images | 1 - Master/tlpkg/bin/tl-update-tlnet | 5 +- Master/tlpkg/doc/releng.txt | 138 +++++++++++++++-------------- 4 files changed, 74 insertions(+), 73 deletions(-) diff --git a/Master/texmf-dist/scripts/texlive/tlmgr.pl b/Master/texmf-dist/scripts/texlive/tlmgr.pl index 6149c77196c..647cf5d4009 100755 --- a/Master/texmf-dist/scripts/texlive/tlmgr.pl +++ b/Master/texmf-dist/scripts/texlive/tlmgr.pl @@ -7339,9 +7339,6 @@ TeX Live $TeXLive::TLConfig::ReleaseYear is frozen and will no longer be routinely updated. This happens when a new release is made, or will be made shortly. -If you're willing to help with pretesting a new release, and we hope -you are, please see https://tug.org/texlive/pretest.html. - For general status information about TeX Live, see its home page: https://tug.org/texlive diff --git a/Master/tlpkg/bin/tl-update-images b/Master/tlpkg/bin/tl-update-images index 19676eeec7f..420d6b8cfb4 100755 --- a/Master/tlpkg/bin/tl-update-images +++ b/Master/tlpkg/bin/tl-update-images @@ -172,7 +172,6 @@ MAKEINST () echo "$0: $mkisofs failed (status $?), goodbye." >&2 exit $? fi - chmod a+rw $iso cd $target || exit 1 rm -rf $imgdir diff --git a/Master/tlpkg/bin/tl-update-tlnet b/Master/tlpkg/bin/tl-update-tlnet index 6ae0f2207d9..440207a3865 100755 --- a/Master/tlpkg/bin/tl-update-tlnet +++ b/Master/tlpkg/bin/tl-update-tlnet @@ -15,6 +15,7 @@ unset LS_COLORS yyyy=2022 +adjust_repo=1 check_consistency=true chicken=false cow_shell=/bin/sh @@ -30,12 +31,14 @@ gpgcmd= while test $# -gt 0; do case $1 in + --adjust-repo) adjust_repo=1;; # instopt --cow) cow_shell=cow-shell;; # see comments below --critical) critical=--all;; --dest) shift; tlweb=$1;; --dry-run|-n) chicken=true;; --gpgcmd) shift; gpgcmd="--gpgcmd \"$1\"";; --master) shift; Master=$1;; + --no-adjust-repo) adjust_repo=0;; --no-consistency) check_consistency=false;; # takes a long time. --no-install-pkg) update_install_pkg=false;;# trunk update after freeze --no-testinstall|-N) testinstall=false;; # and no updates; quit early. @@ -186,7 +189,7 @@ tlpdbopt_install_srcfiles 1 tlpdbopt_create_formats 1 instopt_letter 0 instopt_adjustpath 0 -instopt_adjustrepo 1 +instopt_adjustrepo $adjust_repo " >texlive.profile # silence envvar warnings and the welcome message. diff --git a/Master/tlpkg/doc/releng.txt b/Master/tlpkg/doc/releng.txt index ef8629b4857..c474ec136bd 100644 --- a/Master/tlpkg/doc/releng.txt +++ b/Master/tlpkg/doc/releng.txt @@ -104,10 +104,12 @@ commit is created, clean, and up to date: see item 6 just above. 0b. In crontab, comment out "update tlnet from trunk" entry. -1. When ready to start building tlpretest: on trunk, set - option adjustrepo 0 -in tl-update-tlnet since pretest users shouldn't go to CTAN for updates. -This change should not go to the branch. +1. When ready to start building tlpretest: + in cron job, for trunk build, set --no-adjust-repo + since pretest users shouldn't go to CTAN for updates. + Equivalent to editing tl-update-tlnet on trunk, and setting + option adjustrepo 0 + In any case, this change should not go to the branch. 1b. Set up tlpretest: Update /home/ftp/texlive/tlpretest/README.md. @@ -144,8 +146,8 @@ Ensure that web2c/texmf.cnf is updated for the current year (per above). 6a. Then run fmtutil-user --all to check that all formats build ok. -6b. (For karl@tug.org: leave new ~karl/.texlive`date +%Y` for bnb, -and update ~bnb/.cshrc after commit.) +6b. (For karl@tug.org: leave new ~karl/.texlive`date +%Y` for bnb. +Also run mtxrun --generate to be able to run ConTeXt.) 7. Check for Build-maintained updates to config files, new files, etc. (might have to merge back if Master was mistakenly updated): @@ -317,19 +319,22 @@ W. Two days before the final pretest (i.e., to-be-published) build: or can run tl-update-images --tar-source-only and --tar-devsource-only to just build the necessary tarballs for Master/source if you don't want to do a whole build. - Tell developers no more commits: tlbuild, dvipdfmx, tex-live, luigi. + Tell developers no more commits: tlbuild, dvipdfmx, tex-live, tldoc, luigi. Run build, by hand or by cron. X. The day before the final pretest: In cron.tl, catalogue_compare=false to avoid skew. - In tl-update-tlnet, option adjustrepo 1, else install-tl-unx won't go to ctan + In cron job, undo --no-adjust-repo, else install-tl-unx won't go to ctan. Update Master/source (if not earlier): xz wget w32tex-src texlive*source mactexdoc install-tl-unx.tar.gz Y. The day of the final tlnet-from-branch build, which may or may not also be the day of the final tlpretest-from-trunk build: Set frozen=>1 in branch TLConfig.pm. - Freeze of tlnet should happen at that night's rebuild. + Freeze of tlnet should happen at that night's rebuild, + or run the two builds by hand with: + env force_rebuild=true cron.pretest + env force_rebuild=true cron.branch Z. After final build, to do total freeze: In cron.tl, set *_frozen=true. @@ -338,18 +343,21 @@ Z. After final build, to do total freeze: Also, in /l/bin/mirror-ctan, disable Catalogue updates, to avoid unnecessary changes if we have to rebuild the final image. -Z0. Ask for torrents to be created. In 2021, +Z0. Preserve Catalogue as of the freeze, for the sake of + post-freeze updates, e.g., +tar -C /home/httpd/html -czf ~karl/tmp/catalogue-freeze.tgz catalogue + If such post-freeze updates are required (let's hope not), + see tlpkg/archive/tlnet-by-hand.txt. + +Z1. When sure it's going to fly, ask for torrents to be created. In 2021, Tim Stewart made the one that worked. -Z1. Preserve Catalogue as of the freeze, for the sake of - post-freeze updates: -rsync -ar /home/httpd/html/catalogue /home/texlive/catalogue-freeze - If such post-freeze updates are required (let's hope not), - see tlpkg/archive/tlnet-by-hand.txt. + Part III. Making the big release. - Part III. Making the big release: +1. The updates. The basic idea is to move the archives already built, +not rebuild anything at this point. - unmount live install of last year's: umount /home/ftp/texlive/Contents/live @@ -360,10 +368,12 @@ this=`date +%Y`; echo $this mkdir $hx/$this chgrp texlive !$ chmod g+ws !$ +ls -ld !$ cd /home/ftp/texlive/Images -cp README.md $hx/$prev/ +cp -pv README.md $hx/$prev/ mv -v *.iso* *.torrent* $hx/$prev/ +ls # should be only README and test/ left. mv -v test/texlive*.iso* . mv -v test/texlive*.tar.xz* $hx/$this/ # tar version only in historic update README.md (touch even if no real changes needed) @@ -375,15 +385,12 @@ mkdir $hm/$prev/ cd ~ftp/tex/mactex chgrp mactex *; chmod g+w * mv -v *.pkg* $hm/$prev -mv -v ~ftp/texlive/tlpretest/mactex*pkg* . -ln -sv mactex-20*.pkg MacTeX.pkg -ln -sv mactex-basic*.pkg BasicTeX.pkg -ln -sv mactex-ghost*.pkg Ghostscript.pkg -for p in [BGM]*.pkg; do md5sum $p >$p.md5; done & # used on mactex web pages +# should be only MacTeXtras.zip* and related left. +mv -v ~ftp/texlive/tlpretest/*.pkg* . edit README chgrp mactex *; chmod g+w * mkdir $hm/$this/ -cp -v Extras*.pdf MacTeXtras-*.zip $hm/$this +cp -pv Extras*.pdf mactex-MacTeXtras*.zip $hm/$this - move rest of tlnet to historic, as tlnet-final: We keep updating the $prev release while doing the pretest for $this, @@ -391,12 +398,14 @@ We keep updating the $prev release while doing the pretest for $this, mkdir $hx/$prev/tlnet-final chgrp texlive !$ chmod g+s !$ +ls -ld !$ cd /home/ftp/texlive/tlnet mv [a-z]* $hx/$prev/tlnet-final +rm -i TEXLIVE_20* # remove old signal file - move tlpretest to tlnet, to make the release mv ../tlpretest/[a-z]* . -update README.md (touch even if no real changes needed) +update README.md (update year, check for other changes) and ../tlpretest/README.md (pretest over) cp install-tl-unx.tar.gz install-tl.zip $hx/$this/ touch TEXLIVE_$this # empty file to signal new version @@ -405,8 +414,8 @@ touch TEXLIVE_$this # empty file to signal new version fx=/home/ftp/tex ls $fx/texlive/Source/* # ensure last year's sources rm -f !$ -cp -av $tm/source/{install-tl,texlive-,w32tex-}*z $fx/texlive/Source/ -cp -av $tm/source/{install-tl,texlive,w32tex}*README $fx/texlive/Source/ +cp -av $tm/source/{install-tl,texlive-,windows-src-}*z $fx/texlive/Source/ +cp -av $tm/source/{install-tl,texlive,windows-src}*README $fx/texlive/Source/ - historic copy of TL web pages: cd /home/httpd/html/texlive @@ -417,37 +426,30 @@ cp *.html !$ # disable header.html include in bugs.html # the pre-pruned tlpdb directory is created by tl-update-images. preprune=/home/ftp/texlive/Images/test/preprune-tlpdb ls -l $preprune # ensure tlpdb and xz and checksums -tgz=/tmp/texlive-${this}0325-tlpdb-full.tar.gz # release date, not today's +tgz=/tmp/texlive-${this}0321-tlpdb-full.tar.gz # release date, not today's (cd $preprune && tar cvzf $tgz texlive.tlpdb texlive.tlpdb.*5*) mv $tgz $hx/$this/ rm -rf $preprune -- update local CTAN area, just to avoid mirroring everything back again: -cy=/home/ftp/tex-archive/systems -rm -rf $cy/texlive/tlnet/*; cp -ar * $cy/texlive/tlnet/ -rm $cy/texlive/Images/*; cp -a ../Images/*.* $cy/texlive/Images/ -rm $cy/texlive/Source/*; cp -a $tm/source/{install-tl,texlive-,w32tex-}*z $cy/texlive/Source/ -rm $cy/mac/mactex/*; cp -a $fx/mactex/* $cy/mac/mactex/ - -- tug.org stuff: -change fstab +2. tug.org stuff: +- change fstab mount /mnt/tl cd /mnt/tl -TEXLIVE_INSTALL_NO_WELCOME=1; export TEXLIVE_INSTALL_NO_WELCOME -echo i | time nice -19 perl install-tl # do full install to default location. +TEXLIVE_INSTALL_NO_RESUME=1; export TEXLIVE_INSTALL_NO_RESUME +echo i | time nice -19 perl install-tl # do full install to default location # takes about 30min -rm /usr/local/texlive-rel; ln -s texlive/$this /usr/local/texlive-rel +rm /usr/local/texlive-rel && ln -s texlive/$this /usr/local/texlive-rel ls !$ newsrc=!$/source mkdir $newsrc chgrp texlive !$; chmod g+ws !$ -cp -v source/{install-tl,texlive,w32tex}*.tar.?z $newsrc +cp -pv $tm/source/{install-tl,texlive,windows-src}*.tar.?z $newsrc ls -l !$ mount /home/ftp/texlive/Contents/live cd umount /mnt/tl -update ~www/texlive web pages (search for $prev and $prev-1): +- update ~www/texlive web pages (search for $prev and $prev-1): acquire* - general bugs.html - news from pretest.html, also case of $prevprev at bottom build.html - platform list @@ -462,26 +464,13 @@ check for new Texinfo manuals to link to html versions, and if any, make a new link in: ~www/texinfohtml/ -- update historic/systems with final proTeXt, when ready. - https://bscw.fernuni-hagen.de - ftp://ftp.fernuni-hagen.de/pub/windows/win32/ProTeXt/ - ~www/protext/index.html - -- announcements: -CTAN @ ISO update: remove old version, re-enable tlnet mirroring, MacTeX. -Dick @ updating MacTeX web pages. -Siep @ windows.html, Norbert @ debian,updmap-kanji.html. -pdftex maintainers @ updating pdftex sources with sync-pdftex.sh + tag. -tex-live, tldistro @ release made. - -- make tag + branch: -Before: Determine revision number from svn log - or https://tug.org/pipermail/tex-live-commits/ - in case commits were mistakenly made. -Also: look at https://tug.org/svn/texlive/tags/ to get subnum +3. make tag + branch for this year's release: +Before: Determine revision number from + https://tug.org/pipermail/tex-live-commits/ +Also, look at https://tug.org/svn/texlive/tags/ to get subnum and https://tug.org/svn/texlive/branches/ to avoid duplication. -rev=58693 -subnum=1 # increase as necessary if multiple branches needed +rev=62882 +subnum=0 # increase as necessary if multiple branches needed tlyear=`date +%Y`; echo $tlyear # maybe previous year during pretest, as above svn copy -r $rev \ -m"texlive-$tlyear.$subnum tag based on r$rev" \ @@ -492,16 +481,17 @@ svn copy -r $rev \ -m"branch$tlyear branch based on r$rev" \ svn://tug.org/texlive/trunk \ svn://tug.org/texlive/branches/branch$tlyear[.$subnum] - # add .$subnum to branch name (and in comment) if not making the first. + # add .$subnum to branch name (and in comment) if not making the first, + # but no .$subnum for the first branch. It's the same command, just different destinations. - http://svnbook.red-bean.com/en/1.8/svn.branchmerge.html + https://svnbook.red-bean.com/en/1.8/svn.branchmerge.html We do both a branch and a tag so that it's possible to easily compare the current state of the branch with its starting point (the tag). - To check out the branch, for critical source fixes for the sake of - during-the-year rebuilds or for the distros, if they request it: +3a. To check out the branch, for critical source fixes for the sake of + during-the-year rebuilds or for the distros, if they request it: this=`date +%Y`; echo $this # whatever year is appropriate cd /home/texlive rm -rf branch # when starting a new year on tug @@ -526,6 +516,12 @@ recovered with, where 57911 is the good revision to restore from: so as to keep the version history, which retrieving the files and re-adding would not do. (But renamed files are not handled, it seems.) +3b. Back to our update job. +- increment source versions, increment year+libversions and append /dev: +Build/source/{version.ac,texk/{kpathsea,ptexenc}/version.ac +reautoconf +svn commit -m'tlYY/dev' Build/source + - update ~karl/bin/cron.tl, be sure cron.pretest and cron.branch are disabled, and reenable cron.trunk when feel ready: critical= @@ -533,6 +529,16 @@ images_frozen=true net_frozen=false all_frozen=false catalogue_compare=true intermittently +# +Also disable cron.synctl /home/texlive/branch and enable plain cron.synctl. + +- announcements: +CTAN @ ISO update: remove old version, MacTeX. +Dick @ updating MacTeX web pages. +tldev: Siep @ windows.html, Norbert @ debian,updmap-kanji.html. +pdftex maintainers @ updating pdftex sources with sync-pdftex.sh + tag. +tex-live, tldistro @ release made. +tlcommitters: repo open. after TC release: - texcollection @@ -575,7 +581,3 @@ cp texcoll-cover.pdf ~www/texcollection/texcollection$this.pdf # ~www/rss/tug.xml ~www/index.html - -- increment source versions, increment year+libversions and append /dev: -Build/source/{version.ac,texk/{kpathsea,ptexenc}/version.ac -reautoconf -- cgit v1.2.3