Source: procmail
Version: 3.22-23
Severity: wishlist
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], it has been
discovered that procmail could not be built reproducibly.

The attached patch will ensure a reproducible mtimes for files
shipped by the binary packges and tell gzip to stop recording the
current time in the created gizp files.

After applying these patches, procmail can be built reproducibly with
the current experimental framework.

 [1]: https://wiki.debian.org/ReproduibleBuilds

-- 
Lunar                                .''`. 
lu...@debian.org                    : :Ⓐ  :  # apt-get install anarchism
                                    `. `'` 
                                      `-   
diff -Nru procmail-3.22/debian/changelog procmail-3.22/debian/changelog
--- procmail-3.22/debian/changelog	2014-12-03 22:56:02.000000000 +0000
+++ procmail-3.22/debian/changelog	2015-01-01 15:37:06.000000000 +0000
@@ -1,3 +1,10 @@
+procmail (3.22-23.0~reproducible1) UNRELEASED; urgency=low
+
+  * Fix mtimes before building binary packages.
+  * Stop recording current time when using gzip.
+
+ -- Jérémy Bobbio <lu...@debian.org>  Thu, 01 Jan 2015 15:34:43 +0000
+
 procmail (3.22-23) unstable; urgency=medium
 
   * Fixed heap overflow in procmail that made it to segfault on
diff -Nru procmail-3.22/debian/rules procmail-3.22/debian/rules
--- procmail-3.22/debian/rules	2012-06-06 21:02:45.000000000 +0000
+++ procmail-3.22/debian/rules	2015-01-01 15:39:28.000000000 +0000
@@ -7,6 +7,7 @@
 CFLAGS := $(shell dpkg-buildflags --get CFLAGS) $$(getconf LFS_CFLAGS)
 LDFLAGS := `dpkg-buildflags --get LDFLAGS`
 CPPFLAGS := `dpkg-buildflags --get CPPFLAGS`
+BUILD_DATE := $(shell dpkg-parsechangelog | sed -n -e 's/^Date: //p')
 SEARCHLIBS = -lm
 STRIP = true
 
@@ -45,10 +46,10 @@
 		debian/QuickStart debian/README.Maildir $(docdir)
 	cp -p examples/* $(docdir)/examples
 	cd $(docdir)/examples && rm -f dirname mailstat procmail-rpm.spec
-	cd $(docdir) && gzip -9 HISTORY changelog.Debian
+	cd $(docdir) && gzip -9n HISTORY changelog.Debian
 	ln -s HISTORY.gz $(docdir)/changelog.gz
 	mv debian/tmp/usr/man debian/tmp/usr/share
-	gzip -r9 debian/tmp/usr/share/man
+	gzip -r9n debian/tmp/usr/share/man
 	dpkg-shlibdeps debian/tmp/usr/bin/*
 	dpkg-gencontrol
 	cd debian/tmp && \
@@ -58,6 +59,8 @@
 	chgrp mail debian/tmp/usr/bin/procmail debian/tmp/usr/bin/lockfile
 	chmod 6755 debian/tmp/usr/bin/procmail
 	chmod 2755 debian/tmp/usr/bin/lockfile
+	find debian/tmp -depth -newermt '$(BUILD_DATE)' -print0 | \
+		xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
 	dpkg --build debian/tmp ..
 
 binary: binary-indep binary-arch

Attachment: signature.asc
Description: Digital signature

Reply via email to