third_party (ex-lib_3p) now ready for review.

Jelmer Vernooij jelmer at samba.org
Sat Jul 26 11:52:00 MDT 2014


On Sat, Jul 26, 2014 at 10:13:47AM -0700, Ira Cooper wrote:
> On Sat, Jul 26, 2014 at 9:49 AM, Jelmer Vernooij <jelmer at samba.org> wrote:
> 
> > On Sat, Jul 26, 2014 at 09:38:04AM -0700, Ira Cooper wrote:
> > > On Sat, Jul 26, 2014 at 8:26 AM, Jelmer Vernooij <jelmer at samba.org>
> > wrote:
> > >
> > > > On Wed, Jul 23, 2014 at 10:02:23AM -0700, Ira Cooper wrote:
> > > > > On Wed, Jul 23, 2014 at 9:48 AM, Jelmer Vernooij <jelmer at samba.org>
> > > > wrote:
> > > > > > On 23 July 2014 17:20:31 BST, Ira Cooper <ira at samba.org> wrote:
> > > >
> > > > > > >Checks for specific libraries don't belong under
> > buildtools/wafsamba/,
> > > > > > >> which is our set of support libraries on top of waf. Please add
> > > > > > >> these checks in wscript or wscript_third_party or something
> > > > > > >> like that.
> > > > > >
> > > > > > >I wasn't a fan of it either... but adding the changes to wscript
> > is
> > > > > > >just
> > > > > > >ugly and stops us from reusing them properly.
> > > > > > I doubt it would be that much code. Zlib is only used by samba
> > itself.
> > > > For
> > > > > > the others, we can just use pkg gonfig. Also, we'll have to do this
> > > > > > eventually anyway when we split these libraries off from the main
> > samba
> > > > > > repo.
> > > > > Any code duplication when it comes to maintaining that type of
> > > > information
> > > > > is asking for trouble, IMHO.  I'd like other people's feedback on
> > this
> > > > > issue before I make that type of change that I really tried to avoid.
> > > > >
> > > > > Also pkg-config is not the only way to detect libraries.  I want to
> > > > > maintain the most compatibility we can with the current system, while
> > > > > making this change.
> > > >
> > > > The only library for which this is relevant (because it's not just
> > > > used by Samba, but by ldb and tdb too) is popt. The detection code for
> > > > popt is a single line:
> > > >
> > > > conf.CHECK_BUNDLED_SYSTEM('popt', checkfunctions='poptGetContext',
> > > > headers='popt.h')
> > > >

> > > What happens when we want to change the detection logic?
> > What sort of change do you expect to this line of code?
> >
> > Also, why does the logic need to be the same? tdb might need a newer
> > version of popt
> > than ldb or samba. It might want to check for the presence of a function
> > that was
> > recently added. We might want to blacklist a broken popt version in the
> > future because
> > it triggers a bug in the way Samba (and Samba alone) uses popt.
> >
> 
> #include <popt.h>
> 
> Will only pick up one version, unless you are using different CFLAGS for
> the libraries to cause this problem.  The goal of this whole thing is to
> simplify what we are doing.
> 
> No, I'm not making the libraries all individuals.  This is a deliberate
> design choice to simplify maintenance.

I never suggested that we should support linking each library against a different
version of popt simultaneously, or anything like that.

Each library has different requirements. The check in
tdb/wscript is there to make sure there is a popt present on the
system that is sufficient for tdb's purposes. The check in ldb/wscript
is there to check that the popt on the system is sufficient for ldb's
purposes. 

tdb has a number of external users (pulseaudio, libcanberra, rhythmbox)
that build the standalone tdb.  Why should they be forced to install a newer
popt if ldb started using a newer popt feature?

At the moment, tdb/ldb/samba support all versions of popt, but that may change
in the future. Popt is also quite a simple library; it's more of an issue
with libraries like Kerberos, tdb or LDAP.

Cheers,

Jelmer


More information about the samba-technical mailing list