Source: iputils
Version: 20121221
Severity: normal
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: timestamps

Hi!

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

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

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


-- System Information:
Debian Release: 8.0
  APT prefers testing-updates
  APT policy: (500, 'testing-updates'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Description: Reproducible timestamps in generated files
 This patch allow to use the date from debian/changelog in generated documentation.
Author: Juan Picca <jumap...@gmail.com>
Last-Update: 2015-04-24
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -1,3 +1,4 @@
+BUILD_DATE=$(shell dpkg-parsechangelog -S Date -l../debian/changelog | LC_ALL=C date -u "+%d %B %Y" -f -)
 SGMLFILES=$(shell echo *.sgml)
 HTMLFILES=$(subst .sgml,.html,$(SGMLFILES)) index.html
 MANFILES=$(subst .sgml,.8,$(SGMLFILES))
@@ -30,7 +31,7 @@ iputils.html: iputils.db
 
 $(MANFILES): index.db
 	@-mkdir tmp.db2man
-	@set -e; cd tmp.db2man; nsgmls ../$< | sgmlspl ../docbook2man-spec.pl ;	mv $@ ..
+	@set -e; cd tmp.db2man; nsgmls ../$< | sgmlspl ../docbook2man-spec.pl "$(BUILD_DATE)";	mv $@ ..
 	@-rm -rf tmp.db2man
 
 fix_sgml2man:
--- a/doc/docbook2man-spec.pl
+++ b/doc/docbook2man-spec.pl
@@ -266,7 +266,7 @@ sgml('</REFMETA>', sub {
 .\\" etc. to Steve Cheng <steve\@ggi-project.org>.
 _END_BANNER
 
-	my $manpage_date = `date "+%d %B %Y"`;
+	my $manpage_date = (@ARGV == 1) ? $ARGV[0] : `date "+%d %B %Y"`;
 		
 	output '.TH "';
 	
@@ -280,7 +280,7 @@ _END_BANNER
 	}
 	
 	output  '" "', fold_string($manpage_sect), 
-		'" "', fold_string(`date "+%d %B %Y"`), 
+		'" "', fold_string($manpage_date),
 		'" "', $manpage_misc, 
 		'" "', $manpage_manual, 
 		"\"\n";

Reply via email to