From unknown Sat Jun 14 05:23:47 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64389: java: stripping timestamps breaks jmods. Resent-From: Ricardo Wurmus Original-Sender: "Debbugs-submit" Resent-CC: bjoern.hoefling@bjoernhoefling.de, julien@lepiller.eu, bug-guix@gnu.org Resent-Date: Fri, 30 Jun 2023 22:35:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 64389 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 64389@debbugs.gnu.org Cc: =?UTF-8?Q?Bj=C3=B6rn_?= =?UTF-8?Q?H=C3=B6fling?= , Julien Lepiller X-Debbugs-Original-To: bug-guix@gnu.org X-Debbugs-Original-Xcc: =?UTF-8?Q?Bj=C3=B6rn_?= =?UTF-8?Q?H=C3=B6fling?= , Julien Lepiller Received: via spool by submit@debbugs.gnu.org id=B.168816445714254 (code B ref -1); Fri, 30 Jun 2023 22:35:01 +0000 Received: (at submit) by debbugs.gnu.org; 30 Jun 2023 22:34:17 +0000 Received: from localhost ([127.0.0.1]:55958 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qFMgz-0003hp-AB for submit@debbugs.gnu.org; Fri, 30 Jun 2023 18:34:17 -0400 Received: from lists.gnu.org ([209.51.188.17]:46938) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qFMgw-0003hg-Ug for submit@debbugs.gnu.org; Fri, 30 Jun 2023 18:34:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qFMgw-0000nA-MP for bug-guix@gnu.org; Fri, 30 Jun 2023 18:34:14 -0400 Received: from sender4-of-o50.zoho.com ([136.143.188.50]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qFMgu-00051O-NA for bug-guix@gnu.org; Fri, 30 Jun 2023 18:34:14 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1688164446; cv=none; d=zohomail.com; s=zohoarc; b=ERmqDte8WbTSidTgGY8wm5dhw/1qsDctIRTLONJU4Rr1JteAoVuwNotTyAYLhBQ830p1J43qgyptaDyMd8OFzSB/isZ0tyIAKL8RMHRG+/4NH2eHdw/rI7wTsUToqqgFepN6WKvtDTuCesJeybrxLUMJ+fkaxdP2ZXHJpTuOLb0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1688164446; h=Content-Type:Date:From:MIME-Version:Message-ID:Subject:To; bh=PUG9Bh928saW00BmqG7h+KAoHVknWdaCRe79l/XoLe8=; b=d1crm5Eo6FitmKMazVm2uO6ts5RhW5k1xhqCW/iXSnYN8tLHozRHuuYO60nrdg60QxYeRgcxyGmkmX6qPqa8j58kyRMMgutVXls8f96YuP6Ilt4iDKAHWjWVWo0YqstcikBCD89qf8z8hf3JrNnzEn9qfWKRL3I2nlKDEpkyWm4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=elephly.net; spf=pass smtp.mailfrom=rekado@elephly.net; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1688164446; s=zoho; d=elephly.net; i=rekado@elephly.net; h=From:From:To:To:Subject:Subject:Date:Date:Message-ID:MIME-Version:Content-Type:Message-Id:Reply-To:Cc; bh=PUG9Bh928saW00BmqG7h+KAoHVknWdaCRe79l/XoLe8=; b=F+KaSO9PM5j7s7tktiyogBDnEaBRfkvMUpazdiVKn4OS7fKHSSzgT2ZTEMG78bnK NHSwqLJbb1CSFYHfpeTCEhA4RoJhWem4RTKh6GrasyROyhQN0fME30l4aYL19PwQInc I8jvBzpUdKfhHfE5cMezExwrZNcBC6RNUooyzVBs= Received: from localhost (45-110-142-46.pool.kielnet.net [46.142.110.45]) by mx.zohomail.com with SMTPS id 1688164445000137.64553254223677; Fri, 30 Jun 2023 15:34:05 -0700 (PDT) User-agent: mu4e 1.10.3; emacs 28.2 From: Ricardo Wurmus Date: Sat, 01 Jul 2023 00:28:48 +0200 Message-ID: <87y1k0k2au.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain X-ZohoMailClient: External Received-SPF: pass client-ip=136.143.188.50; envelope-from=rekado@elephly.net; helo=sender4-of-o50.zoho.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) The 'strip-archive-timestamps phase in our openjdk packages breaks the jmod feature because it invalidates the content hashes. Here I try to extend the JDK with modules from openjfx: --8<---------------cut here---------------start------------->8--- jlink --add-modules java.desktop,javafx.swing,javafx.controls,jdk.unsupported.desktop --output myjdk --module-path openjfx-17.0.7_linux-x64_bin-jmods/javafx-jmods-17.0.7/ Error: Hash of java.xml (da39a79e291a7cc5b8e240390a4386a7d2323017871d6c2d635301826d0159f9) differs to expected hash (e3ee7150f05504485371ab9bac2d724a553f975eca5d529dca786599cc5f98a3) recorded in java.base java.lang.module.FindException: Hash of java.xml (da39a79e291a7cc5b8e240390a4386a7d2323017871d6c2d635301826d0159f9) differs to expected hash (e3ee7150f05504485371ab9bac2d724a553f975eca5d529dca786599cc5f98a3) recorded in java.base at java.base/java.lang.module.Resolver.findFail(Resolver.java:892) at java.base/java.lang.module.Resolver.checkHashes(Resolver.java:480) at java.base/java.lang.module.Resolver.finish(Resolver.java:378) at java.base/java.lang.module.Configuration.(Configuration.java:139) at java.base/java.lang.module.Configuration.resolve(Configuration.java:422) at java.base/java.lang.module.Configuration.resolve(Configuration.java:254) at jdk.jlink/jdk.tools.jlink.internal.Jlink$JlinkConfiguration.resolve(Jlink.java:217) at jdk.jlink/jdk.tools.jlink.internal.JlinkTask.createImageProvider(JlinkTask.java:536) at jdk.jlink/jdk.tools.jlink.internal.JlinkTask.createImage(JlinkTask.java:424) at jdk.jlink/jdk.tools.jlink.internal.JlinkTask.run(JlinkTask.java:276) at jdk.jlink/jdk.tools.jlink.internal.Main.run(Main.java:56) at jdk.jlink/jdk.tools.jlink.internal.Main.main(Main.java:34) --8<---------------cut here---------------end--------------->8--- When I remove the 'strip-archive-timestamps phase and try using jlink from this variant of the openjdk package things work fine: --8<---------------cut here---------------start------------->8--- java.base file:///gnu/store/c3hxi9pd9mpj3f6qk4qiysdqvchq8apm-openjdk-19.0.2-jdk/jmods/java.base.jmod java.datatransfer file:///gnu/store/c3hxi9pd9mpj3f6qk4qiysdqvchq8apm-openjdk-19.0.2-jdk/jmods/java.datatransfer.jmod java.desktop file:///gnu/store/c3hxi9pd9mpj3f6qk4qiysdqvchq8apm-openjdk-19.0.2-jdk/jmods/java.desktop.jmod java.prefs file:///gnu/store/c3hxi9pd9mpj3f6qk4qiysdqvchq8apm-openjdk-19.0.2-jdk/jmods/java.prefs.jmod java.xml file:///gnu/store/c3hxi9pd9mpj3f6qk4qiysdqvchq8apm-openjdk-19.0.2-jdk/jmods/java.xml.jmod javafx.base file:///home/rekado/Downloads/java/openjfx-17.0.7_linux-x64_bin-jmods/javafx-jmods-17.0.7/javafx.base.jmod javafx.controls file:///home/rekado/Downloads/java/openjfx-17.0.7_linux-x64_bin-jmods/javafx-jmods-17.0.7/javafx.controls.jmod javafx.graphics file:///home/rekado/Downloads/java/openjfx-17.0.7_linux-x64_bin-jmods/javafx-jmods-17.0.7/javafx.graphics.jmod javafx.swing file:///home/rekado/Downloads/java/openjfx-17.0.7_linux-x64_bin-jmods/javafx-jmods-17.0.7/javafx.swing.jmod jdk.unsupported file:///gnu/store/c3hxi9pd9mpj3f6qk4qiysdqvchq8apm-openjdk-19.0.2-jdk/jmods/jdk.unsupported.jmod jdk.unsupported.desktop file:///gnu/store/c3hxi9pd9mpj3f6qk4qiysdqvchq8apm-openjdk-19.0.2-jdk/jmods/jdk.unsupported.desktop.jmod Providers: java.desktop provides java.net.ContentHandlerFactory used by java.base java.base provides java.nio.file.spi.FileSystemProvider used by java.base java.base provides java.util.random.RandomGenerator used by java.base java.desktop provides javax.print.PrintServiceLookup used by java.desktop java.desktop provides javax.print.StreamPrintServiceFactory used by java.desktop java.desktop provides javax.sound.midi.spi.MidiDeviceProvider used by java.desktop java.desktop provides javax.sound.midi.spi.MidiFileReader used by java.desktop java.desktop provides javax.sound.midi.spi.MidiFileWriter used by java.desktop java.desktop provides javax.sound.midi.spi.SoundbankReader used by java.desktop java.desktop provides javax.sound.sampled.spi.AudioFileReader used by java.desktop java.desktop provides javax.sound.sampled.spi.AudioFileWriter used by java.desktop java.desktop provides javax.sound.sampled.spi.FormatConversionProvider used by java.desktop java.desktop provides javax.sound.sampled.spi.MixerProvider used by java.desktop java.desktop provides sun.datatransfer.DesktopDatatransferService used by java.datatransfer jdk.unsupported.desktop provides sun.swing.InteropProvider used by java.desktop --8<---------------cut here---------------end--------------->8--- We will need to find a way to remove timestamps without leaving invalid hashes behind. Can we recompute the file hashes or avoid embedding timestamps in the first place? -- Ricardo