summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2019-07-07 16:32:53 +0200
committerMarius Bakke <mbakke@fastmail.com>2019-07-07 16:32:53 +0200
commit4f5fe46388eb70055b6935df053f74b7ccdaf55f (patch)
tree495d8d60609fa1257a7054ccbfdf031e84d87e96
parent0c6de725d814205d94ca3abb3f793c438137998a (diff)
downloadguix-4f5fe46388eb70055b6935df053f74b7ccdaf55f.tar.gz
gnu: commencement: Fix Python build on non-x86 platforms.
* gnu/packages/commencement.scm (python-boot0)[version, source]: Downgrade to 3.5.7.
[arguments]: Remove <#:make-flags>.  Add <#:phases>.
[native-inputs]: Remove artifical dependency on PKG-CONFIG.
-rw-r--r--gnu/packages/commencement.scm30
1 files changed, 27 insertions, 3 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index d28296449d..d06aa0a369 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -1864,16 +1864,40 @@ the bootstrap environment."
 (define python-boot0
   (let ((python (package
                   (inherit python-minimal)
+                  ;; We cannot use Python 3.7 and later here, because they require
+                  ;; pthreads, which is missing on non-x86 platforms at this stage.
+                  ;; Python 3.6 technically supports being built without threading
+                  ;; support, but requires additional patches.
+                  (version "3.5.7")
+                  (source (origin
+                            (inherit (package-source python))
+                            (uri (string-append "https://www.python.org/ftp/python/"
+                                                version "/Python-" version ".tar.xz"))
+                            (patches '())
+                            (sha256
+                             (base32
+                              "1p67pnp2ca5przx2s45r8m55dcn6f5hsm0l4s1zp7mglkf4r4n18"))))
                   (inputs
                    `(("expat" ,expat-sans-tests))) ;remove OpenSSL, zlib, etc.
+                  (native-inputs '())              ;and pkg-config
                   (arguments
                    (substitute-keyword-arguments (package-arguments
                                                   python-minimal)
                      ;; Disable features that cannot be built at this stage.
                      ((#:configure-flags _ ''())
-                      `(list "--without-ensurepip"))
-                     ((#:make-flags _ ''())
-                      `(list "MODDISABLED_NAMES=_ctypes ossaudiodev"))
+                      `(list "--without-ensurepip"
+                             "--without-threads"))
+                     ((#:phases phases)
+                      `(modify-phases ,phases
+                         (add-before 'configure 'disable-modules
+                           (lambda _
+                             (substitute* "setup.py"
+                               ;; Disable ctypes, since it requires libffi.
+                               (("extensions\\.append\\(ctypes\\)") "")
+                               ;; Prevent the 'ossaudiodev' extension from being
+                               ;; built, since it requires Linux headers.
+                               (("'linux', ") ""))
+                             #t))))
                      ((#:tests? _ #f) #f))))))
     (package-with-bootstrap-guile
      (package-with-explicit-inputs python %boot0-inputs