Ximin Luo:
> Hi, here is an updated patch - it gets rid of filesystem and umask 
> differences, which started cropping up. I think previously I was testing with 
> an older version of reprotest, which didn't properly test these differences.
> 
> I also took the chance to refactor the rules file slightly, for readability.
> 

Hi, I have updated the patch and uploaded this to DELAYED/14.

The patch is attached, it's the same one as before just with a "more official" 
changelog.

X

-- 
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git
diff -Nru sensible-utils-0.0.9/debian/changelog 
sensible-utils-0.0.9+nmu1/debian/changelog
--- sensible-utils-0.0.9/debian/changelog       2013-06-06 14:19:53.000000000 
+0200
+++ sensible-utils-0.0.9+nmu1/debian/changelog  2017-06-28 18:17:02.000000000 
+0200
@@ -1,3 +1,20 @@
+sensible-utils (0.0.9+nmu1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+
+  [ Jérémy Bobbio ]
+  * Make package build reproducibly:
+    - Stop recording current time when creating gzip files.
+    - Fix mtimes before creating binary packages.
+
+  [ Ximin Luo ]
+  * Make package build reproducible, pt 2:
+    - Sort file list, to avoid filesystem differences.
+    - Explicitly install every language man dir, to avoid umask differences.
+    - Slightly refactoring for readability.
+
+ -- Ximin Luo <infini...@debian.org>  Wed, 28 Jun 2017 18:17:02 +0200
+
 sensible-utils (0.0.9) unstable; urgency=low
 
   * Fix bashism in select-editor
diff -Nru sensible-utils-0.0.9/debian/rules 
sensible-utils-0.0.9+nmu1/debian/rules
--- sensible-utils-0.0.9/debian/rules   2012-05-14 09:23:19.000000000 +0200
+++ sensible-utils-0.0.9+nmu1/debian/rules      2017-06-28 18:11:41.000000000 
+0200
@@ -9,6 +9,11 @@
 INSTALL_SCRIPT  = $(INSTALL) -p    -o root -g root  -m  755
 INSTALL_DIR     = $(INSTALL) -p -d -o root -g root  -m  755
 
+MAN_LANGS = de es fr it ja pl
+MAN_DIRS = $(MAN_LANGS:%=debian/sensible-utils/usr/share/man/%/man1)
+
+BUILD_DATE := $(shell dpkg-parsechangelog | sed -n -e 's/^Date: //p')
+
 DEB_BUILD_ARCH_OS ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH_OS)
 DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
 DEB_HOST_GNU_TYPE = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
@@ -52,41 +57,30 @@
        $(INSTALL_DIR) debian/sensible-utils/DEBIAN \
                       debian/sensible-utils/usr/bin \
                       debian/sensible-utils/usr/share/man/man1 \
+                      $(MAN_DIRS) \
                       debian/sensible-utils/usr/lib/mime/packages \
                       debian/sensible-utils/usr/share/doc/$(package)
        $(MAKE) install DESTDIR=$(CURDIR)/debian/sensible-utils 
INSTALL_PROGRAM="$(INSTALL_PROGRAM)"
 
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/man1/sensible-pager.1.gz
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/man1/sensible-browser.1.gz
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/fr/man1/sensible-pager.1.gz
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/fr/man1/sensible-browser.1.gz
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/pl/man1/sensible-pager.1.gz
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/pl/man1/sensible-browser.1.gz
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/es/man1/sensible-pager.1.gz
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/es/man1/sensible-browser.1.gz
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/de/man1/sensible-pager.1.gz
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/de/man1/sensible-browser.1.gz
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/ja/man1/sensible-pager.1.gz
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/ja/man1/sensible-browser.1.gz
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/it/man1/sensible-pager.1.gz
-       ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/it/man1/sensible-browser.1.gz
+       set -e; for i in "" $(MAN_LANGS); do \
+               ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/$$i/man1/sensible-pager.1.gz; \
+               ln -s sensible-editor.1.gz 
debian/sensible-utils/usr/share/man/$$i/man1/sensible-browser.1.gz; \
+       done
        $(INSTALL_FILE) debian/changelog 
debian/sensible-utils/usr/share/doc/$(package)
        find debian/sensible-utils/usr/share/man/man1 \
-            debian/sensible-utils/usr/share/man/es/man1 \
-            debian/sensible-utils/usr/share/man/fr/man1 \
-            debian/sensible-utils/usr/share/man/pl/man1 \
-            debian/sensible-utils/usr/share/man/de/man1 \
-            debian/sensible-utils/usr/share/man/ja/man1 \
-            debian/sensible-utils/usr/share/man/it/man1 \
-             debian/sensible-utils/usr/share/doc/$(package) -type f | xargs 
gzip -9
+            $(MAN_DIRS) \
+            debian/sensible-utils/usr/share/doc/$(package) -type f | xargs 
gzip -9n
        $(INSTALL_FILE) debian/copyright 
debian/sensible-utils/usr/share/doc/$(package)
        $(INSTALL_SCRIPT) debian/postinst debian/sensible-utils/DEBIAN/
        $(INSTALL_SCRIPT) debian/postrm debian/sensible-utils/DEBIAN/
        $(INSTALL_FILE) debian/mime 
debian/sensible-utils/usr/lib/mime/packages/sensible-utils
 
-       cd debian/sensible-utils && find * -type f ! -regex '^DEBIAN/.*' 
-print0 | xargs -r0 md5sum > DEBIAN/md5sums
+       cd debian/sensible-utils && find * -type f ! -regex '^DEBIAN/.*' 
-print0 | \
+            LC_ALL=C.UTF-8 sort -z | xargs -r0 md5sum > DEBIAN/md5sums
 
        dpkg-gencontrol -Pdebian/sensible-utils
+       find debian/sensible-utils -depth -newermt '$(BUILD_DATE)' -print0 | \
+               xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
        dpkg --build debian/sensible-utils ..
 
 define checkdir

Reply via email to