ccan dependencies seems to break external projects

Rusty Russell rusty at ozlabs.org
Thu Feb 23 22:27:59 MST 2012


On Thu, 23 Feb 2012 09:22:11 -0500, Stephen Gallagher <sgallagh at redhat.com> wrote:
Non-text part: multipart/signed
> On Thu, 2012-02-23 at 17:03 +1030, Rusty Russell wrote:
> > Versioning is a very blunt instrument: it forces all users to update in
> > lockstep.  It only realy makes sense for some limited modules which
> > really do have stable APIs, such as ccan/hash.  For that, we would save
> > some footprint by only having one copy.
> 
> Just to make the discussion less ambiguous, can you please list the CCAN
> modules that samba uses, along with which ones you feel have "stable"
> vs. "unstable" APIs?

Well, SAMBA uses everything in lib/ccan/*, which is growing, but
currently consists of:

These are simply headers, so no ABI to speak of, so we'll ignore them:
        array_size
        asearch
        build_assert
        cast
        compiler
        endian
        strset
        typesafe_cb
        likely (unless CCAN_LIKELY_DEBUG is defined)

These have actual source behind them, thus might be a concern:
        hash
        htable
        ilog
        str
        tally

Of those, TDB2 uses (directly or indirectly):
        hash
        ilog
        tally

> I'd like to see if at least the stable ones could simply be packaged as
> individual shared libraries.

hash and ilog are pretty sane, and easy to 'bless' as API-stable.  But
tally is a hack, and I'd really need to do some work on it to take that
step (it's used to draw ASCII graphs for tdb_summary with the
TDB_SUMMARY_HISTOGRAMS options, which is actually really useful).

We could remove that option from TDB2 for the moment. 

Thanks,
Rusty.


More information about the samba-technical mailing list