From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: bug#31721: =?UTF-8?Q?=E2=80=9Cgenerate-jar-indices=E2=80=9D?= phase fails on many packages Date: Thu, 7 Jun 2018 09:20:37 +0200 Message-ID: <877enbyse2.fsf@elephly.net> References: <8736y11o2q.fsf@mdc-berlin.de> <20180607010620.31fbf16c@scratchpost.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:60195) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fQpEI-0007IO-Tf for bug-guix@gnu.org; Thu, 07 Jun 2018 03:21:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fQpEE-0003XV-OR for bug-guix@gnu.org; Thu, 07 Jun 2018 03:21:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:57712) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fQpEE-0003X3-CZ for bug-guix@gnu.org; Thu, 07 Jun 2018 03:21:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fQpEE-0002vn-3Q for bug-guix@gnu.org; Thu, 07 Jun 2018 03:21:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <20180607010620.31fbf16c@scratchpost.org> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Danny Milosavljevic Cc: 31721@debbugs.gnu.org Danny Milosavljevic writes: >> The errors are either about duplicates as in java-picard-2.10.3: >> >> duplicate entry: htsjdk/samtools/AbstractBAMFileIndex$1.class > > That's... bad. What if those files differed? Which one would be used at > runtime? I wonder where they come from. Is this from a dependency or are there actually two such classes? >> or about missing files as in dropseq-tools: >> >> java.io.FileNotFoundException: /gnu/store/q76y0ximcziplgfpbn26kbw4h3s14f33-dropseq-tools-1.13/share/java/lib/biojava-alignment.jar > > That's also bad. How does it run at all if its dependencies are missing? To satisfy the dropseq-tools build system the dependencies a symlinked to the build directory. I suspect that the error is something to do with that. > The only thing I can think of that would improve things long term: > > The phase can add relative paths to all the dependencies to META-INF/MANIFEST.MF > before invoking "jar -i". > Then "jar -i" will index those - and all java packages can use regular inputs > instead of propagated inputs. I've tested that locally already - and it > works fine. Is it correct that this would ensure that in case of duplicate class names this would pick the class from the current package? -- Ricardo