PROPOSAL: Use Cmake as the build system for Samba

Kai Blin kai at
Wed Feb 17 13:55:39 MST 2010

On Wednesday 17 February 2010 20:39:46 simo wrote:
> The current system seem way to complex (it requires knowledge of 3/4
> different languages strangely intertwined) to be easily understood and
> is basically almost completely undocumented. And most of it is obscure
> to most developers and only a few key ones have enough knowledge of the
> system to resolve any non-trivial problem. This causes issues not only
> within the development team but is also perceived as an issue by anyone
> that has to work with it. Distribution maintainers, for example, have a
> hard time grokking it and can't easily touch if they have some problem
> to solve.

Ok, I can agree here, there's lots of magic in the Samba4 build system. The 
Samba3 build system is much more straightforward to me.

> One of the most interesting things about Cmake, is that for the initial
> steps it can be developed in a completely parallel way to the current
> build system, so that the transition should not cause extended building
> problems while it is carried over.

Unless of course you forget to add the new file that is shared between S3 and 
S4 to three (or more) makefiles.

> == Discussion ==
> IMPORTANT: Please make sure to read the wiki page, before commenting. We
> tried to capture a number of concerns people may have regarding Cmake
> there and we tried to provide answers. Of course if the page does not
> address your concern we would like to hear about that so we can address
> them.

The one thing that throws me off is that from the wiki page it seems like some 
things are generated using ruby? So the plan is to ditch the build system we 
currently have that probably only jelmer and metze understand enough to fix 
the esoteric problems for one that only Andreas understands enough to fix the 
esoteric problems. That looks like it's changing the bussing factor in the 
wrong direction. Also, the examples on the wiki page seem to be covering the 
simple cases. What I'd like to see would be a good way to do things like..

make test TESTS=<regex>
make testenv

That's the custom parts of the build system that create the added value for 
me, the rest would be doable with plain autoconf with hardly any magic at 
all. As I said, the S3 buildsystem, which doesn't provide many of the fancy 
features the S4 build system has, is rather straightforward.

My two cents,
Kai Blin
WorldForge developer
Wine developer
Samba team member
Will code for cotton.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <>

More information about the samba-technical mailing list