[OS X TeX] TeX Live Utility 1.49 fails to update old TeXLive 2019 and leaves it unusable.

George Tourlakis gt at cse.yorku.ca
Sat Jul 10 21:03:16 EDT 2021


Richard, you are right.

I simply applied straightforward semantics to your earlier

> I wasn't paying attention to this thread earlier, but trying to make TeX Live 2019 work on Big Sur is a fools errand.

without parsing it for what you actually meant in the red passage. I thought it was clear. And I was (pleasantly) surprised
that notwithstanding all that 2019 does “work” on Big Sur. 


But thanks for the elaboration below. I will see if I can ever get sufficient time, strength of will, skill, and patience to patch existing code that does
not work.

Cheers,
George


> On Jul 10, 2021, at 8:49 PM, Richard Koch <koch at uoregon.edu> wrote:
> 
> George,
> 
> You didn't quite understand my message. Let's try again.
> 
> At WWDC in 2020, Apple announced Big Sur. They also announced the transition to Arm.
> They gave developers an initial beta of Big Sur and they allowed them to rent a
> transition kit to recompile code for Arm.
> 
> When I first got the Big Sur Beta, I installed MacTeX-2020. It worked fine. If I had installed MacTeX-2019, it would also have worked fine. You moved the TeX Live 2019 tree from a machine where it worked fine to a machine running Big Sur, and it worked fine on that machine. That is NOT a surprise.
> 
> However, you are now trying to run tlmgr and you have run into a problem. You would run into
> exactly the same problem if you tried to install TeX Live 2019 on the machine using the Unix
> install Script from 2019. Both of these scripts expect macOS to have version numbers which
> look like 10.5, 10.12, 10.13.2, etc. They do not expect a version number which starts with 11.
> My current Big Sur is version 11.4.
> 
> Almost exactly a year ago, I got a note from Nelson Beebe. Let me quote it:
> 
> "I was just talking to my manager colleague about macOS 11 (aka Big
> Sur) announced at the Apple WWDC last month. 
> 
> "Given that it adds support for ARM CPUs, and advances the major number
> from 10 to 11 (v10 came out in 2001), I suspect that it could mean
> major breakage for TeX Live."
> 
> Here's a piece of my reply:
> 
> "Big Sur indeed broke a piece of the TeX Live Infrastructure. In 2020/tlpkg/TeXLive  there is a file named 
> TLUtils.pm, which among other things has a script to determine the kind of computer being run and the operating system being used. That section has code which uses a Mac command line program to get the operating system number in a form like 10.15.5. The TLUtils then separates this into major = 10 and minor = 15. Then, unfortunately, there was this line of code:
> 
> 	if (major != 10), abort
> 
> I called this to Karl's attention and he fixed it. That fix has already appeared in the critical updates. Once it is made, Big Sur works fine with all of TeX."
> 
> The key point here is that this is a fix of TLUtils.pm, which is in the TeX Live Distribution. So if you were to install TeX Live 2020 on Big Sur, it would work. But TLUtils.pm is broken in TeX Live 2019. So tlmgr is also broken. And TeX Live Utility calls tlmgr.
> 
> ------------
> 
> Having recalled this much information, let's see if I can resurrect Karl's fix. Maybe you can apply this fix yourself and get things to work.
> 
> The crucial file for TeX Live 2021 is
> 
> 	/usr/local/texlive/2021/tlpkg/TeXLive/TLUtils.pm
> 
> The crucial code starts at line 398 of this file, and is
> 
> ------------
> if ($OS eq "darwin") {
>    # We have two versions of Mac binary sets.
>    # 10.x and newer -> universal-darwin [MacTeX]
>    # 10.6/Snow Leopard through 10.x -> x86_64-darwinlegacy, if 64-bit.
>    # x changes every year. As of TL 2021 (Big Sur) Apple started with 11.x.
>    #
>    # (BTW, uname -r numbers are larger by 4 than the Mac minor version.
>    # We don't use uname numbers here.)
>    #
>    # this changes each year, per above:
>    my $mactex_darwin = 14;  # lowest minor rev supported by x86_64-darwin.
>    #
>    # Most robust approach is apparently to check sw_vers (os version,
>    # returns "10.x" values), and sysctl (processor hardware).
>    chomp (my $sw_vers = `sw_vers -productVersion`);
>    my ($os_major,$os_minor) = split (/\./, $sw_vers);
>    if ($os_major < 10) {
>      warn "$0: only MacOSX is supported, not $OS $os_major.$os_minor "
>           . " (from sw_vers -productVersion: $sw_vers)\n";
>      return "unknownmac-unknownmac";
>    }
>    # have to refine after all 10.x become "legacy".
>    if ($os_major >= 11 || $os_minor >= $mactex_darwin) {
>      $CPU = "universal";
>      $OS = "darwin";
>    } elsif ($os_major == 10 && 6 <= $os_minor && $os_minor < $mactex_darwin){
>      # in between, x86 hardware only.  On 10.6 only, must check if 64-bit,
>      # since if later than that, always 64-bit.
>      my $is64 = $os_minor == 6
>                 ? `/usr/sbin/sysctl -n hw.cpu64bit_capable` >= 1
>                 : 1;
>      if ($is64) {
>        $CPU = "x86_64";
>        $OS = "darwinlegacy";
>      } # if not 64-bit, default is ok (i386-darwin).
>    } else {
>      ; # older version, default is ok (i386-darwin, powerpc-darwin).
>    }
> --------------------
> 
> Turning now to a different computer running Mojave, which has TeX Live 2019 installed, I find the crucial file in the same location:
> 
> 	/usr/local/texlive/2019/tlpkg/TeXLive/TLUtils.pm
> 
> This time the key code begins on line 314, and here it is:
> 
> -------------
> if ($OS eq "darwin") {
>   # We have two versions of Mac binary sets.
>   # 10.10/Yosemite and newer (Yosemite specially left over):
>   #   -> x86_64-darwin [MacTeX]
>   # 10.6/Snow Leopard through 10.10/Yosemite:
>   #   -> x86_64-darwinlegacy if 64-bit
>   #
>   # (BTW, uname -r numbers are larger by 4 than the Mac minor version.
>   # We don't use uname numbers here.)
>   #
>   # this changes each year, per above:
>   my $mactex_darwin = 12;  # lowest minor rev supported by x86_64-darwin.
>   #
>   # Most robust approach is apparently to check sw_vers (os version,
>   # returns "10.x" values), and sysctl (processor hardware).
>   chomp (my $sw_vers = `sw_vers -productVersion`);
>   my ($os_major,$os_minor) = split (/\./, $sw_vers);
>   if ($os_major != 10) {
>     warn "$0: only MacOSX is supported, not $OS $os_major.$os_minor "
>          . " (from sw_vers -productVersion: $sw_vers)\n";
>     return "unknown-unknown";
>   }
>   if ($os_minor >= $mactex_darwin) {
>     ; # current version, default is ok (x86_64-darwin).
>   } elsif ($os_minor >= 6 && $os_minor < $mactex_darwin) {
>     # in between, x86 hardware only.  On 10.6 only, must check if 64-bit,
>     # since if later than that, always 64-bit.
>     my $is64 = $os_minor == 6
>                ? `/usr/sbin/sysctl -n hw.cpu64bit_capable` >= 1
>                : 1;
>     if ($is64) {
>       $CPU = "x86_64";
>       $OS = "darwinlegacy";
>     } # if not 64-bit, default is ok (i386-darwin).
>   } else {
>     ; # older version, default is ok (i386-darwin, powerpc-darwin).
>   }
> ---------------------
> 
> Perhaps you can revise this code and fix your problem.
> 
> Richard Koch
> 
> 
> 
> ----------- Please Consult the Following Before Posting -----------
> TeX FAQ: http://www.tex.ac.uk/faq
> List Reminders and Etiquette: https://sites.esm.psu.edu/~gray/TeX/
> List Archives: http://dir.gmane.org/gmane.comp.tex.macosx
>                https://email.esm.psu.edu/pipermail/macosx-tex/
> TeX on Mac OS X Website: http://mactex-wiki.tug.org/
> List Info: https://email.esm.psu.edu/mailman/listinfo/macosx-tex
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://email.esm.psu.edu/pipermail/macosx-tex/attachments/20210710/7d0c750b/attachment.htm>


More information about the MacOSX-TeX mailing list