From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: broken references in jar manifests Date: Thu, 01 Mar 2018 19:54:59 +0100 Message-ID: <87d10nmxrw.fsf@elephly.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:46822) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1erTNA-0002Dq-Sg for guix-devel@gnu.org; Thu, 01 Mar 2018 13:56:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1erTN6-00034j-La for guix-devel@gnu.org; Thu, 01 Mar 2018 13:56:08 -0500 Received: from sender-of-o51.zoho.com ([135.84.80.216]:21007) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1erTN6-00033i-9e for guix-devel@gnu.org; Thu, 01 Mar 2018 13:56:04 -0500 In-reply-to: List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: =?utf-8?Q?G=C3=A1bor?= Boskovits Cc: Guix-devel , Ricardo Wurmus G=C3=A1bor Boskovits writes: > 2018-03-01 18:11 GMT+01:00 Ricardo Wurmus : > >> Hi Guix, >> >> we have a problem with jar manifests. When we use the Class-Path >> property to ensure that an executable can find its dependencies on the >> class path at run-time, we end up with a manifest like this: >> >> --8<---------------cut here---------------start------------->8--- >> Manifest-Version: 1.0 >> Class-Path: /gnu/store/i28vi94r8z9f0x02zgkrv87w16ibmqkw-java-htsjdk-2. >> 10.1/share/java/htsjdk.jar >> Created-By: 1.8.0_151 (Oracle Corporation) >> Main-Class: picard.cmdline.PicardCommandLine >> --8<---------------cut here---------------end--------------->8--- >> >> Note that the Class-Path property is broken into two lines. This means >> that the reference scanner will miss it and grafting will fail. >> >> > Could we modify the reference scanner to find these lines? > Would there be any serious drawback to that? The reference scanner needs to be fast. The scheme version is heavily optimized to do quickly replace references for the purpose of grafting. The C++ version will eventually be replaced with the Scheme version as the daemon gets replaced. An alternative to recording full references in the manifest file is to install a =E2=80=9Clib=E2=80=9D directory that contains symlinks to depende= ncies. The manifest can then contain relative paths to these symlinks. That=E2=80=99s what I did in the package definition for dropseq-tools. -- Ricardo GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC https://elephly.net