This is a multi-part MIME message sent by reportbug.
Package: libmaven-bundle-plugin-java
Severity: wishlist
Tags: patch
User:
reproducible-builds@lists.alioth.debian.org
Usertags: toolchain
Dear Maintainer,
The maven-bundle-plugin utility creates Java .jar archives that contain non-deterministic contents in the Export-Package, Private-Package and Include-Resource header fields of the MANIFEST.MF file when listing those files from the underlying filesystem returns them in differing order.
There is an exisiting report[1] of this problem upstream in the Apache Felix project, and it has been resolved by a subsequent change[2] to sort the contents of the relevant field values before they're written to the manifest.
Please find attached a backport of the upstream changeset, which applies cleanly to the maven-bundle-plugin-3.5.1 sources.
Thank you,
James
[1] -
https://issues.apache.org/jira/browse/FELIX-6602
[2] -
https://github.com/apache/felix-dev/pull/208
From d885d99a6a16660f655a4fd18e8a1a39beef0a15 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20Boutemy?= <
hboutemy@apache.org>
Date: Sat, 25 Mar 2023 00:18:11 +0100
Subject: [PATCH] FELIX-6602 sort resources and exported packages
---
.../java/org/apache/felix/bundleplugin/BundlePlugin.java | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
--- a/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
+++ b/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
@@ -1938,6 +1938,7 @@ public class BundlePlugin extends AbstractMojo
scanner.scan();
String[] paths = scanner.getIncludedFiles();
+ Arrays.sort( paths );
for ( int i = 0; i < paths.length; i++ )
{
packages.put( analyzer.getPackageRef( getPackageName( paths[i] ) ) );
@@ -2076,7 +2077,9 @@ public class BundlePlugin extends AbstractMojo
scanner.addDefaultExcludes();
scanner.scan();
- List<String> includedFiles = Arrays.asList( scanner.getIncludedFiles() );
+ String[] f = scanner.getIncludedFiles();
+ Arrays.sort( f );
+ List<String> includedFiles = Arrays.asList(