all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Chris Marusich <cmmarusich@gmail.com>
To: Danny Milosavljevic <dannym@scratchpost.org>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH] Create INDEX.LIST; Was: Fix references in jar manifests
Date: Mon, 02 Apr 2018 00:12:42 +0200	[thread overview]
Message-ID: <87lge6y3s5.fsf@gmail.com> (raw)
In-Reply-To: <20180325121918.4243938c@scratchpost.org> (Danny Milosavljevic's message of "Sun, 25 Mar 2018 12:19:18 +0200")

[-- Attachment #1: Type: text/plain, Size: 1614 bytes --]

Hi Danny,

Thank you for writing a patch!  It looks good to me.  We will need to
apply this to the core-updates branch, right?  I think that changes to
the ant-build-system will cause all packages that use it to be rebuilt.

Danny Milosavljevic <dannym@scratchpost.org> writes:

> +(define* (generate-jar-indices #:key outputs #:allow-other-keys)
> +  "Generate file \"META-INF/INDEX.LIST\".  This file does not use word wraps
> +and is preferred over \"META-INF/MAINFEST.MF\", which does use word wraps,
> +by Java when resolving dependencies.  So we make sure to create it so that
> +grafting works."

Is that the only reason?  My understanding is that we want to generate
the JAR indices not only (1) to ensure that grafting will work properly,
but also (2) to ensure that the reference scanner will find all the
store paths produced in the output JAR.  Goal (2) is important because
if a store path is used at run-time by the installed software, but the
path is treated as "dead" by the garbage collector, then the path may be
removed during garbage collection, which would break the software.  If
you agree, then could you update the docstring with a little more info?

> + (define (generate-index jar)
> +    (invoke "jar" "-i" jar))
> +  (every (match-lambda
> +           ((output . directory)
> +            (every generate-index (find-files directory "\\.jar$"))))
> +         outputs))

Does the jar program find the classes here via the CLASSPATH environment
variable, which was set earlier during the configure phase by the
generate-classpath procedure?

-- 
Chris

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

  reply	other threads:[~2018-04-01 22:12 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-01 17:11 broken references in jar manifests Ricardo Wurmus
2018-03-01 18:32 ` Gábor Boskovits
2018-03-01 18:54   ` Ricardo Wurmus
2018-03-01 19:08     ` Gábor Boskovits
2018-03-01 19:52       ` Ricardo Wurmus
2018-03-19  4:24       ` Chris Marusich
2018-03-19  4:47         ` Ricardo Wurmus
2018-03-02 13:18 ` Ludovic Courtès
2018-03-20 10:28   ` Danny Milosavljevic
2018-03-20 10:50     ` julien lepiller
2018-03-20 12:14       ` Danny Milosavljevic
2018-03-20 13:47         ` Ricardo Wurmus
2018-03-21 21:07         ` Danny Milosavljevic
2018-03-21 22:58           ` Ricardo Wurmus
2018-03-25 10:19           ` [PATCH] Create INDEX.LIST; Was: Fix " Danny Milosavljevic
2018-04-01 22:12             ` Chris Marusich [this message]
2018-04-18 13:25               ` Danny Milosavljevic
2018-05-06 18:09               ` Danny Milosavljevic

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=87lge6y3s5.fsf@gmail.com \
    --to=cmmarusich@gmail.com \
    --cc=dannym@scratchpost.org \
    --cc=guix-devel@gnu.org \
    /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.