[Buildroot] [PATCH] python3: remove target Python packages from PYTHONPATH

Yegor Yefremov yegorslists at googlemail.com
Mon Aug 21 08:30:57 UTC 2017


Hi Thomas,

On Sat, Aug 19, 2017 at 11:11 PM, Thomas Petazzoni
<thomas.petazzoni at free-electrons.com> wrote:
> This commit is similar to 350941e31de5b454cad75abe5fb0d3db027bc1a7
> ("python: remove target Python packages from PYTHONPATH") but for
> python3.
>
> We currently have
> $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/
> inside the PYTHON3_PATH variable, which gets used to define
> PYTHONPATH, passed to the host Python interpreter when
> building/installing target packages.
>
> However, this is terribly wrong, as it causes the host interpreter to
> potentially import target Python packages. This is wrong for several
> reasons:
>
>  - Some Python packages might need some Python modules to be installed
>    on the host (described in setup_requires in setup.py), but their
>    installation currently works because by luck the corresponding
>    Python module is installed for the target. Some of those cases were
>    happening for real, and fixed by previous patches.
>
>  - Some Python packages include some native code, therefore built for
>    a specific CPU architecture. When you point the host Python
>    interpreter to native libraries built for the target, you get nice
>    build failures, such as the one affecting the python-cffi related
>    packages.
>
> This change fixes the following build failures:
>
>    http://autobuild.buildroot.net/results/9005b89407e46b537a54cac6cc0c69dcac4dc5ea/
>    (python-cryptography)
>
>    http://autobuild.buildroot.net/results/395682d33d02fdcaa39d3c0326355bd9ea3d6feb/
>    (python-pynacl)
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>

I've compiled some heavy packages like crossbar and pytablewrite (they
select more than a half of Python packages) and everything is working
as expected. Thanks for the fix.

Reviewed-by: Yegor Yefremov <yegorslists at googlemail.com>
Tested-by: Yegor Yefremov <yegorslists at googlemail.com>

Yegor

> ---
>  package/python3/python3.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/package/python3/python3.mk b/package/python3/python3.mk
> index 80905dd..a18dc7f 100644
> --- a/package/python3/python3.mk
> +++ b/package/python3/python3.mk
> @@ -232,7 +232,7 @@ HOST_PYTHON3_POST_INSTALL_HOOKS += HOST_PYTHON3_INSTALL_SYMLINK
>  endif
>
>  # Provided to other packages
> -PYTHON3_PATH = $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/:$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/
> +PYTHON3_PATH = $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/
>
>  $(eval $(autotools-package))
>  $(eval $(host-autotools-package))
> --
> 2.9.4
>



More information about the buildroot mailing list