[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#776576: polygen: please make the build reproducible



Source: polygen
Version: 1.0.6.ds2-13
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: randomness
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that polygen could not be built reproducibly.

The attached patch removes randomness from the build system. Once
applied, polygen can be built reproducibly in our current experimental
framework.

(The manpages, etc. are still random, but seeded from the latest
debian/changelog entry.)


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


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      lamby@debian.org / chris-lamb.co.uk
       `-
diff -urNad polygen.orig/polygen-1.0.6.ds2/debian/rules polygen/polygen-1.0.6.ds2/debian/rules
--- polygen.orig/polygen-1.0.6.ds2/debian/rules	2015-01-29 12:23:55.134601132 +0000
+++ polygen/polygen-1.0.6.ds2/debian/rules	2015-01-29 13:22:28.293057129 +0000
@@ -6,7 +6,9 @@
 
 POLYGEN_BASE=.
 DEB_BUILDDIR=$(POLYGEN_BASE)/src
-POLYGEN=$(DEB_BUILDDIR)/polygen
+POLYGEN_BIN=$(DEB_BUILDDIR)/polygen
+POLYGEN_SEED = $(shell date --date="$(shell dpkg-parsechangelog --show-field Date)" +%s)
+POLYGEN=$(POLYGEN_BIN) -seed $(POLYGEN_SEED)
 export POLYGEN
 
 # set $(NATIVE) to true if this arch has an optimising compiler
@@ -44,7 +46,7 @@
 	find $(POLYGEN_BASE)/grm/ -name \*.grm | debian/make_polygen-data_manpage > polygen-data.6
 
 install/polygen::
-	install -o root -g root -m 755 $(POLYGEN) debian/$(cdbs_curpkg)/usr/games/
+	install -o root -g root -m 755 $(POLYGEN_BIN) debian/$(cdbs_curpkg)/usr/games/
 	install -o root -g root -m 755 -d debian/$(cdbs_curpkg)/usr/share/doc/polygen
 	install -o root -g root -m 644 $(POLYGEN_BASE)/eng/HOWTO-Refman.html debian/$(cdbs_curpkg)/usr/share/doc/polygen/HOWTO-Refman.en.html
 	install -o root -g root -m 644 $(POLYGEN_BASE)/ita/HOWTO-Refman.html debian/$(cdbs_curpkg)/usr/share/doc/polygen/HOWTO-Refman.it.html

Reply to: