[tlu] TLU critical update still faliing

Bruno Voisin bvoisin at icloud.com
Sat Nov 18 12:16:03 CET 2023


> On 18 Nov 2023, at 00:27, Karl Berry <karl at freefriends.org> wrote:
> 
> Maybe if you run
>  sh -vx update-tlmgr-latest 
> it will possible to discern why it ends with "Extraction failed".

Eventually this seems a matter of Linux gnutar vs macOS bsdtar.

Doing the above I got the same output as Dick, with

+ UnTAR x
expr $length / $bsize
+ test n = n
+ tar xvf -
++ expr 9438862 / 4194304
+ blocks=2
expr $length % $bsize
++ expr 9438862 % 4194304
+ bytes=1050254
+ dd bs=12106 count=0 skip=1
expr $pos \+ $bsize
++ expr 0 + 4194304
+ pos=4194304
+ MS_Printf '     0%% '
+ printf '     0%% '
     0% + test 2 -gt 0
+ test 4194304 -le 9438862
+ dd bs=4194304 count=1
expr $length / 100
++ expr 9438862 / 100
+ pcent=94388
expr $pos / $pcent
++ expr 4194304 / 94388
+ pcent=44
+ test 44 -lt 100
+ MS_Printf '\b\b\b\b\b\b\b'
+ printf '\b\b\b\b\b\b\b'
+ test 44 -lt 10
+ MS_Printf '   44%% '
+ printf '   44%% '
   44% expr $pos \+ $bsize
++ expr 4194304 + 4194304
+ pos=8388608
+ test 8388608 -le 9438862
+ dd bs=4194304 count=1
expr $length / 100
++ expr 9438862 / 100
+ pcent=94388
expr $pos / $pcent
++ expr 8388608 / 94388
+ pcent=88
+ test 88 -lt 100
+ MS_Printf '\b\b\b\b\b\b\b'
+ printf '\b\b\b\b\b\b\b'
+ test 88 -lt 10
+ MS_Printf '   88%% '
+ printf '   88%% '
   88% expr $pos \+ $bsize
++ expr 8388608 + 4194304
+ pos=12582912
+ test 12582912 -le 9438862
+ test 1050254 -gt 0
+ dd bs=1050254 count=1
+ MS_Printf '\b\b\b\b\b\b\b'
+ printf '\b\b\b\b\b\b\b'
+ MS_Printf ' 100%%  '
+ printf ' 100%%  '
 100%  + echo Extraction failed.
Extraction failed.

So extraction seems to go OK, outputting O%, 44%, 88%, 100%, then suddenly out of the blue there's this "Extraction failed".

Given your UnTAR code in update-tlmgr-latest.sh

UnTAR()
{
    if test "\$quiet" = "n"; then
    tar \$1vf - 2>&1 || { echo Extraction failed. > /dev/tty; kill -15 \$$; }
    else

    tar \$1f - 2>&1 || { echo Extraction failed. > /dev/tty; kill -15 \$$; }
    fi
}

is from

https://tug.org/svn/texlive/trunk/Master/tlpkg/libexec/makeself-header.sh?revision=46578&view=markup

and hasn't changed in years, I though maybe tar and/or gzip are to blame.

Looking closer,

% tar --version
bsdtar 3.5.3 - libarchive 3.5.3 zlib/1.2.12 liblzma/5.0.5 bz2lib/1.0.8

% gzip --version
Apple gzip 428

StackExchange has a page about the differences between Linux gnutar and macOS bsdtar

https://apple.stackexchange.com/questions/197839/why-is-extracting-this-tgz-throwing-an-error-on-my-mac-but-not-on-linux

It's too technical for me, but it mentions hard links. I did get messages about hard links -- which I didn't understand -- doing my previous tests, and at some point last night -- I don't remember how -- I ended up with an installer/xz directory containing the 15 binaries for the different architectures, plus what I think were 15 hard links with the same names.

To be sure, I installed gnutar (with MacPorts) and set up a "tar" symlink in /usr/local/bin, so it comes before Apple's /usr/bin/tar in PATH.

Thus

% which -a tar
/usr/local/bin/tar
/usr/bin/tar

% tar --version                     
tar (GNU tar) 1.35
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.

Having done that, running your command again, everything's fine: no "Extraction failed", and exit with status 0. Output below.

What I can't get is why is this happening only now, and not before? A change in makeself?

I would have suspected a recent change in macOS, but Dick is getting the same on Mojave which is 5 macOS versions behind.

Things worked in my previous attempt to extract the archive content of update-tmgr-latest.sh manually, by changing the extension and double-clicking, because Archive Utility.app was used instead of tar.

Bruno


% sudo sh -vx update-tlmgr-latest.sh
Password:
#!/bin/sh
# '$Id: makeself-header.sh 46578 2018-02-09 22:16:10Z karl $'
# This script was generated using Makeself 2.4.2 (-umask for TeX Live)

CRCsum="2655940115"
+ CRCsum=2655940115
MD5="73a1bc8463e9f798182e21eb93b485c9"
+ MD5=73a1bc8463e9f798182e21eb93b485c9
TMPROOT=${TMPDIR:=/tmp}
+ TMPROOT=/tmp

label="TeX Live Manager Updater"
+ label='TeX Live Manager Updater'
script="./runme.sh"
+ script=./runme.sh
scriptargs=""
+ scriptargs=
licensetxt=""
+ licensetxt=
targetdir="tmp.AHlgmoFqzJtlmksel"
+ targetdir=tmp.AHlgmoFqzJtlmksel
filesizes="9438862"
+ filesizes=9438862
keep="n"
+ keep=n
quiet="n"
+ quiet=n

print_cmd_arg=""
+ print_cmd_arg=
if type printf > /dev/null; then
    print_cmd="printf"
elif test -x /usr/ucb/echo; then
    print_cmd="/usr/ucb/echo"
else
    print_cmd="echo"
fi
+ type printf
+ print_cmd=printf

unset CDPATH
+ unset CDPATH

MS_Printf()
{
    $print_cmd $print_cmd_arg "$1"
}

MS_PrintLicense()
{
  if test x"$licensetxt" != x; then
    echo $licensetxt
    while true
    do
      MS_Printf "Please type y to accept, n otherwise: "
      read yn
      if test x"$yn" = xn; then
        keep=n
  eval $finish; exit 1                 break;           elif test x"$yn" = xy; then
        break;
      fi
    done
  fi
}

MS_diskspace()
{
(
if test -d /usr/xpg4/bin; then
PATH=/usr/xpg4/bin:$PATH
fi
df -kP "$1" | tail -1 | awk '{ if ($4 ~ /%/) {print $3} else {print $4} }'
)
}

MS_dd()
{
    blocks=`expr $3 / 1024`
    bytes=`expr $3 % 1024`
    dd if="$1" ibs=$2 skip=1 obs=1024 conv=sync 2> /dev/null | \
    { test $blocks -gt 0 && dd ibs=1024 obs=1024 count=$blocks ; \
      test $bytes  -gt 0 && dd ibs=1 obs=1024 count=$bytes ; } 2> /dev/null
}

MS_dd_Progress()
{
    if test "$noprogress" = "y"; then
        MS_dd $@
        return $?
    fi
    file="$1"
    offset=$2
    length=$3
    pos=0
    bsize=4194304
    while test $bsize -gt $length; do
        bsize=`expr $bsize / 4`
    done
    blocks=`expr $length / $bsize`
    bytes=`expr $length % $bsize`
    (
        dd bs=$offset count=0 skip=1 2>/dev/null
        pos=`expr $pos \+ $bsize`
        MS_Printf "     0%% " 1>&2
        if test $blocks -gt 0; then
            while test $pos -le $length; do
                dd bs=$bsize count=1 2>/dev/null
                pcent=`expr $length / 100`
                pcent=`expr $pos / $pcent`
                if test $pcent -lt 100; then
                    MS_Printf "\b\b\b\b\b\b\b" 1>&2
                    if test $pcent -lt 10; then
                        MS_Printf "    $pcent%% " 1>&2
                    else
                        MS_Printf "   $pcent%% " 1>&2
                    fi
                fi
                pos=`expr $pos \+ $bsize`
            done
        fi
        if test $bytes -gt 0; then
            dd bs=$bytes count=1 2>/dev/null
        fi
        MS_Printf "\b\b\b\b\b\b\b" 1>&2
        MS_Printf " 100%%  " 1>&2
    ) < "$file"
}

MS_Help()
{
    cat << EOH >&2
Makeself version 2.4.2
 1) Getting help or info about $0 :
  $0 --help   Print this message
  $0 --info   Print embedded info : title, default target directory, embedded script ...
  $0 --lsm    Print embedded lsm entry (or no LSM)
  $0 --list   Print the list of files in the archive
  $0 --check  Checks integrity of the archive
   2) Running $0 :
  $0 [options] [--] [additional arguments to embedded script]
  with following options (in that order)
  --confirm             Ask before running embedded script
  --quiet Do not print anything except error messages
  --noexec              Do not run embedded script
  --keep                Do not erase target directory after running
the embedded script
  --noprogress          Do not show the progress during the decompression
  --nox11               Do not spawn an xterm
  --nochown             Do not give the extracted files to the current user
  --target dir          Extract directly to a target directory
                        directory path can be either absolute or relative
  --tar arg1 [arg2 ...] Access the contents of the archive through the tar command
  --                    Following arguments will be passed to the embedded script
EOH
}

MS_Check()
{
    OLD_PATH="$PATH"
    PATH=${GUESS_MD5_PATH:-"$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"}
MD5_ARG=""
    MD5_PATH=`exec <&- 2>&-; which md5sum || type md5sum`
    test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which md5 || type md5`
test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which digest || type digest`
    PATH="$OLD_PATH"

    if test "$quiet" = "n";then
    MS_Printf "Verifying archive integrity..."
    fi
    offset=`head -n 500 "$1" | wc -c | tr -d " "`
    verb=$2
    i=1
    for s in $filesizes
    do
crc=`echo $CRCsum | cut -d" " -f$i`
if test -x "$MD5_PATH"; then
if test `basename $MD5_PATH` = digest; then
MD5_ARG="-a md5"
fi
md5=`echo $MD5 | cut -d" " -f$i`
if test $md5 = "00000000000000000000000000000000"; then
test x$verb = xy && echo " $1 does not contain an embedded MD5 checksum." >&2
else
md5sum=`MS_dd "$1" $offset $s | eval "$MD5_PATH $MD5_ARG" | cut -b-32`;
if test "$md5sum" != "$md5"; then
echo "Error in MD5 checksums: $md5sum is different from $md5" >&2
exit 2
else
test x$verb = xy && MS_Printf " MD5 checksums are OK." >&2
fi
crc="0000000000"; verb=n
fi
fi
if test $crc = "0000000000"; then
test x$verb = xy && echo " $1 does not contain a CRC checksum." >&2
else
sum1=`MS_dd "$1" $offset $s | CMD_ENV=xpg4 cksum | awk '{print $1}'`
if test "$sum1" = "$crc"; then
test x$verb = xy && MS_Printf " CRC checksums are OK." >&2
else
echo "Error in checksums: $sum1 is different from $crc" >&2
exit 2;
fi
fi
i=`expr $i + 1`
offset=`expr $offset + $s`
    done
    if test "$quiet" = "n";then
    echo " All good."
    fi
}

UnTAR()
{
    if test "$quiet" = "n"; then
    tar $1vf - 2>&1 || { echo Extraction failed. > /dev/tty; kill -15 $$; }
    else

    tar $1f - 2>&1 || { echo Extraction failed. > /dev/tty; kill -15 $$; }
    fi
}

finish=true
+ finish=true
xterm_loop=
+ xterm_loop=
noprogress=n
+ noprogress=n
nox11=n
+ nox11=n
copy=none
+ copy=none
ownership=y
+ ownership=y
verbose=n
+ verbose=n

initargs="$@"
+ initargs=

while true
do
    case "$1" in
    -h | --help)
MS_Help
exit 0
;;
    -q | --quiet)
quiet=y
noprogress=y
shift
;;
    --info)
echo Identification: "$label"
echo Target directory: "$targetdir"
echo Uncompressed size: 20692 KB
echo Compression: gzip
echo Date of packaging: Thu Nov 16 02:12:22 CET 2023
echo Built with Makeself version 2.4.2 on linux-gnu
echo Build command was: "/usr/bin/makeself \\
    \"-q\" \\
    \"--header\" \\
    \"/home/texlive/trunk/Master/tlpkg/bin/../libexec/makeself-header.sh\" \\
    \"/tmp/tmp.AHlgmoFqzJtlmksel\" \\
    \"update-tlmgr-r68866.sh\" \\
    \"TeX Live Manager Updater\" \\
    \"./runme.sh\""
if test x$script != x; then
    echo Script run after extraction:
    echo "    " $script $scriptargs
fi
if test x"" = xcopy; then
echo "Archive will copy itself to a temporary location"
fi
if test x"n" = xy; then
    echo "directory $targetdir is permanent"
else
    echo "$targetdir will be removed after extraction"
fi
exit 0
;;
    --dumpconf)
echo LABEL=\"$label\"
echo SCRIPT=\"$script\"
echo SCRIPTARGS=\"$scriptargs\"
echo archdirname=\"tmp.AHlgmoFqzJtlmksel\"
echo KEEP=n
echo COMPRESS=gzip
echo filesizes=\"$filesizes\"
echo CRCsum=\"$CRCsum\"
echo MD5sum=\"$MD5\"
echo OLDUSIZE=20692
echo OLDSKIP=501
exit 0
;;
    --lsm)
cat << EOLSM
No LSM.
EOLSM
exit 0
;;
    --list)
echo Target directory: $targetdir
offset=`head -n 500 "$0" | wc -c | tr -d " "`
for s in $filesizes
do
    MS_dd "$0" $offset $s | eval "gzip -cd" | UnTAR t
    offset=`expr $offset + $s`
done
exit 0
;;
--tar)
offset=`head -n 500 "$0" | wc -c | tr -d " "`
arg1="$2"
    if ! shift 2; then MS_Help; exit 1; fi
for s in $filesizes
do
    MS_dd "$0" $offset $s | eval "gzip -cd" | tar "$arg1" - $*
    offset=`expr $offset + $s`
done
exit 0
;;
    --check)
MS_Check "$0" y
exit 0
;;
    --confirm)
verbose=y
shift
;;
--noexec)
script=""
shift
;;
    --keep)
keep=y
shift
;;
    --target)
keep=y
targetdir=${2:-.}
    if ! shift 2; then MS_Help; exit 1; fi
;;
    --noprogress)
noprogress=y
shift
;;
    --nox11)
nox11=y
shift
;;
    --nochown)
ownership=n
shift
;;
    --xwin)
finish="echo Press Return to close this window...; read junk"
xterm_loop=1
shift
;;
    --phase2)
copy=phase2
shift
;;
    --)
shift
break ;;
    -*)
echo Unrecognized flag : "$1" >&2
MS_Help
exit 1
;;
    *)
break ;;
    esac
done
+ true
+ case "$1" in
+ break

if test "$quiet" = "y" -a "$verbose" = "y";then
echo Cannot be verbose and quiet at the same time. >&2
exit 1
fi
+ test n = y -a n = y

MS_PrintLicense
+ MS_PrintLicense
+ test x '!=' x

case "$copy" in
copy)
    tmpdir=$TMPROOT/makeself.$RANDOM.`date +"%y%m%d%H%M%S"`.$$
    mkdir "$tmpdir" || {
echo "Could not create temporary directory $tmpdir" >&2
exit 1
    }
    SCRIPT_COPY="$tmpdir/makeself"
    echo "Copying to a temporary location..." >&2
    cp "$0" "$SCRIPT_COPY"
    chmod +x "$SCRIPT_COPY"
    cd "$TMPROOT"
    exec "$SCRIPT_COPY" --phase2 -- $initargs
    ;;
phase2)
    finish="$finish ; rm -rf `dirname $0`"
    ;;
esac
+ case "$copy" in

if test "$nox11" = "n"; then
    if tty -s; then                 # Do we have a terminal?
:
    else
        if test x"$DISPLAY" != x -a x"$xterm_loop" = x; then  # No, but do we have X?
            if xset q > /dev/null 2>&1; then # Check for valid DISPLAY variable
                GUESS_XTERMS="xterm rxvt dtterm eterm Eterm kvt konsole aterm"
                for a in $GUESS_XTERMS; do
                    if type $a >/dev/null 2>&1; then
                        XTERM=$a
                        break
                    fi
                done
                chmod a+x $0 || echo Please add execution rights on $0
                if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal!
                    exec $XTERM -title "$label" -e "$0" --xwin "$initargs"
                else
                    exec $XTERM -title "$label" -e "./$0" --xwin "$initargs"
                fi
            fi
        fi
    fi
fi
+ test n = n
+ tty -s
+ :

if test "$targetdir" = "."; then
    tmpdir="."
else
    if test "$keep" = y; then
if test "$quiet" = "n";then
    echo "Creating directory $targetdir" >&2
fi
tmpdir="$targetdir"
dashp="-p"
    else
tmpdir="$TMPROOT/selfgz$$$RANDOM"
dashp=""
    fi
    mkdir $dashp $tmpdir || {
echo 'Cannot create target directory' $tmpdir >&2
echo 'You should try option --target dir' >&2
eval $finish
exit 1
    }
fi
+ test tmp.AHlgmoFqzJtlmksel = .
+ test n = y
+ tmpdir=/tmp/selfgz651984480
+ dashp=
+ mkdir /tmp/selfgz651984480

location="`pwd`"
pwd
++ pwd
+ location=/Users/brunovoisin/Desktop/Test/Utah
if test x$SETUP_NOCHECK != x1; then
    MS_Check "$0"
fi
+ test x '!=' x1
+ MS_Check update-tlmgr-latest.sh
+ OLD_PATH=/opt/local/bin:/opt/local/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/X11/bin:/Library/Apple/usr/bin:/Library/TeX/texbin
+ PATH=/opt/local/bin:/opt/local/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/X11/bin:/Library/Apple/usr/bin:/Library/TeX/texbin:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin
+ MD5_ARG=
exec <&- 2>&-; which md5sum || type md5sum
++ exec
+ MD5_PATH=
+ test -x ''
exec <&- 2>&-; which md5 || type md5
++ exec
+ MD5_PATH=/sbin/md5
+ test -x /sbin/md5
+ PATH=/opt/local/bin:/opt/local/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/X11/bin:/Library/Apple/usr/bin:/Library/TeX/texbin
+ test n = n
+ MS_Printf 'Verifying archive integrity...'
+ printf 'Verifying archive integrity...'
Verifying archive integrity...head -n 500 "$1" | wc -c | tr -d " "
++ head -n 500 update-tlmgr-latest.sh
++ wc -c
++ tr -d ' '
+ offset=12106
+ verb=
+ i=1
+ for s in '$filesizes'
echo $CRCsum | cut -d" " -f$i
++ echo 2655940115
++ cut '-d ' -f1
+ crc=2655940115
+ test -x /sbin/md5
basename $MD5_PATH
++ basename /sbin/md5
+ test md5 = digest
echo $MD5 | cut -d" " -f$i
++ echo 73a1bc8463e9f798182e21eb93b485c9
++ cut '-d ' -f1
+ md5=73a1bc8463e9f798182e21eb93b485c9
+ test 73a1bc8463e9f798182e21eb93b485c9 = 00000000000000000000000000000000
MS_dd "$1" $offset $s | eval "$MD5_PATH $MD5_ARG" | cut -b-32
++ MS_dd update-tlmgr-latest.sh 12106 9438862
++ eval '/sbin/md5 '
/sbin/md5  +++ /sbin/md5
expr $3 / 1024
+++ expr 9438862 / 1024
++ cut -b-32
++ blocks=9217
expr $3 % 1024
+++ expr 9438862 % 1024
++ bytes=654
++ dd if=update-tlmgr-latest.sh ibs=12106 skip=1 obs=1024 conv=sync
+ md5sum=73a1bc8463e9f798182e21eb93b485c9
+ test 73a1bc8463e9f798182e21eb93b485c9 '!=' 73a1bc8463e9f798182e21eb93b485c9
+ test x = xy
+ crc=0000000000
+ verb=n
+ test 0000000000 = 0000000000
+ test xn = xy
expr $i + 1
++ expr 1 + 1
+ i=2
expr $offset + $s
++ expr 12106 + 9438862
+ offset=9450968
+ test n = n
+ echo ' All good.'
 All good.
offset=`head -n 500 "$0" | wc -c | tr -d " "`
head -n 500 "$0" | wc -c | tr -d " "
++ head -n 500 update-tlmgr-latest.sh
++ wc -c
++ tr -d ' '
+ offset=12106

if test x"$verbose" = xy; then
MS_Printf "About to extract 20692 KB in $tmpdir ... Proceed ? [Y/n] "
read yn
if test x"$yn" = xn; then
eval $finish; exit 1
fi
fi
+ test xn = xy

if test "$quiet" = "n";then
MS_Printf "Uncompressing $label"
fi
+ test n = n
+ MS_Printf 'Uncompressing TeX Live Manager Updater'
+ printf 'Uncompressing TeX Live Manager Updater'
Uncompressing TeX Live Manager Updaterres=3
+ res=3
if test "$keep" = n; then
    trap 'echo Signal caught, cleaning up >&2; cd $TMPROOT; /bin/rm -rf $tmpdir; eval $finish; exit 15' 1 2 3 15
fi
+ test n = n
+ trap 'echo Signal caught, cleaning up >&2; cd $TMPROOT; /bin/rm -rf $tmpdir; eval $finish; exit 15' 1 2 3 15

leftspace=`MS_diskspace $tmpdir`
MS_diskspace $tmpdir
++ MS_diskspace /tmp/selfgz651984480
++ test -d /usr/xpg4/bin
++ df -kP /tmp/selfgz651984480
++ tail -1
++ awk '{ if ($4 ~ /%/) {print $3} else {print $4} }'
+ leftspace=1007570260
if test -n "$leftspace"; then
    if test "$leftspace" -lt 20692; then
        echo
        echo "Not enough space left in "`dirname $tmpdir`" ($leftspace KB) to decompress $0 (20692 KB)" >&2
        if test "$keep" = n; then
            echo "Consider setting TMPDIR to a directory with more free space."
        fi
        eval $finish; exit 1
    fi
fi
+ test -n 1007570260
+ test 1007570260 -lt 20692

for s in $filesizes
do
    if MS_dd_Progress "$0" $offset $s | eval "gzip -cd" | ( cd "$tmpdir"; UnTAR x ) 1>/dev/null; then
if test x"$ownership" = xy; then
(PATH=/usr/xpg4/bin:$PATH; cd "$tmpdir"; chown -R `id -u` .;  chgrp -R `id -g` .)
fi
    else
echo >&2
echo "Unable to decompress $0" >&2
eval $finish; exit 1
    fi
    offset=`expr $offset + $s`
done
+ for s in '$filesizes'
+ MS_dd_Progress update-tlmgr-latest.sh 12106 9438862
+ test n = y
+ file=update-tlmgr-latest.sh
+ offset=12106
+ length=9438862
+ pos=0
+ bsize=4194304
+ test 4194304 -gt 9438862
+ eval 'gzip -cd'
gzip -cd
++ gzip -cd
+ cd /tmp/selfgz651984480
+ UnTAR x
+ test n = n
+ tar xvf -
expr $length / $bsize
++ expr 9438862 / 4194304
+ blocks=2
expr $length % $bsize
++ expr 9438862 % 4194304
+ bytes=1050254
+ dd bs=12106 count=0 skip=1
expr $pos \+ $bsize
++ expr 0 + 4194304
+ pos=4194304
+ MS_Printf '     0%% '
+ printf '     0%% '
     0% + test 2 -gt 0
+ test 4194304 -le 9438862
+ dd bs=4194304 count=1
expr $length / 100
++ expr 9438862 / 100
+ pcent=94388
expr $pos / $pcent
++ expr 4194304 / 94388
+ pcent=44
+ test 44 -lt 100
+ MS_Printf '\b\b\b\b\b\b\b'
+ printf '\b\b\b\b\b\b\b'
+ test 44 -lt 10
+ MS_Printf '   44%% '
+ printf '   44%% '
   44% expr $pos \+ $bsize
++ expr 4194304 + 4194304
+ pos=8388608
+ test 8388608 -le 9438862
+ dd bs=4194304 count=1
expr $length / 100
++ expr 9438862 / 100
+ pcent=94388
expr $pos / $pcent
++ expr 8388608 / 94388
+ pcent=88
+ test 88 -lt 100
+ MS_Printf '\b\b\b\b\b\b\b'
+ printf '\b\b\b\b\b\b\b'
+ test 88 -lt 10
+ MS_Printf '   88%% '
+ printf '   88%% '
   88% expr $pos \+ $bsize
++ expr 8388608 + 4194304
+ pos=12582912
+ test 12582912 -le 9438862
+ test 1050254 -gt 0
+ dd bs=1050254 count=1
+ MS_Printf '\b\b\b\b\b\b\b'
+ printf '\b\b\b\b\b\b\b'
+ MS_Printf ' 100%%  '
+ printf ' 100%%  '
 100%  + test xy = xy
+ PATH=/usr/xpg4/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/X11/bin:/Library/Apple/usr/bin:/Library/TeX/texbin
+ cd /tmp/selfgz651984480
id -u
++ id -u
+ chown -R 0 .
id -g
++ id -g
+ chgrp -R 0 .
expr $offset + $s
++ expr 12106 + 9438862
+ offset=9450968
if test "$quiet" = "n";then
echo
fi
+ test n = n
+ echo


cd "$tmpdir"
+ cd /tmp/selfgz651984480
res=0
+ res=0
if test x"$script" != x; then
    if test x"$verbose" = xy; then
MS_Printf "OK to execute: $script $scriptargs $* ? [Y/n] "
read yn
if test x"$yn" = x -o x"$yn" = xy -o x"$yn" = xY; then
eval $script $scriptargs $*; res=$?;
fi
    else
eval $script $scriptargs $*; res=$?
    fi
    if test $res -ne 0; then
test x"$verbose" = xy && echo "The program '$script' returned an error code ($res)" >&2
    fi
fi
+ test x./runme.sh '!=' x
+ test xn = xy
+ eval ./runme.sh
./runme.sh
++ ./runme.sh
./runme.sh: updating in /usr/local/texlive/2023...
./runme.sh: tlmgr version says this is TeX Live 2023,
./runme.sh: and this updater script created: Thu Nov 16 02:12:22 CET 2023.
./runme.sh: proceeding with tlmgr update.
./runme.sh: updating /usr/local/texlive/2023/bin/universal-darwin ...
./runme.sh: /Library/TeX/texbin/tlmgr including objects: master/tlpkg/tlpobj/texlive.infra.tlpobj master/tlpkg/tlpobj/texlive.infra.universal-darwin.tlpobj
D:no translations available for en_fr (nor en_fr); falling back to English
D:appending to package log file: /usr/local/texlive/2023/texmf-var/web2c/tlmgr.log
D:appending to command log file: /usr/local/texlive/2023/texmf-var/web2c/tlmgr-commands.log
D:tlmgr:main: ::tldownload_server hash:: {enabled:1,errorcount:0,initcount:1,ua:LWP::UserAgent=HASH(0x146d832e0)}
D:setup_programs: preferring system versions
D:program df found in path
D:program curl found in path
D:program wget not usable from path
D:(unix) trying to set up wget, default /usr/local/texlive/2023/tlpkg/installer/wget/wget.universal-darwin, arg --version
D:program lz4 not usable from path
D:(unix) trying to set up lz4, default /usr/local/texlive/2023/tlpkg/installer/lz4/lz4.universal-darwin, arg --version
D: Using shipped /usr/local/texlive/2023/tlpkg/installer/lz4/lz4.universal-darwin for lz4 (tested).
D:program gzip found in path
D:program xz found in path
./runme.sh: done.
+ res=0
+ test 0 -ne 0
if test "$keep" = n; then
    cd $TMPROOT
    /bin/rm -rf $tmpdir
fi
+ test n = n
+ cd /tmp
+ /bin/rm -rf /tmp/selfgz651984480
eval $finish; exit $res
+ eval true
true
++ true
+ exit 0




More information about the tlu mailing list.