Source: rpyc Version: 3.4.4-1 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: randomness X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org
Hi, Whilst working on the Reproducible Builds effort [0], we noticed that rpyc could not be built reproducibly as it renders documentation based on non-determinstic dict/set ordering. Patch attached. [0] https://reproducible-builds.org/ Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `-
--- a/debian/patches/0006-reproducible-build.patch 1969-12-31 19:00:00.000000000 -0500 --- b/debian/patches/0006-reproducible-build.patch 2018-03-20 08:50:04.883372778 -0400 @@ -0,0 +1,30 @@ +Description: Make the build reproducible +Author: Chris Lamb <la...@debian.org> +Last-Update: 2018-03-20 + +--- rpyc-3.4.4.orig/rpyc/core/protocol.py ++++ rpyc-3.4.4/rpyc/core/protocol.py +@@ -7,6 +7,7 @@ import itertools + import socket + import time + import gc ++import collections + + from threading import Lock, RLock, Event, Thread + from rpyc.lib.compat import pickle, next, is_py3k, maxint, select_error +@@ -18,13 +19,13 @@ class PingError(Exception): + """The exception raised should :func:`Connection.ping` fail""" + pass + +-DEFAULT_CONFIG = dict( ++DEFAULT_CONFIG = collections.OrderedDict( + # ATTRIBUTES + allow_safe_attrs = True, + allow_exposed_attrs = True, + allow_public_attrs = False, + allow_all_attrs = False, +- safe_attrs = set(['__abs__', '__add__', '__and__', '__bool__', '__cmp__', '__contains__', ++ safe_attrs = (['__abs__', '__add__', '__and__', '__bool__', '__cmp__', '__contains__', + '__delitem__', '__delslice__', '__div__', '__divmod__', '__doc__', + '__eq__', '__float__', '__floordiv__', '__ge__', '__getitem__', + '__getslice__', '__gt__', '__hash__', '__hex__', '__iadd__', '__iand__', --- a/debian/patches/series 2018-03-20 08:37:44.615218463 -0400 --- b/debian/patches/series 2018-03-20 08:44:06.650721192 -0400 @@ -1,2 +1,3 @@ 0002-skip-SSH-tests-Test_Ssh-and-Test_Deploy.patch 0005-connect-client-and-server-IP-in-TestUdpRegistry.patch +0006-reproducible-build.patch