Fridrich Strba 2023-09-16 10:13:01 +00:00 committed by Git OBS Bridge
parent 1d9d210d12
commit a6cacbe783
6 changed files with 91 additions and 0 deletions

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Sat Sep 16 10:08:36 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Added patches:
* reproducible-timestamps.patch
+ set "-reproducible" option to true by default
+ use SOURCE_DATE_EPOCH for timestamp if available
* reproducible-packages-list.patch
+ make the order of packages to import/export determininstic
-------------------------------------------------------------------
Thu May 4 14:25:12 UTC 2023 - Dominique Leuenberger <dimstar@opensuse.org>

View File

@ -36,6 +36,8 @@ Patch0: 0001-Disable-removed-commands.patch
Patch2: 0003-Port-to-OSGI-7.0.0.patch
Patch3: aqute-bnd-java8compat.patch
Patch4: 0004-maven-plugin-dependencies.patch
Patch5: reproducible-timestamps.patch
Patch6: reproducible-packages-list.patch
BuildRequires: ant
BuildRequires: fdupes
BuildRequires: javapackages-local
@ -95,6 +97,8 @@ build-jar-repository -s lib \
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
# the commands pull in more dependencies than we want (felix-resolver, jetty, jtwig, javapackager)
rm biz.aQute.bnd/src/aQute/bnd/main/{RemoteCommand,ResolveCommand,ExportReportCommand,MbrCommand,ReporterLogger}.java

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Sat Sep 16 10:08:36 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Added patches:
* reproducible-timestamps.patch
+ set "-reproducible" option to true by default
+ use SOURCE_DATE_EPOCH for timestamp if available
* reproducible-packages-list.patch
+ make the order of packages to import/export determininstic
-------------------------------------------------------------------
Wed Apr 26 17:47:47 UTC 2023 - Fridrich Strba <fstrba@suse.com>

View File

@ -29,6 +29,8 @@ Patch0: 0001-Disable-removed-commands.patch
Patch2: 0003-Port-to-OSGI-7.0.0.patch
Patch3: aqute-bnd-java8compat.patch
Patch4: 0004-maven-plugin-dependencies.patch
Patch5: reproducible-timestamps.patch
Patch6: reproducible-packages-list.patch
BuildRequires: fdupes
BuildRequires: maven-local
BuildRequires: mvn(biz.aQute.bnd:biz.aQute.bndlib)
@ -62,6 +64,8 @@ API documentation for %{name}.
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
pushd maven
%pom_remove_dep -r :biz.aQute.bnd.maven

View File

@ -0,0 +1,27 @@
--- a/biz.aQute.bndlib/src/aQute/bnd/osgi/Packages.java
+++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/Packages.java
@@ -1,9 +1,9 @@
package aQute.bnd.osgi;
import java.util.Collection;
-import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
+import java.util.TreeMap;
import aQute.bnd.header.Attrs;
import aQute.bnd.osgi.Descriptors.PackageRef;
@@ -21,11 +21,11 @@ public class Packages implements Map<PackageRef, Attrs> {
}
public Packages(Packages other) {
- map = new LinkedHashMap<>(other.map);
+ map = new TreeMap<>(other.map);
}
public Packages() {
- map = new LinkedHashMap<>();
+ map = new TreeMap<>();
}
@Override

View File

@ -0,0 +1,36 @@
--- a/biz.aQute.bndlib/src/aQute/bnd/osgi/Jar.java
+++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/Jar.java
@@ -114,7 +114,7 @@ public class Jar implements Closeable {
private String lastModifiedReason;
private boolean doNotTouchManifest;
private boolean nomanifest;
- private boolean reproducible;
+ private boolean reproducible = true;
private Compression compression = Compression.DEFLATE;
private boolean closed;
private String[] algorithms;
--- a/biz.aQute.bndlib/src/aQute/bnd/osgi/Macro.java
+++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/Macro.java
@@ -909,6 +909,10 @@ public class Macro {
reporter.warning("Too many arguments for tstamp: %s", Arrays.toString(args));
}
+ if (System.getenv("SOURCE_DATE_EPOCH") != null) {
+ now = 1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"));
+ }
+
SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.US);
sdf.setTimeZone(tz);
return sdf.format(new Date(now));
@@ -927,6 +931,11 @@ public class Macro {
} else {
now = System.currentTimeMillis();
}
+
+ if (System.getenv("SOURCE_DATE_EPOCH") != null) {
+ now = 1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"));
+ }
+
return now;
}