[Reproducible-builds] Bug#831648: python-mkdocs: please make the build reproducible

Chris Lamb lamby at debian.org
Mon Jul 18 07:37:14 UTC 2016


Source: python-mkdocs
Version: 0.15.3-3
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 python-mkdocs 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/0003-Reproducible-build.patch	1970-01-01 02:00:00.000000000 +0200
--- b/debian/patches/0003-Reproducible-build.patch	2016-07-18 09:31:37.521770351 +0200
@@ -0,0 +1,37 @@
+Author: Chris Lamb <lamby at debian.org>
+Last-Update: 2016-07-18
+
+--- python-mkdocs-0.15.3.orig/mkdocs/nav.py
++++ python-mkdocs-0.15.3/mkdocs/nav.py
+@@ -137,7 +137,11 @@ class Page(object):
+         self.abs_url = url
+         self.active = False
+         self.url_context = url_context
+-        self.update_date = datetime.datetime.now().strftime("%Y-%m-%d")
++
++        try:
++            self.update_date = datetime.datetime.utcfromtimestamp(int(os.environ['SOURCE_DATE_EPOCH']))
++        except KeyError:
++            self.update_date = datetime.datetime.now().strftime("%Y-%m-%d")
+ 
+         # Relative paths to the input markdown file and output html file.
+         self.input_path = path
+--- python-mkdocs-0.15.3.orig/mkdocs/commands/build.py
++++ python-mkdocs-0.15.3/mkdocs/commands/build.py
+@@ -5,6 +5,7 @@ from datetime import datetime
+ import io
+ import logging
+ import os
++import time
+ 
+ from jinja2.exceptions import TemplateNotFound
+ import jinja2
+@@ -83,7 +84,7 @@ def get_global_context(nav, config):
+         'google_analytics': config['google_analytics'],
+ 
+         'mkdocs_version': mkdocs.__version__,
+-        'build_date_utc': datetime.utcnow(),
++        'build_date_utc': datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))),
+ 
+         'config': config
+     }
--- a/debian/patches/series	2016-07-18 09:23:05.649622618 +0200
--- b/debian/patches/series	2016-07-18 09:26:53.785371530 +0200
@@ -1,2 +1,3 @@
 0001-Remove-faulty-tests.patch
 0002-Use-themes-from-usr-share-mkdocs-themes.patch
+0003-Reproducible-build.patch


More information about the Reproducible-builds mailing list