Subject: [bug#64711] [PATCH 11/43] gnu: python: Support native build on the Hurd.

From: Janneke Nieuwenhuizen <[email-masked]>
Date: Tue, 18 Jul 2023 16:40:04 +0200

Running "test_concurrent_futures" and "test_venv" freeze the Hurd.  Tests
"test_multiprocessing_forkserver" and "test_multiprocessing_spawn" run over
10mins. Debian simply skips all tests on the Hurd.

* gnu/packages/python.scm (python-3.10)[arguments]: When building for the
Hurd, add hanging and failing to #:make-flags's --exclude flag.  Also, add
'disable-multi-processing' phase to avoid compileall.py hang during install.
---
 gnu/packages/python.scm | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 302f995b0f..51d5f598d7 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -457,7 +457,7 @@ (define-public python-3.10
                 (format #f "TESTOPTS=-j~d" (parallel-job-count))
                 ;; test_mmap fails on low-memory systems
                 " --exclude test_mmap test_socket"
-                ,@(if (target-hurd?)
+                ,@(if (system-hurd?)
                       '(" test_posix"      ;multiple errors
                         " test_time"
                         " test_pty"
@@ -487,12 +487,33 @@ (define-public python-3.10
                         " test_open_unix_connection"
                         " test_open_unix_connection_error"
                         " test_read_pty_output"
-                        " test_write_pty")
+                        " test_write_pty"
+                        " test_concurrent_futures" ;freeze
+                        " test_venv"       ;freeze
+                        " test_multiprocessing_forkserver" ;runs over 10min
+                        " test_multiprocessing_spawn" ;runs over 10min
+                        " test_builtin"
+                        " test_capi"
+                        " test_dbm_ndbm"
+                        " test_exceptions"
+                        " test_faulthandler"
+                        " test_getopt"
+                        " test_importlib"
+                        " test_json"
+                        " test_multiprocessing_fork"
+                        " test_multiprocessing_main_handling"
+                        " test_pdb "
+                        " test_regrtest"
+                        " test_sqlite")
                       '()))))
        ((#:phases phases)
         `(modify-phases ,phases
            ,@(if (system-hurd?)
-                 `((delete 'patch-regen-for-hurd)) ;regen was removed after 3.5.9
+                 `((delete 'patch-regen-for-hurd)  ;regen was removed after 3.5.9
+                   (add-after 'unpack 'disable-multi-processing
+                     (lambda _
+                       (substitute* "Makefile.pre.in"
+                         (("-j0") "-j1")))))
                  '())
            (add-after 'unpack 'remove-windows-binaries
              (lambda _
-- 
2.40.1