Bug#881089: stardicter: please make the build reproducible
Chris Lamb
lamby at debian.org
Tue Nov 7 16:04:09 UTC 2017
Source: stardicter
Version: 1.1-1
Severity: wishlist
Tags: patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: toolchain timestamps
X-Debbugs-Cc: reproducible-bugs at lists.alioth.debian.org
Hi,
Whilst working on the Reproducible Builds effort [0], we noticed
that stardicter generates non-deterministic output in .ifo files.
In particular, it adds the current date and time.
Patch attached that uses SOURCE_DATE_EPOCH[1] if available.
[0] https://reproducible-builds.org/
[1] https://reproducible-builds.org/specs/source-date-epoch/
Regards,
--
,''`.
: :' : Chris Lamb
`. `'` lamby at debian.org / chris-lamb.co.uk
`-
-------------- next part --------------
diff --git a/stardicter/base.py b/stardicter/base.py
index 64dd17f..3d2a8a0 100644
--- a/stardicter/base.py
+++ b/stardicter/base.py
@@ -30,6 +30,7 @@ from operator import attrgetter
import os
import re
import struct
+import time
from six.moves.urllib.request import urlopen
from six import BytesIO
@@ -386,7 +387,9 @@ class StardictWriter(object):
handle.write(self.convert('website={0}\n'.format(URL), False))
# we're using pango markup for all entries
handle.write('sametypesequence=g\n')
- handle.write(datetime.date.today().strftime('date=%Y.%m.%d\n'))
+ now = int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))
+ today = datetime.datetime.utcfromtimestamp(now)
+ handle.write(today.strftime('date=%Y.%m.%d\n'))
def write_dict(self, directory):
'''
More information about the Reproducible-bugs
mailing list