driver.c:(.text+0x18de): undefined reference to `krb5_init_ets' Looks like kerberos libraries are not linked in as they should. Reproducible: Always Steps to Reproduce: 1.USE="kerberos" emerge fetchmail 2. Enjoy your instance of a boog :) Actual Results: x86_64-pc-linux-gnu-gcc -L/usr/lib -L/usr/lib -L/usr/lib rcfile_y.o rcfile_l.o socket.o getpass.o pop2.o pop3.o imap.o etrn.o odmr.o fetchmail.o idle.o env.o options.o daemon.o driver.o transact.o sink.o rfc822.o smtp.o xmalloc.o uid.o mxget.o md5ify.o cram.o kerberos.o gssapi.o opie.o rpa.o interface.o netrc.o base64.o report.o unmime.o conf.o checkalias.o smbdes.o smbencrypt.o smbmd4.o smbutil.o ipv6-connect.o lock.o md5c.o -lkrb5 -lcrypt -lcom_err -lk5crypto -lssl -lcrypto -lgssapi_krb5 -lfl -o fetchmail driver.o: In function `do_session': driver.c:(.text+0x18de): undefined reference to `krb5_init_ets' collect2: ld returned 1 exit status Expected Results: link it properly Portage 2.0.51.22-r1 (default-linux/amd64/2004.3, gcc-3.4.4, glibc-2.3.5-r0, 2.6.11-gentoo-r9 x86_64) ================================================================= System uname: 2.6.11-gentoo-r9 x86_64 Mobile AMD Athlon(tm) 64 Processor 3200+ Gentoo Base System version 1.6.12 ccache version 2.4 [disabled] dev-lang/python: 2.3.5, 2.4.1-r1 sys-apps/sandbox: 1.2.9 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5 sys-devel/binutils: 2.16.1 sys-devel/libtool: 1.5.18 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=athlon64 -pipe -frename-registers" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-O2 -march=athlon64 -pipe -frename-registers" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig buildpkg distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://mirror.datapipe.net/gentoo" LDFLAGS="-Wl,-O1 -Wl,-z,now" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage /usr/local/portage-fluid /usr/local/gentoo-de" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 X a52 aac aalib acl acpi alsa avi bash-completion bitmap-fonts cdparanoia cdr crypt cscope cups curl dv dvd dvdr dvdread edl eds encode esd fam flac font-server fortran gd gdbm ggi gif glut gnustep gpm gtk guile imagemagick imap imlib java jp2 jpeg junit kde kerberos latex libwww live lzo lzw lzw-tiff mad matroska mikmod mjpeg motif mozilla mp3 mpeg multilib mythtv ncurses network nptl objc ogg oggvorbis opengl oss pam perl png python qt readline rtc samba scanner sdl slang softmmu ssl tcltk tcpd tetex theora tiff truetype truetype-fonts type1-fonts usb userlocales vorbis xanim xine xml xml2 xmms xosd xpm xrandr xv xvid xvmc zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LINGUAS, MAKEOPTS #; - I believe LDFLAGS are not the source of that problem... at least they shouldnt. - to confirm attempted recompiling both mit-krb5 and fetchmail w/o them, no gain.
Created attachment 62168 [details, diff] patch from fedora source frpm fixing this problem. Google search shows krb5_init_ets is no longer necessary and is not part of the public API anymore. Attached is a patch from the redhat fetchmail 6.2.5-7 src rpm. It's pretty simple, just remove the krb5_init_ets() line from driver.c.
Why wasn't this 'bug' caught in the testing branch? I belive an emerge should never fail like that on the stable tree. I mean, No offence guys, I run testing on both my workstation and my laptop and don't mind to mess around and fix things and report them. But 'stable' tree should 'just work' (tm). (Instead of anyone feeling offended we should figure out why this happend and how to prevent it from happening again) : )
Andy, thanks for the patch there. Node, you are absolutely 100% correct. It should have been caught. However, we were caught by 2 security vulnerabilities in mit_krb5. That is to say, the upstream developers caught the vulnerabilities, and released 1.4 and 1.4.1 in response to those vulnerabilities. With that, we were left with the choice: 1. keep vulnerable systems, 2. update to not-quite-as-tested-as-I-wanted versions. I honestly did not want 1.4* to hit stable at all for a while, because I wasn't completely satisfied with it. Time was not on my side in this go. You have my fullest apologies for the inconvenience caused you. I'm happy to talk with you offline about this in irc or via email, so please do feel free to contact me further :)
The provided patch has been used in 6.2.5 and later ebuilds, now in CVS portage. Thanks a lot, both of you.