PROPOSAL: Use Cmake as the build system for Samba
tridge at samba.org
tridge at samba.org
Wed Feb 17 23:44:44 MST 2010
I had an interesting discussion with Brad Hards today, who has some
experience with the conversion of KDE to cmake.
Brad's overall impression of cmake is very positive. It has worked
very well for KDE.
The interesting thing is that the problem I raised with cmake versions
and fixes has happened with KDE, but for KDE it isn't a major
problem. For Samba I think it might be a much bigger problem.
Every now and again KDE switches version of cmake. Everyone who
develops KDE then needs to build and install the new version of
cmake. For KDE, that means just the developers, as end-users building
their own version of KDE is extremely unusual (unless its via a system
like the one in Gentoo). It is also basically unheard of for someone
to try and build the current version of KDE for something like RHEL3.
For Samba it's quite different. It isn't just the Samba developers who
build and install Samba, it's also anyone who wants Samba on their
system and their OS doesn't have the latest version. That means many
of our end users will have to build and install the right version of
cmake, and when we switch versions then they will also have to
switch. It gets even harder when people have ancient Linux or Unix
versions. Yes, cmake may build on Irix, but does it build on all the
older versions of Irix? What about old versions of RHEL or SLES?
It also means we will have to not just get the build farm maintainers
to install cmake once, but multiple times. Whenever we change versions
we again have to ask all build farm maintainers to change version.
We switched to generating configure files centrally on samba.org to
avoid this type of build version dependency. It used to be a great
pain when everyone had to have the right version of autoconf. I'd be
pretty reluctant to go down that path again.
I'm going to have a go at building some simple waf files for talloc,
tdb etc, and see if it's workable. If we can use a build system that
we can bundle with Samba, then I think we should seriously consider
More information about the samba-technical