On Sun, 11 Apr 2004 14:25:34 -0400, Eli wrote:
> Bradford Carpenter wrote:
>> Just tried working with dbm lookups in exim for the first time. But
>> exim seems unable to determine the version of Berkeley DB that's
>> running.
>>
>> I have db4 4.2.52 installed on OS X (using darwinports), but "exim
>> -bV" shows only "Probably Berkeley DB version 1.8x (native mode)".
>> Didn't think this was a problem until I tried a lookup directly from
>> my spamprobe db4 file using exim:
>>
>> failed to open /.spamprobe/sp_words as a db (v1) file: Inappropriate
>> file type or format
>> ^^^^
>>
>> Any ideas on why exim can't detect the installed Berkeley DB version?
>> Where does exim look to get this info?
>>
>> Brad
>
> Sounds like (as Philip mentioned) that it got linked to your db1 libraries
> rather than db4. If you have both db1 and db4 installed, chances are that
> db1 is your "default" db package, so if something tries to compile with
> -ldb, it gets db1 not db4. If you change the -ldb line to -ldb4 I think it
> will work. It may not though, as I haven't checked this to see if it's
> right, but I remember seeing this problem in the past on my systems too. I
> think I just manually made a symlink for libdb.so and stuff to point to db4
> library files rather than the db1 libraries.
>
> Eli.
Thanks, Eli. There is no db1 installed on my system, so I think the
linker must've just failed to find the db4 libraries (note the
"Probably" in exim's -bV description).
Used darwinports (by the author of freebsdports) to install both db4
and exim. There seems be a problem with the port file for exim as near
as I can tell; it only includes /opt/local/lib (the path to the
darwinports-installed libraries, including db4) in the lib paths if the
mysql variant is being used.
Easy enough to fix the port file. Was just about to try it, but found a
flaky uninstaller may have borked some of my important kernel
extensions. Time to do a system reinstall apparently (blech).
Thanks for the input! Hopefully will get a chance to recompile exim
before this evening.
Brad
(Oops. Post to list also...)