Package: txt2man
Version: 1.5.5-2
Severity: normal
Tags: patch
Usertags: timestamps

txt2man embeds a timestamp in its own manuals which is, by default, the current
date. This makes builds deterministic.

The attached patch parses debian/changelog to find the date of the current
package version and passes that to the call to txt2man instead.

For hopefully obvious reasons this is not suitable for inclusion upstream since
it relies on dpkg-parsechangelog.

-- System Information:
Debian Release: 8.0
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'testing-proposed-updates'), (500, 
'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Subject: reproducible builds
 Use the date of the latest entry in debian/changelog for the date headers
 in man pages, so that builds are reproducible.
Author: Jonathan Wiltshire <>
Forwarded: not-needed
Last-Update: 2015-04-12

--- txt2man-1.5.6.orig/Makefile
+++ txt2man-1.5.6/Makefile
@@ -1,6 +1,7 @@
 # Makefile
 prefix ?= $(DESTDIR)/usr
 version = txt2man-1.5.6
+date = $(shell dpkg-parsechangelog -c1 -S date | date +"%b %d %Y" -f -)
 BIN = src2man bookman txt2man
 MAN1 = src2man.1 txt2man.1 bookman.1
@@ -14,7 +15,7 @@
 	rm -f *.1 *.txt *.ps *.pdf *.html
-%.1:%.txt; ./txt2man -s 1 -t $* -r $(version) $< > $@
+%.1:%.txt; ./txt2man -s 1 -t $* -r $(version) -d "$(date)" $< > $@
 %.txt:%; ./$< -h 2>&1 > $@
 %.html:%.1; rman -f HTML $< > $@; groff -man $< > $@
Reproducible-builds mailing list

Reply via email to