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: