On 23. 6. 25 10:03, Graham Leggett wrote:
On 23 Jun 2025, at 02:27, Branko Čibej<[email protected]> wrote:The recent revelation that someone thought it was a good idea to take a build system that has a big, bold "EXPERIMENTAL!!" on the tin and use it in a rather popular Linux distribution, with the trivial side effect that the Serf package is now broken in a bunch of distros... ...has pretty much convinced me that adding a CMake build to Serf was a mistake that should be fixed sooner rather than later. No released version of Serf has a CMake build, so the question of backwards compatibility is moot. I therefore propose that we remove CMake support from Serf and concentrate on SCons instead. SCons is alive and well and stable[1] and is being actively developed. Windows dependents that use CMake can just go the pkg-config route to use Serf. Also, SCons isn't an exotic dependency: if you have Python, you can just `pip install scons`. That it's based on an actual programming language instead of the inconsistent, error-prone macro processor pile of ... sorry. The farthest I'd go to support CMake is to install a generated serf-config.cmake file. That's equivalent to providing serf-${MAJOR}.pc.Detailing my recent experience trying to build serf. My first try was to download the source tarballs and build them on MacOS. I see scons, look for [distro-package-manager] install [scons] and find nothing. Look for instructions on how to find dependencies, still nothing. No time for this, switch to a Linux VM, install the SRPM, and get the build instructions and dependencies from there. It's cmake, great, already have cmake on this VM, copy the build process, get working, we're in business. Any build system that involves "you can just 'pip install'" is preceded by "oh you have to install python" which is then followed by "wrong version of python, nothing compiles or runs, sorry" is a big barrier to entry.
Understood. Which is why I recently made sure that our SCons build works with Python 2 and Python 3 and completely fresh and also 10 years old versions of SCons.
By the way, it's "brew install scons" on the Mac, but I understand your pain.
I spend most of my time fixing bugs in open source packages, and that means I am exposed to all sorts of build systems. None of the other packages I've worked with use scons, this is all new to me. The build system should never be in the way of a new contributor.
I agree that our build instructions for SCons are Spartan. Those for CMake are nonexistent. That part will change, it's on my list of things to do.
To be frank, I don't see SCons as any more of a barrier than CMake, or having a compiler handy.
Removing cmake is a mistake that makes the lives of people like me more difficult.
Thanks for this anecdote and your point of view. Nothing has been removed yet. Also I don't agree with Greg's 72 hours, there really is no reason to rush.
-- Brane
