[Reproducible-builds] Bug#794225: libsyncml: please make the build reproducible (timestamps)

Maria Valentina Marin marivalenm at gmail.com
Fri Jul 31 12:08:17 UTC 2015


Source: libsyncml
Version: 0.5.4-2.2
Severity: wishlist
Tags: patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds at lists.alioth.debian.org

Hi!


While working on the “reproducible builds” effort [1], we have noticed
that libsyncml could not be built reproducibly since it suffers from
timestamps in manpages generated by doxygen [2].

The reproducible builds team is building packages using a version of
doxygen which has been patched to honour the environment variable
$SOURCE_DATE_EPOCH [3]. This results in doxygen using the last date in
debian/changelog as the timestamp for its man page output which causes
packages to become reproducible [4].

During our tests $SOURCE_DATE_EPOCH is exported by the debhelper from
our experimental git repository which we have patched such that packages
using dh (debhelper >= 9) in debian/rules become automatically reproducible.

This unfortunately does not make the package libsyncml reproducible
because it does not use dh in debian/rules but instead classic
debhelper.

There are two solutions for libsyncml:

1. To rewrite debian/rules to use dh
2. To implement the attached patch which exports $SOURCE_DATE_EPOCH in
debian/rules.


Kind Regards,
akira


[1] https://wiki.debian.org/ReproducibleBuilds/About
[2]
https://reproducible.debian.net/issues/unstable/timestamps_in_manpages_generated_by_doxygen_issue.html
[3] https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal
[4] https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain#doxygen


Cheers,
akira
-------------- next part --------------
diff -u libsyncml-0.5.4/debian/changelog libsyncml-0.5.4/debian/changelog
--- libsyncml-0.5.4/debian/changelog
+++ libsyncml-0.5.4/debian/changelog
@@ -1,3 +1,11 @@
+libsyncml (0.5.4-2.3) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Export environment variable $SOURCE_DATE_EPOCH to produce reproducible
+    timestamps in manpage output
+
+ -- akira <marivalenm at gmail.com>  Fri, 31 Jul 2015 11:21:17 +0200
+
 libsyncml (0.5.4-2.2) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -u libsyncml-0.5.4/debian/rules libsyncml-0.5.4/debian/rules
--- libsyncml-0.5.4/debian/rules
+++ libsyncml-0.5.4/debian/rules
@@ -11,6 +11,8 @@
 DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
 
+export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog --count 1 -SDate)" +%s)
+
 CFLAGS = -Wall -g
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
 	CFLAGS += -O0
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/reproducible-builds/attachments/20150731/eb43dcb2/attachment.sig>


More information about the Reproducible-builds mailing list