RFC: spinning off base libraries

John H Terpstra jht at samba.org
Sat Jun 14 20:06:02 GMT 2008

On Saturday 14 June 2008 14:32:07 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.

+1 from me on this suggestion. It makes perfect sense to minimise release 
overheads for down-stream vendors.

- John T.

More information about the samba-technical mailing list