unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: Liliana Marie Prikler <liliana.prikler@ist.tugraz.at>
Cc: Julien Lepiller <julien@lepiller.eu>, 58591@debbugs.gnu.org
Subject: bug#58591: Java packages do not appear to keep a reference to their inputs
Date: Tue, 18 Oct 2022 09:14:03 -0400	[thread overview]
Message-ID: <87y1tdw9yc.fsf@gmail.com> (raw)
In-Reply-To: <0e0a5d5dd55ae78f2eda4e390517d6b5e0325b83.camel@ist.tugraz.at> (Liliana Marie Prikler's message of "Tue, 18 Oct 2022 09:36:44 +0200")

Hello,

Liliana Marie Prikler <liliana.prikler@ist.tugraz.at> writes:

> Am Montag, dem 17.10.2022 um 22:45 -0400 schrieb Maxim Cournoyer:
>> Hi Julien,
>> 
>> Julien Lepiller <julien@lepiller.eu> writes:
>> 
>> > You're right, java package don't retain references to there input,
>> > that's why we propagate required dependencies (mh… sometimes). I
>> > don't
>> > know how they could reference dependencies directly.
>> 
>> Could we, along with installing Java classes as directories instead
>> of .jar archive files [0] at a more specific prefix, define a search
>> path specification that'd set CLASSPATH?  Currently I don't see
>> anything setting CLASSPATH outside of the build systems, so even if
>> we propagate Java things, I don't see how it'd find them in a
>> profile.
> I'd recommend writing an xml file like 
>
>   <path id="${java-package-name}.classpath">
>     <pathelement location="${output-jar}" />
>     <pathelement path="${input1.classpath}" />
>     ... 
>     <pathelement path="${inputn.classpath}" /> 
>   </path>
>
> to a well-known location.  Then we could reuse those files in ant-
> build-system.

A nice read is [0], which mentions the existence of a 'Class-Path' main
attribute that can go in the manifest file.  If using unpacked jars
works the same as .jars (which are just zip files) for Java, then we
could not only have dependency correctly referenced and loaded via
'Class-Path', but also the grafting mechanism would work, since the
paths would appear in clear (not obfuscated due to zip compression).

Our current usage of JarIndex doesn't suite the bill it was intended
for; this is a performance trick to index all the .jars of a .jar pack;
it'll only list its dependencies if they are packed in the same jar,
which is not what we do or want as a distribution.

[0]  https://docs.oracle.com/en/java/javase/19/docs/specs/jar/jar.html

-- 
Thanks,
Maxim




  reply	other threads:[~2022-10-18 13:15 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-17 21:04 bug#58591: Java packages do not appear to keep a reference to their inputs Maxim Cournoyer
2022-10-17 22:03 ` Julien Lepiller
2022-10-18  1:43   ` Mark H Weaver
2022-10-18  2:45   ` Maxim Cournoyer
2022-10-18  7:01     ` Maxime Devos
2022-10-18  7:36     ` Liliana Marie Prikler
2022-10-18 13:14       ` Maxim Cournoyer [this message]
2022-10-18 13:21         ` Tobias Geerinckx-Rice via Bug reports for GNU Guix
2022-10-18 14:17           ` Tobias Geerinckx-Rice via Bug reports for GNU Guix
2022-10-18 14:53           ` Maxim Cournoyer
2022-10-18 14:56             ` Maxim Cournoyer
2022-10-18 15:32               ` Julien Lepiller
2022-10-18 23:25                 ` Maxim Cournoyer
2022-10-18 13:29         ` Maxim Cournoyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y1tdw9yc.fsf@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=58591@debbugs.gnu.org \
    --cc=julien@lepiller.eu \
    --cc=liliana.prikler@ist.tugraz.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).