James A Baker <[EMAIL PROTECTED]> writes: > Forget BDB. Use GDBM instead. It plays much nicer with programs because > it's API doesn't change as often.
My experience is to the contrary. GDBM has made ARBITRARY ABI changes in PATCHLEVEL (1.8.0 to 1.8.3) updates, 1.8.0 wants libgdbm.so.2, 1.8.3 wants libgdbm.so.3. This means you cannot bugfix libgdbm without recompiling and reinstalling ALL the software that uses libgdbm. I don't recall such madness with BerkeleyDB. The other problem with GDBM is that its locking type defaults to flock, which doesn't work across NFS. Older GDBM versions used to lock with fcntl. The particular problem here is that the API from 4.0 to 4.1 changed, so I'd recommend sticking with the older DB version that shipped with the system. Courier* will have to be updated to the new BerkeleyDB 4.1 API, the change is trivial. bogofilter uses this abstraction to cater for the 4.1 API change: #if DB_AT_LEAST(4,1) #define DB_OPEN(db, file, database, dbtype, flags, mode) db->open(db, NULL /*txn id*/, file, database, dbtype, flags, mode) #else #define DB_OPEN(db, file, database, dbtype, flags, mode) db->open(db, file, data base, dbtype, flags, mode) #endif All that it takes is inserting that NULL between the first and second argument in the ->open method. -- Matthias Andree ------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
