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
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.