try to make build reproducible
- e.g. all files now have fixed timestamp of '02-01-1980 00:00' and fixed permissions
- furthermore OSGi MANIFEST.MF has no timestamped attributes
diff --git a/build.gradle.kts b/build.gradle.kts
index e9a2750..34461d7 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -37,6 +37,17 @@
options.encoding = "UTF-8"
}
+tasks.withType<AbstractArchiveTask>().configureEach {
+ isPreserveFileTimestamps = false
+ isReproducibleFileOrder = true
+ filePermissions {
+ unix("rw-r--r--")
+ }
+ dirPermissions {
+ unix("rwxr-xr-x")
+ }
+}
+
freemarkerRoot {
configureSourceSet(SourceSet.MAIN_SOURCE_SET_NAME) { enableTests() }
configureSourceSet("jsp20")
diff --git a/osgi.bnd b/osgi.bnd
index 9cbe266..cac520e 100644
--- a/osgi.bnd
+++ b/osgi.bnd
@@ -51,6 +51,11 @@
# "Compiling against more than is required"
Bundle-RequiredExecutionEnvironment: JavaSE-16, JavaSE-15, JavaSE-14, JavaSE-13, JavaSE-12, JavaSE-11, JavaSE-10, JavaSE-9, JavaSE-1.8
+# for reproducible build (see https://bnd.bndtools.org/instructions/reproducible.html
+# and https://bnd.bndtools.org/instructions/noextraheaders.html)
+-reproducible: true
+-noextraheaders: true
+
# Non-OSGi meta:
Main-Class: freemarker.core.CommandLine
Extension-name: FreeMarker