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

Re: Developing with Java on Debian



So I'm still wondering how the packaging of java packages in Debian works.

Lets say that I do some more research on Hibernate and discover it
really cannot run without Log4j because classes in Hibernate directly
reference Log4j. [1] Then I submit a bug report and the dependency
gets added. Where's the classpath? Are there any tools for (i) working
out whether a classpath is closed with respect to resolution of direct
class references [2], (ii) do java libraries in debian express their
classpath? Should they have a classpath, something like
/usr/share/java/hibernate-annotations-1.2.jar.classpath ?

My guess is that if we had (i) and (ii) we would not be very far from
(a) an automated way to verify package binary correctness, and (b) an
automated way to infer dependencies that integrates with debhelper and
cdbs.

Storing classpath's in addition to package dependencies would allow
for finer grained dependencies, e.g. if package X provides jars A and
B, and Y has a jar C that needs A, then Y requires X, but the
classpath for C would mention just A (and we would close the
classpaths before using them).

I'm new to Debian packaging, still trying to understand and practice
packaging, so I'm wondering if I'm thinking in the right direction.
Are there records of discussions had by the java packaging team at
Debian?

regards,

Richard.

[1] A side question on policy here, should I submit a bug report with
some limited knowledge, or should I wait and research the issue in
detail before submitting a bug report?

[2] .i.e. if one class references another class directly, not through
a string or some such, then we should be able to resolve that class
with the classpath.

On Fri, Jun 20, 2008 at 8:18 AM, Florian Grandel <jerico.dev@gmail.com> wrote:
> Hi Richard,
>
>> Right now I see that hibernate is available as a library package that
>> has put jars in /usr/share/java. If I depend on these jars and write a
>> unit test I discover that there are more dependencies, I need some of
>> the apache commons libraries and the log4j library, but I can't see
>> those as dependencies.
>
> Are you speaking about declaring dependencies within Eclipse (=configuring
> the project's build path)?
>
> Or are you speaking about missing jar-packages required for the hibernate
> package on the Debian package layer?
>
> In the second case, if there are dependencies that have not been
> automatically installed on the system you should probably file a bug as
> Andrew said.
>
> In the first case however (which I think you were talking about) I don't
> know about an Eclipse plugin that is capable of interpreting Debian package
> dependencies and "importing" them as build path dependencies to Eclipse. The
> only thing I can think of is that you manually look at the package
> dependencies (either through a script using dpkg or through Synaptic GUI ->
> package properties) and see which jars or sources have been installed by
> packages depending on the library you are interested in.
>
> If you are an advanced scripter you might write a script that updates your
> .classpath-File in the Eclipse project folder based on information retrieved
> from Debian packages. I'd be really interested if you invented something
> like this. It might even not be very hard to do it that way. :-)
>
> Florian
>


Reply to: