proposal: merge waf build of s4 to master

tridge at tridge at
Sun Apr 11 17:11:30 MDT 2010

Hi Simo,

 > sorry for the late reply, but I was on vacation and just got back to
 > find this monstrous thread :-)

no worries

 > I am a bit concerned about the size and complexity of waf for things as
 > simple as talloc and tdb or tevent. Ldb is slightly more complex, but is
 > it complex enough to justify a dependency on python for building ?

I think we get a big advantage using the same build rules for when we
incorporate our libs inside Samba as when they are built
externally. That makes it much less likely that the library rules will

You are right that wafsamba is much larger than it needs to be for
tdb/tevent/talloc, but it also means we get consistent configure/build
rules. We get identical configure options for builtin/bundled libs
(which are very useful, even for the small libs), and we get working
dist, distcheck, install and uninstall targets.

As for ldb, we have failed to create working build rules for ldb with
autoconf for a long time now, as shown by the build farm. Yes, you can
build it yourself, but only if you have all the right dependencies
installed. It doesn't properly autodetect the right dependencies and
include them if needed. With "waf dist" in source4/lib/ldb you get a
working tarball that includes all the dependencies needed to build
it. We've never had that previously.

Similarly, the tdb library build has been broken for a long time
(using the wrong header with the wrong library). The maintainence
headache of getting all of these things right is much lower if we only
have to get it right once.

 > As you know I depend on ldb for a project called sssd, and it is getting
 > some traction even on some embedded projects. I am a bit wary to make
 > things hard for people by adding a python dependency on build for these
 > cases, given the rest of the code doesn't need it.

I'm not quite clear on how this makes it harder for developers. Are
you imagining people doing embedded development on host platforms that
don't support python?

 > What is the track record for waf with regard to builds on other
 > architectures like ARM ?

For Samba4 it configures and builds on more systems in the build farm
than our autoconf rules do. Kai has been testing it on ARM I believe.

> What about cross-compiling ?

waf supports cross-compilation, but I haven't yet done the work to
separate the "must be built with host compiler" and "must be built"
with target compiler" targets for Samba4 (eg. asn1_compile needs to be
built with the host compiler).

Cheers, Tridge

More information about the samba-technical mailing list