[Python-modules-team] Bug#893611: rpyc: please make the build reproducible

Chris Lamb lamby at debian.org
Tue Mar 20 13:02:33 UTC 2018


Source: rpyc
Version: 3.4.4-1
Severity: wishlist
Tags: patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: randomness
X-Debbugs-Cc: reproducible-bugs at 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
     `. `'`      lamby at debian.org / chris-lamb.co.uk
       `-
-------------- next part --------------
--- 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 <lamby at 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


More information about the Python-modules-team mailing list