aqute-bnd/reproducible-timestamps.patch

41 lines
1.5 KiB
Diff

diff --git a/biz.aQute.bndlib/src/aQute/bnd/osgi/Jar.java b/biz.aQute.bndlib/src/aQute/bnd/osgi/Jar.java
index 10ec3fd0..7dd75418 100644
--- 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;
diff --git a/biz.aQute.bndlib/src/aQute/bnd/osgi/Macro.java b/biz.aQute.bndlib/src/aQute/bnd/osgi/Macro.java
index e9ecd39e..f7f83d83 100644
--- a/biz.aQute.bndlib/src/aQute/bnd/osgi/Macro.java
+++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/Macro.java
@@ -904,6 +904,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));
@@ -922,6 +926,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;
}