[Reproducible-builds] Bug#831659: libmongoc: please make the build reproducible

Chris Lamb lamby at debian.org
Mon Jul 18 09:43:30 UTC 2016


Source: libmongoc
Version: 1.3.5-1
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,

Whilst working on the "reproducible builds" effort [0], we noticed
that libmongoc could not be built reproducibly.

Patch attached.

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


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      lamby at debian.org / chris-lamb.co.uk
       `-
-------------- next part --------------
--- a/debian/patches/0002_reproducible_build.patch	1970-01-01 02:00:00.000000000 +0200
--- b/debian/patches/0002_reproducible_build.patch	2016-07-18 11:22:52.537953342 +0200
@@ -0,0 +1,35 @@
+Description: Make the build reproducible
+Author: Chris Lamb <lamby at debian.org>
+Last-Update: 2016-07-18
+
+--- libmongoc-1.3.5.orig/doc/mallard2man.py
++++ libmongoc-1.3.5/doc/mallard2man.py
+@@ -31,6 +31,7 @@ page to a groff styled man page.
+ import os
+ import re
+ import sys
++import time
+ 
+ import codecs
+ from datetime import datetime
+@@ -163,7 +164,7 @@ class Convert(object):
+         self._write('\n')
+ 
+     def _generateHeader(self):
+-        year = datetime.utcnow().year
++        year = datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))).year
+         self._writeComment('This manpage is Copyright (C) %s %s' % (year, COPYRIGHT_HOLDER))
+         self._writeComment('')
+         self._writeComment(
+@@ -175,7 +176,10 @@ class Convert(object):
+     "Free Documentation License\".")
+         self._writeComment('')
+ 
+-        date = datetime.fromtimestamp(int(os.stat(self.inFile).st_mtime)).strftime('%Y-%m-%d')
++        try:
++            date = datetime.utcfromtimestamp(int(os.environ['SOURCE_DATE_EPOCH'])).strftime('%Y-%m-%d')
++        except KeyError:
++            date = datetime.fromtimestamp(int(os.stat(self.inFile).st_mtime)).strftime('%Y-%m-%d')
+         title = self.title.replace('()','').upper()
+         self._write('.TH "%s" "%s" "%s" "%s"\n' % (title, self.section, date, GROUP))
+         self._write('.SH NAME\n')
--- a/debian/patches/series	2016-07-18 11:14:33.325950938 +0200
--- b/debian/patches/series	2016-07-18 11:22:48.729892283 +0200
@@ -1 +1,2 @@
 0001_fix_version_page_title.patch
+0002_reproducible_build.patch


More information about the Reproducible-builds mailing list