From 35e230e48ca42f4ccb872d1d01f9280f8015b417 Mon Sep 17 00:00:00 2001 From: Benjamin Gilbert Date: Tue, 13 Dec 2022 21:12:41 -0500 Subject: depfixer: silence fix_jar() and make it do something fix_jar() tries to remove an existing Class-Path entry from the jar manifest by postprocessing the manifest and passing it to `jar -um`. However, `jar -um` can only add/replace manifest entries, not remove them, and it also complains loudly when replacing an entry: Dec 13, 2022 7:11:19 PM java.util.jar.Attributes read WARNING: Duplicate name in Manifest: Manifest-Version. Ensure that the manifest does not have duplicate entries, and that blank lines separate individual sections in both your manifest and in the META-INF/MANIFEST.MF entry in the jar file. Thus fix_jar() produces one such warning for each entry in the manifest and accomplishes nothing else. Use jar -uM instead. This completely removes the manifest from the jar and allows adding it back as a normal zip member, fixing fix_jar() and avoiding the warnings. Fixes: https://github.com/mesonbuild/meson/issues/10491 Fixes: c70a051e93 ("java: remove manifest classpath from installed jar") --- test cases/unit/110 classpath/com/mesonbuild/Simple.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 test cases/unit/110 classpath/com/mesonbuild/Simple.java (limited to 'test cases/unit/110 classpath/com/mesonbuild/Simple.java') diff --git a/test cases/unit/110 classpath/com/mesonbuild/Simple.java b/test cases/unit/110 classpath/com/mesonbuild/Simple.java new file mode 100644 index 000000000..325a49a21 --- /dev/null +++ b/test cases/unit/110 classpath/com/mesonbuild/Simple.java @@ -0,0 +1,7 @@ +package com.mesonbuild; + +class Simple { + public static void main(String [] args) { + System.out.println("Java is working.\n"); + } +} -- cgit v1.2.3