Mailinglist Archive: opensuse-packaging (139 mails)

< Previous Next >
[opensuse-packaging] java-devel (was: Use of icedtea in 11?)
  • From: Pascal Bleser <pascal.bleser@xxxxxxxxx>
  • Date: Sat, 08 Mar 2008 02:40:35 +0100
  • Message-id: <47D1EE93.9060602@xxxxxxxxx>
Hash: SHA1

Adrian Schröter wrote:
On Sunday 02 March 2008 00:08:45 wrote Pascal Bleser:
Adrian Schröter wrote:
On Thursday 28 February 2008 16:49:10 wrote Michal Vyskocil:

That should not be needed, we can map java-devel to the correct java
version in the distribution configurations.
...which only works in the OBS.

The selection of a specific one, yes. But java-devel is provided by the java


Acctually, you should not BuildRequire a certain java version at all, as
long you do not want to enforce the exclusive use with this version.

Right, the typical requirement is "I want Sun JDK version >= x.x.x" ;)
(at least on ix86 and x86_64).

But this should be done only, if it is sure that this is the single java
version which does work. In general all java version should work for almost
all java packages. Therefore it is better to use java-devel .

Not quite true. When you compile Java source code, you must always be
able to say "I need JDK version 1.4.2|5.0|6.0". Best is to use the exact
needed version, but if you compile Java code that doesn't require 5.0
with JDK 5.0, it will work on a 1.4.2 JRE at runtime.

The issues involved here is that
* (l)build doesn't know about versioned BuildRequires, at least the last
time I checked (e.g. BuildRequires: java-devel >= 1.5.0)
* you almost always want to use the Sun JDK, not GCJ (as much as I
respect the work of the GCJ/GNUClasspath/Kaffe/etc.. developers, it
won't work for most Java projects)

Well.. Sun or IBM, depending on the platform (Sun where available).

Maybe adding a sun-java-devel Provides would help (if the BuildRequires
resolution of (l)build works properly on Provides)

Better use java-devel everywhere and tell us, which java version by
default should be selected dependening on the architecture.
But that has to be provided by the packages themselves, not (only) by
OBS tricks.

A java package should in general work with all java versions, otherwise we
never upgrade a java or switch to some other java. This is esp. important
when it comes to other architectures, Sun Java does not exist for all. So an
explicit requirement to Sun java would mean that your java package needs to
get disabled on these architectures.

That's two different things.
On the version, it's actually the opposite. You have some Java sources.
If they use Tiger (Java 5.0) features (generics, varargs, new for loops,
...), you _must_ have a JDK >= 1.5.0 to compile that.
OTOH if you have Java sources that don't use 5.0 features and compile
with 1.4.2, you can compile them with JDK 5.0, no problem here, and the
resulting JVM bytecode will even be backwards compatible with 1.4.2 at
runtime. But the opposite is not true: if the sources use Java 5
features, then the bytecode will only run on JRE >= 5.0.

The other topic is architectures without a Sun JDK, such as PPC.
The point is rather use Sun or IBM, but not GCJ/GNUClasspath.
And AFAICR, GCJ also "Provides: java-devel"

So the option is.. what, this?
%ifarch %ix86 x86_64
BuildRequires: java-devel-sun >= 1.5.0
BuildRequires: ...IBM...

or this?
%ifarch %ix86 x86_64
BuildRequires: java-1_5_0-sun-devel
BuildRequires: ...

See my point ? ;)

- --
-o) Pascal Bleser
/\\ <pascal.bleser@xxxxxxxxx> <guru@xxxxxxxxxxx>
_\_v The more things change, the more they stay insane.
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with SUSE -

To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx

< Previous Next >
List Navigation