creating cache ./config.cache checking for a BSD compatible install... /bin/install -c checking whether ln -s works... yes checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for limits.h... yes checking for strings.h... yes checking for syslog.h... yes checking for unistd.h... yes checking for obsolete openlog... no checking for working const... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for gethostname in -lnsl... yes checking for socket in -lsocket... no checking return type of signal handlers... void checking for vprintf... yes checking for gethostname... yes checking for socket... yes checking for strdup... yes checking for strstr... yes updating cache ./config.cache creating ./config.status creating Makefile rm -f ssmtp *.o core gcc -Wall -DSTDC_HEADERS=1 -DHAVE_LIMITS_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIBNSL=1 -DRETSIGTYPE=void -DHAVE_VPRINTF=1 -DHAVE_GETHOSTNAME=1 -DHAVE_SOCKET=1 -DHAVE_STRDUP=1 -DHAVE_STRSTR=1 -DREWRITE_DOMAIN=1 -DHAVE_SSL=1 -DINET6=1 -DMD5AUTH=1 -DSSMTPCONFDIR=\"/etc/ssmtp\" -DCONFIGURATION_FILE=\"/etc/ssmtp/ssmtp.conf\" -DREVALIASES_FILE=\"/etc/ssmtp/revaliases\" -march=pentium3 -Os -pipe -ffast-math -fomit-frame-pointer -c -o ssmtp.o ssmtp.c ssmtp.c: In function `header_parse': ssmtp.c:720: warning: `q' might be used uninitialized in this function ssmtp.c: In function `smtp_open': ssmtp.c:948: warning: `s' might be used uninitialized in this function ssmtp.c: In function `ssmtp': ssmtp.c:1305: `authUsername' undeclared (first use in this function) ssmtp.c:1305: (Each undeclared identifier is reported only once ssmtp.c:1305: for each function it appears in.) ssmtp.c:1305: `authPassword' undeclared (first use in this function) ssmtp.c:1226: warning: unused variable `q' ssmtp.c:1231: warning: unused variable `i' ssmtp.c: At top level: ssmtp.c:1332: parse error before string constant ssmtp.c:1332: warning: type defaults to `int' in declaration of `smtp_write' ssmtp.c:1332: conflicting types for `smtp_write' ssmtp.c:1185: previous declaration of `smtp_write' ssmtp.c:1332: warning: data definition has no type or storage class ssmtp.c:1334: parse error before "void" ssmtp.c:1346: warning: type defaults to `int' in declaration of `rt' ssmtp.c:1346: conflicting types for `rt' ssmtp.c:89: previous declaration of `rt' ssmtp.c:1346: warning: data definition has no type or storage class ssmtp.c:1348: parse error before "while" ssmtp.c:1350: parse error before string constant ssmtp.c:1350: warning: type defaults to `int' in declaration of `smtp_write' ssmtp.c:1350: warning: data definition has no type or storage class ssmtp.c:1352: parse error before "void" ssmtp.c:1358: warning: type defaults to `int' in declaration of `rt' ssmtp.c:1358: invalid type argument of `->' ssmtp.c:1358: warning: data definition has no type or storage class ssmtp.c:1359: parse error before '}' token ssmtp.c:1362: `i' undeclared here (not in a function) ssmtp.c:1362: parse error before '!=' token ssmtp.c:1367: parse error before string constant ssmtp.c:1367: warning: type defaults to `int' in declaration of `smtp_write' ssmtp.c:1367: warning: data definition has no type or storage class ssmtp.c:1369: parse error before "void" ssmtp.c:1375: warning: type defaults to `int' in declaration of `p' ssmtp.c:1375: warning: initialization makes integer from pointer without a cast ssmtp.c:1375: initializer element is not constant ssmtp.c:1375: warning: data definition has no type or storage class ssmtp.c:1376: parse error before '}' token ssmtp.c:1381: parse error before string constant ssmtp.c:1381: warning: type defaults to `int' in declaration of `smtp_write' ssmtp.c:1381: warning: data definition has no type or storage class ssmtp.c:1382: parse error before "void" ssmtp.c:1390: parse error before string constant ssmtp.c:1390: warning: type defaults to `int' in declaration of `smtp_write' ssmtp.c:1390: warning: data definition has no type or storage class ssmtp.c:1406: warning: type defaults to `int' in declaration of `ht' ssmtp.c:1406: conflicting types for `ht' ssmtp.c:75: previous declaration of `ht' ssmtp.c:1406: warning: data definition has no type or storage class ssmtp.c:1407: parse error before "while" ssmtp.c:1409: warning: type defaults to `int' in declaration of `ht' ssmtp.c:1409: invalid type argument of `->' ssmtp.c:1409: warning: data definition has no type or storage class ssmtp.c:1410: parse error before '}' token ssmtp.c:1415: parse error before string constant ssmtp.c:1415: warning: type defaults to `int' in declaration of `smtp_write' ssmtp.c:1415: warning: data definition has no type or storage class ssmtp.c:1421: parse error before string constant ssmtp.c:1421: warning: type defaults to `int' in declaration of `smtp_write' ssmtp.c:1421: warning: data definition has no type or storage class ssmtp.c:1423: parse error before "void" ssmtp.c:1427: parse error before string constant ssmtp.c:1427: warning: type defaults to `int' in declaration of `smtp_write' ssmtp.c:1427: warning: data definition has no type or storage class ssmtp.c:1428: parse error before "void" ssmtp.c:1437: parse error before string constant ssmtp.c:1437: warning: type defaults to `int' in declaration of `smtp_write' ssmtp.c:1437: warning: data definition has no type or storage class ssmtp.c:1438: parse error before "void" ssmtp.c:1441: parse error before numeric constant ssmtp.c:1441: warning: type defaults to `int' in declaration of `log_event' ssmtp.c:1441: conflicting types for `log_event' ssmtp.c:104: previous declaration of `log_event' ssmtp.c:1441: warning: type defaults to `int' in declaration of `buf' ssmtp.c:1441: parse error before ')' token make: *** [ssmtp.o] Error 1 !!! ERROR: net-mail/ssmtp-2.60.3 failed. !!! Function src_compile, Line 36, Exitcode 2 !!! (no error message) It works with USE="-md5sum" Reproducible: Always Steps to Reproduce: 1. USE=md5sum emerge ssmtp Actual Results: it breaks :( Expected Results: it should work :) Portage 2.0.49_pre16 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1) ================================================================= System uname: 2.4.22-pre6-ac1 i686 Intel(R) Celeron(TM) CPU 1133MHz GENTOO_MIRRORS="http://gentoo.inode.at/ ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://ftp.tu-clausthal.de/pub/linux/gentoo/" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages/andy" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="/usr/portage/local/" USE="x86 aalib aavm acl acpi acpi4linux alsa arts avi berkdb bonobo bots crypt cups curl dga directfb dnd dvd encode esd ethereal evo faad fbcon fbdev gb gd gdbm ggi gif gnome gnomedb gphoto2 gstreamer gtk gtk2 gtkhtml i8x0 imap imlib innodb ipv6 java joystick jpeg junit ldap libg libgda libwww lmtp mad maildir matroska mbox mcal memlimit mmx mng motif mozilla mozinterfaceinfo moznocompose moznoirc moznomail mozp3p mozsvg mozxmlterm music mysql ncurses odbc offensive oggvorbis openal opengl pam pda pdflib perl pic plotutils png python qt quicktime readline samba sasl sdl slang slp snmp spell sse ssl tcltk tcpd tetex tiff truetype type1 usagi usb v4l wmf wxwindows X Xaw3d xface xinerama xml xml2 xmms xv xvid zlib" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium3 -Os -pipe -ffast-math -fomit-frame-pointer" CXXFLAGS="-march=pentium3 -Os -pipe -ffast-math -fomit-frame-pointer" ACCEPT_KEYWORDS="x86 ~x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" FEATURES="ccache sandbox buildpkg usersandbox userpriv"
Ugg...and dcron depends on ssmtp.
The source code contains a few errors: variable names that haven't been updated from the old 2.5.x builds and even an incorrect number of opening parentheses. Furthurmore, the configure script does not attempt to add the md5auth-specific stuff to the Makefile.
Created attachment 16403 [details, diff] ssmtp-2.60.3 md5auth features patch This is a patch which allows ssmtp-2.60.3 to successfully compile when md5sum is set in USE flags. :)
Created attachment 16755 [details, diff] Typo fix for the ebuild Well, what caused this bug appears to be just a typo in the ebuild. Brandy's patch , which looks like it'll fix those annoying compiler errors, is definately cool though. I'll try to merge them. Here's the "simple fix" for now...
Carefully tested, it really looks like the "simple fix" is all that is needed.
Unfortunately the "simple fix" is not a fix at all. The ssmtp configure script contains: ac_help="$ac_help --enable-md5suth support for MD5 authentication" so there's no typo in the ebuild. In fact the configure script will happily ignore --enable-md5auth and disable md5 authentication. The purpose of --enable-md5suth is to define the macro MD5AUTH. With this macro defined the md5-specific code will be built. Since this code is currently in a non-compilable state, without a patch it will fail. Since the simple fix did not patch the ssmtp source code, this is furthur evidence that it didn't have any effect. I must admit though that my first impression upon seeing this bug was that there was a typo in the ebuild (who on earth would use md5suth instead of md5auth to represent md5 authentication?) :)
Okay, thanks for rectifying that. But yeah, it sure looked like a typo... Your patch works for me.
Comment on attachment 16755 [details, diff] Typo fix for the ebuild Wrong impression, as noted by brandy.
Still a problem in 2.60.4
Fortunately the md5auth patch can also be used with ssmtp-2.60.4
Created attachment 18280 [details, diff] Patch to ssmtp-2.60.4.ebuild You mean, something along these lines?
fixed