GNU bug report logs -
#25235
Wrapped python programs get native-inputs in PYTHONPATH
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
I'm still on my first cup of coffee...
If a python input is in inputs and in native-inputs would it be included
in the wrapper or not? At first glance I'd say no. Does the search path
do deduplication? If it doesn't then it'd work to only remove the first
instance matching from native-input-dirs.
On Mon, Jan 16, 2023 at 04:29:19PM -0500, Maxim Cournoyer wrote:
> 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
>
>
>
>
--
Efraim Flashner <efraim <at> flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 1 year and 39 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.