When trying to emerge subversion 1.1.0 with java enabled and jikes installed, I get an error while compiling the java support of subversion. This is a known bug of subversion/jikes you may found in the following link: http://subversion.tigris.org/issues/show_bug.cgi?id=2057 This error only shows when compiling with jikes. The obvious workaround is either compile without java support or unmerge jikes. Anyway I have labeled this as major bug as I think that failing to compile the java support for subversion makes impossible to use the Eclipse plugin to access Subversion repositories (Subclipse). This bug has three possible solutions: 1. Wait for a solution from Subversion guys. This would mean that people with jikes installed wouldn't be able to emerge this package, or if they emerge it without java suppport, they wouldn't be able to use the Eclipse plugin 2. Make a patch for the offending classes. It seems the problem is related to some unqualified static variables. Just qualifying those variable with the class name they're declared in should solve the problem 3. Force this package to use another compiler instead of jikes even if jikes is installed Reproducible: Always Steps to Reproduce: 1. Install jikes 2. ACCEPT_KEYWORDS="~x86" USE="-java" emerge -vp subversion Actual Results: The compilation failed with the following errors: /usr/bin/jikes -d subversion/bindings/java/javahl/classes -classpath subversion/bindings/java/javahl/classes:/opt/sun-jdk-1.4.2.05/jre /lib:/opt/sun-jdk-1.4.2.05/jre/lib/charsets.jar:/opt/sun-jdk-1.4.2.05/jre/lib/jce.jar:/opt/sun-jdk-1.4.2.05/jre/lib/jsse.jar:/opt/sun-j dk-1.4.2.05/jre/lib/plugin.jar:/opt/sun-jdk-1.4.2.05/jre/lib/rt.jar:/opt/sun-jdk-1.4.2.05/jre/lib/sunrsasign.jar /var/tmp/portage/subve rsion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/DirEntry.java /var/tmp/portage/subve rsion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNClient.java /var/tmp/portage/subv ersion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/ScheduleKind.java /var/tmp/portage/ subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNInputStream.java /var/tmp/po rtage/subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/NotifyAction.java /var/tm p/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNOutputStream.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/PromptUserPass word2.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/Sta tus.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/Promp tUserPassword3.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/j avahl/SVNClientSynchronized.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris /subversion/javahl/NotifyStatus.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/ti gris/subversion/javahl/CommitItemStateFlags.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javah l/src/org/tigris/subversion/javahl/JNIError.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javah l/src/org/tigris/subversion/javahl/SVNClientInterface.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/ java/javahl/src/org/tigris/subversion/javahl/ClientException.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bi ndings/java/javahl/src/org/tigris/subversion/javahl/Notify.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bind ings/java/javahl/src/org/tigris/subversion/javahl/CommitItem.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bi ndings/java/javahl/src/org/tigris/subversion/javahl/PromptUserPassword.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/sub version/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/sub version/bindings/java/javahl/src/org/tigris/subversion/javahl/NodeKind.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/sub version/bindings/java/javahl/src/org/tigris/subversion/javahl/RevisionKind.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0 /subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/Info.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/sub version/bindings/java/javahl/src/org/tigris/subversion/javahl/LogMessage.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/s ubversion/bindings/java/javahl/src/org/tigris/subversion/javahl/StatusKind.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0 /subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/Revision.java /var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0 /subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/PropertyData.java /var/tmp/portage/subversion-1.1.0/work/subversion-1 .1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/OutputInterface.java /var/tmp/portage/subversion-1.1.0/work/subve rsion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNClientLogLevel.java /var/tmp/portage/subversion-1.1.0/w ork/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/ChangePath.java /var/tmp/portage/subversion-1.1.0 /work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/InputInterface.java /var/tmp/portage/subversion -1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/BlameCallback.java /var/tmp/portage/subve rsion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/CommitMessage.java Found 2 semantic errors compiling "/var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigr is/subversion/javahl/Notify.java": 59. return actionNames[action]; ^---------^ *** Semantic Error: Illegal use of name "actionNames" which has not yet been fully declared at this point. 76. return statusNames[status]; ^---------^ *** Semantic Error: Illegal use of name "statusNames" which has not yet been fully declared at this point. Found 13 semantic errors and issued 7 warnings compiling "/var/tmp/portage/subversion-1.1.0/work/subversion-1.1.0/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/Status.java": 410. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 422. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 432. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 442. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 452. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 463. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 473. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 493. case none: ^--^ *** Semantic Error: Illegal use of name "none" which has not yet been fully declared at this point. 495. case normal: ^----^ *** Semantic Error: Illegal use of name "normal" which has not yet been fully declared at this point. 497. case added: ^---^ *** Semantic Error: Illegal use of name "added" which has not yet been fully declared at this point. 499. case missing: ^-----^ *** Semantic Error: Illegal use of name "missing" which has not yet been fully declared at this point. 501. case deleted: ^-----^ *** Semantic Error: Illegal use of name "deleted" which has not yet been fully declared at this point. 503. case replaced: ^------^ *** Semantic Error: Illegal use of name "replaced" which has not yet been fully declared at this point. 505. case modified: ^------^ *** Semantic Error: Illegal use of name "modified" which has not yet been fully declared at this point. 507. case merged: ^----^ *** Semantic Error: Illegal use of name "merged" which has not yet been fully declared at this point. 509. case conflicted: ^--------^ *** Semantic Error: Illegal use of name "conflicted" which has not yet been fully declared at this point. 511. case ignored: ^-----^ *** Semantic Error: Illegal use of name "ignored" which has not yet been fully declared at this point. 513. case incomplete: ^--------^ *** Semantic Error: Illegal use of name "incomplete" which has not yet been fully declared at this point. 515. case external: ^------^ *** Semantic Error: Illegal use of name "external" which has not yet been fully declared at this point. 517. case unversioned: ^---------^ *** Semantic Error: Illegal use of name "unversioned" which has not yet been fully declared at this point. make: *** [javahl-java] Error 1 !!! ERROR: dev-util/subversion-1.1.0 failed. !!! Function src_compile, Line 142, Exitcode 2 !!! Compilation failed Expected Results: The ebuild should have emerged subversion properly, maybe deactivating jikes compilation. Portage 2.0.50-r11 (2004.2, gcc-3.3.4, glibc-2.3.3.20040420-r1, 2.6.7-gentoo-r11) ================================================================= System uname: 2.6.7-gentoo-r11 i686 AMD Athlon(tm) Processor Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.5-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=athlon -O3 -pipe -mmmx -m3dnow" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /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/lib/jboss /var/qmail/control /var/spool/fax/etc" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -mcpu=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox sfperms" GENTOO_MIRRORS="http://gentoo.osuosl.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="apache2 apm arts avi berkdb bitmap-fonts crypt cups doc encode flash foomaticdb gd gdbm gif gpm gtk2 imap imlib innodb java jikesjpeg kerberos lcms ldap libg++ libwww mad maildir mcalc mikmod motif mpeg mysql ncurses nls objc oggvorbis opengl oss pam pdflib perl png postgres ppds python quicktime readline samba sasl sdl slang slp spell ssl tcpd tetex tiff truetype vhosts virus-scan x86 xml xml2 xmms xprint xv zlib"
Sorry... it's evident that to reproduce the bug you must activate java support: ACCEPT_KEYWORDS="~x86" USE="java" emerge -vp subversion
I missed the jikes use flag in the ebuild. Anyway, using -jikes didn't work, as the ebuild was incorrect. The following lines has missing quotes: if use java; then use jikes && myconf=${myconf} --with-jikes=yes use jikes || myconf=${myconf} --without-jikes fi I have added quotes to the myconf variable: if use java; then use jikes && myconf="${myconf} --with-jikes=yes" use jikes || myconf="${myconf} --without-jikes" fi After that, emerging this package with -jikes works as expected. Anyway, jikes support should be disabled until the bug in Subversion itself is fixed, as emerging the package with the jikes use flag causes the merge to fail.
Prefixing the variables should not be necessary (because it _is_ a jikes bug). Please see http://subversion.tigris.org/issues/show_bug.cgi?id=2057 for more on this. Unless the javahl maintainer (whoever that is) speaks up on this, it's unlikely to get fixed. Not using jikes is IMHO the correct solution here, esp. considering that most people have the JDK anyway when they use Java-related packages.
*** This bug has been marked as a duplicate of 63464 ***