Choosing a new build system for Samba
tridge at samba.org
tridge at samba.org
Fri Mar 19 04:46:18 MDT 2010
Hi Andrew,
> Clearly there is a very real waf proposal. Tridge has it on a build
> farm host already
> http://build.samba.org/?tree=samba_4_0_waf&compiler=cc&function=Recent
> +Builds and has it passing almost all of 'make test'. The wiki page is
> at http://wiki.samba.org/index.php/Waf
A minor update - it is passing 'make test' on some boxes now. I put it
on the build farm as samba_4_0_waf a few hours ago, and of course
found plenty of problems. I'll look at those over the next few days.
> If we maintain the existing system, who will maintain it?
> ---------------------------------------------------------
> Should we maintain any new build system in parallel, or will we have a
> 'flag day' that we switch on?
>
I'm in favour of a staged transition. I would imagine the stages would
be:
stage 1) get it working reasonably in a separate branch. For the waf
effort this is my waf-wip branch, and I suspect it will
reach this stage for s4 in the next week or so.
stage 2) when it looks good and the team agrees, then merge it to
master, but ensuring it changes zero files that impact on
the existing build system (the waf-wip branch now does
this). At this stage maintainence of the new build system
in master would be the responsibility of those who have the
enthusiasm to do it. The old build system would still be
the one we recommend to users, and Samba developers who are
not interested in the new build system would have no
obligation to update the new build scripts for any changes.
stage 3) once the proponents of the new build system think it is
sufficiently good, then they would propose changing the
default build system to the new one. We'd discuss this
within the team and the wider community and decide if we
would go ahead. If it is decided to change the default then
the maintainence obligation of developers would switch to
the new build scripts. The old build scripts would be
maintained by whoever volunteers to maintain them.
stage 4) if we get to the stage that nobody is willing to maintain
the old build scripts any more then we could remove them
from the tree.
I don't know how long each of these stages might take. I'd guess that
the waf effort will get to the end of stage 1 for Samba4 in the next
week or so, but I won't really know till it's done, as I may still run
across a problem that is hard to fix. I'd certainly like it to reach
that stage before SambaXP.
The other factor is how these stages interact with the s3/s4/merged
builds. I think it might be reasonable to have those 3 reach different
stages at different times. For the waf effort Kai is starting on the
s3 build, but if that takes a while then I don't think it would be
unreasonable for the s4 build process to go to stage 2 before the s3
build has gotten to the end of stage 1. I could even imagine gettng
the s4 build to stage 4 (where the old s4 build system is deleted)
before the s3 build with a new system is working. I don't think it is
likely to happen that way, but I don't think it is something we have
to necessarily avoid.
I agree with Andrew that we should try and move to a common build
system, and I'd hope that in a years time we can share modules between
s3 and s4 more easily as their build rules will be in common, but I
don't think a "flag day" is the way to do. I hope the above staged
approach is a good alternative.
Cheers, Tridge
More information about the samba-technical
mailing list