Hi Richard,
Am 23.03.22 um 10:20 schrieb Richard Hughes:
On Tue, 22 Mar 2022 at 12:07, Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net wrote:
AFAIR there were three arguments for meson:
- Meson build integrates nicely with other packages built by meson
This means we can build libflashrom as a subproject, which means we can build the flashrom plugin even when the distro doesn't ship [a new enough] flashrom package: https://github.com/fwupd/fwupd/blob/main/subprojects/flashrom.wrap
That's just something you can't do with the Makefile, and removing the subproject would force us to remove flashrom support from almost all the CI systems we test fwupd with.
It took me some time to understand the text of this last sentence, but I'm unsure about the implied subtext. The first paragraph implies that a fwupd build can rebuild flashrom as well. Interesting. In that case a Meson wrapper for Makefile might satisfy your requirements in principle, but not in spirit.
For the subtext of the last sentence I'm not sure if the intended understanding was "use Meson or we'll drop flashrom" or "give us a way to keep our CI running with flashrom" or something entirely different. Sorry, English is not my native language. I'm trying understand if this is a technical (something doesn't work) or social (something is frustrating) problem or both. Analyzing your statement above with the linguistic tools of Schulz von Thun and Watzlawick gave me the impression that I'm missing something here.
- Native support for most non-Linux platforms
I keep hearing this, but haven't got any actual data -- is there any reason why the meson build system wouldn't "just work" with *BSD/Win32/macOS?
Someone would have to test it and document it. This also includes crossbuilds for MacOS and DOS on Linux which are both supported with Makefile. Documentation for the various Makefile based builds is available at https://github.com/flashrom/flashrom/blob/master/README . Copy/paste from a README is something that "just works". This is currently missing for our Meson build.
I think Meson was a good idea, but it failed to get traction beyond "we need it for dynamic libflashrom".
I don't know how you've managed to get to "failed to get traction" given that it's being built with meson in 4 of the biggest projects (in terms of distribution, and number of deployed packages) using flashrom.
The switch to Meson in Debian has resulted in some regressions which caused people to join #flashrom IRC. Not all of the regressions were fixed. Maybe "failed to get traction" was the wrong phrase. "Nobody bothered to check the Meson build result and compare it to the Makefile reference" would be a more accurate description.
This caused a mismatch between packagers picking up Meson and developers (as well as users following the documentation) still using the Makefile.
This is all so frustrating: This feels like more of an existential crisis about what flashrom actually *is* rather than a discussion about build systems.
I've seen this in many open source projects: A rewrite of some component happens, but the rewrite has a different subset (and not a superset) of features. As long as both the original and the rewritten version are available, neither side will have any motivation to make their version a superset of the features of the other side because their own use case works well. As a result, everyone is frustrated.
My hope with flashrom is that it brings joy or at least works as a good tool. It is definitely not my intention to frustrate you. I would love to find a solution that makes everyone happy.
Regards, Carl-Daniel