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.
Well, I can't speak to which one _actually_ changes API's more often. All I know is what I was told about BDB... and that installing GDBM on my system made Courier compile without patching. *shrug*
YMMV.
And if that code change works as you say, then great! Maybe Sam can use it. Otherwise, I'm still quite happy to be using GDBM anyway. :)
Later!
-jab
------------------------------------------------------- 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
