mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-23 15:54:21 -09:00
f75239d1b59ca1e6d821eeeda10cd4653a7ab78c
When a package uses "setuptools" as its <pkg>_SETUP_TYPE, we currently
add a dependency on host-python-setuptools. This means that:
(1) When BR2_PACKAGE_PYTHON=y, the default host Python version is
Python 2.x, and host-python-setuptools is installed for
host-python.
(2) When BR2_PACKAGE_PYTHON3=y, the default host Python version is
Python 3.x, and host-python-setuptools is installed for
host-python3.
(3) When no target Python interpreter is selected, the default host
Python version is Python 2.x, and host-python-setuptools is
installed for host-python.
Situations (1) and (3) are problematic for host Python packages that
need Python 3.x. Such packages use <pkg>_NEEDS_HOST_PYTHON = python3,
but if they use setuptools as their setup type, they will not find
setuptools installed for host-python3 in situations (1) and (3)
described above.
We currently have a single package that sets <pkg>_NEEDS_HOST_PYTHON =
python3: host-meson. host-meson generally works because if setuptools
is not found, it falls back to distutils, which is part of the
standard Python library. However, if there is a setuptools version
installed system-wide, it may be picked up, but may not necessarily be
the same version as Buildroot setuptools, potentially causing
problems.
This commit makes the necessary change to the python-package
infrastructure to fix this behavior, by identifying the following
cases:
- When a host Python package says <pkg>_NEEDS_HOST_PYTHON = python3,
then we know it wants setuptools installed for host-python3, so we
use host-python3-setuptools.
- When a host Python package says <pkg>_NEEDS_HOST_PYTHON = python2,
then we known it wants setuptools installed for host-python, so we
use host-python-setuptools.
- When BR2_PACKAGE_PYTHON3=y, and we have a target package, or a host
package with no NEEDS_HOST_PYTHON option, then we want setuptools
installed for host-python3, so we use host-python3-setuptools.
- When BR2_PACKAGE_PYTHON=y or no target interpreter is enabled at
all, and we have a target package, or a host package with no
NEEDS_HOST_PYTHON option, then we want setuptools for host-python,
so we use host-python-setuptools.
To make this happen, we use host-python3-setuptools introduced in a
previous commit, but we also change host-python-setuptools to force
its installation for host-python. The latter is needed if you build
with BR2_PACKAGE_PYTHON3=y but want to install a Python-based package
that has NEEDS_HOST_PYTHON=python2.
There is one single package that needs be adjusted following this:
lirc-tools, because it is not using the python-package
infrastructure. It directly depends on host-python-setuptools, which
no longer works because host-python-setuptools now only installs for
Python 2.x, while lirc-tools Python binding only supports Python
3.x. Switching to host-python3-setuptools solves this problem.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: Asaf Kahlon <asafka7@gmail.com>
Reviewed-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
…
…
Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation. The documentation can be found in docs/manual. You can generate a text document with 'make manual-text' and read output/docs/manual/manual.text. Online documentation can be found at http://buildroot.org/docs.html To build and use the buildroot stuff, do the following: 1) run 'make menuconfig' 2) select the target architecture and the packages you wish to compile 3) run 'make' 4) wait while it compiles 5) find the kernel, bootloader, root filesystem, etc. in output/images You do not need to be root to build or run buildroot. Have fun! Buildroot comes with a basic configuration for a number of boards. Run 'make list-defconfigs' to view the list of provided configurations. Please feed suggestions, bug reports, insults, and bribes back to the buildroot mailing list: buildroot@buildroot.org You can also find us on #buildroot on Freenode IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches
Description
Languages
Makefile
62.6%
Python
18.8%
C
8.5%
Shell
6.1%
PHP
1.4%
Other
2.2%