[Python-modules-team] Bug#835637: myghty: please make the build reproducible
Chris Lamb
lamby at debian.org
Sat Aug 27 20:01:54 UTC 2016
Source: myghty
Version: 1.1-6
Severity: wishlist
Tags: patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: timestamps randomness
X-Debbugs-Cc: reproducible-builds at lists.alioth.debian.org
Hi,
Whilst working on the Reproducible Builds effort [0], I noticed
that myghty could not be built reproducibly.
- Use gmtime over localtime
- Don't create objects in the kwargs - they end up in the documentation
and then their repr(…) includes a non-deterministic memory address.
Patch attached.
[0] https://reproducible-builds.org/
Regards,
--
,''`.
: :' : Chris Lamb
`. `'` lamby at debian.org / chris-lamb.co.uk
`-
-------------- next part --------------
--- a/debian/patches/reproducible-build.diff 1970-01-01 01:00:00.000000000 +0100
--- b/debian/patches/reproducible-build.diff 2016-08-27 20:56:56.242293448 +0100
@@ -0,0 +1,35 @@
+Description: Make the build reproducible
+Author: Chris Lamb <lamby at debian.org>
+Last-Update: 2016-08-27
+
+--- myghty-1.1.orig/doc/components/section_wrapper.myt
++++ myghty-1.1/doc/components/section_wrapper.myt
+@@ -28,7 +28,7 @@
+
+ <div class="docheadertext" ><% title %></div>
+ % if version is not None:
+-<div class="">Version: <% version %> Last Updated: <% time.strftime('%x %X', time.localtime(last_updated)) %></div>
++<div class="">Version: <% version %> Last Updated: <% time.strftime('%x %X', time.gmtime(last_updated)) %></div>
+ %
+ </div>
+
+--- myghty-1.1.orig/lib/myghty/interp.py
++++ myghty-1.1/lib/myghty/interp.py
+@@ -45,7 +45,7 @@ class Interpreter:
+ code_cache_size = 16777216,
+ use_auto_handlers = True,
+ use_object_files = True,
+- debug_file = myghty.buffer.LinePrinter(sys.stderr),
++ debug_file = None,
+ debug_threads = False,
+ debug_elements = [],
+ escapes = {},
+@@ -56,6 +56,8 @@ class Interpreter:
+ method as keyword parameters. Those parameters that are used directly by this Interpreter are
+ consumed. Remaining arguments are sent off to other constructed objects, which include a
+ Compiler, a Resolver, and a Request prototype object."""
++ if debug_file is None:
++ bug_file = myghty.buffer.LinePrinter(sys.stderr)
+ self.global_args = global_args or {}
+ self._attributes = {}
+ if attributes is not None:
--- a/debian/patches/series 2016-08-27 20:37:27.453627497 +0100
--- b/debian/patches/series 2016-08-27 20:40:34.531708742 +0100
@@ -1 +1,2 @@
import-5th-arg.diff
+reproducible-build.diff
More information about the Python-modules-team
mailing list