On third_party, submodules and our in-tree/out-of-tree tension

Andrew Bartlett abartlet at samba.org
Fri Mar 18 20:02:02 UTC 2016

I've been thinking about the request to move the cwrap to third_party.

My first feeling is that we keep making the mistakes of Samba4:  That
is, fork, do great things, then present back to the team what is no
longer emotionally owned by the team.  Putting it under third_party is
only a cosmetic detail, but I've become sensitive to those. 

What I do agree is that the current situation is not ideal.  The team
has different perspectives of bundling, and obnox wrote on those on the
list.  I've added some of my perspectives on that there.

The big issues that I see are:
 - developments in a core lib or wrapper in conjunction with git master
need to be trivial (the volker simple patch problem).
 - developments in a core lib or wrapper need to be in master, and
always tested in master autobuild (the why is that fix not yet in samba
 - releases must be only of released core libs (the distro no bundled
libs problem)
 - backporting a whole core lib to a previous release needs to be
simple (the important fix is only in the modern core lib problem)
 - patches to core libs need to be independent (the fix X in the whole
tree problem)
 - build systems, libreplace and the dependencies on them (the cwrap
went to cmake problem)
 - following and being involved the core lib development is hard (the
not-a-small-project problem)

My feeling continues to be that submodules would allow us to solve much
of this, because a commit in the submodule could then be easily
advanced to in master, or in a release, but I also know metze has a
number of significant concerns about that approach, mostly that they
don't follow automatically enough.

My further feeling is that those pushing for the core libs to be moved
out the tree will be only happy when they are treated like zlib etc, so
whatever we do, I think we should do it first for the third_party
directory, where there is little churn and we can see how it works in

Then, later we do the same for our wrapper and core libs only when we
are really happy with that.  That is, have one procedure for all of
these, starting with third_party, then the wrappers, and then the core

Andrew Bartlett

Andrew Bartlett                       http://samba.org/~abartlet/
Authentication Developer, Samba Team  http://samba.org
Samba Developer, Catalyst IT          http://catalyst.net.nz/services/samba

More information about the samba-technical mailing list