Holy crap. I didn't realize the spread of broken. ... Yeah, I thought it
was "we're trying".

Short of a veto, I concur with removing CMake entirely from the serf build
options. It is something that matters to me, and happy to help.

72 hours, starting now.

Cheers,
-g


On Sun, Jun 22, 2025 at 8:27 PM Branko Čibej <br...@apache.org> wrote:

> On 10. 6. 25 08:24, Daniel Sahlberg wrote:
> > Den mån 9 juni 2025 kl 19:48 skrev Branko Čibej<br...@apache.org>:
> >
> >> On 9. 6. 25 19:20, Greg Stein wrote:
> >>> Branko,
> >>>
> >>> With all your recent work on the scons and cmake build systems, should
> we
> >>> throw one out?
> >>>
> >>> In the past, we had three separate build systems (iirc). One from
> >>> autotools, one custom .py script, and a Windows makefile or such. Then
> we
> >>> threw out all that junk and moved to SCons for all platforms, and our
> >>> custom bits simply became python code within scons.
> >>>
> >>> But it seems we are back to dual-maintenance of build systems (again).
> >>>
> >>> What is your [Branko] thinking on going with just one, or keeping both?
> >>>
> >>> Others: how do you think we should proceed? It feels like there is more
> >>> weight towards CMake over the past years.
> >>>
> >>> Personally, I like scons in that it uses python, so "we" know how to
> >> extend
> >>> it well for our needs. I don't know enough about CMake to judge it.
> >>>
> >>> Thoughts, people?
> >> This very question went through my mind earlier today, when I made SCons
> >> work on ARM64 Windows. And a couple days ago, when I installed Python 2
> >> and SCons 2.3.0 to verify that the build still works with our baseline
> >> versions. :)
> >>
> >> I like SCons, too. Our SConstruct is a bit of a mess in places, but
> >> that's our problem, not SCons'.
> >>
> >> I have a deep antipathy towards CMake. But in today's world where
> >> Windows development is basically becoming dependent on CMake, we can't
> >> ignore it. And since we do have a CMake build, it should work
> "everywhere".
> >>
> >> So it comes down to platform support. To build Serf with SCons, you need
> >> Python 2 and a compiler. Getting CMake to work is a bit more involved,
> >> unless it's Windows/Linux/*BSD.
> >>
> >> Do we care?
> >>
> > Thanks Greg for the look-back, most valuable!
> >
> > I'm not too fond of having multiple build systems because of the cost of
> > maintaining both and the risk of bitrot if one system starts lagging
> behind.
> >
> > There is also the issue of simplicity. When I first started looking at
> > Serf, I was confused trying to figure out how to build it, which build
> > system was better etc.
> >
> > Basically: it would be nice to have ONE tool to do the job GOOD than
> > multiple tools each with their own issues. (I have said the same in
> > Subversion and maybe also in APR).
> >
> > I'm not sure if we should care if it is possible to build using Python 2.
> > Chances are that any dependencies will not build anyway and then you
> might
> > be better off building an old version (which would support the old build
> > tools).
>
>
> 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.
>
>
> -- Brane
>
> [1] Stable in the sense that SCons APIs that worked 10 years ago still
> work today in the same way. We now have a builder that uses Python 2
> with SCons 2.3.5 and just works. I would've never dreamed to attempt
> something like that with CMake.
>

Reply via email to