From 1203d1f24d51316ff693556a2d36e1fd71789865 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Thu, 15 Apr 2021 21:46:06 +1200 Subject: 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 Signed-off-by: Richard Purdie --- documentation/ref-manual/migration-3.3.rst | 29 +++++++++++++++++++++++++++++ documentation/ref-manual/variables.rst | 13 +++++++++++++ 2 files changed, 42 insertions(+) (limited to 'documentation') diff --git a/documentation/ref-manual/migration-3.3.rst b/documentation/ref-manual/migration-3.3.rst index db1619e627..4fb51a39dc 100644 --- a/documentation/ref-manual/migration-3.3.rst +++ b/documentation/ref-manual/migration-3.3.rst @@ -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 ` +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 ` (or +:ref:`setuptools3 ` which itself inherits +:ref:`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 diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst index 8f059650d3..74ac12bf98 100644 --- a/documentation/ref-manual/variables.rst +++ b/documentation/ref-manual/variables.rst @@ -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 ` or + :ref:`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 -- cgit v1.2.3-54-g00ecf