third_party (ex-lib_3p) now ready for review.

Ira Cooper ira at samba.org
Sat Jul 26 11:13:47 MDT 2014


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.

There isn't just one single "system popt". There are multiple different
> versions that can be installed. This check makes sure that there is a popt
> installed
> that can be used by whatever (tdb, ldb, samba) is doing the check.


On my systems there is.  On the systems I've worked on there is.  There is
only one that has headers in the right spot.

Now, there CAN be multiple ones.  But if so, I'd strongly prefer that we
use one that ALL of our tools can use.

If we were talking 500 tools... I might think differently... but an entire
linux distro manages to use one popt... I think we can swing it.

-Ira


More information about the samba-technical mailing list