Fixes <https://issues.guix.gnu.org/25235>.
* guix/build/pyproject-build-system.scm (wrap) [native-inputs]: New argument. Filter out native inputs from the values in GUIX_PYTHONPATH. --- guix/build/pyproject-build-system.scm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/guix/build/pyproject-build-system.scm b/guix/build/pyproject-build-system.scm index a66c1fb34a..cd418f7ec9 100644 --- a/guix/build/pyproject-build-system.scm +++ b/guix/build/pyproject-build-system.scm @@ -445,7 +445,7 @@ (define* (add-install-to-pythonpath #:key native-inputs outputs "A phase that just wraps the 'add-installed-pythonpath' procedure." (add-installed-pythonpath native-inputs outputs)) -(define* (wrap #:key inputs outputs #:allow-other-keys) +(define* (wrap #:key native-inputs inputs outputs #:allow-other-keys) (define (list-of-files dir) (find-files dir (lambda (file stat) (and (eq? 'regular (stat:type stat)) @@ -464,9 +464,17 @@ (define bindirs (define %guile (delay (search-input-file inputs "bin/guile"))) (define (guile) (force %guile)) - (let* ((var `("GUIX_PYTHONPATH" prefix - ,(search-path-as-string->list - (or (getenv "GUIX_PYTHONPATH") ""))))) + ;; Use the same strategy to compute the native-input file names. + (define %native-input-dirs (delay (match native-inputs + (((_ . dir) ...) + dir)))) + (define (native-input-dirs) (force %native-input-dirs)) + + (let ((var `("GUIX_PYTHONPATH" prefix + ,(remove (lambda (x) + (any (cut string-prefix? <> x) (native-input-dirs))) + (search-path-as-string->list + (or (getenv "GUIX_PYTHONPATH") "")))))) (for-each (lambda (dir) (let ((files (list-of-files dir))) (for-each (cut wrap-script <> #:guile (guile) var) -- 2.38.1