[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Summery] Re: Integrating the FOSDEM 06 Draft into the Java Policy


Matthew Johnson wrote:
But, from your patches, I understand that javaX-runtime survives and that we add default-jre/jdk (default-j) into the picture, which, depending on the platform, provides either cp-j or java-j, because they pull gcj-j or openjdk-j.

IMO javaX-runtime should be for only things which can work with both:

A. ones which work with both cp-j and java-j => those ones can and should/must (build-)depend on default-j (easy).

They should build-depend on default-jdk and depend on default-jre | javaN-runtime
I have some problems with this:

1. the policy states something like "javaX-runtime fulfills the Java X specifications" (sorry, the patches are not reachable right now), but gcj/gij specifically does not fulfill the Java X specifications (else they wouldn't be incompatible with sun's Java resp. openjdk).

2. On one side, in order to depend on default-j, programs and libraries must work both with openjdk and gcj, such programs/libraries should then depend on default-j, and only such programs/libraries can depend on javaX-runtime. The result is that javaX-runtime and default-jre are more or less interchangeable, and only confuse people (well, me at least).

3. gcj's versioning doesn't follow Java's versioning (X), so that each new version of gcj is just a more and more complete version of any X version of Java. Example: package MyJavaProgram depends on gcj-jre (>= 4.4) | javaX-runtime because it doesn't work with gcj 4.3. But user already has gcj-jre=4.3, which also provides javaX-runtime --> failure.

4. On the other hand, openjdk and sun's java are really interchangeable and would justify a javaX-runtime, as their own versioning/naming follows the X schema.

Bottom-line, I would ask to either suppress javaX-runtime all together as being useless or even dangerous (as per point 3), or (my preferred) to reserve it for runtime environments which have passed the Java Compatibility Tests.

Less important: it should be precised that a program/library depending on a certain javaX-runtime must make sure that the compilation happens with the -source/-target values corresponding to this X.

Indeed, although I'd specify it the other way around, and if you use javatools,
it will calculate X for you and automatically add it to the dependencies.
From my own experience, I know it that I check what upstream says (Java5),
I compile it with OpenJDK6, and then it doesn't work with Java5 anymore.
But that's probably mostly wording, bottom line, both _must_ be aligned.

Thanks, Eric

Reply to: