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