when I emerge kde3.2 kdeadmin does't compile because of autom4te2.57. I tried removing autom4te2.57 and renaming autom4te2.58 in autom4te2.57. It works. Reproducible: Always Steps to Reproduce: 1. emerge /usr/portage/kde-base/kdeadmin/kdeadmin-3.2.0_rc1.ebuild Actual Results: cd . && make -f admin/Makefile.common configure make[1]: Entering directory `/tmp/portage/kdeadmin-3.2.0_rc1/work/kdeadmin-3.1.95' String found where operator expected at /usr/bin/autom4te-2.57 line 280, near "error "need GNU m4 1.4 or later: $m4"" (Do you need to predeclare error?) syntax error at /usr/bin/autom4te-2.57 line 280, near "error "need GNU m4 1.4 or later: $m4"" BEGIN not safe after errors--compilation aborted at /usr/bin/autom4te-2.57 line 453. make[1]: *** [configure] Error 1 make[1]: Leaving directory `/tmp/portage/kdeadmin-3.2.0_rc1/work/kdeadmin-3.1.95' make: *** [configure] Error 2 make: *** Waiting for unfinished jobs.... cd . && perl admin/am_edit Makefile.in make: *** Waiting for unfinished jobs.... !!! ERROR: kde-base/kdeadmin-3.2.0_rc1 failed. !!! Function kde_src_compile, Line 127, Exitcode 2 !!! died running emake, kde_src_compile:make Portage 2.0.49-r21 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r9,2.3.2-r3, 2.6.1-rc1) ================================================================= System uname: 2.6.1-rc1 i686 AMD Athlon(tm) XP 1800+ Gentoo Base System version 1.4.3.10 distcc 2.11.1 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ACCEPT_KEYWORDS="x86" AUTOCLEAN="no" CFLAGS="-march=athlon-xp -O2 -fPIC -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-march=athlon-xp -O2 -fPIC -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache fixpackages" GENTOO_MIRRORS="http://delirium.ens.insa-rennes.fr/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://10.131.5.2/gentoo-portage" USE="3dnow X aalib acl alsa apm avi berkdb cdr chroot crypt dga dvd dvdr encode foomaticdb gif gpm gtk gtk2 imap imlib java jpeg kde libg++ libwww lufsusermount mad mikmod mmx mpeg ncurses nls nocd nvidia odbc oggvorbis opengl openssh pam pdflib perl png python qt quicktime readline samba sdl slang spell sse ssl svga tcltk tcpd tetex tiff transcode truetype unicode usb v4l videos x86 xml xml2 xmms xv xvid zlib linguas_fr"
The solution was to set AUTOCLEAN to yes
autom4te-2.58 gets used at some point and then autom4te-2.57 is used later. I dwelved into it and got more information, but first my emerge info, etc: cd . && \ /bin/sh /var/tmp/portage/kdebase-3.2.0/work/kdebase-3.2.0/admin/missing --run automake-1.7 --foreign Makefile cd . && rm -f configure cd . && make -f admin/Makefile.common configure make[1]: Entering directory `/var/tmp/portage/kdebase-3.2.0/work/kdebase-3.2.0' String found where operator expected at /usr/bin/autom4te-2.57 line 280, near "error "need GNU m4 1.4 or later: $m4"" (Do you need to predeclare error?) syntax error at /usr/bin/autom4te-2.57 line 280, near "error "need GNU m4 1.4 or later: $m4"" BEGIN not safe after errors--compilation aborted at /usr/bin/autom4te-2.57 line 453. make[1]: *** [configure] Error 1 make[1]: Leaving directory `/var/tmp/portage/kdebase-3.2.0/work/kdebase-3.2.0' make: *** [configure] Error 2 make: *** Waiting for unfinished jobs.... cd . && perl admin/am_edit Makefile.in make: *** Waiting for unfinished jobs.... !!! ERROR: kde-base/kdebase-3.2.0 failed. !!! Function kde_src_compile, Line 127, Exitcode 2 !!! died running emake, kde_src_compile:make emerge info: Portage 2.0.50 (default-x86-1.4, gcc-3.3.2, glibc-2.3.2-r3,2.3.2-r9, 2.4.22-gentoo-r5) ================================================================= System uname: 2.4.22-gentoo-r5 i686 Intel(R) Pentium(R) 4 CPU 2.00GHz Gentoo Base System version 1.4.3.13 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.57-r1,sys-devel/autoconf-2.58 Automake: sys-devel/automake-1.7.5-r2,sys-devel/automake-1.7.7 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="no" CFLAGS="-march=pentium3 -mcpu=pentium3 -O2 -funroll-loops -pipe -fomit-frame-pointer -fforce-addr -mfpmath=sse,387 -mmmx -msse -falign-functions=4" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-march=pentium3 -mcpu=pentium3 -O2 -funroll-loops -pipe -fomit-frame-pointer -fforce-addr -mfpmath=sse,387 -mmmx -msse -falign-functions=4" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="ftp://trumpetti.atm.tut.fi/gentoo http://trumpetti.atm.tut.fi/gentoo ftp://gentoo.linux.no/pub/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X aalib acpi alsa apache2 apm arts artswrappersuid avi berkdb bonobo cdr crypt cscope cups directfb encode esd evo fbcon flash foomaticdb gd gdbm gif gnome gnomedb gphoto2 gpm gtk gtk2 gtkhtml imap imlib innodb jabber java javascript jpeg kde ldap libg++ libwww mad mcal mikmod mmx mng motif mozilla moznocompose moznoirc mozsvg mpeg msn mysql nas ncurses nls nocardbus nocd offensive oggvorbis opengl oscar oss pam pdflib perl pic png postgres ppds python qt quicktime readline samba sdl slang slp spell sse ssl svga tcltk tcpd tetex tiff truetype unicode usb videos vim-with-x wmf wxwin x86 xml2 xmms xosd xv yahoo zlib" --------------------------- I have AUTOCLEAN="no" for understandable reasons and thus had both autoconf-2.37-r1 and autoconf-2.38 installed, which should be perfectly ok as autoconf and autom4te are in fact wrappers that determine which existing version of autoconf tools should be used. In fact, software developers sometimes might need both versions to check how their software builds with different tools. What I found which could help is the following. I grepped the temporary working directory of kdebase-3.2.0 and the result was the following: # grep -rI '2[.]5[78]' * admin/detect-autoconf.sh: elif test -x "`$WHICH autoconf-2.57 2>/dev/null`" ; then admin/detect-autoconf.sh: AUTOCONF="`$WHICH autoconf-2.57`" admin/detect-autoconf.sh: elif test -x "`$WHICH autoheader-2.57 2>/dev/null`" ; then admin/detect-autoconf.sh: AUTOHEADER="`$WHICH autoheader-2.57`" admin/detect-autoconf.sh: AUTOM4TE="`$WHICH autom4te-2.57`" autom4te.cache/output.0:@%:@ Generated by GNU Autoconf 2.58. autom4te.cache/output.0:generated by GNU Autoconf 2.58. Invocation command line was autom4te.cache/output.0:generated by GNU Autoconf 2.58. Invocation command line was autom4te.cache/output.0:configured by $0, generated by GNU Autoconf 2.58, config.log:generated by GNU Autoconf 2.57. Invocation command line was config.log:generated by GNU Autoconf 2.57. Invocation command line was config.status:generated by GNU Autoconf 2.57. Invocation command line was config.status:configured by ./configure, generated by GNU Autoconf 2.57, ----- As You can see, it uses 2.58 AND 2.57 and that is the reason why the build fails when both autoconfs are installed and I need both of them installed. Please find a fix. Perhaps a patch to some KDE packages, kde.eclass or autoconf autom4te wrapper scripts? To reproduce the problem: AUTOCLEAN="no" emerge sys-devel/autoconf-2.57-r1 sys-devel/autoconf-2.58 ACCEPT_KEYWORDS=~x86 emerge kdebase I did emerge -C sys-devel/autoconf-2.57-r1 and am doing now ACCEPT_KEYWORDS=~x86 emerge kdebase and it got pass the error point and is compiling fine atm. Can't wait to see KDE3.2 ;) If two versions of autoconfs should NOT cause problems during emerges, I shall reemerge 2.57-r1 and report packages that don't compile with 2.57 and 2.58 both installed. Let me know.
My proposed change here would be to change the ac-wrapper.pl file to set the AUTOM4TE variable to whichever version of autoconf it is going to call, so that autoconf calls the right version of autom4te.
should now be fixed with latest autoconf in portage (see Bug #40983).