<<< Date Index >>>     <<< Thread Index >>>

Berkely DB check weakness



Hi,

I just had some fun with 1.5.18 to get it to work.  I'm using berkely
db, and upon start of mutt I got a segfault.  After removing my cache
dirs I got a message that a given function was not supported at the
current stage.  That triggered me to look at what was actually linked.

Now I don't have a good solution here, but I can say that the berkely db
check is not really working well.  What happened is that my Berkely DB
4.5 installation headers from /my/place/usr were used to compile, while
was linked using -ldb4.6 from /usr/lib/.  This results in a nice
mismatch -- not working.

Anyway, I noticed mutt adds some default paths to the BDB search
path if no path is given to --with-bdb argument, so I added my prefix
where bdb 4.5 is installed, but that doesn't work either, because if
some headers are found, it is tried to compile a small example using all
libs from known versions in a loop, disregarding the version of the
headers found.  Aparently the example compiles fine with the mismatch.
It doesn't guarantee that it works at runtime of course.

Now this is probably a bit weird setup, and I know the berkely db check
has had some incarnations trying to fix all possible combinations and
problems... but nevertheless.  In case someone experiences the same,
this is what I did:
http://overlays.gentoo.org/proj/alt/browser/trunk/prefix-overlay/mail-client/mutt/files/mutt-1.5.18-bdb-prefix.patch

The simple idea here is that "db" is the generic thing that points to
the installation used "default" (at least on Gentoo), which means -ldb
is used, resulting in no mismatch for me since /my/place/usr/lib is in
my library search path.  However, I don't think this works for everyone.


-- 
Fabian Groffen
Gentoo on a different level