Source: coquelicot Version: 0.9.2-4 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org
Hi, While working on the "reproducible builds" effort [1], we have noticed that coquelicot could not be built reproducibly. With the attached patch, coquelicot can be built reproducibly in our current experimental framework. [1]: https://wiki.debian.org/ReproducibleBuilds -- Lunar .''`. lu...@debian.org : :Ⓐ : # apt-get install anarchism `. `'` `-
From 6a8cd4d8ea70e33e77da6ad55e631ff30e6b440a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Bobbio?= <lu...@debian.org> Date: Mon, 26 Jan 2015 16:38:08 +0100 Subject: [PATCH] Use debian/changelog date as gem build time In order to make the build reproducible, we use the time of the latest debian/changelog entry when creating the gem for AGPLv3 compatibility. --- debian/rules | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/debian/rules b/debian/rules index 12a4572..c408a60 100755 --- a/debian/rules +++ b/debian/rules @@ -17,13 +17,15 @@ create-static-gemspec: override_dh_auto_install: # Create the Gem that we ship as source code (for AGPL compliance) cp --preserve=all /usr/share/javascript/jquery/jquery.min.js public/javascripts/jquery.min.js - ruby -rrubygems -rrubygems/package -rfileutils -rtmpdir -e ' \ + ruby -rrubygems -rrubygems/package -rfileutils -rtmpdir -rtimecop -e ' \ debian_version = `dpkg-parsechangelog | sed -n -e "s/^Version: //p"`.strip; \ _, upstream_version, debian_revision = debian_version.match(/^(.*)-(.*)$$/).to_a; \ upstream_version.gsub!(/~/, "0."); \ upstream_version.gsub!(/[^0-9a-zA-Z.]/, ""); \ debian_revision.gsub!(/~/, "0."); \ debian_revision.gsub!(/[^0-9a-zA-Z.]/, ""); \ + time_str = `dpkg-parsechangelog --show-field=Date`.strip; \ + build_time = Time.at(`LC_ALL=C date --date="#{time_str}" +%s`.strip.to_i); \ spec = Gem::Specification.load("debian/coquelicot.gemspec"); \ if spec.version.to_s != upstream_version; \ $$stderr.puts "Please refresh the static gemspec:"; \ @@ -49,7 +51,9 @@ override_dh_auto_install: FileUtils.cp src, dest; \ end; \ Dir.chdir("#{tmpdir}") do \ - Gem::Package.build spec; \ + Timecop.freeze(build_time) do; \ + Gem::Package.build spec; \ + end; \ end; \ FileUtils.mkdir_p "debian/coquelicot/usr/share/coquelicot/public"; \ FileUtils.cp "#{tmpdir}/coquelicot-#{spec.version}.gem", \ -- 2.1.4
signature.asc
Description: Digital signature