After emerge the new db-4.5.20 (with db-4.3 and db-4.2 installed in slots), the emerge of mail-client/claws-mail-maildir (a plugin of claws-mail that use Maildir++ mailbox format and index the mails with a db file) lead to a segfault of the application at start. A backtrace show me that the segfault appear in the BerkeleyDb code during initialization of a DB_ENV struct (in a db open call precisely). So, after investigate a bit I've seen that db.h pointing to db-4.5 freeshly installed BUT the linking of the plugin show -ldb-4.3 ! After change the db.h link to the 4.3 one and re-emerge the plugin the segfault no longer occur. I think a change is necessary in the ebuild system to choose the right db.h during compilation of packages for this type of compatibility issues. I don't know if a change in the application ebuild or in the db-* ebuilds (or eclass ?) are more accurate. Thanks for your attention ! ;) Reproducible: Always Steps to Reproduce: Portage 2.1.2.1-r1 (default-linux/amd64/2006.1/desktop, gcc-4.1.2, glibc-2.5-r0, 2.6.20-gentoo x86_64) ================================================================= System uname: 2.6.20-gentoo x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ Gentoo Base System release 1.12.9 Timestamp of tree: Thu, 08 Mar 2007 06:50:01 +0000 ccache version 2.4 [enabled] dev-java/java-config: 1.3.7, 2.0.31-r4 dev-lang/python: 2.4.4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r6 dev-util/confcache: 0.4.2-r1 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.16.1-r2, 2.17 sys-devel/gcc-config: 1.3.15 sys-devel/libtool: 1.5.23b virtual/os-headers: 2.6.20-r1 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=k8 -mtune=k8 -momit-leaf-frame-pointer -ftracer -ggdb -pipe -msse3" CHOST="x86_64-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 /var/qmail/alias /var/qmail/control /var/www/localhost/htdocs/phppgadmin/conf" 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/splash /etc/terminfo /etc/texmf/web2c" CXXFLAGS="-O2 -march=k8 -mtune=k8 -momit-leaf-frame-pointer -ftracer -ggdb -pipe -msse3" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig ccache distlocks fixpackages metadata-transfer parallel-fetch sandbox sfperms splitdebug strict" GENTOO_MIRRORS="http://ftp.snt.utwente.nl/pub/os/linux/gentoo http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://mirror.ovh.net/gentoo-distfiles/" LANG="fr_FR.UTF-8" LC_ALL="fr_FR.UTF-8" LINGUAS="fr" MAKEOPTS="-j5" 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 /usr/portage/local/layman/sunrise /usr/portage/local/layman/voip" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="X X509 Xaw3d a52 aac accessibility acl acpi adns alsa amd64 apache2 artworkextra audiofile avahi bash-completion berkdb bitmap-fonts bluetooth bonobo bzip2 c++ cairo caps cddb cdr chroot cli cracklib crypt cups curl dbm dbus dga divx4linux dmx dri dts dv dvd dvdr eds emboss encode esd evo exif expat ext-png ext-zlib fam fbcon ffmpeg firefox flac foomaticdb fortran ftp gcc-libffi gcj gd gd-external gdbm gif gimp gimpprint gkrellm glade gmp gnome gnutls gphoto2 gpm gstreamer gtk gtk2 gtkhtml guile hal howl iconv idn ieee1394 imagemagick imap imlib imlib2 innodb ipv6 isdnlog jabber java javamail jbig jce jikes jpeg jpeg2k junit lame latex lcms ldap libg++ libnotify lm_sensors logrotate lzo lzw mad mhash midi mikmod mime mmap mng motif mozilla mp3 mpeg mpeg4 mysql ncurses nfs nls nptl nptlonly nsplugin objc ogg oggvorbis openal opengl oss pam pcre pda pdf perl php png posix postgres ppds pppd pulseaudio python qt3 qt4 quicktime readline reflection samba scanner sdl seamonkey session silc smime smp speex spell spl sqlite ssl svg sysfs syslog tcl tcltk tcpd tga theora threads tidy tiff tiff-lzw tk truetype truetype-fonts type1-fonts unicode usb userlocales v4l v4l2 vorbis xine xinetd xml xorg xosd xpm xrandr xv xvid xvmc yahoo yv12 zeroconf zlib" ALSA_CARDS="emu10k1 usb-audio" 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" CAMERAS="canon" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="g15 ncurses text xosd" LINGUAS="fr" USERLAND="GNU" VIDEO_CARDS="nvidia nv vesa fbdev v4l" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS
This should use db-use.eclass; no wonder that it's broken for you (on that note, when it compiles w/ db-4.3, why does it force =db-4.2* in DEPEND?)
I'll start using that eclass as soon as someone writes some guide how to use it - I do not exactly have time to figure out purpose of random eclasses these days.
This patch fixes the problem. BTW, why doesn't the db-use eclass detect the version from the depstring? --- claws-mail-maildir-0.24.4.ebuild.orig 2007-01-09 23:59:54.000000000 +0100 +++ claws-mail-maildir-0.24.4.ebuild 2007-03-15 01:14:13.000000000 +0100 @@ -2,6 +2,8 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/mail-client/claws-mail-maildir/claws-mail-maildir-0.24.4.ebuild,v 1.1 2007/01/09 22:59:54 ticho Exp $ +inherit db-use + MY_P="${P#claws-mail-}" DESCRIPTION="Plugin for sylpheed-claws to operate on maildir type mailboxes" @@ -12,10 +14,17 @@ KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86" IUSE="" DEPEND=">=mail-client/claws-mail-2.7.0 - =sys-libs/db-4.2*" + =sys-libs/db-4.3*" S="${WORKDIR}/${MY_P}" +src_compile() { + cd $S + + CPPFLAGS="-I$(db_includedir 4.3)" econf + make $MAKEOPTS +} + src_install() { make DESTDIR="${D}" install dodoc AUTHORS ChangeLog NEWS README
Hi, Another update of claws-mail and another db problem with maildir plugin ;) I've tested the change in comment #3 and it works ! Thanks for this change I don't need anymore to manually change the db.h link before re-emerge the plugin. Can you update the ebuild modified in the portage tree please ? Thanks
(In reply to comment #4) > Hi, > > Another update of claws-mail and another db problem with maildir plugin ;) > > I've tested the change in comment #3 and it works ! > > Thanks for this change I don't need anymore to manually change the db.h link > before re-emerge the plugin. > > Can you update the ebuild modified in the portage tree please ? > Thanks > Actually, I'm about to mask maildir plugin, as upstream has dropped support for it. It is buggy (prone to errors, maildir vs. maildir+ issues, multiple reported data loss), no dev wants to touch it. Now is the time to step up and start maintaining it upstream if you don't want it to go.
masked and closed