Berkely DB check weakness
- To: Mutt Developers <mutt-dev@xxxxxxxx>
- Subject: Berkely DB check weakness
- From: Fabian Groffen <grobian@xxxxxxxxxx>
- Date: Mon, 19 May 2008 10:26:26 +0200
- List-post: <mailto:mutt-dev@mutt.org>
- List-unsubscribe: send mail to majordomo@mutt.org, body only "unsubscribe mutt-dev"
- Organization: Gentoo Foundation, Inc.
- Sender: owner-mutt-dev@xxxxxxxx
- User-agent: Mutt/1.5.18 (Linux 2.6.23.15-137.fc8, VIM - Vi IMproved 7.1)
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