Source: myghty Version: 1.1-6 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps randomness X-Debbugs-Cc: reproducible-bui...@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 `. `'` la...@debian.org / chris-lamb.co.uk `-
--- 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 <la...@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