Bug 209341 - x11-misc/xscreensaver-5.04 refuses to build on amd64 boxes
Bug#: 209341 Product:  Gentoo Linux Version: unspecified Platform: AMD64
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: ssuominen@gentoo.org Reported By: subhro.kar@gmail.com
Component: Applications
URL: 
Summary: x11-misc/xscreensaver-5.04 refuses to build on amd64 boxes
Keywords:  
Status Whiteboard: 
Opened: 2008-02-08 12:21 0000
Description:   Opened: 2008-02-08 12:21 0000
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

------- Comment #1 From Mart Raudsepp 2008-02-08 13:16:41 0000 -------
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)

------- Comment #2 From Samuli Suominen 2008-02-12 14:09:17 0000 -------
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>

------- Comment #3 From Samuli Suominen 2008-02-14 13:09:17 0000 -------
Thanks, should be fixed in 5.04-r1.