[RFC PATCH 0/8] Meson build system

Daniel Stone daniel at fooishbar.org
Mon Dec 5 15:14:22 UTC 2016


Hi,

On 5 December 2016 at 00:05, Peter Hutterer <peter.hutterer at who-t.net> wrote:
> On Fri, Dec 02, 2016 at 07:39:02PM +0000, Emil Velikov wrote:
>> IIRC some have the philosophical reasoning alike "thou shall not need
>> anything but autofoo and dependencies explicitly required" while
>> others run things in an (network) isolated environments where one
>> cannot pull python/others.
>>
>> One example that involved a fair bit of nitpicking: one of the guys
>> was building piglit on an older RHEL.
>> Things were failing miserably since the mako/numpy/other module
>> shipped was old. At the same time connecting to the web to pull newer
>> one (via pip) was a no-go.
>
> imo that's not any different to any other library. if e.g. cairo is too old,
> you have to update your build environment before you can build. The only
> difference is that pip and newer tools appear to make this easy, except when
> you don't have connectivity. The old-style approach of fetching the newer
> dependencies for the build root should still work.

Sure; having indeterminable/shifting build dependencies is insane. I
don't see what in Meson makes this uniquely bad, or even worse than
autotools though, especially as it has no Python dependencies beyond
the standard library. For me, it's just one more thing to have
documented along with the rest of our build dependencies. I do really
want to have at least a couple of releases as a transition period
though, during which we'd make an active effort to work with our
downstreams to get them using Meson and beat out any issues, so for
them there would be no change by the time we removed autotools.

Out of curiosity, I just checked how much it'd take to inline Meson
into a tree. Using a really lame Python zipapp, I came up with:
  - autotools: clean tree (no Meson build) 4528kB, tree with
autoreconf run (i.e. the way we dist tarballs) 9164kB
  - Meson: clean tree (no Makefile/configure.ac) 4520kB, tree with
Meson inlined 5488kB

So, if we take it as a given that we can rely on Python 3.x and its
standard library being installed, we could just ship the entirety of
Meson itself if we believe that people wouldn't be able / know how to
install Meson from pip even if we documented it. I don't think it'll
come to that, but it's maybe another interesting datapoint.

Cheers,
Daniel


More information about the wayland-devel mailing list