Source: libranlip Version: 1.0-4.1 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps
Hi! While working on the “reproducible builds” effort [1], we have noticed that libranlip could not be built reproducibly. The attached patch removes extra timestamps from the gzip files and sets the files mtime to a known value (last debian package changelog date) before calling `dpkg --build` to generate the binary packages. Once applied, libranlip can be built reproducibly in our current experimental framework. [1]: https://wiki.debian.org/ReproducibleBuilds -- Dhole
diff --git a/libranlip-1.0/Makefile.in b/libranlip-1.0/Makefile.in index df35f5d..8225ad4 100644 --- a/libranlip-1.0/Makefile.in +++ b/libranlip-1.0/Makefile.in @@ -409,7 +409,7 @@ am__remove_distdir = \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } -GZIP_ENV = --best +GZIP_ENV = --best -n distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print diff --git a/libranlip-1.0/debian/rules b/libranlip-1.0/debian/rules index 6ca7323..9f389e3 100755 --- a/libranlip-1.0/debian/rules +++ b/libranlip-1.0/debian/rules @@ -3,6 +3,7 @@ # Copyright (c) 2005 Juan Esteban Monsalve Tobon <este...@v7w.com> STRIP = strip --remove-section=.comment --remove-section=.note +BUILD_DATE=$(shell dpkg-parsechangelog --show-field Date) build: $(checkdir) @@ -54,7 +55,7 @@ binary-arch: checkroot build cp -p debian/changelog debian/libranlip1c2/usr/share/doc/libranlip1c2/changelog.Debian cp -p docs/ranlip.ps debian/libranlip1c2/usr/share/doc/libranlip1c2/ cp -p examples/ranliptest* examples/makefile debian/libranlip1c2/usr/share/doc/libranlip1c2/examples - cd debian/libranlip1c2/usr/share/doc/libranlip1c2 && gzip -9 changelog.Debian ranlip.ps examples/* + cd debian/libranlip1c2/usr/share/doc/libranlip1c2 && gzip -9n changelog.Debian ranlip.ps examples/* ln -s libranlip1c2 debian/libranlip-dev/usr/share/doc/libranlip-dev @@ -64,6 +65,8 @@ binary-arch: checkroot build chown -R root.root debian/libranlip1c2 chmod -x debian/libranlip1c2/usr/lib/ranlip/* chmod -R go=rX debian/libranlip1c2 + find debian/libranlip1c2 -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' dpkg --build debian/libranlip1c2 .. dpkg-gencontrol -isp -plibranlip-dev -Pdebian/libranlip-dev @@ -71,6 +74,8 @@ binary-arch: checkroot build chown -R root.root debian/libranlip-dev chmod -x debian/libranlip-dev/usr/lib/ranlip/libranlip.a debian/libranlip-dev/usr/lib/ranlip/libranlip.la chmod -R go=rX debian/libranlip-dev + find debian/libranlip-dev -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' dpkg --build debian/libranlip-dev .. define checkdir
signature.asc
Description: OpenPGP digital signature