[tex-live] Platform & library check on macOS during TL 2018 installation

Mojca Miklavec mojca.miklavec.lists at gmail.com
Mon Mar 19 00:22:53 CET 2018


On 18 March 2018 at 23:39, Karl Berry wrote:
>     Dear Norbert,
>
> Norbert is not the only one who works on the installer :).

I'm sorry. He does or at least did most of the work for that, so I was
assuming he would be the one making this change as well.

>     would it be possible for the
>     installer to check if the system is darwin10, and if so, check whether
>     libc++ is present on the system, and if not, print an error saying
>     that it cannot proceed unless the user installs the library?
>
> Anything is possible. The question is, how do we check whether libc++ is
> present?

The system should have these files (the second one is just a symlink):

/usr/lib/libc++.1.dylib
/usr/lib/libc++.dylib -> libc++.1.dylib
/usr/lib/libc++abi.dylib

All the binaries link against

/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 5.0.1)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 125.2.0)
/usr/lib/libc++abi.dylib (compatibility version 1.0.0, current version 5.0.1)

I would check for existence of "/usr/lib/libc++.1.dylib" and
"/usr/lib/libc++abi.dylib". I don't know if there are any other sanity
checks needed, but I would probably not worry if the user has broken
"system" libraries installed.

If the user provides custom bin dir, those checks should be skipped, I guess.

> We can't try to link with it, that would lead to far more
> complications. What file location(s) should we check?
>
> I assume checking for "darwin10" means checking that
> sw_vers -productVersion returns 10.10?

No, that one returns 10.6.x.

"uname -a" returns Darwin Kernel Version 10.x.0 or something like
that. You can use sw_vers of course, (I'm pretty sure it's already
used to decide between 32-bit vs. 64-bit binaries, but I didn't check
now.)

> I agree that all of these other options are worse, except perhaps simply
> giving up.  I find these constantly proliferating special cases for Macs
> highly unfortunate. -k

We keep changing requirements for Linux and probably other systems as
well, except that there the binaries just stop working at some point,
no special checks are being done (and it's probably impossible to do
them, other than perhaps trying to run one binary and catch the
exception if it fails).

Mojca


More information about the tex-live mailing list