Re: Compiling NetBSD mtree in-tree with meson.build

PHO <[email protected]> Thu, 16 Jan 2025 14:06:48 +0900
Newsgroups gmane.os.netbsd.devel.toolchain
Message-ID <[email protected]>
On 1/16/25 03:41, Mouse wrote:

> I'm no fan of autotools.  But I think I like meson even less.  It
> requires installing a whole new language (python); while this may be
> acceptable for NetSBD's own build procedure, it significantly raises
> the bar for cross-building pieces - if I have to not just copy over the
> program's source but also install python?  Honestly, I'd more likely
> try to figure out enough from the meson description file(s) to build it
> manually.

Meson is a quite decent build system but I too dislike the fact that 
it's implemented in Python. IMO a language must either maintain 
backwards compatibility (like C and Perl) or extensive compile-time 
error checks (like C++, Rust, and Haskell) but Python has neither of 
these. Even a minor update to Python breaks existing code in a subtle 
way, and the breakage doesn't show up promptly. Ruby has the same problem.

> More generally, I don't really understand the recent proliferation of
> autotools-replacement build systems.  cmake, meson, ninja, etc, they
> all appear to be trying to reinvent make and/or autotools as the tool
> designer thinks they should have been, and they all appear to think
> that installing a new, complex, and almost totally unsandboxable tool
> as the first step to building the software you're trying to build is
> completely acceptable.

But there's a downside to Autoconf's approach: it pushes complexity down 
to generated shell scripts and Makefiles. Humans cannot bother to audit 
those generated files. This is how the XZ backdoor went unnoticed: a 
part of the malicious code was hidden in the generated "configure" 
script while its source, configure.ac, was left unmodified.