Summary: | bogofilter-1.0.2 complains about missing shared environment in Berkeley DB | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Henry Ristau <Henry.Ristau> |
Component: | Current packages | Assignee: | Net-Mail Packages <net-mail+disabled> |
Status: | RESOLVED NEEDINFO | ||
Severity: | normal | CC: | pauldv |
Priority: | High | ||
Version: | 2005.1 | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | config.log |
Description
Henry Ristau
2006-08-11 09:39:58 UTC
Created attachment 94001 [details]
config.log
I guess it's a problem with your sys-libs/db installation. Which sys-libs/db version(s) do you have installed? `equery list --exact-name --installed sys-libs/db`? `ls -l /usr/lib/libdb.so` ? # equery list --exact-name --installed sys-libs/db [ Searching for package 'db' in 'sys-libs' among: ] * installed packages [I--] [ ] sys-libs/db-4.2.52_p2-r1 (4.2) # ls -l /usr/lib/libdb.so lrwxrwxrwx 1 root root 12 May 23 14:02 /usr/lib/libdb.so -> libdb-4.2.so Can you try and reinstall db `emerge --oneshot =sys-libs/db-4.2.52_p2-r1` ? If you `quickpkg db` first it might be possible to spot a difference if it works after a reinstallation. I tried it on a clean chroot and it works: Portage 2.1-r2 (default-linux/x86/2006.0, gcc-3.4.6, glibc-2.3.6-r4, 2.6.16.26-xen i686) ================================================================= System uname: 2.6.16.26-xen i686 AMD Athlon(tm) XP 2800+ Gentoo Base System version 1.12.4 app-admin/eselect-compiler: [Not Present] dev-lang/python: 2.4.3-r1 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: [Not Present] dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.16.1-r3 sys-devel/gcc-config: 1.3.13-r3 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=i686 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/terminfo" CXXFLAGS="-O2 -march=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="de_DE.UTF-8" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 alsa apache2 apm arts avi berkdb bitmap-fonts cli crypt cups dlloader dri eds emboss encode esd foomaticdb gdbm gif gnome gstreamer gtk2 imlib isdnlog jpeg kde libg++ libwww mad mikmod motif mp3 mpeg ncurses ogg opengl oss pam pcre pdflib perl png pppd python qt3 qt4 quicktime readline reflection sdl session spell spl ssl tcpd truetype truetype-fonts type1-fonts udev vorbis xml xmms xorg xv zlib elibc_glibc input_devices_keyboard input_devices_mouse input_devices_evdev kernel_linux userland_GNU" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY The good thing: After reinstalling db it works for me, too. The bad thing: I messed up the quickpkg, so I can't tell the exact difference in the db-package. .oO(But now I now, that the package file in /usr/portage/packages/sys-libs/... is just a symbolic link and there is no use in safe-copying a symbolic link... ;o\) Paul, have you seen something like this? This is sys-libs/db-4.2.52_p2-r1. From the attachment <http://bugs.gentoo.org/attachment.cgi?id=94001>: configure:12896: checking if Berkeley DB supports shared environments configure:12942: i686-pc-linux-gnu-gcc -o conftest -O2 -march=athlon-tbird -pipe -fomit-frame-pointer -mmmx -m3dnow -Wpointer-arith -ggdb -Wall -W -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Waggregate-return -Wmissing-declarations -Wmissing-format-attribute -Wnested-externs -fno-common -Wchar-subscripts -Wcomment -Wimplicit -Wsequence-point -Wreturn-type -Wno-system-headers -Wformat conftest.c -lm /usr/lib/libdb.so >&5 conftest.c:103: warning: function declaration isn't a prototype configure:12945: $? = 0 configure:12947: ./conftest DB_ENV->open failed: Function not implemented configure:12950: $? = 1 configure: program exited with status 1 configure: failed program was: | /* confdefs.h. */ [...] | /* end confdefs.h. */ | | #ifdef HAVE_INTTYPES_H | #include <inttypes.h> | #endif | #include <db.h> | #include <stdio.h> | #include <stdlib.h> | #define TESTDIR "bfadtestdir" | #define barf(where, what) do { fprintf(stderr, "%s failed: %s\n", where, db_strerror(what)); exit(1); } while(0) | | int | main () | { | | DB_ENV *e; | int r; | if ((r = db_env_create(&e, 0))) barf("db_env_create", r); | if ((r = e->open(e, TESTDIR, DB_INIT_LOG|DB_INIT_TXN|DB_INIT_MPOOL|DB_CREATE, 0664))) | barf("DB_ENV->open", r); | if ((r = e->close(e, 0))) | barf("DB_ENV->close", r); | if ((r = db_env_create(&e, 0))) barf("db_env_create", r); | if ((r = e->remove(e, TESTDIR, 0))) barf("DB_ENV->remove", r); | return 0; | | ; | return 0; | } configure:12959: result: no configure:12969: error: Cannot open a shared environment in Berkeley DB. This is a known problem on Fedora Core Linux. Build your own Berkeley DB installation and use --with-libdb-prefix to point bogofilter to it. Alternatively, you can use the unsafe non-transactional database by configuring with --disable-transactions. Packagers, if you are absolutely sure that the target system supports shared environments, you can use --disable-dbshared-test. I've never seen this before. I've got an idea what causes the problems. What happens is that this DB_ENV type is a big bad struct that contains all kinds of function pointers. If somehow the alignment or function position changed everything breaks. This could very well be caused by a compiler change. I set up the system in the current state in may 2006 from stage 3. Since then there was no compiler change and no upgrade of sys-libs/db because no new versions became stable. What could be a reason is that sys-libs/db was still the one from the stage 3 tarball and therefore different. I can't see what we can do here now. Reopen if you feel it's appropriate. |