all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Chris Marusich <cmmarusich@gmail.com>
To: "Leo Famulari" <leo@famulari.name>,
	"Ricardo Wurmus" <rekado@elephly.net>,
	"Gábor Boskovits" <boskovits@gmail.com>
Cc: 29896@debbugs.gnu.org
Subject: [bug#29896] [PATCH] gnu: java-asm: Update to 6.0.
Date: Fri, 19 Jan 2018 23:50:43 -0800	[thread overview]
Message-ID: <87fu71ufxo.fsf@gmail.com> (raw)
In-Reply-To: <20180120001202.GC18016@jasmine.lan> (Leo Famulari's message of "Fri, 19 Jan 2018 16:12:02 -0800")


[-- Attachment #1.1: Type: text/plain, Size: 3125 bytes --]

Leo Famulari <leo@famulari.name> writes:

> On Thu, Jan 18, 2018 at 10:35:34PM -0800, Chris Marusich wrote:
>> Even though we added some inputs, there appear to be no retained
>> references in the output, as shown by this command:
>> 
>>   guix gc --referrers $(./pre-inst-env guix build java-asm)
>
> To check the retained references in the output [0], it's actually `guix
> gc --references $(./pre-inst-env guix build ...)`.
>
> [0] To clarify "retained references", they are literally occurences of
> strings that begin with '/gnu/store/', then a Guix hash, then a hyphen,
> and then a package name.

You're right; this was a "thinko" on my part.  I meant to write
"--references" instead of "--referrers".  The output of the correct
command is still empty, so there are still no references.

Ricardo Wurmus <rekado@elephly.net> writes:

> Chris Marusich <cmmarusich@gmail.com> writes:
>
>> If the new input is also required at runtime, then I'm not sure this
>> package definition is correct.  I would normally expect a "runtime
>> dependency" to be either retained as a reference in the output, or
>> declared as a propagated-input (so that it gets installed alongside this
>> package when this package is installed into a profile).  Perhaps I am
>> missing some information here.
>>
>> I'm hoping Ricardo can comment on how this is intended to work for Java
>> packages, since he originally added the ant-build-system.
>
> The jars that the ant-build-system generates are uncompressed and thus
> allow the scanner to find embedded store references.  The problem seems
> to be that references to other *jars* are not kept, because they are
> never recorded anywhere.  That’s normal for Java, which looks for named
> classes on the classpath, i.e. a list of jars.  It behaves very much
> like Python and its PYTHONPATH in this regard.
>
> The best we can do here is to propagate inputs.  The alternative is to
> try to be smart and record the effective runtime classpath, but that’s
> hard/impossible to get right.

OK - thank you for the explanation!  In light of that information, I
think that in the case of a package that uses the ant-build-system (like
java-asm), if we know for sure that an input is required at runtime, we
should make it a propagated input.  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.

Here's an updated patch that makes this change.  In addition, I
discovered that (1) the build succeeds and produces the same JAR file
even when I removed java-aqute-libg as an input, so I've removed that,
and (2) the build succeeds and produces the same JAR file even when I
use a dummy value for the biz.aQute.bnd.path Ant property, so I did that
to make it clear that it wasn't important to the build.  What do you
think?

-- 
Chris

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-gnu-java-asm-Update-to-6.0.patch --]
[-- Type: text/x-patch, Size: 2321 bytes --]

From b7ab0f263338f54d3982b6d1cc91306f4691116a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= <boskovits@gmail.com>
Date: Sun, 7 Jan 2018 22:23:56 +0100
Subject: [PATCH] gnu: java-asm: Update to 6.0.

* gnu/packages/java.scm (java-asm): Update to 6.0.
[propagated-inputs]: Add java-aqute-bndlib (new dependency).
[arguments]: Adjust make-flags, so that the build does not complain about
unset properties.
---
 gnu/packages/java.scm | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index c04b45c53..38bfffaf5 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2660,23 +2660,31 @@ archives (jar).")
 (define-public java-asm
   (package
     (name "java-asm")
-    (version "5.2")
+    (version "6.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://download.forge.ow2.org/asm/"
                                   "asm-" version ".tar.gz"))
               (sha256
                (base32
-                "0kxvmv5275rnjl7jv0442k3wjnq03ngkb7sghs78avf45pzm4qgr"))))
+                "115l5pqblirdkmzi32dxx7gbcm4jy0s14y5wircr6h8jdr9aix00"))))
     (build-system ant-build-system)
+    (propagated-inputs
+     `(("java-aqute-bndlib" ,java-aqute-bndlib)))
     (arguments
      `(#:build-target "compile"
        ;; The tests require an old version of Janino, which no longer compiles
        ;; with the JDK7.
        #:tests? #f
-       ;; We don't need these extra ant tasks, but the build system asks us to
-       ;; provide a path anyway.
-       #:make-flags (list (string-append "-Dobjectweb.ant.tasks.path=foo"))
+       #:make-flags
+       (list
+        ;; We don't need these extra ant tasks, but the build system asks us to
+        ;; provide a path anyway.
+        "-Dobjectweb.ant.tasks.path=dummy-path"
+        ;; The java-aqute.bndlib JAR file will be put onto the classpath and
+        ;; used during the build automatically by ant-build-system, but
+        ;; java-asm's build.xml fails unless we provide something here.
+        "-Dbiz.aQute.bnd.path=dummy-path")
        #:phases
        (modify-phases %standard-phases
          (add-before 'install 'build-jars
-- 
2.15.1


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

  reply	other threads:[~2018-01-20  7:51 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-29 19:00 [bug#29896] [PATCH core-updates] gnu: java-asm: Update to 6.0 Gábor Boskovits
2018-01-07 21:23 ` [bug#29896] [PATCH] " Gábor Boskovits
2018-01-07 21:27   ` Gábor Boskovits
2018-01-19  6:35   ` Chris Marusich
2018-01-19  8:11     ` Gábor Boskovits
2018-01-19  9:59       ` Chris Marusich
2018-01-19 12:13         ` Ricardo Wurmus
2018-01-20  0:12     ` Leo Famulari
2018-01-20  7:50       ` Chris Marusich [this message]
2018-01-20  9:08         ` Gábor Boskovits
2018-01-20 11:24           ` Julien Lepiller
2018-01-20 21:43           ` bug#29896: " Chris Marusich
2018-01-21 13:52             ` [bug#29896] " Ricardo Wurmus
2018-01-20 11:29         ` Ricardo Wurmus

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

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

  git send-email \
    --in-reply-to=87fu71ufxo.fsf@gmail.com \
    --to=cmmarusich@gmail.com \
    --cc=29896@debbugs.gnu.org \
    --cc=boskovits@gmail.com \
    --cc=leo@famulari.name \
    --cc=rekado@elephly.net \
    /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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.