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

Bug#578421: virtual-packages: Retire java-compiler, java2-compiler and java-virtual-machine



Rene Engelhard wrote:
> On Mon, Apr 19, 2010 at 08:33:12PM +0200, Niels Thykier wrote:
>> [java{,2}-compiler]
>>   - default-jdk. If used in an alternative in Build-Depends{,-Indep} then pick
>>     one of the options (The Java Team recommends default-jdk).
> 
> And what are you going to do as replacement for "whatever Java compiler, I don't care
> as long as it understands Java 2"?
> 
> Grüße/Regards,
> 
> René

Hi

Good point.

A java compiler is usually useless without the a backing Java core
library, so you probably want to replace it with a JDK.

Also please note that we have removed a lot of JVMs from Squeeze;
currently Debian has 3 or so left.
  * openjdk-6
  * gcj/gij
  * sun-java6 (non-free)
  * default (which is either openjdk-6 or gcj/gij)

As I recall there is also a JVM implemented in .NET or so, but it does
not identify itself via one of the javaX-runtime (nor the java-compiler
ones) and I cannot remember its name offhand.

Aside from the mono JVM (which I do not really know), all of them can
run Java5 code[1], so basically it is useless to have both java-compiler
and java2-compiler.
  On a related note: it appears that only sun-java6 provides
java2-compiler (even though all others could provide it as well).

If I was to replace a java{,2}-compiler to mean "Any java compiler" I
would use:
  default-jdk | gcj-jdk | sun-java6-jdk [3]

But I would definitely consider only using default-jdk (especially for
Suggests). While that may seem a bit strange as replacement for "Any
compiler" consider the following:
 default-jdk is either openjdk-6-jdk or gcj-jdk
 openjdk-6 is based on the same source as sun-java6
 openjdk-6 is available any architecture where sun-java6 is.
 gcj-jdk is inferior to openjdk-6 (not only due to [1])

While sun-java6 is still superior to openjdk-6 in some cases, I believe
this is only a runtime thing and not a compile issue. So by using
default-jdk you get the best compiler we got and it is shorter.
  Of course there are users using sun-java6-jdk which will not like if
apt pulls in a second JDK, so for Recommends+Depends it may be worth to
use the alternatives.

With a little grep-dctrl magic I noticed we 1 absolute dependency on
javaX-compiler (laby), four Recommends (robocode, jde, jython, mmake)
and 5 Suggests (ant, ant1.7, cup, openoffice.org-dev-doc, lab).
  There are also 6 Build-Depends(-Indep) cases, but I already covered
those. All in all we got a total of 15 (9 + 6) uses of java-compiler and
java2-compiler, so they do not appear to be widely used.

~Niels

[1] gcj/gij does not implement the full Java5 API.

[2] Should be updated, since gcj is a transitional package.

[3] You could add openjdk-6-jdk to this list, but on architectures where
openjdk-6 is available, it will be pulled by default-jdk.


Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: