PROPOSAL: Use Cmake as the build system for Samba

simo idra at samba.org
Wed Feb 17 12:39:46 MST 2010


To all people involved in samba development,

as the subject shows I am writing this mail to propose a change in our
building system.

== Why ? ==

During the years we tried a few times to get a better build system,
mainly for the Samba 4 effort, but since the Franky project this
involves also the Samba 3 code base. This effort has been commendable
but many recognize that what we have now is far from ideal.

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.

== What ? ==

I have been working with Andreas and Günther on investigating the use of
Cmake within Samba. Cmake seem to be powerful enough to address the
needs that initially caused us to build this homegrown system.

Andreas created a page that explains all the advantages using Cmake
could bring us: http://wiki.samba.org/index.php/CMake

Andreas also converted a few basic components to Cmake to show how this
conversion will work.

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.

Andreas is very well versed in Cmake, he even contributes to the
upstream community, and he would like to volunteer driving the initial
adoption and helping any developer that wants to get involved get up to
speed with it.

== How ? ==

If nobody strongly objects we would like to ask to create a cmake tree
on git.samba.org where Andreas, me, Günther and whoever wants to lend a
hand can start working.

The first step we identified would be to ask our build farms to install
cmake on their systems and provide binaries if necessary. And then run
some basic build tests over build farm machines so that we can verify
the cmake transition on all hosts we care about while going through it.


== 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.


== Thanks ==

We'd like to hear from you if you have any concerns or recommendations
going forward. We would also like to hear if you agree it is worth
trying to improve the situation.

Thanks for reading so far :)

Simo.

-- 
Simo Sorce
Samba Team GPL Compliance Officer <simo at samba.org>
Principal Software Engineer at Red Hat, Inc. <simo at redhat.com>




More information about the samba-technical mailing list