Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 275764 - net-mail/teapop-0.3.8 fails compilataion (and doesn't notice)
Summary: net-mail/teapop-0.3.8 fails compilataion (and doesn't notice)
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Server (show other bugs)
Hardware: x86 Linux
: High major (vote)
Assignee: Net-Mail Packages
Depends on:
Reported: 2009-06-28 23:09 UTC by Markus Baumeister
Modified: 2011-07-21 16:27 UTC (History)
0 users

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


Note You need to log in before you can comment on or make changes to this bug.
Description Markus Baumeister 2009-06-28 23:09:02 UTC
Teapop failed to start (probably also because of this bug), so I tried to rebuild. But Teapop won't rebuild (see below) yet it still tries to install itself (probably braking previously working (=mine) setups).

Results below in "Actual Results". Note that the script seemingly neither notices the compile failure nor the non-existing executable.

Reproducible: Always

Steps to Reproduce:
1. Don't do it on a machine requiring a working teapop.
2. emerge --deep teapop

Actual Results:  

# emerge --deep teapop
Calculating dependencies... done!

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) net-mail/teapop-0.3.8
 * teapop-0.3.8.tar.gz RMD160 SHA1 SHA256 size ;-) ...                   [ ok ]
 * checking ebuild checksums ;-) ...                                     [ ok ]
 * checking auxfile checksums ;-) ...                                    [ ok ]
 * checking miscfile checksums ;-) ...                                   [ ok ]
>>> Unpacking source...
>>> Unpacking teapop-0.3.8.tar.gz to /var/tmp/portage/net-mail/teapop-0.3.8/work
>>> Source unpacked in /var/tmp/portage/net-mail/teapop-0.3.8/work
>>> Compiling source in /var/tmp/portage/net-mail/teapop-0.3.8/work/teapop-0.3.8 ...
 * econf: updating teapop-0.3.8/config/config.guess with /usr/share/gnuconfig/config.guess
 * econf: updating teapop-0.3.8/config/config.sub with /usr/share/gnuconfig/config.sub
./configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --enable-lock=flock,dotlock --enable-homespool=mail --enable-mailspool=/var/spool/mail --enable-apop --disable-ipv6 --with-tcpd --with-mysql=/usr --with-java=/home/baumeist/.gentoo/java-config-2/current-user-vm
creating cache ./config.cache
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler (gcc -O2 -march=athlon-xp -mfpmath=sse -fno-ident -fomit-frame-pointer -pipe -fsched-spec-load -Wl,-O1 -Wl,--sort-common) works... yes
checking whether the C compiler (gcc -O2 -march=athlon-xp -mfpmath=sse -fno-ident -fomit-frame-pointer -pipe -fsched-spec-load -Wl,-O1 -Wl,--sort-common) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking whether make sets ${MAKE}... yes
checking for a BSD compatible install... /usr/bin/install -c
checking for chmod... /bin/chmod
checking for mv... /bin/mv
checking for rm... /bin/rm
checking for sed... /bin/sed
checking for strip... /usr/bin/strip
checking for perl... /usr/bin/perl
checking for piddir... /var/run
checking where mail is... ~/mail
checking which locking method to use... flock,dotlock
checking if APOP should be allowed... yes
checking if virtual domain support should be added... yes
checking for dividers to use... @%
checking if IPv6 support is wanted... no
checking if __P() is defined in <sys/types.h>... no
checking if socklen_t is defined... yes
checking if off_t is defined... yes
checking if tcpd/tcpwrapper should be built... yes
checking for main in -lwrap... yes
checking for PostgreSQL support... no
checking for MySQL support... yes
checking for DRAC support... no
checking for DRAC includefile... n/a
checking for Whoson support... no
checking for Whoson includefile... n/a
checking for popauth file support... no
checking for Java support... yes
checking for java authentication class... TeapopAuth
checking for LDAP authentication support... no
checking for LDAP include file... n/a
checking for LDAP libraries... n/a
checking for crypt in -lcrypt... yes
checking for socket in -lsocket... no
checking for gethostent in -lnsl... yes
checking for flock in -lucb... no
checking for getspnam in -lsec... no
checking for MD5Init in -lmd... no
checking for MD5Init in -lmd5... yes
checking for flock in -lbsd... yes
checking how to run the C preprocessor... gcc -E
checking for crypt.h... yes
checking for md5.h... no
checking for shadow.h... yes
checking for tcpd.h... yes
checking for unistd.h... yes
checking for sys/file.h... yes
checking for ANSI C header files... no
checking for arc4random... no
checking for flock... yes
checking for lockf... yes
checking if system md5 works for us... no
checking if LOCK_* is defined... yes
checking if F_*LOCK is defined... yes
updating cache ./config.cache
creating ./config.status
creating ./Makefile
creating ../Makefile
creating ../bin/Makefile
creating ../etc/Makefile
creating ../man/Makefile
creating ../teapop/Makefile
creating config.h
Updating Makefile
Updating Makefile
Updating Makefile
Updating Makefile
make -j1
===> Building Teapop
===> Building in config...
make[1]: Entering directory `/var/tmp/portage/net-mail/teapop-0.3.8/work/teapop-0.3.8/config'
make[1]: Nothing to be done for `build'.
make[1]: Leaving directory `/var/tmp/portage/net-mail/teapop-0.3.8/work/teapop-0.3.8/config'
===> Building in teapop...
make[1]: Entering directory `/var/tmp/portage/net-mail/teapop-0.3.8/work/teapop-0.3.8/teapop'
gcc -I../include -I../config -DETC_DIR=\"/etc\" -DVAR_DIR=\"/var/lib\" -O2 -march=athlon-xp -mfpmath=sse -fno-ident -fomit-frame-pointer -pipe -fsched-spec-load -I/usr/include/mysql -I/home/baumeist/.gentoo/java-config-2/current-user-vm/include -I/home/baumeist/.gentoo/java-config-2/current-user-vm/include/linux -c md5c.c -o md5c.o
gcc -I../include -I../config -DETC_DIR=\"/etc\" -DVAR_DIR=\"/var/lib\" -O2 -march=athlon-xp -mfpmath=sse -fno-ident -fomit-frame-pointer -pipe -fsched-spec-load -I/usr/include/mysql -I/home/baumeist/.gentoo/java-config-2/current-user-vm/include -I/home/baumeist/.gentoo/java-config-2/current-user-vm/include/linux -c pop_auth.c -o pop_auth.o
In file included from pop_auth.c:38:
../config/config.h:67:1: warning: "__P" redefined
In file included from /usr/include/features.h:330,
                 from /usr/include/sys/types.h:27,
                 from pop_auth.c:30:
/usr/include/sys/cdefs.h:74:1: warning: this is the location of the previous definition
pop_auth.c:49: error: 'pop_auth' redeclared as different kind of symbol
../include/pop_auth.h:34: error: previous declaration of 'pop_auth' was here
pop_auth.c: In function 'pop_auth':
pop_auth.c:60: error: called object 'pop_send_hello' is not a function
pop_auth.c:97: error: called object 'pop_cmd_capa' is not a function
pop_auth.c:148: error: called object 'pop_cmd_capa' is not a function
pop_auth.c:161: error: called object 'pop_string_find' is not a function
pop_auth.c:177: error: called object 'pop_verify_password' is not a function
make[1]: *** [pop_auth.o] Error 1
make[1]: Leaving directory `/var/tmp/portage/net-mail/teapop-0.3.8/work/teapop-0.3.8/teapop'
===> Building in bin...
make[1]: Entering directory `/var/tmp/portage/net-mail/teapop-0.3.8/work/teapop-0.3.8/bin'
make[1]: Leaving directory `/var/tmp/portage/net-mail/teapop-0.3.8/work/teapop-0.3.8/bin'
===> Building in etc...
make[1]: Entering directory `/var/tmp/portage/net-mail/teapop-0.3.8/work/teapop-0.3.8/etc'
Creating example teapop.passwd
make[1]: Leaving directory `/var/tmp/portage/net-mail/teapop-0.3.8/work/teapop-0.3.8/etc'
===> Building in man...
make[1]: Entering directory `/var/tmp/portage/net-mail/teapop-0.3.8/work/teapop-0.3.8/man'
Creating example teapop.8
make[1]: Leaving directory `/var/tmp/portage/net-mail/teapop-0.3.8/work/teapop-0.3.8/man'
>>> Source compiled.
>>> Test phase [not enabled]: net-mail/teapop-0.3.8

>>> Install teapop-0.3.8 into /var/tmp/portage/net-mail/teapop-0.3.8/image/ category net-mail
===> Installing Teapop
Run make first
mv: cannot stat `/var/tmp/portage/net-mail/teapop-0.3.8/image//usr/libexec/teapop': No such file or directory
>>> Completed installing teapop-0.3.8 into /var/tmp/portage/net-mail/teapop-0.3.8/image/

>>> Installing (1 of 1) net-mail/teapop-0.3.8
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

Expected Results:  
A correctly installed teapop. Alternatively a non-uninstalled old version of teapop.

# emerge --info
Portage (default/linux/x86/2008.0, gcc-4.1.2, glibc-2.9_p20081201-r2, 2.6.24-gentoo-r4 i686)
System uname: Linux-2.6.24-gentoo-r4-i686-AMD_Duron-tm-_processor-with-glibc2.0
Timestamp of tree: Sun, 28 Jun 2009 16:45:01 +0000
distcc 2.16 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
app-shells/bash:     3.2_p39
dev-java/java-config: 2.1.7
dev-lang/python:     2.4.4-r13, 2.5.4-r2
dev-python/pycrypto: 2.0.1-r6
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63
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.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.27-r2
CFLAGS="-O2 -march=athlon-xp -mfpmath=sse -fno-ident -fomit-frame-pointer -pipe -fsched-spec-load"
CONFIG_PROTECT="/etc /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-O2 -march=athlon-xp -mfpmath=sse -fno-ident -fomit-frame-pointer -pipe -fsched-spec-load"
FEATURES="autoaddcvs distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
LDFLAGS="-Wl,-O1 -Wl,--sort-common"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
USE="3dnow X X86 acl acpi alsa apache2 berkdb bzip2 bzlib cdr cli cracklib crypt cups dri dvd ethereal exif firefox fortran ftp gdbm gif glibc-omitfp gnutls gphoto2 gpm gtk hardened iconv imagemagick isdnlog java jpeg mbox midi mime mmx mozilla mudflap mysql ncurses nis nls nptl nptlonly offensive ogg openmp pam pcre perl php png pnp posix pppd python readline reflection samba session sockets spl sse ssl svg sysfs sysvipc tcltk tcpd tetex tiff tk trusted udev unicode usb vorbis wxgtk1 wxwindows x86 xface 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 mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="auth_basic auth_dbm auth_anon auth_digest authz_host alias file_cache charset_lite cache disk_cache mem_cache ext_filter filter deflate mime_magic cern_meta expires headers usertrack unique_id info include dav dav_fs vhost_alias speling rewrite log_config logio env setenvif mime status autoindex asis negotiation dir actions userdir" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="apm mach64 vesa"
Comment 1 Markus Baumeister 2009-06-29 17:53:46 UTC
I looked a bit more into this:
This seems to be an automake/configure problem. The problem is cause by define the preprocessor macro __P for function prototypes twice. One time in the automatically created config/config.h file:

--- snip ---
/* Give __P() to ppl who don't have it */
#define NEED_P 1
#ifdef NEED_P
#define __P(proto) proto
#define __P(proto)
--- snip ----

which is in turn caused by configure thinking that this definition is necessary:

--- snip ---
checking if IPv6 support is wanted... no
checking if __P() is defined in <sys/types.h>... no
checking if socklen_t is defined... yes
--- snip ---

This is again a bit surprising because after all __P is defined in /usr/include/sys/cdefs.h which is included two levels deep from sys/types.h. Although it seems the authors of that file don't really think the definition belongs there either:
--- snip ---
/* These two macros are not used in glibc anymore.  They are kept here
   only because some other projects expect the macros to be defined.  */
#define __P(args)	args
#define __PMT(args)	args
--- snip ---

I don't understand enough of configure to debug why it doesn't see that __P is defined already.

The problem is not compiler bound. I gcc-config'ed from gcc-4.1.2 to gcc-4.3.2 and the problem is still there. Will now try to reinstall glibc with the new compiler and see what happens (although I doubt it will help).
Comment 2 Eray Aslan gentoo-dev 2011-07-21 16:27:49 UTC
Closing as net-mail/teapop is no longer in the tree.