RFC: spinning off base libraries

simo idra at samba.org
Sat Jun 14 19:32:07 GMT 2008


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