While trying to install qmail-scanner on an amd64, I get this error: /usr/bin/perl: relocation error: /usr/lib/perl5/5.8.3/x86_64-linux/auto/DB_File/DB_File.so: undefined symbol: db_version I have tried reemerging DB_File, it compiles succesfully. ---------------- hammer net-mail # USE="ipalias maildir" emerge -v qmail-scanner qtools Calculating dependencies ...done! >>> emerge (1 of 2) net-mail/qmail-scanner-1.20 to / >>> md5 src_uri ;-) qmail-scanner-1.20.tgz >>> Unpacking source... >>> Unpacking qmail-scanner-1.20.tgz to /var/tmp/portage/qmail-scanner-1.20/work * Replacing obsolete head/tail with POSIX compliant ones * Adding items to the SILENT_VIRUSES list (bagle,beagle,mydoom,sco,maldal,mimail,novarg,shimg) * Forcing use of clamscan instead of clamuko due to detection bug >>> Source unpacked. Building Qmail-Scanner 1.20... This script will search your system for the virus scanners it knows about, and will ensure that all external programs qmail-scanner-queue.pl uses are explicitly pathed for performance reasons. It will then generate qmail-scanner-queue.pl - it is up to you to install it correctly. ************************** perl doesn't have DB_File module - cannot continue. Get it from CPAN: http://search.cpan.org/search?module=DB_File ************************** Error reported was: --- /usr/bin/perl: relocation error: /usr/lib/perl5/5.8.3/x86_64-linux/auto/DB_File/DB_File.so: undefined symbol: db_version --- * Changing suidperl to plain perl * Failed Patch: qmail-scanner-queue.pl.patch! * * Include in your bugreport the contents of: * * /var/tmp/portage/qmail-scanner-1.20/temp/qmail-scanner-queue.pl.patch-20086.out ---------------- Of course, qmail-scanner-queue.pl isn't generated and the patch fails. Reproducible: Always Steps to Reproduce: 1. emerge qmail-scanner hammer net-mail # emerge info Portage 2.0.50-r1 (default-amd64-2004.0, gcc-3.3.3, glibc-2.3.3_pre20040207-r0, 2.6.3-rc2-gentoo) ================================================================= System uname: 2.6.3-rc2-gentoo x86_64 5 Gentoo Base System version 1.4.3.13p1 Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.2 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CFLAGS="-O2 -mmmx -msse -msse2 -m3dnow -fPIC" CHOST="x86_64-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O2 -mmmx -msse -msse2 -m3dnow -fPIC" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="ftp://gentoo.mirrors.pair.com http://adelie.polymtl.ca" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X amd64 apache2 apm arts avi berkdb crypt curl encode foomaticdb gd gdbm gif gnome gpm gtk gtk2 imap imlib innodb jpeg kde libg++ libwww mcal mikmod motif mpeg mysql ncurses nls oggvorbis opengl oss pam pdflib perl png python quicktime readline sdl slang spell ssl tcpd tiff truetype xml2 xmms xv zlib"
I finally found the cause. From: http://www.cpan.org/modules/by-module/DB_File/DB_File-1.69.readme This error usually happens when you have both version 1 and version 2 of Berkeley DB installed on your system and DB_File attempts to build using the db.h for Berkeley DB version 2 and the version 1 library. Unfortunately the two versions aren't compatible with each other. The undefined symbol error is actually caused because Berkeley DB version 1 doesn't have the symbol db_version. and when I checked: hammer lib # ldd /usr/lib/perl5/5.8.3/x86_64-linux/auto/DB_File/DB_File.so libdb-4.1.so => /usr/lib/libdb-4.1.so (0x0000002a95662000) libc.so.6 => /lib/libc.so.6 (0x0000002a9582f000) /lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000) hammer lib # cd /usr/include hammer include # ls -l db* lrwxrwxrwx 1 root root 8 Dec 16 2004 db.h -> db3/db.h lrwxrwxrwx 1 root root 12 Dec 16 2004 db_185.h -> db3/db_185.h doing hammer include # ln -sf db4.1/db.h . hammer include # ln -sf db4.1/db_185.h . hammer include # emerge DB_File fixed the issue. This really should be documented or integrated in ebuilds of DB_File.
(Just now catching up on old bugs, really sorry for the delay) Actually, this was a problem with the upgrade of db (one of the configure scripts wasn't updating the symlink correctly). Sorry that you had to trudge this on your own :/