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

Bug#227587: [PROPOSAL] Java library dependencies



Ben Burton wrote:

Thus the *absence* of java2-runtime in the depends list is
an indication that the package should work on most JVMs in
debian.  I would however expect these packages to run under
java2 as well.

In my understanding the absence of java2-runtime means that a package that (solely) provides java2-runtime can't be used. Such a package does not exist (any longer) since all non-free JDK packages provide both java1-runtime, java2-runtime. IMHO you can't deduce in this case that this packaeg should work with most JVMs/JREs in main.

I said let's include API dependencies for libraries in the library
packages themselves.  You said no, put them in the application packages.
I said this won't guarantee that dependencies are satisfied for people
using the libraries in their own custom projects.  You said this didn't
concern you because you don't recommend people doing this anyway.  AIUI.

Ok, this seems to be another misunderstanding: I want Java libraries to depend on all APIs except for the core APIs. I simply assume that libraries work with any JVM/JRE, although this might not be correct.

There's no difference for the user who installes a packaged application since the application depends on the required JVM/JRE. The only difference is that users who just install the library package are not forced to install any JRE (core classes). This library is useless on your system at this moment. But as soon as you install a JVM or even a Java compiler like jikes you get all the required dependencies installed.

For starters, I'm not forcing gij - both jython and libreadline-java
allow java1-runtime as a dependency, which means it can be satisfied by
any number of JVMs in main.  As for your and Arnaud's packages, are you
suggesting that they'll work on any JVM in main?  Because just dropping
JVM dependencies altogether will certainly give this message.

Library packages never depended on a JVM (virtual package java-virtual-machine), just the core classes. The definition of java*-runtime means just the core classes, no JVM. Ola has clarified this in http://lists.debian.org/debian-devel/2002/debian-devel-200212/msg00322.html.

That's why I used "classpath | java1-runtime" in my packages: Classpath was the only package that provides core classes (put does not provide the virtual package java1-runtime since the maintainer was obviously also using the intuitive but wrong meaning of java*-runtime) but does not include a JVM. I didn't want to force the users to install a full JVM.

Stefan




Reply to: