File: 0003-Support-reproducible-builds.patch

package info (click to toggle)
python-mkdocs 0.15.3-5
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 4,476 kB
  • ctags: 1,313
  • sloc: python: 3,840; makefile: 22; xml: 20
file content (49 lines) | stat: -rw-r--r-- 1,681 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
From f37eb5e81c996800e2e69180fa225dfef3943c84 Mon Sep 17 00:00:00 2001
From: Brian May <bam@debian.org>
Date: Fri, 29 Jul 2016 08:06:08 +1000
Subject: Support reproducible builds

See https://github.com/mkdocs/mkdocs/issues/938
---
 mkdocs/commands/build.py | 3 ++-
 mkdocs/nav.py            | 6 +++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/mkdocs/commands/build.py b/mkdocs/commands/build.py
index 614173d..66fef62 100644
--- a/mkdocs/commands/build.py
+++ b/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
     }
diff --git a/mkdocs/nav.py b/mkdocs/nav.py
index b72e21f..07f6505 100644
--- a/mkdocs/nav.py
+++ b/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