Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 27517 - courier-imap-2.1.1 fails to emerge
Summary: courier-imap-2.1.1 fails to emerge
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Server (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Robin Johnson
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-08-29 00:54 UTC by Stefan Sarzio
Modified: 2003-09-25 18:48 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
courier-imap-2.1.1 db3 patch (courier-imap-2.1.1.db.patch,559 bytes, patch)
2003-08-29 21:08 UTC, Brandy Westcott (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Sarzio 2003-08-29 00:54:09 UTC
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"
Comment 1 Brandy Westcott (RETIRED) gentoo-dev 2003-08-29 21:05:57 UTC
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)) 
 
 
Comment 2 Brandy Westcott (RETIRED) gentoo-dev 2003-08-29 21:08:39 UTC
Created attachment 16793 [details, diff]
courier-imap-2.1.1 db3 patch

This patch allows courier-imap-2.1.1 to successfully use db3.
Comment 3 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2003-09-03 02:51:07 UTC
thanks brandy. the patch works and added it into the ebuild.
I'll see about passing it on upstream as it belongs there.
Comment 4 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2003-09-03 02:51:36 UTC
note to self: pass patch upstream.
Comment 5 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2003-09-25 18:48:52 UTC
patch sent upstream to courier-imap@lists.sf.net