proposal: merge waf build of s4 to master

tridge at samba.org tridge at samba.org
Mon Apr 12 15:50:20 MDT 2010


Hi Simo,

 > Sorry, I don't have a cross-compile system ready on my own.
 > I have some users that do ARM work and that's why I was concerned.

ok, maybe you could ask one of them to try the ARM cross-compile of
ldb with waf?

 > Anyway, I have finished reading the monster thread and at some point it
 > was proposed to have waf build a make file that wouldn't require python
 > in released tarballs but only for developers.
 > 
 > That looks like a very brilliant idea especially for talloc, tdb,
 > tevent.
 > I would very much like to have that to make talloc/tdb/tevent releases
 > simpler with less dependencies.

I have a lot of reservations about this. Generating a Makefile is
easy. Generating a correct configure script it not. Even worse,
maintaining the build system so that it keeps generating a correct
configure script is likely to be a lot of work. It is certainly a
_lot_ more work than offering a samba-xx-yy-with-python.tar.gz for the
small number of people that don't have python.

If someone manages it and shows that it can be done in a maintainable
and portable fashion then that will change things, but at the moment I
just don't think it will be feasible to do in a manner that doesn't
create a major maintainence headache.

 > Given we are changing build system I see no issue in changing tools
 > names. Also a lot of packaging systems have smarts to add options that
 > they know ./configure support, so use ./configure may also cause strange
 > failures if we are not 100% compatible with what ./configure normally
 > allows.

Which configure specific options are you thinking of? I've added the
standardised GNU ones (as waf supports those out of the box), plus
I've added a lot of the Samba specific ones that we had in the old
build system.

If there are any that you think are still needed could you let me know?

 > Having a ./configure.waf or variations on the theme looks good enough,
 > and hints all people in the right way about what the tool does and how
 > it differs from "normal" configure files IMO.

Apart from allowing people to keep working as they did previously, we
also get a major advantage that existing packaging systems that call
out to configure will keep working. For example, the build farm just
worked. 

Doing ./autogen.sh; ./configure --prefix=xxx; make is pretty deeply
ingrained for anyone that builds FOSS packages. I think that making
that work in the same way it did before as a big advantage of the waf
build.

If people did get confused then they already have a few hints:

 1) configure --help works, and explains the options

 2) the autogen.sh output makes it very obvious this is not autotools

 3) the colorised output also makes it pretty obvious that this is not
 standard autotools

Cheers, Tridge


More information about the samba-technical mailing list