Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 22937 - x11-misc/xscreensaver with use +kerberos -krb4 fails to build
Summary: x11-misc/xscreensaver with use +kerberos -krb4 fails to build
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High minor
Assignee: Alastair Tse (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-06-16 11:22 UTC by ajs
Modified: 2003-06-18 09:24 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ajs 2003-06-16 11:22:47 UTC
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
Comment 1 Alastair Tse (RETIRED) gentoo-dev 2003-06-17 03:27:37 UTC
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.
Comment 2 Jason Pfeil 2003-06-18 09:19:58 UTC
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)
Comment 3 Alastair Tse (RETIRED) gentoo-dev 2003-06-18 09:24:17 UTC
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