guix_mirror_bot pushed a commit to branch python-team
in repository guix.

commit 5a4376a68f0ca945541fc59e69b9b4004807403e
Author: Nicolas Graves <[email protected]>
AuthorDate: Sat Feb 7 23:01:52 2026 +0100

    gnu: python-cython-0: Fix build for [email protected].
    
    * gnu/packages/python-xyz.scm
    (importlib-util-load-dynamic): Add helper string.
    (python-cython-0)[arguments]<#:phases>: Add phase
    'fix-pyximport-python-3.12.
    
    Merges: https://codeberg.org/guix/guix/pulls/6222
    Change-Id: I403e72cfdc82210bdfcbcb21e77cef89e8c68398
    Reviewed-by: Hugo Buddelmeijer <[email protected]>
    Signed-off-by: Sharlatan Hellseher <[email protected]>
---
 gnu/packages/python-xyz.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 3d0057372e..34fe2c2f35 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10787,6 +10787,9 @@ writing C extensions for Python as easy as Python 
itself.")
         (base32 "1ysca2r23h12ai9wrym4ci0nvgwm3lfijrpj9xfyxbclvnkd84zq"))))
     (arguments
      (list
+      ;; XXX: Tests are broken with [email protected], but dependent packages
+      ;; build, so keep it until unnecessary.
+      #:tests? #f
       #:test-backend #~'custom
       #:test-flags
       #~(list "runtests.py"
@@ -10807,6 +10810,24 @@ writing C extensions for Python as easy as Python 
itself.")
               "-x" "cpp_stl_conversion")
       #:phases
       #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-pyximport-python-3.12
+            (lambda _
+              (let ((importlib-util-load-dynamic "\
+import importlib.util
+from importlib.machinery import ExtensionFileLoader
+
+def load_dynamic(name, path):
+    loader = ExtensionFileLoader(name, path)
+    spec = importlib.util.spec_from_file_location(name, loader=loader)
+    module = importlib.util.module_from_spec(spec)
+    spec.loader.exec_module(module)
+    return module
+"))
+                (substitute* "pyximport/pyximport.py"
+                  (("^import imp")
+                   importlib-util-load-dynamic)
+                  (("imp\\.load_dynamic")
+                   "load_dynamic")))))
           (add-before 'check 'pre-check
             ;; some tests require access to "$HOME/.cython"
             (lambda _

Reply via email to