On Mon, Nov 11, 2024 at 11:36:30AM +0100, Patrick Steinhardt wrote: > > - Long-time Git contributors are going to be the ones who will most > > frequently use the new build system. I am definitely sympathetic to > > getting too comfortable with our existing tools, but so far in your > > response I have not seen a compelling reason to switch the project > > to use Meson. > > Yes, that's certainly true. And while I think we should optimize more > for newcomers as stated, I still think that Meson is very much > preferable over Makefiles for long-time contributors, as well. The > transition period may take some time, but in the end it just feels > superior to Make from my poin of view. The number one thing I care about as a developer is that the build is _reliable_. Right now, if I move forwards and backwards in history and type "make" I will almost[1] always get a correct result based on the current tree, with the minimal required amount of building. This is important for bisecting. When I have worked on other projects, especially those that use autotools, I quite frequently run into cases where building from a dirty state cause bizarre problems that go away with a "git clean && ./configure && make". But then bisection is _much_ slower because we're building from scratch (not to mention that autoconf itself is horrifically slow). How does the meson build do here? I don't have any reason to think it would be bad, but I am nervous of any change. [1] I say "almost" because there are one or two spots in our history where you can run into link errors jumping over them. But for a 20-year project that's not too bad, and they happen infrequently enough that I don't worry about it. > Out of curiosity: did you try the Meson build? I personally have to say > that I already prefer working with it because the workflow with it is so > much nicer. It has nicer output, is faster, has out-of-tree builds, > makes it easier to configure and test execution feels way nicer compared > to my previous workflow with make. I hadn't tried it. I did now, checking out origin/ps/build^ (to drop the "seen" resolution topic), but it didn't work: $ meson setup build [...] Program msgfmt found: NO po/meson.build:3: WARNING: Gettext not found, all translation (po) targets will be ignored. po/meson.build:3:20: ERROR: Can not assign void to variable. I guess the assignment of "translations" there needs to be made conditional? -Peff