ref-manual: add mention of DISTUTILS_SETUP_PATH

Add a variable glossary entry and corresponding 3.3 migration
section entry for DISTUTILS_SETUP_PATH.

(From yocto-docs rev: 0823237e6f4b9dbdf48500b3c1e8cc61696fa2d2)

Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton
2021-04-15 21:46:06 +12:00
committed by Richard Purdie
parent 34a72cf613
commit 1203d1f24d
2 changed files with 42 additions and 0 deletions

View File

@@ -74,6 +74,35 @@ Some example recipes where this change has been made: ``gpgme``, ``libcap-ng``,
``python3-pycairo``.
.. _migration-3.3-distutils-path:
``setup.py`` path for python modules
------------------------------------
In a Python module, sometimes ``setup.py`` can be buried deep in the
source tree. Previously this was handled in recipes by setting :term:`S` to
point to the subdirectory within the source where ``setup.py`` is located.
However with the recent :ref:`pseudo <overview-manual/concepts:fakeroot and pseudo>`
changes, some Python modules make changes to files beneath ``${S}``, for
example::
S = "${WORKDIR}/git/python/pythonmodule"
then in ``setup.py`` it works with source code in a relative fashion, such
as ``../../src``. This causes pseudo to abort as it isn't able to track
the paths properly. This release introduces a new :term:`DISTUTILS_SETUP_PATH`
variable so that recipes can specify it explicitly, for example::
S = "${WORKDIR}/git"
DISTUTILS_SETUP_PATH = "${S}/python/pythonmodule"
Recipes that inherit from :ref:`distutils3 <ref-classes-distutils3>` (or
:ref:`setuptools3 <ref-classes-setuptools3>` which itself inherits
:ref:`distutils3 <ref-classes-distutils3>`) that also set :term:`S` to
point to a Python module within a subdirectory in the aforementioned
manner should be changed to set :term:`DISTUTILS_SETUP_PATH` instead.
.. _migration-3.3-bitbake:
BitBake changes

View File

@@ -1978,6 +1978,19 @@ system and gives an overview of their function and contents.
is included in the default value of
:term:`OVERRIDES`.
:term:`DISTUTILS_SETUP_PATH`
When used by recipes that inherit the
:ref:`distutils3 <ref-classes-distutils3>` or
:ref:`setuptools3 <ref-classes-setuptools3>` class, this variable should
be used to specify the directory in which the ``setup.py`` file is
located if it is not at the root of the source tree (as specified by
:term:`S`). For example, in a recipe where the sources are fetched from
a Git repository and ``setup.py`` is in a ``python/pythonmodule``
subdirectory, you would have this::
S = "${WORKDIR}/git"
DISTUTILS_SETUP_PATH = "${S}/python/pythonmodule"
:term:`DL_DIR`
The central download directory used by the build process to store
downloads. By default, ``DL_DIR`` gets files suitable for mirroring