Re: Sourceware mitigating and preventing the next xz-backdoor

Michael Matz via Gdb
2024-04-04T14:01:37Z

Hello,

On Wed, 3 Apr 2024, Jonathon Anderson wrote:

> Of course, this doesn't make the build system any less complex, but
> projects using newer build systems seem easier to secure and audit than
> those using overly flexible build systems like Autotools and maybe even
> CMake. IMHO using a late-model build system is a relatively low
> technical hurdle to overcome for the benefits noted above, switching
> should be considered and in a positive light.

Note that we're talking not (only) about the build system itself, i.e. how
to declare dependencies within the sources, and how to declare how to
build them. make it just fine for that (as are many others). (In a way
I think we meanwhile wouldn't really need automake and autogen, but
rewriting all that in pure GNUmake is a major undertaking).

But Martin also specifically asked about alternatives for feature tests,
i.e. autoconfs purpose. I simply don't see how any alternative to it
could be majorly "easier" or "less complex" at its core. Going with the
examples given upthread there is usually only one major solution: to check
if a given system supports FOOBAR you need to bite the bullet and compile
(and potentially run!) a small program using FOOBAR. A configuration
system that can do that (and I don't see any real alternative to that), no
matter in which language it's written and how traditional or modern it is,
also gives you enough rope to hang yourself, if you so choose.

If you get away without many configuration tests in your project then this
is because what (e.g.) the compiler gives you, in the form of libstdc++
for example, abstracts away many of the peculiarities of a system. But
in order to be able to do that something (namely the config system of
libstdc++) needs to determine what is or isn't supported by the system in
order to correctly implement these abstractions. I.e. things you depend
on did the major lifting of hiding system divergence.

(Well, that, or you are very limited in the number of systems you support,
which can be the right thing as well!)

Ciao,
Michael.