Same problem without distcc. Reproducible: Always Steps to Reproduce: 1. emerge --update courier-imap 2. 3. Actual Results: make[2]: Entering directory `/var/tmp/portage/courier-imap-2.1.1/work/courier-imap-2.1.1/bdbobj' Compiling bdbobj.c Compiling bdbobj2.c Compiling bdbobj3.c Compiling testbdb.C bdbobj.c: In function `bdbobj_open': bdbobj.c:137: incompatible type for argument 4 of indirect function call bdbobj.c:137: too many arguments to function distcc[18100] ERROR: compile on 192.168.73.2 failed make[2]: *** [bdbobj.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory `/var/tmp/portage/courier-imap-2.1.1/work/courier-imap-2.1.1/bdbobj' make[1]: *** [all] Error 2 make[1]: Leaving directory `/var/tmp/portage/courier-imap-2.1.1/work/courier-imap-2.1.1/bdbobj' make: *** [all-recursive] Error 1 !!! ERROR: net-mail/courier-imap-2.1.1 failed. !!! Function src_compile, Line 112, Exitcode 2 !!! compile problem Portage 2.0.49-r1 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 2.4.21-openmosix) ================================================================= System uname: 2.4.21-openmosix i686 AMD-K7(tm) Processor distcc 2.10 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ccache version 2.2 [enabled] ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=athlon -O2 -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config /usr/kde/2/share/config /usr/kde/3/share/config /var/bind /usr/X11R6/lib/X11/xkb /var/spool/amanda/.amandahosts" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O2 -mcpu=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs sandbox buildpkg ccache distcc" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j6" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.salze.net/gentoo-x86-portage" USE="x86 3dnow foomaticdb libg++ mad mikmod berkdb slang esd vdr_vfat -mmx apm -pcmcia pnp nls readline -trusted -cdr -cups snmp slp -mozilla X -motif -dga -opengl -xv -gpm -kde -qt -qtmt -arts gtk -gtk2 -gnome -gb -bonobo -libwww libgda -gtkhtml -tcltk ncurses sdl svga imlib lcms gif wmf jpeg png tiff gd avi oggvorbis mpeg quicktime -alsa oss dvd -xmms ggz pam ssl -crypt -imap -maildir -mbox tcpd -spell -truetype -xml -xml2 -pdflib -java -jikes python perl -gdbm -doc -odbc mysql -innodb zlib -galeon -openoffice encode -samba apache apache2 php mod_php mod_ssl -plotutils"
The compile is failing in this block of code from bdbobj.c : if ( (*obj->dbf->open)(obj->dbf, #if DB_40 #else NULL, #endif filename, NULL, dbtype, flags, 0664)) So if we are not using db-4.0 then an extra NULL argument is inserted into the funtion. But both db-3.2 and db-4.0 have the same function definition: int (*open) __P((DB *, const char *, const char *, DBTYPE, u_int32_t, int)); In fact the DB_40 macro seems to be a check to see whether we are using db-4.1, since db-4.1 does require an extra argument in the funtion (*open): int (*open) __P((DB *, DB_TXN *, const char *, const char *, DBTYPE, u_int32_t, int)); A more consistent check would be to use a macro DB_41: #define DB_41 0 #if DB_VERSION_MAJOR == 4 #if DB_VERSION_MINOR == 1 #undef DB_41 #define DB_41 1 #endif #endif if (db_create(&obj->dbf, NULL, 0) == 0) { if ( (*obj->dbf->open)(obj->dbf, #if DB_41 NULL, #else #endif filename, NULL, dbtype, flags, 0664))
Created attachment 16793 [details, diff] courier-imap-2.1.1 db3 patch This patch allows courier-imap-2.1.1 to successfully use db3.
thanks brandy. the patch works and added it into the ebuild. I'll see about passing it on upstream as it belongs there.
note to self: pass patch upstream.
patch sent upstream to courier-imap@lists.sf.net