[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/03: gnu: python-wrapper: Refer to the target Python when cross-compil
From: |
guix-commits |
Subject: |
02/03: gnu: python-wrapper: Refer to the target Python when cross-compiling. |
Date: |
Thu, 9 Mar 2023 17:29:58 -0500 (EST) |
civodul pushed a commit to branch core-updates
in repository guix.
commit af916f3f8b5e1191cdcc95dded1e376f51ad9e9b
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Thu Mar 9 22:33:05 2023 +0100
gnu: python-wrapper: Refer to the target Python when cross-compiling.
Previously, "guix build python-wrapper --target=aarch64-linux-gnu" would
return a wrapper that symlinks the native programs (e.g., 'python3' for
x86_64-linux) instead of the target programs.
* gnu/packages/python.scm (wrap-python3)[arguments]: Use gexps. Use
'this-package-input' to refer to Python when cross-compiling.
---
gnu/packages/python.scm | 46 +++++++++++++++++++++++++++-------------------
1 file changed, 27 insertions(+), 19 deletions(-)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 6abc5cdd88..3e3074d5d8 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -635,30 +635,38 @@ for more information.")))
(inputs `(("bash" ,bash)))
(propagated-inputs `(("python" ,python)))
(arguments
- `(#:modules ((guix build utils))
- #:builder
- (begin
- (use-modules (guix build utils))
- (let ((bin (string-append (assoc-ref %outputs "out") "/bin"))
- (python (string-append (assoc-ref %build-inputs "python")
"/bin/")))
- (mkdir-p bin)
- (for-each
+ (list #:modules '((guix build utils))
+ #:builder
+ #~(begin
+ (use-modules (guix build utils))
+
+ ;; TODO: Remove 'assoc-ref' uses on next rebuild cycle.
+ (let ((bin (string-append (assoc-ref %outputs "out") "/bin"))
+ (python (string-append
+ ;; XXX: '%build-inputs' contains the native
+ ;; Python when cross-compiling.
+ #$(if (%current-target-system)
+ (this-package-input "python")
+ #~(assoc-ref %build-inputs "python"))
+ "/bin/")))
+ (mkdir-p bin)
+ (for-each
(lambda (old new)
(symlink (string-append python old)
(string-append bin "/" new)))
`("python3" ,"pydoc3" ,"pip3")
`("python" ,"pydoc" ,"pip"))
- ;; python-config outputs search paths based upon its location,
- ;; use a bash wrapper to avoid changing its outputs.
- (let ((bash (string-append (assoc-ref %build-inputs "bash")
- "/bin/bash"))
- (old (string-append python "python3-config"))
- (new (string-append bin "/python-config")))
- (with-output-to-file new
- (lambda ()
- (format #t "#!~a~%" bash)
- (format #t "exec \"~a\" \"$@\"~%" old)
- (chmod new #o755))))))))
+ ;; python-config outputs search paths based upon its location,
+ ;; use a bash wrapper to avoid changing its outputs.
+ (let ((bash (string-append (assoc-ref %build-inputs "bash")
+ "/bin/bash"))
+ (old (string-append python "python3-config"))
+ (new (string-append bin "/python-config")))
+ (with-output-to-file new
+ (lambda ()
+ (format #t "#!~a~%" bash)
+ (format #t "exec \"~a\" \"$@\"~%" old)
+ (chmod new #o755))))))))
(synopsis "Wrapper for the Python 3 commands")
(description
"This package provides wrappers for the commands of Python@tie{}3.x such