[tlbuild] CMake

Mojca Miklavec mojca.miklavec.lists at gmail.com
Mon Dec 24 10:48:56 CET 2018


On Mon, 24 Dec 2018 at 01:08, Karl Berry wrote:
>
> Building TL will never, ever, be simple.

You mean maintaining the build system or actually running the builds?

> Our biggest problem is that we create binaries meant to be widely
> distributed and used on lots of old systems. This goes against the grain
> of the rest of the free software world, which, almost invariably, have
> packages releasing sources; then distros and other such packagers put
> together the binaries, which are meant to run only on specific
> os/hardware combinations. Thus, we have to deal with the latest sources
> on the oldest systems -> ugliness all around.

This is precisely what makes TeX Live so awesome, most other projects
are super painful to build outside of a package manager, having to
have all the dependencies sorted out etc. Eventually every package
manager applies a bunch of patches to be able to build one particular
piece of software. In case of TeX Live we try to keep those patches
ourselves, as much as possible.

But I don't immediately see additional / added complications from that
fact alone. Yes, the sources are often more complicated than they need
to be if you need to keep sources compatible with Solaris and *BSD and
Alpha and ...

It's hardly ever used in CMake, but both CMake and Meson also support
checks for certain features, in a similar way as it's done by
./configure.

>     mm> I'm still waiting for the answer about what the real limitations are.
>
> I don't have a technical list (despite my previous implication,
> sorry). I had never heard of meson before now, and my tiny bit of
> experience with cmake, as a user, has been entirely negative.
>
> Despite my ignorance, nothing in your mail or in what I've read makes me
> think that changing is a good idea.  What I know for sure is that an
> awful lot of time has been invested in the current setup.

I would not suggest changing. At least not in some short term. Merely
trying to get a parallel system working and improved over time, and
see whether we could get it working. But it's an awful lot of work
anyway (not that maintaining both Visual Studio projects and autofoo
magic is any less time demanding, except that the work has already
been done once, or several times in the past, while this would need to
start from scratch).

> I just have a
> failure of imagination as to how the current setup, with all its options
> (which are there for a reason, so need to be available) could be
> supported in cmake or meson or anything else.

Both systems are configurable in a very similar way. When you
configure the build, you can pass as many options as the author of the
build scripts came up with. You can always configure whether you want
an external or a built-in library, you can always configure which
binaries you want to get built (you could easily say that you only
want luatex and xetex, plus whatever dependencies are, excluding
hundreds of other targets), that you want X11 turned on or off, that
you want to change the installation path, man pages here, binaries
there, texmf there, ...

> The bottom line for me is that if there is any impetus to switch, the
> work will have to be done by someone other than me, and I will no longer
> work on configuration. I just can't do it. --best, karl.

Again, there is no need to switch (it *should* be just an additional
alternative, at least for the first few yearl), and there's probably
too much work to be done by one single person, no matter what. Again,
my main concern is manpower. I was just curious whether there was in
fact something that we could no achieve.

I talked to Peter B. about CMake many years back. He was not opposing
CMake configuration, he just wasn't too enthusiastic about the
immediate cost / benefit ratio that writing such a system would bring.

The only immediate benefit would be out-of-the-box support for
Windows, and badly-written configuration would probably be worse than
none at all :)
A very well-written configuration on the other hand could perhaps in
addition allow selecting a scheme and then build & install a full TeX
Live scheme (binaries + copy packages + write configuration file).

Mojca


More information about the tlbuild mailing list