tdb2: remove: it's now in SAMBA where it belongs.
tdb2: unify tdb1_check and tdb1_summary into tdb_check and tdb_summary. Switch on the TDB_VERSION1 flag. Also, change tdb1_check's checkfn argument to return an error code (and set tdb->last_error accordingly).
tdb2: unify tdb1_store into tdb_store Switch on the TDB_VERSION1 flag.
tdb2: unify tdb1_open into tdb_open Finally, we gut tdb1_open() to the tdb1-specific parts, and call it from tdb_open if they specify the TDB_VERSION1 flag or the version is a TDB1. We also unify tdb_close(), based on the TDB_VERSION1 flag. Note that tdb_open(TDB_VERSION1) will fail on an existing tdb if it's a TDB2.
tdb2: add TDB_ATTRIBUTE_TDB1_HASHSIZE This replaces the tdb1_open "hash_size" argument. It will only be valid when you call tdb_open() with O_CREAT in open_flags, and TDB_VERSION1 in tdb_flags.
tdb2: make tdb1_open use attributes for logging, hash function. This brings it closer to tdb_open(), so we can unify more easily.
tdb2: merge tdb1_context into tdb_context. Finally, we split out the tdb2-specific parts of tdb_context, and put them into a "tdb2" sub-struct; the tdb1 parts go into a "tdb1" sub-struct. We get rido of tdb1_context and use tdb_context everywhere.
tdb2: Make TDB1 code use TDB2's open flags. This means getting rid of TDB_VOLATILE (perhaps we should use an attribute for that?), TDB_INCOMPATIBLE_HASH (use the tdb_attribute_hash for that) and TDB_CLEAR_IF_FIRST (use the tdb_attribute_openhook for that). We also get rid of TDB_DISALLOW_NESTING: that's the default for TDB2.
tdb2: Make tdb1 share tdb_store flags, struct tdb_data and TDB_MAGIC_FOOD.
tdb2: make TDB1 code use tdb2's TDB_ERROR and tdb_logerr() To do this, we make sure that the first few fields of tdb1_context and tdb_context are the same. This sweep also fixes up a few paths where we weren't setting tdb->ecode before our old logging function.
tdb2: test: import tdb1's tests. The main change is to s/tdb/tdb1_/ everywhere.