The ebuild contains "BUILD_DEDICATED=YES \" instead of "BUILD_DEDICATED=$(yesno dedicated) \" This small fix allows the ebuild to compile by turning the "dedicated" USE flag off, because with BUILD_DEDICATED=YES I get the compilation error: gcc -Wall -pipe -Dstricmp=strcasecmp -DDEFAULT_BASEDIR='\"/usr/share/games/quake2-data\"' -DDEFAULT_LIBDIR='\"/usr/games/lib/quake2-icculus-qmax\"' -DQMAX -g -DDEDICATED_ONLY -o releasei386/ded/q_shared.o -c src/game/q_shared.c <command line>:5:18: missing terminating " character <command line>:6:17: missing terminating " character make[1]: *** [releasei386/ded/q_shared.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/quake2-icculus-0.16.1/work/quake2-r0.16.1' make: *** [build_release] Error 2 !!! ERROR: games-fps/quake2-icculus-0.16.1 failed. !!! Function src_compile, Line 103, Exitcode 2 !!! make failed Reproducible: Always Steps to Reproduce: emerge quake2-icculus Portage 2.0.51.22-r2 (default-linux/x86/2005.1, gcc-3.3.5-20050130, glibc-2.3.5-r1, 2.6.13-gentoo i686) ================================================================= System uname: 2.6.13-gentoo i686 AMD Athlon(tm) XP 2800+ Gentoo Base System version 1.6.13 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.3 [disabled] dev-lang/python: 2.3.5 sys-apps/sandbox: 1.2.12 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=athlon-xp" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon-xp" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://gentoo.blueyonder.co.uk ftp://mirrors.blueyonder.co.uk/mirrors/gentoo http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/ ftp://ftp.mirrorservice.org/sites/www.ibiblio.org/gentoo/" LANG="en_GB.UTF-8" LC_ALL="en_GB.UTF-8" LINGUAS="en" MAKEOPTS="-j1" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="x86 3dnow X aac aalib acpi alsa apache2 avi berkdb bitmap-fonts cdr crypt curl dga directfb divx4linux dvd eds emboss encode fam flac foomaticdb fortran gd gdbm gif gnome gnutls gpm gstreamer gtk gtk2 gtkhtml hal imagemagick imlib java jpeg junit libg++ libwww mad mikmod mmx motif mozilla mp3 mpeg ncurses nls nvidia offensive ogg oggvorbis opengl pam pdflib perl png postgres python quicktime readline samba scanner sdl slang speex sse ssl svga sysfs tcpd tetex tiff truetype truetype-fonts type1-fonts unicode vorbis wifi win32codecs xine xml2 xmms xv zlib linguas_en userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LDFLAGS
dedicated use flag is unrelated to your error
I'm having the same problems trying to emerge quake2-icculus. Make gives almost the same output in the original report: gcc -Wall -pipe -Dstricmp=strcasecmp -DHAVE_IPV6 -DDEFAULT_BASEDIR='\"/usr/share/games/quake2-data\"' -DDEFAULT_LIBDIR='\"/usr/games/lib/quake2-icculus-qmax\"' -DQMAX -I/usr/kde/3.4/include/artsc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -DDEDICATED_ONLY -o releasei386/ded/q_shared.o -c src/game/q_shared.c <command line>:7:18: missing terminating " character <command line>:8:17: missing terminating " character make[1]: *** [releasei386/ded/q_shared.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/quake2-icculus-0.16.1/work/quake2-r0.16.1' make: *** [build_release] Error 2 My emerge --info: Portage 2.0.51.22-r2 (default-linux/x86/2005.1, gcc-3.3.5-20050130, glibc-2.3.5-r1, 2.6.12-gentoo-r10-superorc i686) ================================================================= System uname: 2.6.12-gentoo-r10-superorc i686 AMD Opteron(tm) Processor 146 Gentoo Base System version 1.6.13 dev-lang/python: 2.3.5 sys-apps/sandbox: 1.2.12 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=athlon-xp -O3 -pipe" CHOST="i686-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/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon-xp -O3 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="x86 3dnow X aac acpi aim alsa aotuv apm arts audiofile avi berkdb bitmap-fonts browserplugin bzip2 cdparanoia cdr crypt cups curl divx4linux dv dvd dvdr dvdread emboss encode exif fam ffmpeg flac foomaticdb fortran gd gdbm gif glut gpm gstreamer gtk gtk2 hal icc icq ieee1394 imagemagick imap imlib ipv6 java jpeg kde kdeenablefinal libg++ libwww mad matroska mikmod mmx mng motif mp3 mpeg msn mysql ncurses nls nocd nsplugin nvidia offensive ogg oggvorbis openal opengl oss pam pdflib perl png python qt quicktime readline real sdl sndfile spell sse sse2 ssl svga tcltk tcpd theora tiff truetype truetype-fonts type1-fonts usb videos vorbis win32codecs xine xml xml2 xmms xprint xv xvid zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
I'm unable to fix the compilation errors caused by the "dedicated" flag being hard-coded to YES. I found that adding this line to the ebuild, after the "epatch" lines, helped: sed -i "s/'/\"/g" Makefile However, that gave rise to further nasty compilation errors. I assume these errors are appearing due to the increased strictness of gcc in recent versions. I would imagine that 90% of emergers don't care about the "dedicated" functionality (and would rather be able to compile the client, than none at all), so I suggest that a new ebuild be released with my one-line patch. Thanks.
Have the same problem... > I'm unable to fix the compilation errors caused by the "dedicated" flag being > hard-coded to YES. I found that adding this line to the ebuild, after the > "epatch" lines, helped: > > sed -i "s/'/\"/g" Makefile appliyng this patch caused another error: src/qcommon/files.c: In function `FS_InitFilesystem': src/qcommon/files.c:903: error: syntax error before '/' token src/qcommon/files.c:909: error: syntax error before '/' token make[1]: *** [releasei386/client/files.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/quake2-icculus-0.16.1/work/quake2-r0.16.1' make: *** [build_release] Error 2 !!! ERROR: games-fps/quake2-icculus-0.16.1 failed. !!! Function src_compile, Line 104, Exitcode 2 !!! make failed !!! If you need support, post the topmost build error, NOT this status message.
Seems like this bug might be related to gcc version. It fails with gcc 3.3 but builds fine with gcc 3.4.
You are right, thanks for tip I' ve changed gcc-3.3.5 to 3.3.4 and now all is working fine
> I' ve changed gcc-3.3.5 to 3.3.4 and now all is working fine br, mistake: I' ve changed gcc-3.3.5 to 3.4.4 and now all is working fine
I keyworded gcc ~x86 and emerged gcc 3.4.4 and now it will emerge.
Created attachment 68896 [details, diff] quake2-icculus-0.16.1.diff I'd like to add a "me too" that it compiles with the "dedicated" USE flag on, with gcc-3.4.4-r1. Let's not forget that this bug report was started *because* the "dedicated" USE flag is ignored. So, enclosed is the patch equivalent to my original request to make the "dedicated" USE flag actually have an effect - happily being, fixing the compilation problem for roughly 90% of gcc-3.3.6 users.
I've been advised against updating gcc-3.3.6 to 3.4.4-r1, citing possible bad voodoo with Gentoo. Am I going to end up breaking things if I change?
it doesnt fix anything, it ignores the problem
well, it fixes the 'ignores dedicated USE flag', but that's it
(In reply to comment #12) > well, it fixes the 'ignores dedicated USE flag', but that's it Is that not a good-enough reason to apply the patch? I'm confused.
it only treats the symptoms, not the problem itself
We would still add the patch to enable/disable the dedicated support, but would *also* like to actually fix the problem. Otherwise, we'll have another bug 5 minutes later about "USE=dedicated quake2-icculus doesn't compile!" There's no point in only half-fixing the problem.
*Compilation* with gcc 3.3.6 succeeds if these two patch lines in quake2-icculus-0.16.1-gentoo-paths.patch are *not* applied: BASE_CFLAGS += -DDEFAULT_BASEDIR='\"$(DEFAULT_BASEDIR)\"' BASE_CFLAGS += -DDEFAULT_LIBDIR='\"$(DEFAULT_LIBDIR)\"'
what's your point ?
Any news? I'm getting the same error and would be happy to start the dedicated server..
Same problem here: gcc -Wall -pipe -Dstricmp=strcasecmp -DHAVE_IPV6 -DDEFAULT_BASEDIR=''"/usr/share/games/quake2-data"'' -DDEFAULT_LIBDIR=''"/usr/games/lib/quake2-icculus-qmax"'' -DQMAX -I/usr/kde/3.5/include/artsc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -O2 -march=pentium4 -DLINUX_VERSION=''"3.21+r0.16"'' -DDEDICATED_ONLY -o releasei386/ded/net_udp.o -c src/linux/net_udp.c gcc -Wall -pipe -Dstricmp=strcasecmp -DHAVE_IPV6 -DDEFAULT_BASEDIR=''\"/usr/share/games/quake2-data\"'' -DDEFAULT_LIBDIR=''\"/usr/games/lib/quake2-icculus-qmax\"'' -DQMAX -I/usr/kde/3.5/include/artsc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -DDEDICATED_ONLY -o releasei386/ded/q_shared.o -c src/game/q_shared.c <command line>:7:18: missing terminating " character <command line>:8:17: missing terminating " character make[1]: *** [releasei386/ded/q_shared.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/quake2-icculus-0.16.1/work/quake2-r0.16.1'' make: *** [build_release] Error 2
Created attachment 71974 [details, diff] changes escaping of the path variables Could somebody try this patch (of the patch ;) )? It solves the problem for me, and I'm using gcc-3.3.6. Instructions: 1. cat quake2-icculus-path.diff | patch -p0 -d /usr/portage/games-fps/quake2-icculus 2. ebuild /usr/portage/games-fps/quake2-icculus/quake2-icculus-0.16.1.ebuild digest 3. emerge quake2-icculus
Hi, I confirm that the patch in comment #20 works, on x86 (athlon-xp), after switching back from gcc 3.4.4 and running "ccache -C". Compilation succeeds, and the dedicated server works with the client.
Thanks for tha patch and also for testing it... Applied to CVS...
*** Bug 111431 has been marked as a duplicate of this bug. ***