Source: unity-java Version: 1.1~b1+dfsg-2 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org
Hi, Whilst working on the Reproducible Builds effort [0], we noticed that unity-java could not be built reproducibly. This is because it shipped a 'STAMP' file within the .jar that contained the current build date. I'm not convinced by the value of including this file, but a patch is attached that ensures that the content of this file is based on the value of SOURCE_DATE_EPOCH if it is available. Patch attached. [0] https://reproducible-builds.org/ Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `-
--- a/debian/patches/Reproducible-build.patch 1970-01-01 01:00:00.000000000 +0100 --- b/debian/patches/Reproducible-build.patch 2023-07-12 09:30:30.471901700 +0100 @@ -0,0 +1,27 @@ +Description: Make the build reproducible +Author: Chris Lamb <la...@debian.org> +Last-Update: 2023-07-12 + +--- unity-java-1.1~b1+dfsg.orig/src/java/Makefile.in ++++ unity-java-1.1~b1+dfsg/src/java/Makefile.in +@@ -33,6 +33,11 @@ prefix=@prefix@ + exec_prefix=@exec_prefix@ + bindir=@bindir@ + ++ifdef SOURCE_DATE_EPOCH ++ BUILD_DATE ?= $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" 2>/dev/null || date -u) ++else ++ BUILD_DATE ?= $(shell date) ++endif + + all: unity.jar + +@@ -49,7 +54,7 @@ unity.jar: build/$(CP)/UnitParser.class + build/STAMP: + mkdir -p build/jdk + mkdir -p gen/$(CP) +- date >build/STAMP ++ echo $(BUILD_DATE) >build/STAMP + + build/$(CP)/UnitParser.class: $(CP)/UnitParser.java \ + $(CP)/OneUnit.java \ --- a/debian/patches/series 2023-07-12 09:27:01.315266534 +0100 --- b/debian/patches/series 2023-07-12 09:30:28.083894735 +0100 @@ -1,3 +1,4 @@ Remove-Java-compatibility-restrictions-from-javac-call.patch Fix-glitches-in-documentation-generation.patch Disable-failing-test.patch +Reproducible-build.patch