Fw: [PROPOSAL] To retire autoconf for 4.1

Jelmer Vernooij jelmer at samba.org
Wed May 29 17:03:22 MDT 2013


On Wed, May 29, 2013 at 12:56:54PM -0700, C.J. Adams-Collier KF7BMP wrote:
> On Fri, 2013-05-24 at 10:25 +0200, Michael Adam wrote:
> > On 2013-05-23 at 17:49 -0700, C.J. Adams-Collier KF7BMP wrote:
> > > On Fri, 2013-05-24 at 02:07 +0200, Jelmer Vernooij wrote:
> > > > If there are regressions or concrete concerns, by all means,
> > > > please bring them up and we can discuss them. 
> > > 
> > > Okay.  You've convinced me.  But I reserve the right to say "I told you
> > > so" ;-)
> > 
> > As Jelmer pointed out, the fundamental discussion you are
> > starting here has been (or should have been) taken place
> > several years ago.
> > 
> > We have been building the AD-Part (samba4) of Samba with waf for more
> > than three years now (iirc), the combined build followed soon.
> > And before introducing waf, the samba4 part was also not built by
> > a (pure) autoconf system for a considerable time.
> > 
> > What we are talking about now is the question whether to remove
> > the autoconf build system from the source3 subdirectory,
> > which is also built with the top level waf build, which is
> > declared default build in in Samba 4.0.
> > 
> > So maybe you should have told us several years ago. :-)
> Yes, I agree.  But I haven't been trolling this list for very long.

> My concern is that there are probably many use cases which the autoconf
> build environment is unwittingly making functional.  Many folks tend to
> complain about build problems in hallways at conferences and directly to
> folks who can make changes to the environment directly.  Some build
> folks who might have had commit access to the source might have patched
> things up without reporting bugs.  Some issues might have been addresses
> in other packages and fixed in autoconf before they reared their head in
> samba specifically.
> 
> I'm just saying that there are likely a lot of edge cases which are
> being made possible through the use of this time tested and hardened
> system.  Be aware that some folks may submit regression reports so that
> they can be addressed, but in many cases, those reports won't get filed
> and user adoption will instead diminish silently.

A thing to note is that the build system was not autoconf, nor is it waf now.
The old build system was built *using autoconf*, and the new build system is
built *using waf*. There is a fair amount of code on top of those systems required
still.

Sure, autoconf has been around longer and is more widely used. That doesn't
mean it's perfect. It just means that the chances of somebody running into
a particular design issue or bug *in autoconf* since it has been around is
greater. It also says nothing about whether those bugs or design issues have
been addressed, can be addressed or will be addressed. 

Yes, waf is more of an unknown - but it's been around for more than a couple of
years, and we have used it in Samba for a while too. Early users of Samba 4
have run into issues with the build system (either in waf or unique to the
build system) that have been fixed. I'm sure people will continue to
occasionally hit minor bugs that we fix, just like we have always done
with the autoconf-based system. And waf has been a tremendous tool for
the Samba developers.

In the end, if users don't tell us about the problems they are experiencing
with Samba - at build time or at run time - and we're not experiencing
those problems, then ultimately there is nothing we can do.

> > On Fri, 2013-05-24 at 02:07 +0200, Jelmer Vernooij wrote:
> > Either way, I don't see how the age of the technology matters other than
> > as a rough indicator of its maturity. The technologies the old and the new
> > build system were built on (Python and autoconf) both date from '91.
> 
> you be frontin'.  autoconf is built on m4 and the bourne shell (both
> from 1977).  waf may be built on Python, but the first commit to its
> current source tree happened in 2011.

The point of a build system is that it works, not that it is old. I'm sure
we can argue about which of the two systems has the oldest technologies behind
it, but that is ultimately not what matters.

>         cjac at foxtrot:/usr/src/git/google/waf$ git log | tail
>         Author: Thomas Nagy <tnagy2pow10 at gmail.com>
>         Date:   Sat Sep 10 12:20:18 2011 +0200
>         
>             Unused variable
>         
>         commit 44a967e326cc2e670a31b3712e4763b72d65e81b
>         Author: Thomas Nagy <tnagy2pow10 at gmail.com>
>         Date:   Sat Sep 10 11:13:51 2011 +0200
>         
>             Initial commit
Waf has definitely been around longer than 2011. IIRC its origins are somewhere in 2005.
The system it is inspired by (SCons) and its predecessor (cons) date from '99.

Cheers,

Jelmer


More information about the samba-technical mailing list