Subject: [bug#53439] [PATCH] doc: Document search paths.

From: Ludovic Courtès <[email-masked]>
Date: Sat, 22 Jan 2022 16:54:54 +0100

Hi Maxime,

Maxime Devos <[email-masked]> skribis:

> Ludovic Courtès schreef op za 22-01-2022 om 11:47 [+0100]:
>> +What this @code{native-search-paths} field says is that, when the
>> +@code{python} package is used, the @env{GUIX_PYTHONPATH} environment
>> +variable must be defined to include all the
>> +@file{lib/python/3.9/site-packages} sub-directories encountered in its
>> +environment.  (The @code{native-} bit means that, if we are in a
>> +cross-compilation environment, only native inputs may be added to the
>> +search path.)  In the NumPy example above, the profile where
>
> This bit about inputs/native-inputs seems a little imprecise:
>
> (package
>   (name "foobarify")
>   [...]
>   (inputs guile)
>   (propagated-inputs
>     ;; TODO: would be nice to unpropagate
>     (list guile-foo guile-bar guile-ify))
>   ;; "foobarify" allows running arbitrary Guile scripts,
>   ;; so allow the user to use arbitrary Guile libraries
>   ;; from the environment  in their scripts at will.
>   (native-search-paths
>     [GUILE_LOAD_PATH, GUILE_LOAD_COMPILED_PATH, ...]))
>
> $ [ guix cross-compile a virtual image with foobarify in the system
> profile]
>
> IIUC, guile-foo, guile-bar and guile-ify will be included in the
> GUILE_LOAD_PATH/GUILE_LOAD_COMPILED_PATH of the system profile, even
> though we are cross-compiling and they are 'inputs' and not 'native-
> inputs' of 'foobarify' ...

I think the key bit in the parenthetical sentence you refer to is “if we
are in a cross-compilation environment”.  If we are *not*
cross-compiling, then both inputs and native inputs are included in the
search path.  Is that what you mean?

I think we need a section about cross-compilation though, and that will
allow us to clarify these things.  I didn’t want to muddy the main
message in cross-compilation considerations here.

WDYT?

Thanks for reviewing!

Ludo’.