RFC: spinning off base libraries

simo idra at samba.org
Mon Jun 16 17:32:16 GMT 2008

On Mon, 2008-06-16 at 12:03 -0500, Gerald (Jerry) Carter wrote:

> > 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.
> Multiple projects means multiple releases.  Might it be better
> to to just have a samba-base-dev project that incorporates all these
> into a single "release".  Vendors can of course then split
> into multiple packages.  And within a given release, each library
> is independent, compact, and has a well defined owner.  Just a thought.

I think long term they should be separated, but at least being able to
just respin this base package to fix a single bug in, say, tdb, instead
of having to respin the full set of samba packages would be a huge first

> >> I am referring in particular to:
> >> libreplace (it's a dependency for the other ones)
> >> talloc
> >> tdb
> >> libevents
> >> later also libldb
> The nice thing is that you can always break them out before
> actually dealing with making Samba (either branch) use them.
> I think everyone would be much more comfortable with switching
> to use such an external package (set of libs) after the lib
> project actually in place.  Code always is more convincing.

We can already build them standalone, What we really need is just to
release these libraries on their own.
The problem about keeping them in the samba tree is that we are not
disciplinate enough to keep in sync more than one authoritative source.
Even we just 2 main branches (samba 3 and samba 4) I keep seeing commits
in only one tree when it is clear that a fix should go in both.
If we start releasing these libraries without removing them from the
samba trees then we will end up with the same forks all over, and as a
result samba will never end up depending on the external libraries at

Maybe as an interim option we can split out the source trees but still
include them at build time (I guess git submodules might be a way here)
until we are ready to ship a samba package that just use libraries.

What we really need is to split out the source from the samba tree so
that we can have only one authoritative source and people will make more
attention to change something in a library as it will require a new
release of the libraries package. This should allow for better
maintenance and limit changes to bugfixes until something is so
important we want to release a new major release. (Something like the
tdb transactions code is a perfect example).


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