Message ID | 20220412025518.5253-1-paul@apatience.com |
---|---|
State | Accepted |
Headers | show |
Series | [bug#54876] gnu: sbcl-py4cl: Fix path to python3. | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
Patch pushed as 917c25b3ba0575c6c6e44f8af0d1365bb2378220. Thanks.
Paul A. Patience schreef op di 12-04-2022 om 02:55 [+0000]: + (substitute* "src/callpython.lisp" + (("\\*python-command\\* \"python\"") + (string-append "*python-command* " + "\"" (which "python3") "\""))))) This is most likely incorrect when cross-compiling. Do (lambda* (#:key inputs #:allow-other-keys) [...] (string-append [...] (search-input-file inputs "bin/python3") [...]) [...]) instead, such that it looks in 'inputs' instead of 'native-inputs'. Also, now that 'python3' is patched in, is the following still relevant: (propagated-inputs ;; This package doesn't do anything without python available (list python (I mean, does it still need to be propagated?) Greetings, Maxime.
Maxime Devos <maximedevos@telenet.be> skribis: > Paul A. Patience schreef op di 12-04-2022 om 02:55 [+0000]: > + (substitute* "src/callpython.lisp" > + (("\\*python-command\\* \"python\"") > + (string-append "*python-command* " > + "\"" (which "python3") "\""))))) > > This is most likely incorrect when cross-compiling. Do > > (lambda* (#:key inputs #:allow-other-keys) > [...] > (string-append [...] (search-input-file inputs "bin/python3") [...]) [...]) > > instead, such that it looks in 'inputs' instead of 'native-inputs'. The two are equivalent because so far asdf-build-system doesn't support cross builds using "--target=TRIPLET". But using 'search-input-file' looks better. > Also, now that 'python3' is patched in, is the following still relevant: > > (propagated-inputs > ;; This package doesn't do anything without python available > (list python > > (I mean, does it still need to be propagated?) Indeed, having python3 in 'inputs' should be enough now. Pushed in 59377f88ed1e31d38b34279f393949bf17e505ad. Thanks.
Hello, On 2022-04-12 08:46:23-04:00, Maxime Devos wrote: > This is most likely incorrect when cross-compiling. Do > > (lambda* (#:key inputs #:allow-other-keys) > [...] > (string-append [...] (search-input-file inputs "bin/python3") [...]) [...]) > > instead, such that it looks in 'inputs' instead of 'native-inputs'. > > > Also, now that 'python3' is patched in, is the following still relevant: > > (propagated-inputs > ;; This package doesn't do anything without python available > (list python > > (I mean, does it still need to be propagated?) So you're suggesting we call search-input-file and move the python dependency to inputs rather than propagated-inputs? Right, since the correct path to python3 is now hardcoded, it doesn't need to be propagated. One other thing we could do is move python-numpy to native-inputs. It's required only for the tests and multidimensional array support, but py4cl.py looks up python-numpy at runtime for the latter, and gracefully handles the situation when it is not found. A user could opt-in to the multidimensional array support by explicitly installing python-numpy. However, I'm not familiar with how Guix deals with Python module paths. Would the python3 in sbcl-py4cl's inputs be able to find python-numpy if only sbcl-py4cl and python-numpy are explicitly installed by the user? Best regards, Paul
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 358bba4e89..10a46d4b9a 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -5180,6 +5180,12 @@ (define-public sbcl-py4cl (arguments '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-python3-path + (lambda _ + (substitute* "src/callpython.lisp" + (("\\*python-command\\* \"python\"") + (string-append "*python-command* " + "\"" (which "python3") "\""))))) (add-after 'unpack 'replace-*base-directory*-var (lambda* (#:key outputs #:allow-other-keys) ;; In the ASD, the author makes an attempt to