Jérémy Bobbio:
> The attached patch […]

For real, this time.

-- 
Lunar                                .''`. 
lu...@debian.org                    : :Ⓐ  :  # apt-get install anarchism
                                    `. `'` 
                                      `-   
diff -Nru memtest86+-5.01/debian/changelog memtest86+-5.01/debian/changelog
--- memtest86+-5.01/debian/changelog	2014-09-10 19:58:11.000000000 +0000
+++ memtest86+-5.01/debian/changelog	2015-04-27 16:53:40.000000000 +0000
@@ -1,3 +1,12 @@
+memtest86+ (5.01-2.0~reproducible1) UNRELEASED; urgency=low
+
+  * Make the package build reproducibly:
+    - Add a patch to make ISO image reproducible.
+    - Set the build date to the latest debian/changelog entry in
+      debian/rules.
+
+ -- Jérémy Bobbio <lu...@debian.org>  Sun, 26 Apr 2015 22:57:52 +0000
+
 memtest86+ (5.01-2) unstable; urgency=medium
 
   * Build -O0 to workaround what is apparently a gcc 4.9 optimisation bug,
diff -Nru memtest86+-5.01/debian/patches/make-iso-reproducible memtest86+-5.01/debian/patches/make-iso-reproducible
--- memtest86+-5.01/debian/patches/make-iso-reproducible	1970-01-01 00:00:00.000000000 +0000
+++ memtest86+-5.01/debian/patches/make-iso-reproducible	2015-04-27 16:52:57.000000000 +0000
@@ -0,0 +1,34 @@
+Description: make ISO image reproducible
+ To enable the ISO image to be built reproducibly, we need to allow
+ the build date to be set externally. This will cap the modification time
+ of the embedded files, and set the image creation date.
+ .
+ The timezone is also set to UTC to avoid variations from one build
+ environment to another.
+ .
+ This requires a version of genisoimage supporting the -creation-date flag.
+Author: Jérémy Bobbio <lu...@debian.org>
+
+
+Index: memtest86+-5.01/makeiso.sh
+===================================================================
+--- memtest86+-5.01.orig/makeiso.sh
++++ memtest86+-5.01/makeiso.sh
+@@ -37,7 +37,16 @@ cd cd
+ echo -e "There is nothing to do here\r\r\nMemtest86+ is located on the bootsector of this CD\r\r\n" > README.TXT
+ echo -e "Just boot from this CD and Memtest86+ will launch" >> README.TXT
+ 
+-genisoimage -A "MKISOFS 1.1.2" -p "Memtest86+ 5.01" -publisher "Samuel D. <sdeme...@memtest.org>" -b boot/memtest.img -c boot/boot.catalog -V "MT501" -o memtest.iso .
++if [ "$BUILD_DATE" ]; then
++	if genisoimage -help 2>&1 | grep -q -- '-creation-date'; then
++		find . -newermt "$BUILD_DATE" -print0 |
++			xargs -0r touch --no-dereference --date="$BUILD_DATE"
++		EXTRA_OPTS="-creation-date $(date -u +'%s' --date="$BUILD_DATE")"
++	else
++		echo "genisoimage does not support -creation-date. Ignoring BUILD_DATE."
++	fi
++fi
++TZ=UTC genisoimage $EXTRA_OPTS -A "MKISOFS 1.1.2" -p "Memtest86+ 5.01" -publisher "Samuel D. <sdeme...@memtest.org>" -b boot/memtest.img -c boot/boot.catalog -V "MT501" -o memtest.iso .
+ mv memtest.iso ../mt501.iso
+ cd ..
+ rm -rf cd
diff -Nru memtest86+-5.01/debian/patches/series memtest86+-5.01/debian/patches/series
--- memtest86+-5.01/debian/patches/series	2014-09-10 19:53:13.000000000 +0000
+++ memtest86+-5.01/debian/patches/series	2015-04-27 16:46:39.000000000 +0000
@@ -2,3 +2,4 @@
 multiboot
 memtest86+-5.01-O0.patch
 memtest86+-5.01-array-size.patch
+make-iso-reproducible
diff -Nru memtest86+-5.01/debian/rules memtest86+-5.01/debian/rules
--- memtest86+-5.01/debian/rules	2014-06-27 22:01:24.000000000 +0000
+++ memtest86+-5.01/debian/rules	2015-04-26 23:07:07.000000000 +0000
@@ -4,6 +4,10 @@
 
 PACKAGE=memtest86+
 
+# ensure reproducible ISO9660 image
+BUILD_DATE=$(shell dpkg-parsechangelog -S Date)
+export BUILD_DATE
+
 build: build-stamp
 build-stamp:
 	dh_testdir

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Reply via email to