Bug#1040904: unity-java: please make the build reproducible

Chris Lamb lamby at debian.org
Wed Jul 12 09:32:05 BST 2023


Source: unity-java
Version: 1.1~b1+dfsg-2
Severity: wishlist
Tags: patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-bugs at 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
     `. `'`      lamby at debian.org / chris-lamb.co.uk
       `-
-------------- next part --------------
--- 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 <lamby at 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


More information about the Reproducible-bugs mailing list