On 23. 6. 25 10:03, Graham Leggett wrote:
On 23 Jun 2025, at 02:27, Branko Čibej<br...@apache.org>  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

Reply via email to