RFC: spinning off base libraries

simo idra at samba.org
Mon Jun 16 13:02:47 GMT 2008

On Mon, 2008-06-16 at 12:00 +0200, Michael Adam wrote:
> Hi Simo,
> I had proposed this at the team meeting at sambaXP.

And I and Jelmer have been talking about this for months before that :)

> And it was rejected, mostly due to the additional amount of
> work required and the lack of real benefits.

I didn't comment at the time because we didn't have time to discuss it properly.

> Now that you have elaborated and emphasized some of the benefits,
> I am interested in hearing what Tridge, Jerry and the other
> "objectors" say...

Me too, that's why I posted it here.

> I myself am currently undecided, since I see that apart from the
> usefulness, it really is an additional workload that has to be done.
> And it I think it is a bigger task than it might seem.
> If someone can take care of maintaining these libs separately,
> I am of course in favour of the spin-offs.

I know it is some work, yet I think the benefits in the long term
clearly overweight the problems.

> One problem is that libreplace is not quite complete yet.
> E.g., it implements different sets of functions on different
> platforms. That would have to be fixed/completed first, right?

No, libreplace is meant to provide the functions missing on each
platform we compile on. So it is ok to compile different functions on
different platforms imo.


> Cheers - Michael
> simo wrote:
> > There are a few base libraries that I would really like for us to spin
> > off to their repositories and have their own releases.
> > 
> > I am referring in particular to:
> > libreplace (it's a dependency for the other ones)
> > talloc
> > tdb
> > libevents
> > later also libldb
> > 
> > The reasons are many.
> > 
> > 1. packaging
> > 
> > We use these libraries in both samba3 and samba4 and there is growing
> > interest in using them outside of them (tdb has been for some time).
> > While in 3.2 we allow to build them separately we still (in Fedora for
> > example) have to respin everything on any change even unrelated to these
> > libraries, breaking them out with their own tar.gz release would allow
> > distributions to update only the packages that need to, without building
> > the whole thing again.
> > 
> > 2. stabilization
> > 
> > By making separate trees we will make it more clear to every developer
> > that any change will result in the need of a new release, this tend to
> > encourage keeping changes to a minimum and make sure API/ABI is not
> > compromised, it also avoid taking the route of quick hacks, and
> > reintroduce dependencies on the rest of the samba code base.
> > 
> > 3. sharing
> > 
> > Because these libraries are in the samba tree and change at will, it is
> > diffuclt for external projects to rely on them without copying their
> > tree and basically forking them. By making these projects slightly more
> > automonous with their own repository, we encourage sharing and
> > contribution to the single libraries. We also can make a better job of
> > versioning and release with the ability to control when to change soname
> > or such every time we end up with the need to break the ABI.
> > 
> > 
> > Who take care of this code?
> > The Samba Team as usual, but going on with the project we might find
> > even new maintainers for specific libraries and have someone take over
> > release management duties for just one or more of them. This also would
> > be beneficial in sharing the load of managing, testing, and releasing
> > that code.
> > I think the small burden of having to check out multiple trees (and that
> > might not even be necessary with git submodules) would be largely paid
> > back by the benefits of spinning these libraries off.
> > 
> > I would, of course, volunteer to help spinning them off.
> > 
> > 
> > How can we make it easy for people to keep building samba from a single
> > tarball?
> > It's not difficult to release a tarball that includes also all the spun
> > off libraries, it would contain the sources of samba and all libraries
> > and a very simple Makefile that builds/installs all dependencies and
> > finally samba with a single "make" command.
> > 
> > 
> > I'd welcome comments on the proposal, so that we can start working
> > toward this goal.
> > 
> > Simo.
Simo Sorce
Samba Team GPL Compliance Officer <simo at samba.org>
Senior Software Engineer at Red Hat Inc. <ssorce at redhat.com>

More information about the samba-technical mailing list