XScreensaver 5.04 does not build on amd64 with gtk+-2.12.7. Also tried with 5.02. The installation halts at exactly the same place. It can be seen in the URL posted above. Reproducible: Always Steps to Reproduce: 1. emerge -av xscreensaver 2. 3. Actual Results: FAULT_PATH_PREFIX='"/usr/lib/misc/xscreensaver"' -I./../utils/images \ -DHAVE_CONFIG_H -DDEFAULT_ICONDIR='"/usr/share/xscreensaver/glade"' -DLOCALEDIR=\"/usr/share/locale\" -O2 -pipe -march=nocona -U__VEC__ -I/usr/include \ ./demo-Gtk.c In file included from /usr/include/gtk-2.0/gtk/gtkactiongroup.h:34, from /usr/include/gtk-2.0/gtk/gtk.h:38, from ./demo-Gtk.c:85: /usr/include/gtk-2.0/gtk/gtkitemfactory.h:50: warning: function declaration isn't a prototype ./demo-Gtk.c: In function 'force_list_select_item': ./demo-Gtk.c:1130: error: expected expression before 'do' make[1]: *** [demo-Gtk.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/x11-misc/xscreensaver-5.04/work/xscreensaver-5.04/driver' make: *** [default] Error 5 * * ERROR: x11-misc/xscreensaver-5.04 failed. * Call stack: * ebuild.sh, line 1701: Called dyn_compile * ebuild.sh, line 1039: Called qa_call 'src_compile' * ebuild.sh, line 44: Called src_compile * xscreensaver-5.04.ebuild, line 89: Called die * The specific snippet of code: * emake -j1 || die "emake failed." * The die message: * emake failed. * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/x11-misc/xscreensaver-5.04/temp/build.log'. * root@localhost bsdboy $ emerge --info Portage 2.1.3.19 (default-linux/amd64/2007.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.23-gentoo-r6 x86_64) ================================================================= System uname: 2.6.23-gentoo-r6 x86_64 Intel(R) Core(TM)2 CPU T5300 @ 1.73GHz Timestamp of tree: Fri, 08 Feb 2008 05:30:01 +0000 app-shells/bash: 3.2_p17-r1 dev-java/java-config: 1.3.7, 2.0.33-r1 dev-lang/python: 2.4.4-r6 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 1.12.10-r5 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -march=nocona" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-O2 -pipe -march=nocona" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/desktop-effects" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X acl acpi alsa amd64 arts bash-completion berkdb bitmap-fonts cairo cdr cli cracklib crypt cups dbus dri dvd dvdr dvdread eds emboss encode esd evo fam firefox fortran gdbm gif glitz gnome gphoto2 gpm gstreamer gtk gtk2 hal iconv ipod isdnlog jpeg kerberos ldap libnotify mad midi mikmod mmx mp3 mpeg mudflap ncurses nls nptl nptlonly nvidia ogg opengl openmp oss pam pcre pdf perl png pppd python qt3support quicktime readline reflection sdl session spell spl sse sse2 ssl svg tcpd tiff truetype truetype-fonts type1 type1-fonts unicode vorbis xml xorg xv zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="nvidia nv vesa" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
xscreensaver has an "interestingly" named macro called "STFU", and it sticks that in front of a g_assert on the referenced line (drivers/demo-Gtk.c line 1130). STFU expands to __extension__, to shut up pedantic warnings or something, but g_assert expands to "do ... while ..." stuff, which doesn't like __extension__ in front of that, it seems. In addition g_assert macro is already wrapped around G_STMT_START and G_STMT_END, which is supposed to already take care of adding __extension__ on system and toolchain where that is appropriate. I believe just removing that STFU in front of g_assert on that line would fix that particular build failure. Reassigning to xscreensaver maintainers, as I'm sure it's a xscreensaver bug (rather than gtk+ or something else)
Upstream: <snip snip> I suppose taking out that one STFU is the right fix, though I'm told that __extension__ no longer quiets the warning about string length, which means there will now be spurious warnings all over xscreensaver's build log, and I have no idea how to fix that. </snip snip>
Thanks, should be fixed in 5.04-r1.