guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch core-updates updated: gnu: Python: Move arm-alignment.patch to a


From: guix-commits
Subject: branch core-updates updated: gnu: Python: Move arm-alignment.patch to a native-input + phase.
Date: Thu, 02 Apr 2020 11:13:57 -0400

This is an automated email from the git hooks/post-receive script.

mbakke pushed a commit to branch core-updates
in repository guix.

The following commit(s) were added to refs/heads/core-updates by this push:
     new 3cff86d  gnu: Python: Move arm-alignment.patch to a native-input + 
phase.
3cff86d is described below

commit 3cff86db8a510bc2731b9899a6035ebda5225adc
Author: Marius Bakke <address@hidden>
AuthorDate: Thu Apr 2 17:11:17 2020 +0200

    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.
---
 gnu/packages/commencement.scm | 12 ++++++++++-
 gnu/packages/python.scm       | 48 ++++++++++++++++++++++++++++---------------
 2 files changed, 42 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 4c51fa0..7e969fa 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3182,7 +3182,17 @@ the bootstrap environment."
            ;; Python package won't interfere with this one.
            ((#:make-flags _ ''()) ''())
            ((#:phases phases)
-            `(modify-phases ,phases
+            ;; Remove the 'apply-alignment-patch' phase if present to avoid
+            ;; rebuilding this package.  TODO: for the next rebuild cycle,
+            ;; consider inlining all the arguments instead of inheriting to
+            ;; make it easier to patch Python without risking a full rebuild.
+            ;; Or better yet, change to 'python-on-guile'.
+            `(modify-phases ,@(list (match phases
+                                      (('modify-phases original-phases
+                                         changes ...
+                                         ('add-after unpack 
apply-alignment-patch _))
+                                       `(modify-phases ,original-phases 
,@changes))
+                                      (_ phases)))
                (add-before 'configure 'disable-modules
                  (lambda _
                    (substitute* "setup.py"
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index e9a20dc..f0a6193 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))
              '())



reply via email to

[Prev in Thread] Current Thread [Next in Thread]