Subject: Re: [bug#29896] [PATCH] gnu: java-asm: Update to 6.0.
From: Chris Marusich <[email-masked]>
To: Gábor Boskovits <[email-masked]>, Ricardo Wurmus <[email-masked]>, Julien Lepiller <[email-masked]>
Cc: [email-masked], Leo Famulari <[email-masked]>
Date: Sat, 20 Jan 2018 13:43:06 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Gábor Boskovits <[email-masked]> writes:

> Actually I am not sure, that bnd is used runtime. How could we check that?

The only class in the java-asm source code that uses bnd seems to be
ModuleInfoBndPlugin.java.  I checked by grepping for imports that
mentioned the string "bnd".  This class is declared public, and it is
included in the output JAR, so it is technically possible for code that
depends on java-asm to use this class (and therefore java-aqute-bndlib)
at runtime, even though there might also be code that depends on
java-asm that does not use this class at runtime.  So it seems
reasonable to make it a propagated-input.  The only downside is that
java-aqute-bndlib is 125% larger than java-asm (1.8 MiB compared to 0.8
MiB).

I've committed this patch as d0e9ded713e06790aad4992de7c26d075d18b86d,
with the changes we agreed upon.  I've also added a copyright line for
both you and me gnu/packages/java.scm.

Julien Lepiller <[email-masked]> writes:

> There's a method to get references to a dependency in java: you can put
> it in the MANIFEST.MF file as:
>
> Class-Path: /gnu/store/...
>
> It's a space-separated list of jar files that have to be added to the
> classpath. This could be done in a phase that runs just before the
> build phase, like the phase that adds a Main-Class.

We've considered using this feature, but I don't know if anybody
followed through and tried it out.  Your help would be welcome!  Prior
discussions can be found here:

https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00249.html
https://lists.gnu.org/archive/html/guix-devel/2017-05/msg00019.html

If you want to discuss this further, please start a new thread on
[email-masked].

Ricardo Wurmus <[email-masked]> writes:

> Chris Marusich <[email-masked]> writes:
>
>> The installed software still won't
>> work without additional work on the part of the user (e.g., the user
>> needs to set the CLASSPATH when invoking java, or use java's -cp
>> option), but for now at least making the input a propagated input will
>> ensure that it gets installed alongside the package which at runtime
>> requires it, which is better than nothing.
>
> This can be fixed by adding a search path specification for CLASSPATH to
> the icedtea packages.

I think that's a good idea!  I'll follow up with a separate patch later,
unless you beat me to it.

-- 
Chris