The xscreensaver package can detect krb5 and krb4 at ./configure time, but it assumes that krb5 has been built with krb4 support (and the code seems to require it). This is not the case for the USE='+kerberos -krb4' use-flags situation. I think the correct thing to do in this situation is either fail when this combination is detected, or disable the kerberos use-flag if krb4 isn't also enabled (with a warning, naturally). Reproducible: Always Steps to Reproduce: 1. USE='+kerberos -krb4' emerge x11-misc/xscreensaver Actual Results: # USE='+kerberos -krb4' emerge x11-misc/xscreensaver Calculating dependencies ...done! >>> emerge (1 of 1) x11-misc/xscreensaver-4.10 to / >>> md5 src_uri ;-) xscreensaver-4.10.tar.gz >>> Unpacking source... >>> Unpacking xscreensaver-4.10.tar.gz to /var/tmp/portage/xscreensaver-4.10/work * Applying xscreensaver-4.10-norpm.patch... [ ok ]>>> Source unpacked. gtk pam kerberos opengl jpeg nls configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used. current directory: /var/tmp/portage/xscreensaver-4.10/work/xscreensaver-4.10 command line was: ./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --enable-hackdir=/usr/lib/xscreensaver --x-libraries=/usr/X11R6/lib --x-includes=/usr/X11R6/include --with-mit-ext --with-dpms-ext --with-xf86vmode-ext --with-xf86gamma-ext --with-proc-interrupts --with-xpm --with-xshm-ext --with-xdbe-ext --enable-locking --with-fortune=/usr/bin/fortune --without-motif --with-gtk --with-xml --without-xinerama-ext --with-pam --with-kerberos --with-gl --with-gle --with-jpeg --enable-nls checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu . . . gcc -Wall -Wstrict-prototypes -Wnested-externs -std=c89 -U__STRICT_ANSI__ -L/usr/lib -o xscreensaver xscreensaver.o windows.o timers.o subprocs.o exec.o xset.o splash.o setuid.o stderr.o prefs.o dpms.o lock.o passwd.o passwd-kerberos.o passwd-pam.o passwd-pwent.o ../utils/fade.o ../utils/overlay.o ../utils/logo.o ../utils/yarandom.o ../utils/resources.o ../utils/usleep.o ../utils/visual.o -L/usr/X11R6/lib -lXmu -lXss -lXxf86vm -lXxf86misc -lSM -lICE -lXt -lX11 -lXext -lpam -ldl -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err -lcrypt -lresolv -lcrypt /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.2/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lkrb4 collect2: ld returned 1 exit status make[1]: *** [xscreensaver] Error 1 make[1]: Leaving directory `/var/tmp/portage/xscreensaver-4.10/work/xscreensaver-4.10/driver' make: *** [default] Error 5 !!! ERROR: x11-misc/xscreensaver-4.10 failed. !!! Function src_compile, Line 118, Exitcode 2 !!! (no error message) Expected Results: As a workaround, disabling kerberos altogether results in the ebuild succeeding as expected: # USE='-kerberos -krb4' emerge x11-misc/xscreensaver Calculating dependencies ...done! >>> emerge (1 of 1) x11-misc/xscreensaver-4.10 to / >>> md5 src_uri ;-) xscreensaver-4.10.tar.gz >>> Unpacking source... >>> Unpacking xscreensaver-4.10.tar.gz to /var/tmp/portage/xscreensaver-4.10/work * Applying xscreensaver-4.10-norpm.patch... [ ok ]>>> Source unpacked. gtk pam opengl jpeg nls configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used. current directory: /var/tmp/portage/xscreensaver-4.10/work/xscreensaver-4.10 command line was: ./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --enable-hackdir=/usr/lib/xscreensaver --x-libraries=/usr/X11R6/lib --x-includes=/usr/X11R6/include --with-mit-ext --with-dpms-ext --with-xf86vmode-ext --with-xf86gamma-ext --with-proc-interrupts --with-xpm --with-xshm-ext --with-xdbe-ext --enable-locking --with-fortune=/usr/bin/fortune --without-motif --with-gtk --with-xml --without-xinerama-ext --with-pam --without-kerberos --with-gl --with-gle --with-jpeg --enable-nls checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu . . . >>> Merging x11-misc/xscreensaver-4.10 to / . . . >>> Regenerating /etc/ld.so.cache... >>> x11-misc/xscreensaver-4.10 merged. . . . * GNU info directory index is up-to-date. Portage 2.0.48-r1 (default-x86-1.4, gcc-3.2.2, glibc-2.3.1-r4) ================================================================= System uname: 2.4.20-gentoo-r5 i686 AMD Athlon(tm) Processor GENTOO_MIRRORS="ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo http://ftp.easynet .nl/mirror/gentoo http://gentoo.oregonstate.edu/ http://www.ibiblio.org/pub/Linu x/distributions/gentoo" CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="/usr/local/portage" USE="x86 apm -3dfx 3dnow aalib acp acpi alsa apache2 -arts avi berkdb bonobo canna cdr cjk crypt curl cups dga directfb doc dvb dvd emacs encode esd ethereal evo fbcon gb gd gdbm ggi gif gnome gphoto2 gpm gps gtk gtk2 gtkhtml guile imap imlib -innodb ipv6 java jikes jpeg junit -kde kerberos ladcca lcms ldap leim libg++ libgda libwww -lirc maildir -matrox mbox mikmod mmx motif mozilla mpeg mpi mule -mysql nas ncurses nls -nocardbus -oav -oci8 -odbc oggvorbis opengl oss pam -pcmcia pda pdflib perl pic plotutils png pnp postgres python qt qtmt quicktime readline samba sasl scanner sdl slang slp snmp -socks5 spell ssl svga tcltk tcpd tetex tiff truetype usb -voodoo3 -wavelan wmf X Xaw3d xface -xinerama xml2 xmms xv zlib" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -maccumulate-outgoing-args" CXXFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -maccumulate-outgoing-args" ACCEPT_KEYWORDS="x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" FEATURES="sandbox ccache usersandbox fixpackages" The version of kerberos installed is: # qpkg -I -v krb app-crypt/mit-krb5-1.2.7 * I hope this helps. - Andrew
thank you for your detailed report. i've chosen the second option for the moment, but i'm still not too happy with it. xscreensaver only seems to allow kerberos4 support only, or kerberos4 and kerberos5 support, but not kerberos5 only. this will have to do for now until someone has time to patch passwd-kerberos.c to make a kerberos5 only version.
Funny. When I did this, it still didn't work: localhost root # USE="-kerberos -krb4 -krb5" emerge x11-misc/xscreensaver Calculating dependencies ...done! >>> emerge (1 of 1) x11-misc/xscreensaver-4.05-r3 to / >>> md5 src_uri ;-) xscreensaver-4.05.tar.gz >>> Unpacking source... >>> Unpacking xscreensaver-4.05.tar.gz to /var/tmp/portage/xscreensaver-4.05-r3/work >>> Source unpacked. gnome gtk motif pam opengl configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used. current directory: /var/tmp/portage/xscreensaver-4.05-r3/work/xscreensaver-4.05 command line was: ./configure --prefix=/usr --mandir=/usr/share/man --host=i686-pc-linux-gnu --x-libraries=/usr/X11R6/lib --x-includes=/usr/X11R6/includes --enable-hackdir=/usr/lib/xscreensaver --with-mit-ext --with-dpms-ext --with-xinerama-ext --with-xf86vmode-ext --with-xf86gamma-ext --with-proc-interrupts --with-xpm --with-xshm-ext --with-xdbe-ext --enable-locking --with-gnome --with-gtk --with-motif --with-pam --with-gl --with-gle ***--- Notice no --with-kerberos here ---*** ...various config checks... checking for PAM... yes checking for dlopen in -ldl... yes checking how to call pam_strerror... two arguments checking for Kerberos 4... no checking for Kerberos 5... yes ***--- Hmmm...still looking for kerberos? ---*** ...more config checks... configure: creating ./config.status config.status: creating Makefile config.status: creating utils/Makefile config.status: creating driver/Makefile config.status: creating hacks/Makefile config.status: creating hacks/glx/Makefile config.status: creating po/Makefile.in config.status: creating driver/XScreenSaver.ad config.status: creating driver/xscreensaver.kss config.status: creating config.h config.status: executing default-1 commands config.status: executing default-2 commands ################################################################# Warning: Use of Motif was requested, but it wasn't found; Gtk will be used instead. Warning: Use of the Gnome Control Panel was requested, but the necessary headers and/or libraries were not found. Warning: Unable to determine the MesaGL version number! Make sure you are using version 3.4 or newer. ################################################################# User programs will be installed in /usr/bin/ Screen savers will be installed in /usr/lib/xscreensaver/ Configuration will be installed in /usr/lib/xscreensaver/config/ ***--- Many compilations ensue... ---*** gcc -Wall -Wstrict-prototypes -Wnested-externs -Wno-format -std=c89 -U__STRICT_ANSI__ -c -I. -I. -I./../utils -I.. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/libglade-2.0 -I/usr/include/libxml2 -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include -DHAVE_CONFIG_H -march=pentium3 -O3 -pipe -I/usr/X11R6/includes passwd.c gcc -Wall -Wstrict-prototypes -Wnested-externs -Wno-format -std=c89 -U__STRICT_ANSI__ -c -I. -I. -I./../utils -I.. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/libglade-2.0 -I/usr/include/libxml2 -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include -DHAVE_CONFIG_H -march=pentium3 -O3 -pipe -I/usr/X11R6/includes passwd-kerberos.c passwd-kerberos.c: In function `kerberos_lock_init': passwd-kerberos.c:96: warning: implicit declaration of function `tf_init' passwd-kerberos.c:101: warning: implicit declaration of function `tf_get_pname' passwd-kerberos.c:102: warning: implicit declaration of function `tf_get_pinst' passwd-kerberos.c:107: warning: implicit declaration of function `tf_close' passwd-kerberos.c: In function `kerberos_passwd_valid_p': passwd-kerberos.c:165: warning: passing arg 1 of `des_string_to_key' discards qualifiers from pointer target type gcc -Wall -Wstrict-prototypes -Wnested-externs -Wno-format -std=c89 -U__STRICT_ANSI__ -c -I. -I. -I./../utils -I.. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/libglade-2.0 -I/usr/include/libxml2 -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include -DHAVE_CONFIG_H -march=pentium3 -O3 -pipe -I/usr/X11R6/includes passwd-pam.c gcc -Wall -Wstrict-prototypes -Wnested-externs -Wno-format -std=c89 -U__STRICT_ANSI__ -c -I. -I. -I./../utils -I.. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/libglade-2.0 -I/usr/include/libxml2 -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include -DHAVE_CONFIG_H -march=pentium3 -O3 -pipe -I/usr/X11R6/includes passwd-pwent.c gcc -Wall -Wstrict-prototypes -Wnested-externs -Wno-format -std=c89 -U__STRICT_ANSI__ -L/usr/lib -o xscreensaver xscreensaver.o windows.o timers.o subprocs.o exec.o xset.o splash.o setuid.o stderr.o prefs.o dpms.o lock.o passwd.o passwd-kerberos.o passwd-pam.o passwd-pwent.o ../utils/fade.o ../utils/overlay.o ../utils/logo.o ../utils/yarandom.o ../utils/resources.o ../utils/usleep.o ../utils/visual.o -L/usr/X11R6/lib -lXmu -lXss -lXinerama -lXxf86vm -lSM -lICE -lXt -lX11 -lXext -lpam -ldl -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcrypt -lcom_err -lresolv -lcrypt /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lkrb4 collect2: ld returned 1 exit status make[1]: *** [xscreensaver] Error 1 make[1]: Leaving directory `/var/tmp/portage/xscreensaver-4.05-r3/work/xscreensaver-4.05/driver' make: *** [default] Error 5 !!! ERROR: x11-misc/xscreensaver-4.05-r3 failed. !!! Function src_compile, Line 82, Exitcode 2 !!! (no error message)
the fix is only in 4.10, it is currently the latest x86 stable xscreensaver. if you're using a diff arch open a new bug about it