Hi, I hope this is an actual bug, and that I'm not bothering you with another user error problem!... /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-jdk-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/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/DirEntry.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNClient.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/ScheduleKind.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNInputStream.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/NotifyAction.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNOutputStream.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/PromptUserPassword2.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/Status.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/PromptUserPassword3.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNClientSynchronized.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/NotifyStatus.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/CommitItemStateFlags.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/JNIError.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNClientInterface.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/ClientException.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/Notify.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/CommitItem.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/PromptUserPassword.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/NodeKind.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/RevisionKind.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/Info.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/LogMessage.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/StatusKind.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/Revision.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/PropertyData.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/OutputInterface.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/SVNClientLogLevel.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/ChangePath.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/InputInterface.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/BlameCallback.java /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/CommitMessage.java Found 2 semantic errors compiling "/var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/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_rc2/work/subversion-1.1.0-rc2/subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/Status.java": 402. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 414. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 424. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 434. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 444. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 455. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 465. int textStatus = getTextStatus(); ^--------^ *** Semantic Warning: Local "textStatus" shadows a field of the same name in "org.tigris.subversion.javahl.Status". 485. case none: ^--^ *** Semantic Error: Illegal use of name "none" which has not yet been fully declared at this point. 487. case normal: ^----^ *** Semantic Error: Illegal use of name "normal" which has not yet been fully declared at this point. 489. case added: ^---^ *** Semantic Error: Illegal use of name "added" which has not yet been fully declared at this point. 491. case missing: ^-----^ *** Semantic Error: Illegal use of name "missing" which has not yet been fully declared at this point. 493. case deleted: ^-----^ *** Semantic Error: Illegal use of name "deleted" which has not yet been fully declared at this point. 495. case replaced: ^------^ *** Semantic Error: Illegal use of name "replaced" which has not yet been fully declared at this point. 497. case modified: ^------^ *** Semantic Error: Illegal use of name "modified" which has not yet been fully declared at this point. 499. case merged: ^----^ *** Semantic Error: Illegal use of name "merged" which has not yet been fully declared at this point. 501. case conflicted: ^--------^ *** Semantic Error: Illegal use of name "conflicted" which has not yet been fully declared at this point. 503. case ignored: ^-----^ *** Semantic Error: Illegal use of name "ignored" which has not yet been fully declared at this point. 505. case incomplete: ^--------^ *** Semantic Error: Illegal use of name "incomplete" which has not yet been fully declared at this point. 507. case external: ^------^ *** Semantic Error: Illegal use of name "external" which has not yet been fully declared at this point. 509. 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_rc2 failed. !!! Function src_compile, Line 145, Exitcode 2 !!! Compilation failed Reproducible: Always Steps to Reproduce:
I changed to using javac instead of jikes by editing /var/tmp/portage/subversion-1.1.0_rc2/work/subversion-1.1.0-rc2/Makefile, changing 'JAVAC = /usr/bin/jikes' to 'JAVAC = $(JDK)/bin/javac'. Then manually running 'make javahl' suceeded. So I removed jikes from my USE flags in /etc/make.conf, deleted the /var/tmp/portage/subversion-1.1.0_rc2 directory, and re-ran emerge subversion, however it decided to use jikes again anyway. Other than based on the USE flag, what goes into making that decision?
Subversion uses the path or the JAVAC variable to decide it's jdk, these are both derived from your profile. The choice of the jdk in there is determined by java-config. It does not have a jikes useflag as it is not tested on jikes (and apparently doesn't work either). From my understanding jikes is kind of unmaintained and fast lacking in speed.
Created attachment 39353 [details, diff] Patch to allow subversion to build on systems with Jikes installed Fixes minor typo and allows subversion1.1.0_rc2 to build on systems with Jikes installed.
it would be a solution to add the following to the ebuild: 1. add jikes to iuse 2. add following line to src_compile section: use jikes || myconf=${myconf} --with-jikes=no
I've added jikes support. Please test it, but it should work
I've added -jikes to package.use for subversion. And portage seems to agree with me on this (see below). But nonetheless it tries to use it. Something is borked... My subversion ebuild has the following to say: if use java; then use jikes && myconf=${myconf} --with-jikes=yes use jikes || myconf=${myconf} --without-jikes fi ... which seem to indicate that i've indeed got a version of it that tries to work. Version as follows: # $Header: /var/cvsroot/gentoo-x86/dev-util/subversion/subversion-1.1.0.ebuild,v 1.4 2004/10/09 17:47:35 pauldv Exp $ Here i ask portage nicely what kind of use flags it'd use: foo ~ # emerge --pretend --oneshot --verbose subversion These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild U ] dev-util/subversion-1.1.0 [1.0.8] +apache2 +berkdb -emacs +java -jikes* +perl +python +ssl 0 kB Total size of downloads: 0 kB And then i emerge and it tries to use jikes anyway..
*** Bug 66107 has been marked as a duplicate of this bug. ***
It seems that jikes is broken as the code in question is completely legal. It is legal (though showing bad taste) to declare static final variables in interfaces. Normal java compilers also don't have problems with this. Unfortunately there is not yet an easy way to select a jdk to use in the ebuild. You should use java-config for that. Preferably java-config -S.
Could someone also post a compile log (at least of the configure stage). That might show why jikes is chosen when not requested. Did anyone set the JAVAC flag?
Think i found it ... /usr/portage/dev-util/subversion/subversion-1.1.0.ebuild: line 111: --without-ji kes: command not found The quotes (") are missing on lines 110 and 111 of the subversion ebuild. Actual code: if use java; then use jikes && myconf=${myconf} --with-jikes=yes use jikes || myconf=${myconf} --without-jikes fi Working code: if use java; then use jikes && myconf="${myconf} --with-jikes=yes" use jikes || myconf="${myconf} --without-jikes" fi
Great, I've just adjusted the ebuild.
*** Bug 67864 has been marked as a duplicate of this bug. ***