gnu: python-pycrypto: Fix build with Python 3.8.
authorMarius Bakke <mbakke@fastmail.com>
Sat, 11 Apr 2020 14:04:26 +0000 (16:04 +0200)
committerMarius Bakke <mbakke@fastmail.com>
Sat, 11 Apr 2020 14:04:26 +0000 (16:04 +0200)
* gnu/packages/patches/python-pycrypto-time-clock.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/python-crypto.scm (python-pycrypto)[source](patches): Add it.

gnu/local.mk
gnu/packages/patches/python-pycrypto-time-clock.patch [new file with mode: 0644]
gnu/packages/python-crypto.scm

index e7e5d00..3f48c46 100644 (file)
@@ -1387,6 +1387,7 @@ dist_patch_DATA =                                         \
   %D%/packages/patches/python2-parameterized-docstring-test.patch      \
   %D%/packages/patches/python-paste-remove-timing-test.patch   \
   %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch     \
+  %D%/packages/patches/python-pycrypto-time-clock.patch                \
   %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
   %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
   %D%/packages/patches/python-robotframework-honor-source-date-epoch.patch \
diff --git a/gnu/packages/patches/python-pycrypto-time-clock.patch b/gnu/packages/patches/python-pycrypto-time-clock.patch
new file mode 100644 (file)
index 0000000..9b7a823
--- /dev/null
@@ -0,0 +1,23 @@
+Drop use of the deprecated time.clock which was removed in Python 3.8.
+
+Adapted from upstream pull request:
+
+https://github.com/dlitz/pycrypto/pull/296
+
+diff --git a/lib/Crypto/Random/_UserFriendlyRNG.py b/lib/Crypto/Random/_UserFriendlyRNG.py
+--- a/lib/Crypto/Random/_UserFriendlyRNG.py
++++ b/lib/Crypto/Random/_UserFriendlyRNG.py
+@@ -73,8 +73,11 @@ class _EntropyCollector(object):
+         t = time.time()
+         self._time_es.feed(struct.pack("@I", int(2**30 * (t - floor(t)))))
+-        # Add the fractional part of time.clock()
+-        t = time.clock()
++        # Add the fractional part of time.process_time()
++        try:
++           t = time.process_time()
++        except AttributeError:
++           t = time.clock()
+         self._clock_es.feed(struct.pack("@I", int(2**30 * (t - floor(t)))))
index 8016030..eb57f2b 100644 (file)
@@ -280,7 +280,8 @@ making them easy to handle and incorporate into other protocols.")
      (origin
       (method url-fetch)
       (uri (pypi-uri "pycrypto" version))
-      (patches (search-patches "python-pycrypto-CVE-2013-7459.patch"))
+      (patches (search-patches "python-pycrypto-CVE-2013-7459.patch"
+                               "python-pycrypto-time-clock.patch"))
       (sha256
        (base32
         "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj"))))