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. 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. Removing cmake is a mistake that makes the lives of people like me more difficult. Regards, Graham --