diff options
author | Marius Bakke <mbakke@fastmail.com> | 2020-04-02 17:11:17 +0200 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2020-04-02 17:11:17 +0200 |
commit | 3cff86db8a510bc2731b9899a6035ebda5225adc (patch) | |
tree | 980953ac51514f060e5d816beab70879440d82c4 /gnu/packages/python.scm | |
parent | 67ca82e6ddc9f1c87fa8c033729a1f53b7c2b3ba (diff) | |
download | guix-3cff86db8a510bc2731b9899a6035ebda5225adc.tar guix-3cff86db8a510bc2731b9899a6035ebda5225adc.tar.gz |
gnu: Python: Move arm-alignment.patch to a native-input + phase.
This follows up 67ca82e6ddc9f1c87fa8c033729a1f53b7c2b3ba which was ineffective
when running 'guix build --system=armhf-linux python' on e.g. x86_64-linux
because the conditional would always return the native system.
* gnu/packages/python.scm (python-3.8)[native-inputs]: Add "arm-alignment.patch".
[arguments]: Add phase to apply it.
[source](patches): Remove it.
* gnu/packages/commencement.scm (python-boot0): Prevent inheriting the phase.
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r-- | gnu/packages/python.scm | 48 |
1 files changed, 31 insertions, 17 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e9a20dc418..f0a6193a92 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -354,22 +354,11 @@ data types.") (method url-fetch) (uri (string-append "https://www.python.org/ftp/python/" version "/Python-" version ".tar.xz")) - (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"))) + (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")) (sha256 (base32 "1ps5v323cp5czfshqjmbsqw7nvrdpcbk06f62jbzaqik4gfffii6")) @@ -394,6 +383,7 @@ data types.") " test_socket"))) ((#:phases phases) `(modify-phases ,phases + (add-before 'check 'set-TZDIR (lambda* (#:key inputs native-inputs #:allow-other-keys) ;; test_email requires the Olson time zone database. @@ -432,9 +422,33 @@ data types.") ,file))) (find-files out "\\.py$"))) (list '() '("-O") '("-OO"))) - #t))))))) + #t))) + ;; XXX: Apply patch on ARM platforms only to avoid a full rebuild. + ;; Remove this phase in the next rebuild cycle. + ,@(let ((system (or (%current-target-system) + (%current-system)))) + (if (any (cute string-prefix? <> system) + '("arm" "aarch64")) + '((add-after 'unpack 'apply-alignment-patch + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (invoke "patch" "-p1" "--force" "--input" + (assoc-ref (or native-inputs inputs) + "arm-alignment.patch"))))) + '())))))) (native-inputs `(("tzdata" ,tzdata-for-tests) + + ;; 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: make this a regular patch in the next rebuild cycle. + ,@(let ((system (or (%current-target-system) + (%current-system)))) + (if (any (cute string-prefix? <> system) + '("arm" "aarch64")) + `(("arm-alignment.patch" ,(search-patch "python-3-arm-alignment.patch"))) + '())) + ,@(if (%current-target-system) `(("python3" ,this-package)) '()) |