cyrus imapd 2.x.* (tried with latest 2.2. version and 2.3.7 in portage) with the current Berkeley DB 4.5, needs 4.3.xx to compile properly Reproducible: Always Steps to Reproduce: 1. install DB 4.5 2. emerge cyrus-imapd 2.x.* 3. Actual Results: cyrusdb_berkeley.c: In function 'init': cyrusdb_berkeley.c:176: error: 'DB_ENV' has no member named 'set_lk_max' make[1]: *** [cyrusdb_berkeley.o] Error 1 Expected Results: no errors http://www.teddy.ch/patches/cyrus-imap-2.3.7-berlekey-db-4.5.20-1.patch Doesn't compile in 2.3.8 without patches either. System uname: 2.6.19-gentoo-r1 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz Gentoo Base System release 1.12.9 Timestamp of tree: Thu, 15 Mar 2007 01:50:01 +0000 dev-java/java-config: 1.3.7, 2.0.31-r4 dev-lang/python: 2.4.4 dev-python/pycrypto: 2.0.1-r5 sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.61 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.15-r1 sys-devel/libtool: 1.5.23b virtual/os-headers: 2.6.20-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O3 -march=pentium4 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/php/apache1-php5/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-O3 -march=pentium4 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/" LANG="de_DE@euro" LC_ALL="de_DE@euro" 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 --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="apache2 apm arts berkdb bitmap-fonts cli cracklib crypt dri eds emboss encode esd foomaticdb fortran gdbm gpm gstreamer iconv imlib isdnlog libg++ libwww mad midi mikmod motif mp3 mpeg ncurses nptl nptlonly objc ogg oss pam pcre perl pppd python qt4 quicktime readline reflection sasl session spell spl ssl tcpd truetype truetype-fonts type1-fonts unicode vorbis x86 xml xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="apm ark ati chips cirrus cyrix dummy fbdev glint i128 i740 i810 imstt mga neomagic nsc nv rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng v4l vesa vga via vmware voodoo" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
On the cyrus mailing list, a patch to remove the deprecated stuff from lib/cyrusdb_berkeley.c has been reported (see http://www.irbs.net/internet/info-cyrus/0612/0137.html). Maybe this helps fixing the problem.
the suggested patch worked for me :) soon i will upload an ebuild with the actualized patch :)
Created attachment 115481 [details, diff] p1.patch
Created attachment 115483 [details] cyrus-imapd-2.2.12-r4.ebuild
Comment on attachment 115483 [details] cyrus-imapd-2.2.12-r4.ebuild modified ebuild file to include the p1.patch
Comment on attachment 115481 [details, diff] p1.patch the db-patch
Really sorry for the mass mailing. This patch works for me well. tsabi
(In reply to comment #7) > This patch works for me well. Many thanks for your patch! But it only worked "partly" for me. ;-( That means: Compilation against 4.5.x was successfull but imapd is linked against 4.3.x :-/ May 1 15:19:26 hostname imapd/master[24543]: about to exec /usr/lib/cyrus/imapd May 1 15:19:27 hostname imapd/imaps[24543]: incorrect version of Berkeley db: compiled against 4.5.20, linked against 4.3.29 May 1 15:19:27 hostname imapd/imaps[24543]: Fatal error: wrong db version I think that there is a problem regarding the bdb version (especially the version for the linkage ("-ldb-4.5" instead of "-ldb-4.3") detection within the cyrus-imapd build-environment, because db.h say's: cat /usr/include/db.h| grep VERSION: #define DB_VERSION_MAJOR 4 #define DB_VERSION_MINOR 5 #define DB_VERSION_PATCH 20 #define DB_VERSION_STRING "Berkeley DB 4.5.20: (September 20, 2006)" #define DB_MULTIVERSION 0x0000008 /* Multiversion concurrency control. */ ... Installed libraries are: ls -al /usr/lib/libdb-* lrwxrwxrwx 1 root root 11 Mar 7 10:20 /usr/lib/libdb-1.so -> libdb1.so.2 -rw-r--r-- 1 root root 721132 Feb 12 23:05 /usr/lib/libdb-3.2.a -rw-r--r-- 1 root root 639 Feb 12 23:05 /usr/lib/libdb-3.2.la -rwxr-xr-x 1 root root 525676 Feb 12 23:05 /usr/lib/libdb-3.2.so lrwxrwxrwx 1 root root 12 Mar 7 10:20 /usr/lib/libdb-3.so -> libdb-3.2.so -rw-r--r-- 1 root root 1053448 Feb 12 23:08 /usr/lib/libdb-4.1.a -rw-r--r-- 1 root root 713 Feb 12 23:08 /usr/lib/libdb-4.1.la -rwxr-xr-x 1 root root 784896 Feb 12 23:08 /usr/lib/libdb-4.1.so -rw-r--r-- 1 root root 1176288 Feb 12 23:12 /usr/lib/libdb-4.2.a -rw-r--r-- 1 root root 791 Feb 12 23:12 /usr/lib/libdb-4.2.la -rwxr-xr-x 1 root root 870764 Feb 12 23:12 /usr/lib/libdb-4.2.so -rw-r--r-- 1 root root 1242166 Oct 18 2006 /usr/lib/libdb-4.3.a -rw-r--r-- 1 root root 799 Oct 18 2006 /usr/lib/libdb-4.3.la -rwxr-xr-x 1 root root 928036 Oct 18 2006 /usr/lib/libdb-4.3.so -rw-r--r-- 1 root root 1522388 Mar 7 10:20 /usr/lib/libdb-4.5.a -rw-r--r-- 1 root root 800 Mar 7 10:20 /usr/lib/libdb-4.5.la -rwxr-xr-x 1 root root 1146484 Mar 7 10:20 /usr/lib/libdb-4.5.so Nevertheless config.log reports: cat config.log | grep db configure:7557: checking db.h usability configure:7598: checking db.h presence configure:7661: checking for db.h configure:7722: i686-pc-linux-gnu-gcc -o conftest -O2 -march=pentium4 -fomit-frame-pointer -pipe conftest.c -lresolv -ldb-4.4 >&5 /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: cannot find -ldb-4.4 | #include <db.h> | db_create(NULL, NULL, 0); configure:7722: i686-pc-linux-gnu-gcc -o conftest -O2 -march=pentium4 -fomit-frame-pointer -pipe conftest.c -lresolv -ldb4.4 >&5 /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: cannot find -ldb4.4 | #include <db.h> | db_create(NULL, NULL, 0); configure:7722: i686-pc-linux-gnu-gcc -o conftest -O2 -march=pentium4 -fomit-frame-pointer -pipe conftest.c -lresolv -ldb44 >&5 /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: cannot find -ldb44 | #include <db.h> | db_create(NULL, NULL, 0); ... ac_cv_header_db_h=yes BDB_LIB=' -ldb-4.3' CYRUSDB_OBJS='cyrusdb_flat.o cyrusdb_skiplist.o cyrusdb_quotalegacy.o cyrusdb_berkeley.o' IMAP_LIBS=' -lsasl2 -lresolv -lssl -lcrypto -lfl -lresolv -ldb-4.3' LIBS='-lresolv -lssl -lcrypto -lfl -lresolv -ldb-4.3' Have you patched some other files, too? Could it be gentoo-specific problem, because of gentoo's library filesystem layout?! I'm a bit confused... ;-)
Created attachment 117853 [details, diff] p2.patch (In reply to comment #8) Ok, now it's completly "fixed". just anserwing myself... > Have you patched some other files, too? yes, uplinks (cyrus-imapd's) berkley-db-version detection m4 macro does not know that db-4.5 is already available. Here is a patch attached that corrects -ldb-4.5 linkage. Thus this second patch has to be applied within the ebuild, Tóth Csaba's ebuild has to be updated, too.
Created attachment 117854 [details, diff] cyrus-imap-2.2.12-r4.patch This is the patch for the above ebuild itself. It just executes "epatch" with my previously attached p2.patch.
Comment on attachment 117853 [details, diff] p2.patch -ldb-4.5 linkage-patch (BDB_LIB version detection)
*** Bug 180172 has been marked as a duplicate of this bug. ***
(In reply to comment #11) > (From update of attachment 117853 [details, diff] [edit]) > -ldb-4.5 linkage-patch (BDB_LIB version detection) net-mail, that patch looks sane to me. Could we get that in a stable version (or stable a new one) to push sys-libs/db forward?
*** Bug 182547 has been marked as a duplicate of this bug. ***
since nobody seems to care about this, I've commited the patch for -r4
*** Bug 184680 has been marked as a duplicate of this bug. ***