Subject: Re: bug#52684: [BUG] Multiple Packages Failing to Build

From: Maxime Devos <[email-masked]>
Date: Wed, 22 Dec 2021 20:50:04 +0000

Christopher Rodriguez schreef op wo 22-12-2021 om 14:59 [-0500]:
> I've been digging through the source, and it seems as though 
> `python-build-system` does not actually set the $GUIX_PYTHONPATH 
> variable in the environment. That variable seems to only be set by 
> `python-2.7` and its derivatives, including `python3.9`, during a
> step 
> after the install process.

> [...]

> I don't know if this is intended. If it is, that would mean that 
> (currently) there is no easy way to set the $GUIX_PYTHONPATH
> variable 
> outside of installing `python` in a profile. That would certainly be
> the 
> most expedient way forward (and how it would be done on traditional 
> distros).

python-build-system doesn't GUIX_PYTHONPATH, because that's the job of
the native-search-paths of python. When a python library is being
built, GUIX_PYTHONPATH is set because the library has python among its
(implicit) inputs. The same holds for profiles: if python and package
containing a lib/pythonVERSION/site-packages are in the same profile,
then GUIX_PYTHONPATH is set in that profile.

> Both `guix install python` and `export 
> GUIX_PYTHONPATH=/gnu/..../site-packages` work to allow the
> environment 
> variable to be set. But it might be better and more future-proof to
> just 
> install python in the profile as a dependency, since the program
> itself 
> actually depends on `python` anyway.

There's a reason why we don't ‘just propagate’ like in classical
distros: what if the user installs a version of python incompatible
with the version used by beets?

To avoid such incompatibilities (and other problems), the interpreter
of binaries (and the load path) is hard-coded at built time.

Also, if this is about plugins: adding GUIX_PYTHONPATH to beets'
native-search-paths should work (the wrapper uses 'prefix', not '=').

Greetings,
Maxime.