Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 63464 - subversion-1.1.0_rc2 javahl compile error
Summary: subversion-1.1.0_rc2 javahl compile error
Status: RESOLVED TEST-REQUEST
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal
Assignee: Paul de Vrieze (RETIRED)
URL:
Whiteboard:
Keywords:
: 66107 67864 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-09-09 12:20 UTC by Ian Brandt
Modified: 2004-10-19 06:54 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Patch to allow subversion to build on systems with Jikes installed (subversion-1.1.0_rc2.ebuild.jikes.patch,524 bytes, patch)
2004-09-10 13:39 UTC, Ian Brandt
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ian Brandt 2004-09-09 12:20:08 UTC
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:
Comment 1 Ian Brandt 2004-09-09 16:05:12 UTC
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?
Comment 2 Paul de Vrieze (RETIRED) gentoo-dev 2004-09-10 01:51:47 UTC
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.
Comment 3 Ian Brandt 2004-09-10 13:39:58 UTC
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.
Comment 4 Georg Müller 2004-10-02 03:35:12 UTC
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
Comment 5 Paul de Vrieze (RETIRED) gentoo-dev 2004-10-09 10:48:20 UTC
I've added jikes support. Please test it, but it should work
Comment 6 Mikael A 2004-10-14 15:22:13 UTC
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..
Comment 7 Paul de Vrieze (RETIRED) gentoo-dev 2004-10-16 08:41:59 UTC
*** Bug 66107 has been marked as a duplicate of this bug. ***
Comment 8 Paul de Vrieze (RETIRED) gentoo-dev 2004-10-16 10:34:23 UTC
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.
Comment 9 Paul de Vrieze (RETIRED) gentoo-dev 2004-10-16 10:49:54 UTC
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?
Comment 10 Mikael A 2004-10-16 13:51:38 UTC
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
Comment 11 Paul de Vrieze (RETIRED) gentoo-dev 2004-10-19 06:43:01 UTC
Great, I've just adjusted the ebuild.
Comment 12 Paul de Vrieze (RETIRED) gentoo-dev 2004-10-19 06:54:18 UTC
*** Bug 67864 has been marked as a duplicate of this bug. ***