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

Bug#227587: [PROPOSAL] Java library dependencies



Ben Burton wrote:

I invite you to try apt-cache showpkg.  Btw, I maintain two of them
(jython and libreadline-java), both of which can be used as libraries.

$ dpkg -p jython
[...]
Depends: gij | java-virtual-machine, gij | java1-runtime |
         java2-runtime, libreadline-java (>= 0.6), python2.1
         ^^^^^^^^^^^^^

I have asked for packages that only work with java1-runtime and not with java2-runtime. And I seriously doubt that libreadline-java will not work with JDK 1.2 just because you did not specify a dependency on java2-runtime.

Fine.  I say that if we're providing debian packages for java libraries,
we should at least take basic care to give them a chance of working with
custom projects.  Just because you don't want to do this and just because

I never said that we should not try to make them work with custom project or that that we are not tyring to build our packages in a way that would not allow this. Why do you assume that I meant to say this?

> you might not care about freedom of software (use upstream JAR so you
> don't have non-free/contrib material stripped out) doesn't mean others
> will follow the same strategy.

It is really impertinent to say that I might not care about the freedom of software. Why have I been trying to move most of my packages to main? Why am I trying to remove the dependencies on the non-free java2-runtime runtime packages?

You still have not answered my questions about JUnit: Which package do you want in Debian? A stripped version without Swing GUI in main or a full version in contrib? Which one do you want to ship with your custom projects? JUnit is free, even with the Swing GUI classes.

So you're saying that (i) some libraries have no applications that use
them, but (ii) library packages should only be used by application packages
and not in custom projects?  Then why bother packaging such libraries
at all?

(i) No, but some libcommons-*-java packages have been packaged especially because newer Tomcat versions need them. There are currently no other applications that use them. So the tomcat4 package is the only way that could be used to test if they work with Kaffe, GIJ and SableVM.

(ii) I have already answered this twice.

Where's the problem?  The real_package is only used if the virtual_package
is not already satisfied.  Once the first package providing java1-runtime
is installed, the rest of the (foobar | java1-runtime) dependencies will
be satisfied without further ado.

What about java2-runtime? It's is not available as Debian package (at least from Debian). This means you need to install the real package and everybody has chosen a different real package: gij (you), classpath (me), kaffe (Arnaud), ... So you need to install them all even if your main application just uses one of the runtime environments. Even worse: One of your packages might not actually work with kaffe but how do you want to make sure that I'm using the RE that you have specified in your dependencies?

If libcommons-beanutils-java won't run under kaffe, then I'm sorry but
non-free packages *will* need to be installed.

I have already said twice that it does run with Kaffe 1.1.3 when used by tomcat4. So no non-free software is required to run tomcat4 but the libcommons-beanutils-java package currently depends on non-free software.

If it will run under
kaffe *or* the non-free java2, then I'm sorry but this must be specified.
Otherwise people will try to use it with sablevm or gij or any number of
other JVMs that presumably will not work.

I'm pretty sure that libcommons-beanutils-java itself works with recent SableVM and GIJ version, but how do you want to test this without an application that actually uses this library?

Ok, this now takes too much time arguing the same things over and over again. I'd rather work on packaging. If you still object, my propsal is rejected and I'll add java*-runtime dependencies to all my packages.

Stefan




Reply to: