TDB2 prototype git tree for Samba 4

Rusty Russell rusty at rustcorp.com.au
Mon Apr 4 01:01:16 MDT 2011


Hi all!

     I've ported TDB2 to Samba, and it passes make check (minus the few
tests needing TDB python bindings).  Configure with --enable-tdb2.
See the may-rebase-at-any-moment WIP tree:

        http://git.samba.org/rusty/?p=rusty/samba.git;a=shortlog;h=refs/heads/tdb2-wip
        
Here's the summary:

1) Samba 3 doesn't build.  I was disappointed to discover that there's
   still no unified build, and that I had only been building S4. :(

2) TDB2 development was done in CCAN, so it uses some ccan modules.  I
   dropped them into lib/ccan for now, but we need to figure out if
   that's a good idea or not.  They can easily live under lib/tdb2/.

3) I merged the likely/unlikely macros spread over the tree, as an
   experiment.  If we really want to do this, it needs some neatening.
   The CCAN ones are nice: they can gather stats on misusage.

4) TDB2 returns a (negative) error number on failure, so portable code
   should check for non-zero instead of -1.  Many places already did.

TODO:

1) There are a few missing functions which Samba 3 wants, which are
   still to be implemented (timeouts and nonblocking, which are both
   quite different in TDB2).

2) TDB1 on-disk compatibility is still TODO.

3) tdb_compat.h is all inlines, to avoid build issues.  I'll fix that :)

Next up:
(1) Samba 3 build.  It's a bit icky with two build systems...
(2) locking_attr support so we can do nonblocking and timeouts properly.
(3) Python bindings.
(4) TDB1 ondisk compatibility.
(5) Review ccan modules and see which ones, if any, I should propose for
    general use in SAMBA.
(6) General neatening of code for submission.

Feedback welcome!
Rusty.


More information about the samba-technical mailing list