diff options
Diffstat (limited to 'Master/tlpkg/bin')
-rwxr-xr-x | Master/tlpkg/bin/c2a | 6 | ||||
-rwxr-xr-x | Master/tlpkg/bin/c2l | 10 | ||||
-rwxr-xr-x | Master/tlpkg/bin/c2lx | 61 | ||||
-rwxr-xr-x | Master/tlpkg/bin/ctan2tl | 8 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tl-check-fmtshare | 2 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tl-hyph-test | 242 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tl-update-asy | 91 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tl-update-auto | 10 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tl-update-bindir | 4 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tl-update-ctan-mirrors | 10 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tl-update-docindex | 5 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tl-update-images | 4 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tl-update-linked-scripts | 25 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tl-update-messages | 2 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tl-update-tlnet | 20 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tl-update-tlpdb | 35 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlcom | 4 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 226 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkginfo | 9 |
19 files changed, 527 insertions, 247 deletions
diff --git a/Master/tlpkg/bin/c2a b/Master/tlpkg/bin/c2a index 1c6eb16221c..670b9869f2a 100755 --- a/Master/tlpkg/bin/c2a +++ b/Master/tlpkg/bin/c2a @@ -43,9 +43,9 @@ sub main { my @lines; ($status,@lines) = &run_c2l (""); if ($status) { - print "first c2l failed, exiting.\n"; + print "first c2l failed, exiting ($status).\n"; print @lines; - exit $status; + exit $status / 256; } my $i; @@ -106,7 +106,7 @@ sub do_place { # sub run_c2l { my ($arg) = @_; - my $tmpfile = "/tmp/c2l$arg.out"; + my $tmpfile = "/tmp/@{[getlogin()]}-c2l$arg.out"; # don't bother with svn update unless we are doing place. if ($arg eq "p") { diff --git a/Master/tlpkg/bin/c2l b/Master/tlpkg/bin/c2l index 41eba37d1b6..89fc7e1a9fb 100755 --- a/Master/tlpkg/bin/c2l +++ b/Master/tlpkg/bin/c2l @@ -119,14 +119,14 @@ sub main { print "$0: running ctan2tl @ARGV\n"; # we want our exit status to be from ctan2tl, not tee, hence the # pipefail bash-ism. - my @lines = `set -o pipefail; ctan2tl @ARGV </dev/null 2>&1 | tee /tmp/cl.out`; + my @lines = `set -o pipefail; ctan2tl @ARGV </dev/null 2>&1 | tee /tmp/@{[getlogin()]}-cl.out`; my $status = $?; my $cooked = "$TLROOT/Build/tmp.cooked"; - -d $cooked && system ("cp /tmp/cl.out $cooked/$ARGV[$#ARGV].out"); + -d $cooked && system ("cp /tmp/@{[getlogin()]}-cl.out $cooked/$ARGV[$#ARGV].out"); # *** and other notable messages. - my @msgs = grep { /^\*\*\*.* \S/ + my @msgs = grep { /^\*\*\*.* / && ! /\* Generating / } @lines; push (@msgs, grep { /at \/.* line / } @lines); # perl errors @@ -146,10 +146,10 @@ sub main { my @page = split (/\f */, $whole_string, 4); my $diff_list - = `test -s /tmp/$<.tlplace.diff && sed -n -e 's/^--- //' \\ + = `test -s /tmp/@{[getlogin()]}-$<.tlplace.diff && sed -n -e 's/^--- //' \\ -e 's/[ \\t].*//' \\ -e 's,/home/texlive/karl/, ,p' \\ - /tmp/$<.tlplace.diff`; + /tmp/@{[getlogin()]}-$<.tlplace.diff`; $diff_list = ""; # page 0: build stuff. diff --git a/Master/tlpkg/bin/c2lx b/Master/tlpkg/bin/c2lx index 7bb7403a523..69d14e685f7 100755 --- a/Master/tlpkg/bin/c2lx +++ b/Master/tlpkg/bin/c2lx @@ -3,19 +3,21 @@ # Originally written by Karl Berry. Public domain. # # Front-front-end script for c2l to update -# (with first arg "3") LaTeX3, -# or (with first arg "e") LaTeX2e, -# or (with first arg "dev") latex-dev, -# each of which is comprised of several -# packages that should be updated together. Look at the end of the output -# for the summarized results for each package, e.g., to see if any files -# ended up getting misplaced. +# (with first arg "e") LaTeX2e, +# or (with first arg "dev") LaTeX-dev, +# etc., +# each of which is comprised of several packages to be updated together. # -# Additional argument "p" runs place also (same as c2l --place). +# Look at the end of the output for the summarized results for each +# package, e.g., to see if any files ended up getting misplaced. +# +# Final argument "p" runs place also (same as c2l --place). -dirsfile=/tmp/`id -u`.tlplace.dirs -cp /dev/null $dirsfile.tmp -cp /dev/null /tmp/first +placebase=${TMPDIR-/tmp}/`id -u`.tlplace +dirsfile=$placebase.dirs +firstfile=$placebase.first +tmpfile=$placebase.tmp +c2loutfile=$placebase.c2lout if test "x$1" = xe || test "x$1" = x2e; then shift; label=l2e @@ -24,15 +26,6 @@ elif test "x$1" = xdev; then shift; label=ldev pkgs="latex-amsmath-dev latex-firstaid-dev latex-graphics-dev latex-lab-dev" pkgs="$pkgs latex-tools-dev latex-base-dev l3build" -elif test "x$1" = x3; then - shift; label=l3 - pkgs="l3kernel l3packages l3experimental l3build l3backend" -elif test "x$1" = x3dev; then - shift; label=l3dev - pkgs="l3kernel-dev l3backend-dev" -elif test "x$1" = xdeng; then - shift; label=deng - pkgs="elegantbook elegantnote elegantpaper" elif test "x$1" = xhep; then shift; label=hep pkgs="hep-font hep-math-font hep-acronym hep-bibliography hep-float" @@ -41,37 +34,31 @@ elif test "x$1" = xjxu; then shift; label=jxu pkgs="colorist crefthe einfart minimalist simplivre" #pkgs="$pkgs beaulivre create-theorem mindflow projlib q-and-a homework lebhart" -elif test "x$1" = xluamath-all; then - shift; label=luamath-all # not really all - pkgs="lualinalg luanumint luaplot" - #luagcd luamodulartables luatruthtable luacomplex luamaths luaset elif test "x$1" = xminim-all; then shift; label=minim pkgs="minim-hatching minim-math minim-mp minim-pdf minim-xmp minim" -elif test "x$1" = xqyi; then - shift; label=qyi - pkgs="easybook spbmark" -elif test "x$1" = xzref-all; then - shift; label=zref - pkgs="zref-check zref-clever zref-vario" else echo "$0: unknown latex or group type: $1" >&2 - echo "$0: must be one of: e dev 3 3dev deng jxu qyi minim-all" >&2 + echo "$0: must be one of: e dev 3 3dev ... minim-all (USTL)." >&2 exit 1 fi echo "`basename $0`: $label pkgs: $pkgs" +# +>$firstfile +>$tmpfile for p in $pkgs; do echo "${label} pkg $p" >&2 # progress report of a sort printf "\f ${label} pkg $p\n" - c2l "$@" $p | tee /tmp/c2l.out - sed -n "1,/`printf '\f'`/p" /tmp/c2l.out >>/tmp/first - echo >>/tmp/first - cat $dirsfile >>$dirsfile.tmp + # each c2l call creates various; combine the directory lists and output. + c2l "$@" $p | tee $c2loutfile + sed -n "1,/`printf '\f'`/p" $c2loutfile >>$firstfile # first part of output + echo >>$firstfile + cat $dirsfile >>$tmpfile done -sort -u $dirsfile.tmp >$dirsfile +sort -u $tmpfile >$dirsfile wc $dirsfile echo -cat /tmp/first +cat $firstfile diff --git a/Master/tlpkg/bin/ctan2tl b/Master/tlpkg/bin/ctan2tl index 6fa11dab89b..ccf52a6cdc4 100755 --- a/Master/tlpkg/bin/ctan2tl +++ b/Master/tlpkg/bin/ctan2tl @@ -10,7 +10,7 @@ LC_ALL=C; export LC_ALL # avoid problems with diff, comm, etc umask 022 # to avoid the svn hit on every run when developing. -TLPKGINFO_CATALOGUE_NO_UPDATE=1; export TLPKGINFO_CATALOGUE_NO_UPDATE +#TLPKGINFO_CATALOGUE_NO_UPDATE=1; export TLPKGINFO_CATALOGUE_NO_UPDATE mydir=`cd \`dirname $0\` && pwd` # Master/tlpkg/bin libexec=`cd $mydir/../libexec && pwd` # Master/tlpkg/libexec @@ -95,10 +95,6 @@ if test -z "$ctan_dir"; then exit 1 fi -# trying to sync catalogue changes as much as possible. -#catfile=/home/httpd/html/catalogue/entries/$letter/ -#svn update $catfile - echo "$0: ctan dir for $pkg" echo "$0: is $ctan_dir" @@ -189,7 +185,7 @@ find $pkg -type l -ls | grep -v /Master/bin | sort >&2 # show list of files (and tee to tmp). find $pkg \! -type d -printf "%TY%Tm%Td.%TH%TM %p\n" | sort -k2 \ -| tee ${TMPDIR-/tmp}/ctan2tl.files +| tee ${TMPDIR-/tmp}/"$USER"-ctan2tl.files printf "\n$0: calling place $place_chicken $contrib_place_arg $pkg\n" rm -rf $pkg.done diff --git a/Master/tlpkg/bin/tl-check-fmtshare b/Master/tlpkg/bin/tl-check-fmtshare index c692a6885b9..055bae6cb84 100755 --- a/Master/tlpkg/bin/tl-check-fmtshare +++ b/Master/tlpkg/bin/tl-check-fmtshare @@ -258,6 +258,7 @@ for fmt in $fmts; do echo "$0: built fmtfile: `ls -l $fmtfile` (on `hostname`)" engineversion=`$enginedir/$engine --version | sed 1q` echo "$0: with engine: $enginedir/$engine ($engineversion)" + echo "$0: full command: $ecmd" # The TeX \command to exit a job immediately. Assume a LaTeX fmt # if "latex" is in the name, else plain (enough). @@ -270,6 +271,7 @@ for fmt in $fmts; do # copy to remote machine. #echo "$0: copying $fmtfile to $remotesys:$remotedir..." scp -pq "$fmtfile" "$remotesys:$remotedir" || exit 1 + ls -l "$fmtfile"; shasum "$fmtfile" # load on remote machine. echo "$0: running ./$engine in $remotesys:$remotedir..." diff --git a/Master/tlpkg/bin/tl-hyph-test b/Master/tlpkg/bin/tl-hyph-test new file mode 100755 index 00000000000..4e67588f958 --- /dev/null +++ b/Master/tlpkg/bin/tl-hyph-test @@ -0,0 +1,242 @@ +#!/bin/sh +# $Id$ +# Public domain. Karl Berry, 2021; Arthur Rosendahl, 2021--2022. +# +# Method for testing hyph-utf8 before committing to TL. +# The idea is to make a new TL tree, unzip the hyph-utf8.tds.zip there, +# build TL from the modified (not committed) tree, +# install from that TL into another temp dir. +# Thus checking all the steps that will happen after commit. +# It's complicated. + +# Usage: +## Initial setup for first time: +##tmpdir=/home/texlive/hyphtest # used in TLhyphtest.pro (used below). +## # but otherwise could be anything +##mkdir $tmpdir # e.g., , could be anywhere +##cd $tmpdir +## +## Get svn checkout of Master tree; need real checkout for the build below. +##svn -q co svn://tug.org/texlive/trunk/Master # takes an hour +## If on tug, slightly faster: +##time nice -19 svn -q co file:///home/svn/texlive/trunk/Master +# +# +# After the first time, when the checkout already exists: +#cd $tmpdir +#rm -rf inst catdump.pl # clean up from last time +#svn update -q Master # get updates made in the meantime (30-60min) +#svn status Master # make sure it's completely clean +# +# Unzip the new hyph-utf tree in our temp checkout. +#pushd Master/texmf-dist +#ls -l $CTAN/install/language/hyph-utf8.tds.zip # ensure new file on ctan +#unzip !$ # overwrite All +# In that unzip command, overwrite All symlinks with the regular files. +# (Can't use -q since we have to do this overwrite.) +# On tug.org, CTAN=/home/ftp/tex-archive. +# (This unzip won't remove any no-longer-distributed files, but that +# seems like too much trouble to deal with here. The final commit +# will take care of it.) +# +# Unzip new tlpsrc files (without leading directory): +#cd ../tlpkg/tlpsrc +#unzip -j ../../texmf-dist/source/generic/hyph-utf8/tlpsrc.zip # overwrite All +# +# No tlpsrc should have any non-ASCII characters. If so, change them & report: +#~karl/bin/nonascii *.tlpsrc +# +# Back to top level of $tmpdir (the one with the ./Master subdir). +#popd +# +# See what we've got. +#svn status Master # if new package/file has been added, set newpkg/file below +#svn diff Master >/tmp/sdh # review changes +# +# When ready, run this script: +#./Master/tlpkg/bin/tl-hyph-test +# +# For files "present but not covered", check if they are in the original +# hypf-utf8.tds.zip; if so, then it's a bug in the tlpsrc generation, +# report. If not, then rm them from our working directory, and svn rm +# them from the TL dev directory where we'll eventually commit. (The +# usual method for determining when files have been removed won't work +# here because hyph-utf8 is split into numerous TL packages.) +# +# Once it all works, can install hyph-utf8 with ctan2tl [p] as usual; +# copy any changed .tlpsrc (or other) files to dev, and +# don't commit in hyphtest, so additions and removals will be correct. +# Also, good to run a test build right after committing since there is a +# good chance of failure, despite all the testing: +#force_rebuild=true cron.trunk # or cron.pretest, if during pretest +# +# To clean up here: +#rm -rf inst tmp catdump.pl +#svn revert --depth infinity Master >/tmp/svri +#rm `svn status Master | sed -n 's/\?//p'` # remove "?" files (new ones) +#svn status Master # ensure clean + +# +: ${do_mktexlsr=true} +: ${do_tlpdb=true} +: ${do_lang_files=true} +: ${do_install=true} +: ${do_pkgs=true} +: ${newfile=hyph-he.tex} # some new file in the new release +: ${newpkg=hyphen-hebrew} # and the package it's in + +real0=`realpath $0` +mydir=`cd \`dirname "$real0"\` && pwd` # tlpkg/bin + +Master=`cd $mydir/../.. && pwd` +test -d "$Master" || { echo "$0: no Master dir: $Master" >&2; exit 1; } + +top=`cd $Master/.. && pwd` + +# /usr/local/bin for updated perl on tug. +PATH=$Master/bin/x86_64-linux:/usr/local/bin:/usr/bin +TMPDIR=$top/tmp; export TMPDIR +test -d $TMPDIR || mkdir $TMPDIR +test -d $TMPDIR || { echo "$0: no tmpdir?: $TMPDIR" >&2; exit 1; } + +unset TEXMFSYSVAR; unset TEXMFSYSCONFIG +unset TEXMFVAR; unset TEXMFCONFIG +MKTEXFMT=0; export MKTEXFMT +MKTEXTFM=0; export MKTEXTFM + +if $do_mktexlsr; then + printf "\n\f `date`\n" + set -x + mktexlsr --verbose || exit 1; set +x +fi +# +if kpsewhich $newfile >/dev/null; then :; else + echo "$0: kpsewhich could not find new file, ls-R problem?: $newfile" >&2 + exit 1 +fi + +if $do_tlpdb; then + printf "\n\f `date`\n" + # It takes a long time to read the Catalogue info; it can be turned + # off as shown, but then the resulting texlive.tlpdb will be hugely + # different from the canonical one, which makes it hard to check. + nocat="--catalogue /nonesuch"; nocat= + + # If running this multiple times, can use --catalogue-dump + # to avoid rereading the XML every time; just don't forget + # to remove the dump file when done, or it will never get updated. + # If you want to sit around waiting for the Catalogue reading every time, + # can just disable as shown. + catdump="--catalogue-dump $top/catdump.pl" #; catdump= + + # -v for progress; -vv for extremely voluminous debugging. + # --save-anyway because there will probably be revision decreases. + # --from-files because we don't want to commit the new files, + # so the script has to read the filesystem, not svn. + opts="-v --save-anyway --from-files $nocat $catdump" + set -x + $Master/tlpkg/bin/tl-update-tlpdb $opts || exit 1; set +x +fi +# +# we intentionally use tlmgr instead of grepping tlpdb directly +# to make sure it's working normally. + +if tlmgr info --list $newpkg | grep /$newfile'$' >/dev/null; then :; else + echo "$0: tlmgr could not find new file, tlpdb problem?: $newfile" >&2 + exit 1 +fi + +# +# Remake the language.* files. Irritatingly different for different +# formats and engines. + +# return 0 if files $1 and $2 are the same except for the first lines. +# (we need to ignore the timestamps in the generation lines.) +same_except_for_line1 () +{ + rm -f $TMPDIR/sef1 $TMPDIR/sef2 + sed 1d <"$1" >$TMPDIR/sef1 + sed 1d <"$2" >$TMPDIR/sef2 + cmp -s $TMPDIR/sef1 $TMPDIR/sef2 +} + +if $do_lang_files; then + printf "\n\f `date`\n" + echo "$0: updating language.* files ..." + + cd $Master/texmf-dist/tex/generic/config || exit 1 + for utype in language.dat language.def language.dat.lua; do + ufile=$utype + cmd="tlmgr -q generate --dest=$ufile.new $utype" + # -q to avoid the "helpful" message about running fmtutil. + printf "$ufile update with: $cmd\n" + $cmd || { echo "$0: $ufile generation failed: $cmd" >&2; exit 1; } + if same_except_for_line1 $ufile $ufile.new; then + printf " same: "; ls -l `pwd`/$ufile + rm $ufile.new + else + mv -v $ufile.new $ufile || exit 1 + printf " updated: "; ls -l `pwd`/$ufile + svn diff $ufile >$TMPDIR/$ufile.diff + echo " (diff in $TMPDIR/$ufile.diff)" + fi + done +fi + +# +printf "\n\f `date`\n" +cmd="tlmgr check files runfiles" +echo "$0: checking file consistency: $cmd" +$cmd || exit $? + +# +# Install minimal, then install the packages with AddHyphen directives +# (in practice: hyphen-* and dehyph-exptl), to avoid installing all the +# non-language stuff, which is a ton. + +instdir=$top/inst +if $do_install; then + printf "\n\f `date`\n" + echo "$0: installing minimal TL into: $instdir" + + rm -rf $instdir + date + set -x + $Master/tlpkg/bin/tl-try-install \ + -o $instdir \ + --profile $Master/tlpkg/dev/profiles/TLhyphtest.pro \ + --quiet \ + --repo $Master \ + || { echo "$0: tl-try-install failed." >&2; exit 1; } + set +x +fi + +if $do_pkgs; then + printf "\n\f `date`\n" + echo "$0: installing hyph packages with tlmgr into: $instdir" + + tlpsrc=$Master/tlpkg/tlpsrc + hyphen_pkgs=`cd $tlpsrc && grep -l AddHyphen * | sed s/.tlpsrc//` + if test -z "$hyphen_pkgs"; then + echo "$0: no packages with AddHyphen found in: $tlpsrc" >&2 + exit 1 + fi + + engine_pkgs="pdftex etex xetex luatex uptex " + + echo "$0: installing hyphen packages: " $hyphen_pkgs + echo "$0: and engine packages: " $engine_pkgs + + # reset PATH to run using our just-installed tree. + PATH=$instdir/bin/x86_64-linux:/usr/local/bin:/usr/bin + date + set -x + tlmgr install $hyphen_pkgs $engine_pkgs || exit $? +fi + +# also written into inst/ since we just changed PATH. +printf "\n\f `date`\n" +echo "$0: running fmtutil-sys separately from install for reproducibility:" +set -x +fmtutil-sys --all +# and that's our exit status. diff --git a/Master/tlpkg/bin/tl-update-asy b/Master/tlpkg/bin/tl-update-asy index da3929daee4..ec86af4dd5a 100755 --- a/Master/tlpkg/bin/tl-update-asy +++ b/Master/tlpkg/bin/tl-update-asy @@ -10,9 +10,13 @@ # define for myself; feel free to peruse tug.org:~karl/.bash_login, etc. # --karl -test "x$1" = x--build || exit 1 +# but running the script is nevertheless useful sometimes, as described below. +test "x$1" = x--build || test "x$1" = x--bin-github || exit 1 + renice +19 -p $$ >/dev/null 2>&1 +fatal () { echo "$0: goodbye, $*" >&2; exit 1; } + # if false && $update_sources_from_ctan; then # this part is about copying the sources from CTAN to TL. @@ -32,26 +36,26 @@ if false && $update_sources_from_ctan; then # show list of files to remove: diff -qr . /home/ftp/tex-archive/graphics/asymptote/ \ - | egrep -v ' differ' | egrep -v '\.svn' | tee /tmp/asyrm + | egrep -v ' differ' | egrep -v '\.svn|/binaries' | tee /tmp/asyrm sed -e 's,: ,/,' -e 's/^Only in //' /tmp/asyrm svn rm `!!` # final check and commit: svn status | fgrep \? # # don't worry about binaries. svn commit -m"asy $ver sources" . ../README - exit $? # elif test "x$1" = x--build; then # this part is about building the x86 linux asymptote on tug.org. - # Despite all the dire warnings above, this part actually can be run - # as a script, because it's so often necessary to redo. + # Despite all the dire warnings above, this part can be executed. unset GREP_OPTIONS CDPATH PATH=/usr/bin:/usr/sbin; export PATH # system gcc for sake of shared libs + PATH=$PATH:/usr/local/gnu/bin # libtool required PATH=$lb:$PATH # get our kpsewhich - svn=/usr/local/bin/svn # so we need our svn explicitly + PYTHON=python3.9; export PYTHON # 3.6 is too old + svn=/usr/local/bin/svn # so we need our svn explicitly set -x - rhtoolset=/opt/rh/devtoolset-10/enable + rhtoolset=/opt/rh/gcc-toolset-13/enable test -s $rhtoolset && . $rhtoolset set -e @@ -70,13 +74,13 @@ elif test "x$1" = x--build; then --with-latex=/tmp/ainst/latex --with-context=/tmp/ainst/context \ --disable-fftw --disable-gl --disable-gsl --disable-lsp \ --enable-texlive-build \ - CFLAGS=-g CXXFLAGS=-std=c++11 LDFLAGS="-static-libgcc -static-libstdc++" - make + CFLAGS=-g \ + LDFLAGS="-static-libgcc -static-libstdc++" + make -j`nproc` SILENT_MAKE= make check make install-prebuilt exit 0 - # elif false && $update_runtime_from_ainst; then # this part is about copying the results of a successful build @@ -88,6 +92,7 @@ elif false && $update_runtime_from_ainst; then xu=$B/source/utils xy=$xu/asymptote cd $xy + make distclean ver=`awk -F\" '{print $2}' revision.cc | sed 1q`; echo $ver # $cp binaries/x86_64-windows/texlive/asy.exe $pg/asymptote64/ @@ -126,24 +131,50 @@ elif false && $update_runtime_from_ainst; then #svn rm ... svn status $ci # just to see - scom -m"asymptote $ver support files, windows binary" $ci -fi + scom -m"asymptote $ver support files + windows binary" $ci -# the production build on x86_64-linux and i386-linux: -# -# cd .../Build/source/utils -# docker run -it -v "$(pwd)/asymptote:/asymptote" --entrypoint bash debian:10 -# -# In the docker container you are dropped in: -# apt update -# apt upgrade -# # note we do NOT install libtirpc-dev because it cannot disabled by configure -# apt install build-essential pkg-config libeigen3-dev libcurl4-openssl-dev libreadline-dev libboost-filesystem-dev flex libglu1-mesa-dev freeglut3-dev libosmesa6-dev libreadline6-dev zlib1g-dev bison libglm-dev libncurses-dev -# cd /asymptote -# ./configure --prefix=/tmp/asyinst --enable-static --enable-texlive-build CXXFLAGS=-std=c++11 --disable-gsl --disable-fftw --disable-lsp --disable-curl -# sed -i -e 's/^LIBS = /LIBS = -static-libgcc -static-libstdc++ /' Makefile -# make -j6 -# exit -# Strip and copy the resulting asy. -# For i386 binaries: -# docker run -it -v "$(pwd)/asymptote:/asymptote" --entrypoint bash i386/debian:10 +# +elif test "x$1" = x--bin-github; then + # The x86_64-linux binary and other platforms are built via github. See + # Build/source/.github/scripts/build-asy.sh (and workflows/build-asy.yml), + # siblings to the main TL build files there. + # + # The sources are synced every five minutes; see + # https://github.com/TeX-Live/texlive-source/actions/. + # + # The main.yml workflow will run automatically to build all of TL + # (and takes hours to complete); the build-asy.yml workflow has to be + # triggered manually from + # https://github.com/TeX-Live/texlive-source/actions/workflows/build-asy.yml + # + # Then, if it succeeds, the artifacts produced will appear on the + # result page and can be downloaded from there. The download links + # only work in a browser, not wget or curl. + # + # Then can run this script with --bin-github *.zip to install the + # available zips in the bin directories. + shift + mydir=`dirname $0` + Master=`cd $mydir/../.. && pwd` + bin=$Master/bin + test -d "$bin" || fatal "no bin directory: $bin" + echo "$0: installing into $bin..." + + for f in "$@"; do + # filenames: asy-amd64-freebsd.zip asy-i386-linux.zip + # asy-i386-freebsd.zip asy-x86_64-linux.zip + # and they unpack into a single file, asy-amd64-freebsd etc. + + # so, better be a known platform name. + platname=`echo "$f" | sed -e 's/^asy-//' -e 's/\.zip$//'` + platdir=$bin/$platname + test -d "$platdir" || fatal "no platform bin directory: $platdir" + + # and we should be able to unpack into it. + unzip -od "$platdir" "$f" || fatal "unzip -d $platdir failed" + + # and then we should be able to rename the binary to just asy. + mv -v "$platdir/asy-$platname" "$platdir/asy" || fatal "mv failed" + done + # then do the commit in Master/bin manually. +fi diff --git a/Master/tlpkg/bin/tl-update-auto b/Master/tlpkg/bin/tl-update-auto index 182a98e7cb2..38c6664f299 100755 --- a/Master/tlpkg/bin/tl-update-auto +++ b/Master/tlpkg/bin/tl-update-auto @@ -44,7 +44,7 @@ add_list= # autogenerate README.EN from readme.html. -# (skip, better to generate when needed and avoid spurious changes.) +# (skip, better to generate when needed to avoid spurious changes.) # #if $config_scripts_only; then :; else #$mydir/htmltext <readme-html.dir/readme.en.html >$temp @@ -264,8 +264,10 @@ if $config_scripts_only; then :; else echo "$0: ctan mirror list already updated today, skipping update:" >&2 ls -lt $mirrors4tl >&2 - elif wget --quiet https://ctan.org/tex-archive/CTAN.sites -O $ctan_mirrors \ - && rsync rsync://rsync.dante.ctan.org/MirMon/mirmon.state $ctan_mirmon; then +# && rsync rsync://rsync.dante.ctan.org/MirMon/mirmon.state $ctan_mirmon; then + elif wget -nv https://ctan.org/tex-archive/CTAN.sites -O $ctan_mirrors \ + && scp -pq ctan.org:/serv/ctan/scripts/mirmon-2.11/mirmon.state \ + $ctan_mirmon; then #echo "got new mirror data"; ls -ltr $TMPDIR $mydir/tl-update-ctan-mirrors -v $ctan_mirrors $ctan_mirmon \ >$mirrors4tl.new @@ -284,7 +286,7 @@ if $config_scripts_only; then :; else else echo "$0: ctan mirror data not retrievable, skipping." >&2 fi -fi # !config_scripts_only || !odd_day_num +fi # !config_scripts_only # curl cert bundle. Every other day is more than often enough. diff --git a/Master/tlpkg/bin/tl-update-bindir b/Master/tlpkg/bin/tl-update-bindir index c7c738a8afa..a16f1702061 100755 --- a/Master/tlpkg/bin/tl-update-bindir +++ b/Master/tlpkg/bin/tl-update-bindir @@ -230,12 +230,14 @@ for tlplat in $tlplats; do # Can check status at: # https://github.com/TeX-Live/texlive-source/actions # - # After ~20min, should have some new release tarballs at: + # After ~35min, should have release tarballs for most at: # https://github.com/TeX-Live/texlive-source/releases # (this is a different page than where you're put after creating # the release) + # and can install them with "c2l gh". # but arm and aarch are slow and will take hours to finish. # Should be able to update the finished ones as they happen. + # (For both: "c2l aargh".) # # If try before ready, no harm, just get error message "missing url". # diff --git a/Master/tlpkg/bin/tl-update-ctan-mirrors b/Master/tlpkg/bin/tl-update-ctan-mirrors index b2810898222..d7b53c0c01f 100755 --- a/Master/tlpkg/bin/tl-update-ctan-mirrors +++ b/Master/tlpkg/bin/tl-update-ctan-mirrors @@ -5,9 +5,10 @@ # or any later version. # # Write parsable list of active CTAN mirrors; run from tl-update-auto cron. -# Needed input: -# http://ctan.org/mirrors (aka CTAN.sites and README.mirrors) -# rsync://comedy.dante.de/MirMon/mirmon.state +# +# Needed input are the files from: +# https://ctan.org/mirrors (aka CTAN.sites and README.mirrors) +# (via scp) ctan.org:/serv/ctan/scripts/mirmon-2.11/mirmon.state # (on web: https://ctan.org/mirrors/mirmon) use strict; @@ -16,6 +17,7 @@ use Data::Dumper; my $prg; my $verbose = 0; +my $AGE_HOURS_CUTOFF = 36; # omit a mirror if it's older than this exit (&main ()); @@ -62,7 +64,7 @@ sub read_mstate { } else { # mirrors can be stale and yet not have no_time for their status. my $age_hours = (time() - $age) / (60 * 60); - if ($age_hours > 36) { + if ($age_hours > $AGE_HOURS_CUTOFF) { printf STDERR "mirror age %.1f hours, skipping: $m\n", $age_hours if $verbose; } else { diff --git a/Master/tlpkg/bin/tl-update-docindex b/Master/tlpkg/bin/tl-update-docindex index 69a39571125..7199f14db54 100755 --- a/Master/tlpkg/bin/tl-update-docindex +++ b/Master/tlpkg/bin/tl-update-docindex @@ -14,9 +14,10 @@ use Fatal qw(:void open close opendir closedir chdir mkdir); use TeXLive::TLPDB; use File::Basename; -my $CATALOGUE_DIR = "/home/httpd/html/catalogue/entries"; +my $top_cat = $ENV{"TEX_CATALOGUE"} || "/home/texlive/catalogue"; +our $CATALOGUE_DIR = "$top_cat/entries"; -exit(main()); +exit (main()); sub main { diff --git a/Master/tlpkg/bin/tl-update-images b/Master/tlpkg/bin/tl-update-images index d602593bb94..5bffa3e9c4e 100755 --- a/Master/tlpkg/bin/tl-update-images +++ b/Master/tlpkg/bin/tl-update-images @@ -2,7 +2,7 @@ # $Id$ # Create the .iso image(s) for TeX Live. # -# Copyright 2007-2024 Karl Berry. +# Copyright 2007-2025 Karl Berry. # Copyright 2003, 2004, 2005 Sebastian Rahtz. # # This file is licensed under the GNU General Public License version 2 @@ -18,7 +18,7 @@ unset CDPATH # avoid output from cd umask 022 NAME=texlive -V=2024 +V=2025 D=`date +%Y%m%d` target=/home/ftp/texlive/Images/test diff --git a/Master/tlpkg/bin/tl-update-linked-scripts b/Master/tlpkg/bin/tl-update-linked-scripts index d2c6c814008..fd6b0a01b8e 100755 --- a/Master/tlpkg/bin/tl-update-linked-scripts +++ b/Master/tlpkg/bin/tl-update-linked-scripts @@ -15,7 +15,7 @@ compare_and_copy () { echo "updating $Src/$file -> $Dest/$file" diff -u0 $Src/$file $Dest/$file - cp $Src/$file $Dest/$file || exit 1 + cp -pv $Src/$file $Dest/$file || exit 1 done } @@ -29,30 +29,7 @@ test -r $Dest/scripts.lst || { exit 1 } -# echo "$Src => $Dest" - . $Dest/scripts.lst compare_and_copy $texmf_scripts exit $? - -# Here is how we handled a second directory, that copied in the other -# direction. As of January 2020, all the scripts in tl_scripts are gone, -# now maintained in Master with slaves in the normal linked_scripts -# handled above. -# -## Build/source/texk/texlive/tl_scripts => Master/texmf-dist/scripts/texlive -# -#Src=`cd $Dest/../tl_scripts && pwd` -#Dest=$Master/texmf-dist/scripts/texlive -# -#test -r $Src/scripts.lst || { -# echo "$0: \`$Src/scripts.lst' missing'" -# exit 1 -#} -# -## echo "$Src => $Dest" -# -#. $Src/scripts.lst -# -#compare_and_copy $tl_scripts diff --git a/Master/tlpkg/bin/tl-update-messages b/Master/tlpkg/bin/tl-update-messages index 5db86276049..ef5796587c7 100755 --- a/Master/tlpkg/bin/tl-update-messages +++ b/Master/tlpkg/bin/tl-update-messages @@ -23,7 +23,7 @@ cat install-tl >>$tmpfile xgettext -o tlpkg/translations/messages.pot \ --copyright-holder="TeX Live Team" \ --msgid-bugs-address=tex-live@tug.org \ - --package-version=2024 \ + --package-version=2025 \ --package-name="TeX Live" \ -k__ -k\$__ -k%__ -k__x -k__n:1,2 -k__nx:1,2 -k__xn:1,2 -kN__ -k \ texmf-dist/scripts/texlive/tlmgrgui.pl \ diff --git a/Master/tlpkg/bin/tl-update-tlnet b/Master/tlpkg/bin/tl-update-tlnet index 8915a566d36..15177a194c7 100755 --- a/Master/tlpkg/bin/tl-update-tlnet +++ b/Master/tlpkg/bin/tl-update-tlnet @@ -1,5 +1,5 @@ #!/bin/sh -e -# Copyright 2008-2024 Norbert Preining +# Copyright 2008-2025 Norbert Preining # This file is licensed under the GNU General Public License version 2 # or any later version. # @@ -13,7 +13,7 @@ renice 20 $$ >/dev/null 2>&1 unset CDPATH unset LS_COLORS -yyyy=2024 +yyyy=2025 adjust_repo=1 check_consistency=true @@ -67,6 +67,8 @@ END_NO_TLPDB exit 1 fi +mkdir -p /tmp/$USER-tl-update-tlnet + if test -z "$Master"; then mydir=`dirname $0` Master=`cd $mydir/../.. && pwd` @@ -87,7 +89,7 @@ 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 +cp --force --backup $tlweb/tlpkg/texlive.tlpdb* /tmp/$USER-tl-update-tlnet # # Be sure we're starting the test cleanly. @@ -291,7 +293,7 @@ if test $failure = false; then basecmd=`basename $cmdname` echo "$prg: `date`" echo "$prg: Running $basecmd ($cmd)" - outfile=/tmp/$tlnet_target.$basecmd + outfile=/tmp/$USER-tl-update-tlnet/$tlnet_target.$basecmd if $cmd >$outfile 2>&1; then echo "$prg: $basecmd ok." else @@ -318,16 +320,16 @@ else : # appease -e fi -# In all cases, make copies in /tmp for inspection in case of +# In all cases, make copies in /tmp/$USER-tl-update-tlnet for inspection in case of # undetected failure. -cp -f $tlnet_install_log /tmp -test ! -r $install_tl_log || cp -f $install_tl_log /tmp +cp -f $tlnet_install_log /tmp/$USER-tl-update-tlnet +test ! -r $install_tl_log || cp -f $install_tl_log /tmp/$USER-tl-update-tlnet if $failure || $chicken; then echo >&2 echo "$prg: tl-update-tlnet transcript file: $tlnet_install_log" >&2 echo "$prg: install-tl log file: $install_tl_log" >&2 - echo "$prg: Copies of both are in /tmp." >&2 + echo "$prg: Copies of both are in /tmp/$USER-tl-update-tlnet." >&2 echo "$prg: Please rm -rf the trial dir." >&2 if $failure; then echo @@ -359,7 +361,7 @@ rm -rf $tltrybase # We checked this above also, but check again. # We've removed the cwd, so cd out of it. -cd /tmp || exit 1 +cd /tmp/$USER-tl-update-tlnet || exit 1 $Master/tlpkg/bin/tlgpg-verify $tlweb/tlpkg/texlive.tlpdb.sha512 echo "$0: Done." diff --git a/Master/tlpkg/bin/tl-update-tlpdb b/Master/tlpkg/bin/tl-update-tlpdb index 056c8ab5d60..32d4a6bd13d 100755 --- a/Master/tlpkg/bin/tl-update-tlpdb +++ b/Master/tlpkg/bin/tl-update-tlpdb @@ -1,6 +1,6 @@ #!/usr/bin/env perl # $Id$ -# Copyright 2007-2023 Norbert Preining +# Copyright 2007-2025 Norbert Preining # This file is licensed under the GNU General Public License version 2 # or any later version. # @@ -81,7 +81,7 @@ sub main { } if (! $opt_catalogue) { - $opt_catalogue = "/home/httpd/html/catalogue"; + $opt_catalogue = "/home/texlive/catalogue"; } if ($opt_catalogue_compare) { @@ -143,8 +143,8 @@ sub main { if ($opt_no_revision_check) { if ($opt_keep_revisions) { - copy_revisions_over($oldtlpdb, $newtlpdb); - info("$prg: keeping old revisions due to --keep-revisions\n"); + copy_revisions_over($oldtlpdb, $newtlpdb); + info("$prg: keeping old revisions due to --keep-revisions\n"); } else { info("$prg: not checking revisions due to --no-reverse-revision-check\n"); } @@ -211,7 +211,7 @@ sub main { } } if (!$buggy_tlpdb) { - finish($newtlpdb, $pkgcount); + finish($newtlpdb, $pkgcount); # never returns } else { # return error to the shell script, it is evaluated in cron.tl! return 1; @@ -277,10 +277,12 @@ sub compare_and_fix_tlpdbs { my ($rA, $rB) = split(':', $cmp{'different_packages'}->{$p}->{'revision'}); # since we only register 'revision' key when there is a - # change, we have either rA < rB or rA > rB - if ($rA > $rB) { + # change, we have either rA < rB or rA > rB. + # If read filesystem, the existing revision will always be 1, + # no use in giving a warning about every package. + if ($rA > $rB && (!$opt_fromfiles && $rB == 1)) { tlwarn("$prg: BIG WARNING for $p: file lists didn't change " - . "but revision is going backward ($rA > $rB)!\n"); + . "but revision is going backward ($rA > $rB)\n"); $packages_needing_fixup{$p} = 1; } # if strange revision change } # no revision changes @@ -702,6 +704,13 @@ sub is_hash_ref { sub finish { my ($tlpdb,$pkgcount) = @_; + + # uncommenting this line is the way to test parse_AddHyphen_line and + # similar, since that's the only time they are called. Seems like it + # would be cleaner to parse them when the *.tlpsrc is read. Someday. + #TeXLive::TLUtils::create_language_def($tlpdb, "/tmp/tlut-language.def", + # "/dev/null"); + if ($opt_output) { if (open(OUT, ">$opt_output")) { $tlpdb->writeout(\*OUT); @@ -731,11 +740,11 @@ tl-update-tlpdb [OPTION]... [TLPSRC]... =item B<--catalogue> I<Catalogue_dir> -The I<Catalogue_file> must point to a valid TeX Catalogue checkout; the -default is C</home/httpd/html/catalogue>. If the directory is readable, -the generated tlpobj files will contain information gathered from the -TeX Catalogue. To disable this, specify a nonexistent filename, e.g., -C<--catalogue=/nonesuch>. +The I<Catalogue_file> must point to a valid TeX Catalogue checkout, with +subdirectory C</entries>; the default is C</home/texlive/catalogue>. If +the directory is readable, the generated tlpobj files will contain +information gathered from the TeX Catalogue. To disable this, specify a +nonexistent filename, e.g., C<--catalogue=/nonesuch>. =item B<--catalogue-compare> I<tlpdb> diff --git a/Master/tlpkg/bin/tlcom b/Master/tlpkg/bin/tlcom index 0d93bedfea4..924dc92167b 100755 --- a/Master/tlpkg/bin/tlcom +++ b/Master/tlpkg/bin/tlcom @@ -1,7 +1,9 @@ #!/bin/sh # $Id$ # Commit after TL package update. We rely on PATH to deal with trunk vs. -# branch. (See c2a and c2b.) +# branch (see c2a and c2b). See also libexec/ctan2tds for the real work +# of importing from CTAN; c2l and ctan2tl are additional wrappers +# (called by c2a). test $# -eq 0 && cd / /bin/pwd >/dev/null || exit 1 diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 9ef8b4f5133..bacbc9b77ec 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -30,8 +30,8 @@ my @TLP_working = qw( adfathesis adforn adhocfilelist adigraph adjmulticol adfsymbols adjustbox adobemapping adrconv adtrees advdate advice - ae aeguill aesupp affilauthor afparticle afthesis - aguplus aiaa aichej ajl akktex akletter akshar + ae aeguill aesupp affilauthor afthesis + aguplus aiaa aichej aiplans ajl akktex akletter akshar albatross alchemist alegreya alertmessage alfaslabone alg algobox algolrevived algorithm2e algorithmicx algorithms algpseudocodex algxpar @@ -42,7 +42,7 @@ my @TLP_working = qw( amsaddr amscdx amscls amscls-doc amsfonts amslatex-primer amsldoc-it amsldoc-vn amsmath amsmath-it amsrefs amstex amsthdoc-it - andika annee-scolaire animate annotate annotate-equations + andika annee-scolaire anima animate annotate annotate-equations anonchap anonymous-acm anonymouspro answers antanilipsum antique-spanish-units antiqua antomega antt anufinalexam anyfontsize anysize @@ -61,7 +61,8 @@ my @TLP_working = qw( askinclude askmaps asmeconf asmejour aspectratio assignment association-matrix assoccnt asternote astro asyfig asymptote-faq-zh-cn asymptote-by-example-zh-cn asymptote-manual-zh-cn - asy-overview asypictureb atbegshi atenddvi atendofenv atkinson atveryend + asy-overview asypictureb atableau atbegshi + atenddvi atendofenv atkinson atveryend attachfile attachfile2 aucklandthesis augie auncial-new aurical aurl auto-pst-pdf-lua autobreak autopdf @@ -90,32 +91,34 @@ my @TLP_working = qw( babelbib background backnaur baekmuk bagpipe bangla bangorcsthesis bangorexam bangtex bankstatement barcodes bardiag barr barracuda bartel-chess-fonts bashful basicarith - baskervald baskervaldx baskervillef + baskervaldadf baskervaldx baskervillef basque-book basque-date bath-bst bbcard bbding bbm bbm-macros bbold bboldx bbold-type1 bchart bclogo beamer beamer2thesis beamer-fuberlin beamer-rl beamer-tut-pt beamer-verona beamerappendixnote beameraudience beamerauxtheme beamercolorthemeowl beamerdarkthemes beamerposter beamersubframe beamerswitch beamertheme-arguelles beamertheme-cuerna - beamertheme-detlevcm beamertheme-epyt beamertheme-focus - beamertheme-light beamertheme-metropolis beamertheme-npbt + beamertheme-detlevcm beamertheme-epyt beamertheme-focus beamertheme-gotham + beamertheme-light beamertheme-metropolis beamertheme-mirage + beamertheme-npbt beamertheme-phnompenh beamertheme-pure-minimalistic beamertheme-rainbow beamertheme-saintpetersburg beamertheme-simpledarkblue beamertheme-simpleplus beamertheme-tcolorbox beamertheme-trigon beamertheme-upenn-bc - beamerthemeamurmaple beamerthemeconcrete beamerthemejltree beamerthemelalic - beamerthemenirma beamerthemenord + beamerthemeamurmaple beamerthemecelestia beamerthemeconcrete + beamerthemejltree beamerthemelalic + beamerthemenirma beamerthemenord beamertools bearwear beaulivre beautybook beautynote beebe begingreek begriff beilstein belleek bengali bera berenisadf besjournals bestpapers betababel beton beuron bewerbung bez123 bezierplot bfh-ci bgteubner bguq bhcexam - bib-fr bib2gls bibarts bibcop biber biber-ms bibhtml - biblatex biblatex-abnt biblatex-ajc2020unofficial + bib-fr bib2gls bib2qr bibarts bibcop biber biber-ms bibhtml + biblatex biblatex-abnt biblatex-accursius biblatex-ajc2020unofficial biblatex-anonymous biblatex-apa biblatex-apa6 biblatex-archaeology biblatex-arthistory-bonn biblatex-bath biblatex-bookinarticle biblatex-bookinother biblatex-bwl biblatex-caspervector biblatex-cheatsheet biblatex-chem - biblatex-chicago biblatex-claves biblatex-cv + biblatex-chicago biblatex-claves biblatex-cse biblatex-cv biblatex-dw biblatex-enc biblatex-ext biblatex-fiwi biblatex-gb7714-2015 biblatex-german-legal biblatex-gost biblatex-historian @@ -147,7 +150,7 @@ my @TLP_working = qw( bjfuthesis blacklettert1 blindtext blkarray blochsphere block blockdraw_mp blopentype bloques blowup blox bmstu bmstu-iu8 bnumexpr bodegraph bodeplot bohr boisik bold-extra - boites boldtensors bondgraph bondgraphs book-of-common-prayer + boites boldtensors bondgraph bondgraphs bonum-otf book-of-common-prayer bookcover bookdb bookest bookhands booklet bookman bookmark bookshelf booktabs booktabs-de booktabs-fr boolexpr boondox bophook borceux bosisio @@ -157,17 +160,18 @@ my @TLP_working = qw( breakcites breakurl bredzenie breqn bropd brushscr bubblesort buctthesis bullcntr bundledoc burmese businesscard-qrcode bussproofs bussproofs-extra - bxbase bxcalc bxcjkjatype bxdpx-beamer bxdvidriver bxghost + bxbase bxcalc bxcjkjatype bxcoloremoji bxdpx-beamer bxdvidriver bxghost bxjaholiday bxjaprnind bxjatoucs bxpapersize bxpdfver bxeepic bxenclose bxjalipsum bxjscls bxnewfont bxorigcapt bxtexlogo bxwareki byo-twemojis byrne bytefield c90 c-pascal cabin cachepic cahierprof - caladea calcage calcfrac calctab calculation calculator - calligra calligra-type1 callouts calrsfs cals calxxxx-yyyy cancel + caladea calcage calcfrac calctab calculation calculator calculatoritems + calligra calligra-type1 callouts callouts-box calrsfs cals calxxxx-yyyyes + cancel canoniclayout cantarell capt-of captcont captdef caption carbohydrates carlisle carlito carolmin-ps cartonaugh - cascade cascadia-code cascadilla cases casyl + cascade cascadia-code cascadiamono-otf cascadilla cases casyl catchfile catchfilebetweentags catcodes catechis catoptions catppuccinpalette causets cbcoptic cbfonts cbfonts-fd @@ -186,7 +190,7 @@ my @TLP_working = qw( chhaya chicago chicagoa chicagolinks chicago-annote chickenize chifoot childdoc chinese-jfm chinesechess chivo chkfloat chklref chletter chngcntr chordbars chordbox chronology - chronosys chs-physics-report chscite churchslavonic + chronosys chs-physics-report chscite churchslavonic chuushaku cidarticle cinzel circ circledsteps circledtext circuit-macros circuitikz circularglyphs citation-style-language cite citeall citeref cje cjhebrew cjk cjk-gs-integrate cjk-ko cjkpunct cjs-rcs-article @@ -207,12 +211,14 @@ my @TLP_working = qw( colorsep colorspace colortab colortbl colorwav colorweb colourchange combelow combine combinedgraphics combofont comfortaa comicneue - comma commado commath commedit comment commonunicode commutative-diagrams + comma commado commalists-tools commath commedit comment + commonunicode commutative-diagrams compactbib compare competences - complexity components comprehensive computational-complexity + complexity complexpolylongdiv components + comprehensive computational-complexity concepts concmath concmath-fonts concmath-otf concprog concrete conditext confproc constants conteq - context-calendar-examples + context-calendar-examples context-chat context-collating-marks context-cyrillicnumbers context-filter @@ -222,11 +228,12 @@ my @TLP_working = qw( context-simpleslides context-squares context-sudoku context-transliterator context-typescripts context-vim context-visualcounter - continue contour contracard contract conv-xkv convbkmk + continue contour contracard contract conv-xkv convbkmk convert-jpfonts cooking cooking-units cookingsymbols cool coolfn coollist coolstr coolthms cooltooltips coop-writing cooperhewitt - coordsys copyedit copyrightbox cormorantgaramond correctmathalign coseoul + coordsys copyedit copyrightbox + cora-macs cormorantgaramond correctmathalign coseoul couleurs-fr count1to counterz countriesofeurope counttexruns courier courier-scaled courierten @@ -237,7 +244,7 @@ my @TLP_working = qw( crossreference crossreftools crossrefenum crossrefware crossword crosswrd crumbs cryptocode cryst cs cs-techrep csassignments csbulletin cslatex csplain csquotes csquotes-de - css-colors cstex cstypo csvmerge csvsimple + css-colors cstex csthm cstypo csvmerge csvsimple ctan-o-mat ctan_chk ctanbib ctanify ctanupload ctable ctablestack ctex ctex-faq culmus cuprum cursolatex cuisine @@ -274,7 +281,7 @@ my @TLP_working = qw( dk-bib dlfltxb dnaseq dnp doc-pictex docbytex doclicense docmfp docmute docshots docsurvey doctools documentation docutils - doi doipubmed domitian + doi doibanner doipubmed domaincoloring domitian dosepsbin dotlessi dot2texi dotarrow dotseqn dottex doublestroke doulossil dowith download dox dozenal dpcircling dpfloat dprogress @@ -290,11 +297,11 @@ my @TLP_working = qw( ebezier ebgaramond ebgaramond-maths ebong ebook ebproof ebsthesis ec ecc ecclesiastic ecltree eco ecobiblatex econ-bst econlipsum econometrics economic ecothesis - ecv eczar ed edfnotes edichokey edmac edmargin + ecv eczar ed edfnotes edichokey edmac edmargin edmaths eemeir eepic efbox egameps egpeirce egplot ehhline eiad eiad-ltx eijkhout einfart ejpecp ekaia ekdosis ektype-tanka - elbioimp electrum eledform eledmac elements + elbioimp electrumadf eledform eledmac elements ellipse ellipsis elmath elocalloc elpres els-cas-templates elsarticle elteiktdk elteikthesis eltex elvish elzcards @@ -303,7 +310,7 @@ my @TLP_working = qw( enctex encxvlna endfloat endheads endiagram endnotes endnotes-hy endnotesj endofproofwd engpron engrec engtlc enigma enotez ensps-colorscheme - enumitem enumitem-zref envbig environ envlab eolang + enumext enumitem enumitem-zref envbig enverb environ envlab eolang epcqrcode epigrafica epigram epigraph epigraph-keys epiolmec eplain epsdice epsf epsf-dvipdfmx epsincl epslatex-fr epspdfconversion epstopdf epstopdf-pkg @@ -314,22 +321,23 @@ my @TLP_working = qw( eso-pic esrelation esstix estcpmm esvect etaremune etbb etdipa etex-pkg etexcmds etextools ethiop ethiop-t1 etl etoc etoolbox etoolbox-de etoolbox-generic etsvthor - euclideangeometry euenc euflag eukdate - euler euler-math eulerpx eulervm euro euro-ce europasscv europecv eurosym + euclidean-lattice euclideangeometry euenc euflag eukdate + euler euler-math eulerpx eulervm + euro euro-ce euromoney europasscv europecv eurosym evangelion-jfm everyhook everypage everysel everyshi exam exam-lite exam-n exam-randomizechoices exam-zh examdesign example examplep examz exceltex excludeonly exercise exercisebank exercisepoints exercises exercisesheets exesheet exframe exp-testopt - expdlist expex expex-acro expex-glossonly expkv-bundle export + expdlist expex expex-acro expex-glossonly expkv-bundle expltools export expose-expl3-dunkerque-2019 expressg exsheets exsol extarrows exteps - extpfeil extract extsizes + extpfeil extract extractbb extsizes ezedits facsimile factura facture facture-belge-simple-sans-tva fadingimage fail-fast faktor familytree fancybox fancyhandout fancyhdr fancyhdr-it fancylabel fancynum fancypar fancyqr fancyref fancyslides fancytabs fancytooltips fancyvrb fandol - faq-fr fascicules fast-diagram fbb fbithesis fbox fbs + faq-fr faq-fr-gutenberg fascicules fast-diagram fbb fbithesis fbox fbs fc fcavtex fcltxdoc fcolumn fdsymbol fduthesis featpost fei fenetrecas fenixpar fetamont fetchcls @@ -338,6 +346,7 @@ my @TLP_working = qw( fifinddo-info fifo-stack fig4latex figbas figbib figchild figflow figput figsize filecontents filecontentsdef filedate filehook fileinfo filemod + fillpages fillwith findhyph fink finstrut fira firamath firamath-otf first-latex-doc firstaid fistrum fitbox fitch fithesis fix2col fixcmex fixdif fixfoot fixjfm fixlatvian @@ -351,16 +360,17 @@ my @TLP_working = qw( foekfont foilhtml foliono fonetika font-change font-change-xetex fontawesome fontawesome5 fontaxes fontbook fontch fontinst - fontinstallationguide fontmfizz fontools fontscale + fontinstallationguide fontmfizz fontools fonts-churchslavonic fonts-tlwg - fontsetup fontsize fontspec fonttable fontwrap + fontscale fontscripts fontsetup fontsize fontspec fonttable fontwrap footbib footmisc footmisx footnotebackref footnotehyper footnoterange footnpag forarray foreign forest forest-quickstart forloop formal-grammar formlett formation-latex-ul forms16be formular forum fouridx fourier fouriernc fp fpl - fragmaster fragments frame framed francais-bst frankenstein frcursive + fragmaster fragments frame framed framedsyntax + francais-bst frankenstein frcursive frederika2016 freealign frege frenchmath frimurer frletter frontespizio froufrou frpseudocode ftc-notebook ftcap ftnxtra @@ -369,9 +379,9 @@ my @TLP_working = qw( g-brief gaceta galois gamebook gamebooklib gammas garamond-libre garamond-math garuda-c90 garrigues gastex gates gatherenum gauss - gb4e gbt7714 gcard gchords gcite gckanbun - gelasio genealogy genealogytree gender gene-logic genealogy-profiles - genmpage gensymb gentium-tug gentle gentombow geometry + gb4e gb4e-next gbt7714 gcard gchords gcite gckanbun + gelasio gelasiomath genealogy genealogytree gender gene-logic genealogy-profiles + genmpage gensymb gentium-otf gentium-sil gentle gentombow geometry geradwp german germbib germkorr geschichtsfrkl getfiledate getitems getmap getoptk gettitlestring gfnotation gfsartemisia gfsbaskerville gfsbodoni gfscomplutum gfsdidot gfsdidotclassic @@ -396,7 +406,8 @@ my @TLP_working = qw( graph35 graphbox graphics graphics-cfg graphics-def graphics-pln graphicx-psmin graphicscache graphicxbox graphicxpsd - graphpaper graphviz grayhints greek-fontenc greek-inputenc + graphpaper graphviz gratzer-color-scheme grayhints + greek-fontenc greek-inputenc greekdates greektex greektonoi greenpoint gregoriotex grfext grffile grfpaste grid grid-system gridpapers gridset gridslides grotesq grundgesetze @@ -407,7 +418,8 @@ my @TLP_working = qw( happy4th har2nat haranoaji haranoaji-extra hardwrap harmony harnon-cv harpoon harvard harveyballs harvmac hatching hausarbeit-jura havannah - hc he-she hebrew-fonts hecthese helmholtz-ellis-ji-notation helvetic + hc hduthesis he-she hebdomon hebrew-fonts hecthese + helmholtz-ellis-ji-notation helvetic hep hep-acronym hep-bibliography hep-float hep-font hep-float hep-graphic hep-math hep-math-font hep-paper hep-reference hep-text hep-title hepnames hepparticles hepthesis hepunits here hereapplies heria heros-otf hershey-mp @@ -423,7 +435,7 @@ my @TLP_working = qw( hpsdiss href-ul hrefhide hrlatex hu-berlin-bundle huawei huaz huffman hulipsum hustthesis hvarabic hvextern hvfloat hvindex hvlogos hvpygmentex hvqrurl - hwemoji hycolor hypdestopt hypdoc hypdvips + hwemoji hycolor hypcap hypdestopt hypdoc hypdvips hyper hyperbar hypernat hyperref hyperxmp hyph-utf8 hyphen-base hyphenat hyphenex hyplain @@ -437,11 +449,12 @@ my @TLP_working = qw( imfellenglish impnattypo import imsproc imtekda incgraph includernw inconsolata inconsolata-nerd-font index indextools infwarerr - initials inkpaper inline-images inlinebib inlinedef inlinelabel innerscript + initials inkpaper inline-images + inlinebib inlinedef inlinegraphicx inlinelabel innerscript inputenx inputnormalization inputtrc inriafonts insbox install-latex-guide-zh-cn installfont intcalc inter interactiveworkbook - interchar interfaces interpreter interval intopdf + interchar interfaces interlinear interpreter interval intopdf intro-scientific inversepath invoice invoice-class invoice2 iodhbwm ionumbers iopart-num ipaex ipaex-type1 ipsum iran-bibtex @@ -450,7 +463,7 @@ my @TLP_working = qw( isphysicalmath issuulinks istgame itnumpar iwona iwonamath jablantile jacow jamtimes japanese-mathformulas japanese-otf - jbact jeuxcartes jfmutil jieeetran jigsaw + jbact jetbrainsmono-otf jeuxcartes jfmutil jieeetran jigsaw jknapltx jkmath jlabels jlreq jlreq-deluxe jmb jmlr jmsdelim jneurosci jnuexam jobname-suffix joinbox josefin jourcl jourrr @@ -460,7 +473,7 @@ my @TLP_working = qw( kalendarium kanaparser kanbun kantlipsum karnaugh karnaugh-map karnaughmap kastrup kaytannollista-latexia kblocks kdgdocs kdpcover kerkis kerntest ketcindy - keycommand keyfloat keyindex keyparse keyreader keystroke + keycommand keyfloat keyindex keyparse keyreader keystroke keytheorems keyval2e keyvaltable kfupm-math-exam khatalmaqala kinematikz kix kixfont knitting knittingpattern knowledge knuth-errata knuth-hint knuth-lib knuth-local knuth-pdf @@ -505,12 +518,13 @@ my @TLP_working = qw( libertine libertinegc libertinus libertinus-fonts libertinus-otf libertinus-type1 libertinust1math libgreek librarian librebaskerville librebodoni librecaslon librefranklin - libris lie-hasse liftarm light-latex-make ligtype lilyglyphs limap limecv + libris lie-hasse liederbuch liftarm + light-latex-make ligtype lilyglyphs limap limecv lineara linearregression linebreaker linegoal lineno ling-macros linguex linguisticspro linop lion-msc lipsum lisp-on-tex listbib listing listings listings-ext listingsutf8 listlbls listliketab - listofitems listofsymbols litebook litesolution litetable + listofitems listofsymbols listparskip litetable lithuanian liturg lkproof llncs llncsconf lm lm-math lmake lni lobster2 locality localloc logbox logical-markup-utils logicproof logicpuzzle logix logoetalab logpap logreq lollipop @@ -535,20 +549,21 @@ my @TLP_working = qw( luaimageembed luaindex luainputenc luakeys lualatex-doc-de lualatex-math lualatex-truncate lualibs lualinalg luamathalign luamaths - luamesh luamodulartables luamplib luanumint luaoptions luaotfload + luamesh luamml luamodulartables luamplib luanumint luaoptions luaotfload luapackageloader luaplot luaprogtable luapstricks luaquotes luarandom - luaset luasseq luatex85 luatexbase luatexja luatexko luatextra + luaset luasseq + luatbls luatex85 luatexbase luatexja luatexko luatextra luatikz luatodonotes luatruthtable luavlna luaxml - lutabulartools lwarp lxfonts ly1 lyluatex - macrolist macros2e macroswap mafr magaz magicnum magra + lutabulartools luwiantype lwarp lxfonts ly1 lyluatex + macrolist macros2e macroswap mafr magaz magicnum magicwatermark magra mahjong mailing mailmerge make4ht makebarcode makebase makebox makecell makecirc makecmds makecookbook makedtx makeglos makelabels makeplot maker makerobust makeshape mandi manfnt manfnt-font manuscript manyind - marathi marcellus margbib - marginfit marginfix marginnote markdown marvosym + marathi marcellus margbib marginalia + marginfit marginfix marginnote maritime markdown marvosym matapli matc3 matc3mem match_parens math-into-latex-4 mathabx mathabx-type1 mathalpha mathastext mathcommand mathcomp mathdesign mathdots mathexam @@ -566,7 +581,7 @@ my @TLP_working = qw( metafont-beginners metago metalogo metalogox metanorma metaobj metaplot metapost-colorbrewer metapost-examples metastr metatex metatype1 metauml method metre metrix metsymb - mf2pt1 mfirstuc mflogo mflogo-font mfnfss mfpic mfpic4ode mftinc + mf2pt1 mfb-oldstyle mfirstuc mflogo mflogo-font mfnfss mfpic mfpic4ode mftinc mgltex mhchem mhequ miama mi-solns microtype microtype-de midnight midpage miller milog milsymb @@ -582,8 +597,9 @@ my @TLP_working = qw( modref modroman modular modulus moloch mongolian-babel montserrat monofill montex moodle - moreenum morefloats morehype moresize - moreverb morewrites morisawa movement-arrows movie15 mp3d + moreenum morefloats morehype moremath moresize + moreverb morewrites morisawa movement-arrows movie15 + mp-geom2d mp-neuralnetwork mp3d mparhack mparrows mpattern mpchess mpcolornames mpfonts mpgraphics mpkiviat mpman-ru mpostinl mptopdf mptrees msc msg mslapa msu-thesis mtgreek @@ -602,7 +618,7 @@ my @TLP_working = qw( navigator navydocs ncclatex ncctools nchairx ncntrsbk nddiss ndsu-thesis ndsu-thesis-2022 - needspace nestquot neuralnetwork nevelok + needspace neoschool nestquot neuralnetwork nevelok newcastle-bst newcommand newcomputermodern newenviron newfile newfloat newlfm newpax newpx newsletr newspaper @@ -612,14 +628,15 @@ my @TLP_working = qw( nidanfloat nih nihbiosketch nimbus15 nimsticks ninecolors njurepo njustthesis njuthesis njuvisual nkarta nl-interval nlctdoc - nmbib nndraw nnext noconflict nodetree noindentafter noitcrul nolbreaks + nmbib nndraw nnext noconflict nodepthtext nodetree + noindentafter noitcrul nolbreaks nomencl nomentbl non-decimal-units nonfloat nonumonpart nopageno norasi-c90 normalcolor nostarch notebeamer notes notes2bib notespages notestex notex-bst noto noto-emoji notoccite notomath novel nowidow nox - nrc ntgclass nth ntheorem ntheorem-vn nuc nucleardata - numberedblock numberpt + nrc nstc-proposal ntgclass nth ntheorem ntheorem-vn nuc nucleardata + numberedblock numberpt numbersets numerica numerica-plus numerica-tables numericplots numname numnameru numprint numspell nunito nwafuthesis nwejm nxuthesis @@ -627,21 +644,22 @@ my @TLP_working = qw( ocg-p ocgx ocgx2 ocherokee ocr-b ocr-b-outline ocr-latex octave octavo odesandpdes odsfile ofs ogham oinuit old-arrows oldlatin oldstandard - oldstyle olsak-misc + oldstyle olsak-misc omgtudoc-asoiu onedown onlyamsmath onrannual opbible opcit opencolor opensans oplotsymbl opteng optex optexcount optidef optional options orcidlink ordinalpt orientation orkhun - oscola osda oststud oswald ot-tableau othello othelloboard + oscola oststud oswald ot-tableau othello othelloboard oubraces oup-authoring-template outerhbox outilsgeomtikz outline outliner outlines outlining overarrows overlays overlock overpic - pacioli padauk padcount + pacioli packdoc padcount pagecolor pagecont pagegrid pagelayout pagella-otf pagenote pagerange pagesel pageslts palatino palette pangram panneauxroute paper papercdcase papermas papertex papiergurvan paracol parades paralist parallel paratype paresse parnotes parrun parsa parsimatn parsinevis parselines parskip - pas-cours pas-crosswords pas-cv pas-tableur pascaltriangle passivetex + pas-cours pas-crosswords pas-cv pas-tableur + pascaltriangle passivetex passopt patch patchcmd patgen2-tutorial path pauldoc pawpict pax pbalance pbibtex-base pbox pb-diagram pbibtex-manual pbsheet pdf14 @@ -653,19 +671,20 @@ my @TLP_working = qw( pdfpagediff pdfpages pdfpc pdfpc-movie pdfprivacy pdfrender pdfreview pdfscreen pdfslide pdfsync pdftex-quiet pdftexcmds pdftricks pdftricks2 pdfx pdfxup - pecha pedigree-perl penlight penlightplus perception perfectcut perltex + pecha pedigree-perl pegmatch + penlight penlightplus perception perfectcut perltex permute persian-bib petiteannonce petri-nets pfarrei pfdicons pgf pgf-blur pgf-interference pgf-periodictable pgf-pie pgf-soroban pgf-spectra pgf-umlcd pgf-umlsd pgfgantt pgfkeysearch pgfkeyx pgfmath-xfp pgfmolbio pgfmorepages - pgfopts pgfornament pgfornament-han pgfplots + pgfopts pgfornament pgfornament-han pgfplots pgfplotsthemebeamer phaistos phfcc phfextendedabstract phffullpagefigure phfnote phfparen phfqit phfquotetext phfsvnwatermark phfthm philex philokalia philosophersimprint phonenumbers phonetic phonrule photo photobook - physconst physics physics2 physunits + physconst physics physics2 physics-patch physunits piano picinpar pict2e pictex pictex2 pictexsum pictochrono picture piechartmp piff pigpen pinlabel pinoutikz pitex piton pittetd pixelart pixelarttikz @@ -677,16 +696,16 @@ my @TLP_working = qw( plnfss plstmary plweb pm-isomath pmboxdraw pmdraw pmgraph pmhanguljamo pmx pmxchords pnas2009 poemscol poetry poetrytex poiretone polexpr polski poltawski - polyglossia polyhedra polynom polynomial + polyglossia polyhedra polynom polynomial polyomino polytable poormanlog postage postcards poster-mac postit postnotes powerdot powerdot-fuberlin powerdot-tuliplab ppmcheckpdf ppr-prv ppt-slides pracjourn practicalreports precattl prelim2e preprint prerex present pressrelease prettyref prettytok preview prftree - principia printlen proba probsoln prociagssymp + principia printlen prisma-flow-diagram proba probsoln prociagssymp prodint productbox profcollege proflabo proflycee profmaquette profsio program - progress progressbar projlib + progress progressbar projlib pronunciation proof-at-the-end proofread prooftrees proposal properties prosper protex protocol prtec przechlewski-book psbao pseudo pseudocode psfrag psfrag-italian psfragx @@ -725,11 +744,12 @@ my @TLP_working = qw( qualitype quantikz quantumarticle quattrocento quickreaction quicktype quiver quiz2socrative quizztex quotchap quoting quotmark - quran quran-bn quran-de quran-en quran-id quran-ur qyxf-book - r_und_s ragged2e raleway ran_toks randbild randexam + quran quran-bn quran-de quran-en quran-es quran-id quran-ur qyxf-book + r_und_s ragged2e raleway ran_toks randbild randexam randintlist random randomlist randomwalk randtext rank-2-roots rbt-mathnotes rccol rcs rcs-multi rcsinfo - readablecv readarray realboxes realhats realscripts realtranspose rec-thy + readablecv readarray realboxes realhats realscripts realtranspose + rebuttal rec-thy recipe recipebook recipecard recorder-fingering recycle rectopma refcheck refcount refenums reflectgraphics refman refstyle regcount regexpatch register regstats regulatory @@ -740,7 +760,7 @@ my @TLP_working = qw( rgltxdoc ribbonproofs rigidnotation rit-fonts rjlparshap rlepsf rmathbr rmpage robotarm roboto robust-externalize robustcommand robustindex rojud - romanbar romanbarpagenumber romande romanneg romannum + romanbar romanbarpagenumber romandeadf romanneg romannum rorlink rosario rotfloat rotpages rouequestions roundbox roundrect rpgicons rrgtrees rsc rsfs rsfso rterface rtkinenc rtklage @@ -751,13 +771,13 @@ my @TLP_working = qw( sanskrit sanskrit-t1 sansmath sansmathaccent sansmathfonts sapthesis sasnrdisplay sauerj sauter sauterfonts saveenv savefnmark savesym savetrees - scale scalebar scalerel scanpages + scale scalebar scalerel scaletextbullet scanpages schedule schemabloc schemata schola-otf scholax schooldocs schulmathematik sclang-prettifier schule schulschriften schwalbe-chess scikgtex sciposter scientific-thesis-cover scontents scrabble scrambledenvs scratch scratch3 scratchx screenplay screenplay-pkg - scripture scrjrnl scrlayer-fancyhdr scrlttr2copy scrwfile scsnowman + scrhack scripture scrjrnl scrlayer-fancyhdr scrlttr2copy scrwfile scsnowman sdaps sdrt sduthesis se2thesis secdot secnum section sectionbox sectionbreak sectsty seealso selectp selinput selnolig semantex semantic semantic-markup semaphor @@ -790,21 +810,22 @@ my @TLP_working = qw( spacekern spacingtricks spalign spark-otf sparklines spath3 spbmark spectral spectralsequences spelatex spelling spie spix sphack sphdthesis splines splitbib splitindex - spot spotcolor spreadtab spverbatim - sr-vorl srbook-mem srbtiks srcltx srdp-mathematik srcredact sseq sslides + spot spotcolor spreadtab spverbatim sqltex + sr-vorl srbook-mem srbtiks srcltx srdp-mathematik srcredact + sseq sshrc-insight sslides stack stackengine stage standalone standardsectioning stanli starfont startex statex statex2 statistics statistik statmath staves starray stdclsdv stdpage stealcaps steinmetz stellenbosch stellenbosch-2 step stepgreek stex - stickstoo stix stix2-otf stix2-type1 stmaryrd storebox storecmd + stickstoo stix stix2-otf stix2-type1 stmaryrd stocksize storebox storecmd strands stricttex string-diagrams stringenc stringstrings structmech struktex - sttools stubs studenthandouts sty2dtx styledcmd suanpan + sttools stubs studenthandouts sty2dtx styledcmd suanpan suanpan-l3 subdocs subdepth subeqn subeqnarray subfig subfigmat subfigure subfiles subfloat substances substr subsupscripts subtext - sudoku sudokubundle suftesi sugconf + sudoku sudokubundle suftesi sugconf sunpath superiors supertabular suppose susy svg svg-inkscape svgcolor svn svn-multi svn-prov svninfo svrsymbols swebib swfigure swimgraf swrule swungdash syllogism @@ -815,19 +836,19 @@ my @TLP_working = qw( tabbing tabfigures table-fct tableaux tablefootnote tableof tablists tablor tabls tablvar tabriz-thesis tabstackengine tabto-generic tabto-ltx - tabu tabularborder tabularray tabularcalc tabularew + tabu tabularborder tabularray tabularcalc tabularew tabularray-abnt tabulary tabvar tagging tagpair tagpdf talk talos tamefloats - tamethebeast tangocolors tangramtikz tap tapir tasks + tamethebeast tango tangocolors tangramtikz tap tapir tasks tblr-extras tcldoc tcolorbox tdclock tds tdsfrmath - technics technion-thesis-template ted - templates-fenn templates-sommer templatetools tempora + technics technion-thesis-template ted telprint + templates-fenn templates-sommer templatetools tempora temporal-logic tengwarscript tensind tensor termcal termcal-de termes-otf termlist termmenu termsim testhyphens testidx tetragonos teubner tex-ewd tex-font-errors-cheatsheet tex-gyre tex-gyre-math tex-ini-files tex-label tex-locale tex-nutshell tex-overview tex-ps - tex-refs tex-virtual-academy-pl tex-vpat + tex-virtual-academy-pl tex-vpat tex4ebook texaccents texapi texblend texbytopic texcount texdate texdef texdiff texdimens texdirflatten texdoc texdraw texfindpkg texfot texinfo texilikechaps texilikecover @@ -840,25 +861,27 @@ my @TLP_working = qw( theanodidot theanomodern theanooldstyle theatre thematicpuzzle theoremref thermodynamics thesis-ekf thesis-gwu thesis-qom thesis-titlepage-fhac - thinsp thmbox thmlist thmtools + thinsp thmbox thmtools threadcol threeddice threeparttable threeparttablex thuaslogos thubeamer thucoursework thumb thumbpdf thumbs thumby thuthesis - ticket ticollege tidyres + ticket ticollege tidyres tiet-question-paper tikz2d-fr tikz3d-fr tikz-3dplot - tikz-among-us tikz-bagua tikz-bayesnet tikz-bbox - tikz-cd tikz-dependency tikz-dimline tikz-ext + tikz-among-us tikz-bagua tikz-bayesnet tikz-bbox tikz-bpmn + tikz-cd tikz-decofonts tikz-dependency tikz-dimline tikz-ext tikz-feynhand tikz-feynman tikz-imagelabels tikz-inet tikz-kalender tikz-karnaugh tikz-ladder tikz-lake-fig tikz-layers tikz-mirror-lens tikz-nef tikz-network tikz-nfold tikz-opm tikz-optics tikz-osci tikz-page tikz-palattice tikz-planets tikz-qtree - tikz-relay tikz-sfc tikz-swigs tikz-timing tikz-trackschematic tikz-truchet + tikz-relay tikz-sfc tikz-swigs + tikz-timing tikz-trackschematic tikz-triminos tikz-truchet tikzbricks tikzcodeblocks tikzdotncross tikzducks tikzfill tikzinclude tikzlings tikzmark tikzmarmots tikzorbital tikzpackets tikzpagenodes tikzpeople tikzpfeile tikzpingus tikzposter tikzquads tikzquests tikzscale tikzsymbols tikztosvg tikzviolinplots tile-graphic tilings - timbreicmc times timetable timing-diagrams tinos tipa tipa-de tipauni tipfr + timbreicmc timechart timeop times timetable timing-diagrams + tinos tipa tipa-de tipauni tipfr tiscreen titlecaps titlefoot titlepages titlepic titleref titlesec titling tkz-base tkz-berge tkz-bernoulli tkz-doc tkz-elements tkz-euclide tkz-fct tkz-graph tkz-grapheur tkz-orm tkz-tab tkzexample @@ -879,16 +902,16 @@ my @TLP_working = qw( tree-dvips treesvr treetex trfsigns trigonometry trimspaces trivfloat trivialpursuit trsym truncate truthtable tsemlines tsvtemplate - tucv tuda-ci tudscr tufte-latex tugboat tugboat-plain + tucv tuda-ci tudscr tufte-latex tugboat tugboat-plain tuple tui turabian turabian-formatting turkmen turnstile turnthepage tutodoc twemoji-colr twemojis twoinone twoup twoxtwogame txfonts txfontsb txgreeks txuprcal type1cm typed-checklist typeface typehtml typeoutfileinfo typewriter typicons typoaid typog typogrid typstfun tzplot - uaclasses uafthesis uantwerpendocs uassign ucalgmthesis + uaclasses uafthesis ualberta uantwerpendocs uassign ucalgmthesis ucharcat ucharclasses ucbthesis ucdavisthesis ucph-revy ucs ucsmonograph - ucthesis udepcolor udes-genie-these udesoftec + ucthesis udepcolor udes-genie-these udesoftec udiss uebungsblatt uestcthesis ufrgscca uhhassignment uhrzeit uiucredborder uiucthesis ukbill ukrhyph ulem ulqda ulthese @@ -898,7 +921,7 @@ my @TLP_working = qw( undar-digitacion undergradmath underlin underoverlap underscore undolabl unfonts-core unfonts-extra uni-titlepage uni-wtal-ger uni-wtal-lin - unicode-alphabets unicode-data unicode-bidi + unibidi-lua unicode-alphabets unicode-data unicode-bidi unicode-math unicode-math-input unicodefonttable unifith unifront unigrazpub unimath-plain-xetex uninormalize uniquecounter unisc unisugar @@ -922,11 +945,12 @@ my @TLP_working = qw( voss-mathcol vpe vruler vtable vwcol wadalab wallcalendar wallpaper wargame warning warpcol - was wasy wasy-type1 wasysym webguide webquiz weiqi wheelchart + was wasy wasy-type1 wasysym webguide webquiz weiqi whatsnote wheelchart widetable widows-and-orphans williams willowtreebook windycity withargs witharrows wnri wnri-latex wordcloud wordcount wordle wordlike worldflags worksheet - wrapfig wrapfig2 wrapstuff writeongrid wsemclassic wsuipa wtref + wrapfig wrapfig2 wrapstuff wrapstuff-doc-en + writeongrid wsemclassic wsuipa wtref xargs xassoccnt xbmks xcharter xcharter-math xcite xcjk2uni xcntperchap xcolor xcolor-material xcolor-solarized xcomment xcookybooky xcpdftips xdoc xduthesis xduts @@ -940,7 +964,7 @@ my @TLP_working = qw( xkcdcolors xkeymask xkeyval xlop xltabular xltxtra xml2pmx xmltex xmpincl xmuthesis xnewcommand xoptarg xpatch xpeek xpiano xpicture xpinyin xprintlen xpunctuate - xq xsavebox xsim xskak xstring xtab xtuthesis xunicode xurl + xq xreview xsavebox xsim xskak xstring xtab xtuthesis xunicode xurl xwatermark xyling xymtex xypic xypic-tut-pt xytree yafoot yagusylo yaletter yamlvars yannisgr yathesis yax yazd-thesis yb-book ycbook ydoc yet-another-guide-latex2e @@ -949,7 +973,7 @@ my @TLP_working = qw( zapfchan zapfding zbmath-review-template zebra-goodies zed-csp zennote zhlineskip zhlipsum zhnumber zhmetrics zhmetrics-uptex zhspacing ziffer zitie zlmtt zootaxa-bst zref zref-check zref-clever zref-vario - zwgetfdate zwpagelayout + zugferd zwgetfdate zwpagelayout zx-calculus zxjafbfont zxjafont zxjatype zztex ); diff --git a/Master/tlpkg/bin/tlpkginfo b/Master/tlpkg/bin/tlpkginfo index b89e8f8eef6..45df00708ab 100755 --- a/Master/tlpkg/bin/tlpkginfo +++ b/Master/tlpkg/bin/tlpkginfo @@ -67,10 +67,11 @@ sub tlpkgrevision { sub ctaninfo { $CTAN = $ENV{"CTAN"} || "/home/ftp/tex-archive"; $TMPDIR = $ENV{"TMPDIR"} || "/tmp"; - $CATALOGUE = $ENV{"TEX_CATALOGUE"} || "/home/httpd/html/catalogue/entries"; + my $top_cat = $ENV{"TEX_CATALOGUE"} || "/home/texlive/catalogue"; + $CATALOGUE = "$top_cat/entries"; -d "$CATALOGUE/k" - || die "$0: TEX_CATALOGUE ($CATALOGUE) must point to entries/ subdir" - . " of a TeX Catalogue checkout.\n"; + || die "$0: TEX_CATALOGUE ($CATALOGUE) must point to the top level" + . " of a TeX Catalogue checkout (with entries/ subdir).\n"; # erroneous or problematic tds files (when new, tell CTAN and author). # ieeeconf: capitals in directory names. @@ -474,7 +475,7 @@ sub prepare { sub copy_to_tmpdir { my ($pkgname,$src) = @_; - my $pkgdir = "$TMPDIR/tl.$pkgname"; + my $pkgdir = "$TMPDIR/$<.tl.$pkgname"; system ("rm -rf $pkgdir"); mkdir ($pkgdir, 0777) || die "mkdir($pkgdir) failed: $!"; |