summary refs log tree commit diff
path: root/gnu/packages/python.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r--gnu/packages/python.scm27
1 files changed, 20 insertions, 7 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 8e28265fbe..e9a20dc418 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -26,7 +26,7 @@
 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016, 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
 ;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
@@ -92,7 +92,9 @@
   #:use-module (guix download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
-  #:use-module (guix build-system trivial))
+  #:use-module (guix build-system trivial)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26))
 
 (define-public python-2.7
   (package
@@ -352,11 +354,22 @@ data types.")
               (method url-fetch)
               (uri (string-append "https://www.python.org/ftp/python/"
                                   version "/Python-" version ".tar.xz"))
-              (patches (search-patches
-                        "python-3-fix-tests.patch"
-                        "python-3.8-fix-tests.patch"
-                        "python-3-deterministic-build-info.patch"
-                        "python-3-search-paths.patch"))
+              (patches (append
+                        ;; Disable unaligned accesses in the sha3 module on ARM as
+                        ;; it causes a test failure when building 32-bit Python on a
+                        ;; 64-bit kernel.  See <https://bugs.python.org/issue36515>.
+                        ;; TODO: Remove the conditional on the next rebuild cycle.
+                        (let ((system (or (%current-target-system)
+                                          (%current-system))))
+                          (if (any (cute string-prefix? <> system)
+                                   '("arm" "aarch64"))
+                              (list (search-patch "python-3-arm-alignment.patch"))
+                              '()))
+                        (search-patches
+                         "python-3-fix-tests.patch"
+                         "python-3.8-fix-tests.patch"
+                         "python-3-deterministic-build-info.patch"
+                         "python-3-search-paths.patch")))
               (sha256
                (base32
                 "1ps5v323cp5czfshqjmbsqw7nvrdpcbk06f62jbzaqik4gfffii6"))