From c9565b89d070d31db5f4e4ee499f4905938ed4f6 Mon Sep 17 00:00:00 2001 From: Antonin Godard Date: Mon, 9 Dec 2024 17:43:43 +0100 Subject: Update the documentation for SRCPV The variable SRCPV is deprecated since 4.3. Instead of including SRCPV in PV, including the sign "+" is enough for bitbake to add the source control information to PKGV during the packaging phase. Update the documentation for SRCPV and the places where it was used. When instructions previously referred to SRCPV, replace by mentioning to include "+" in the assignment. In most examples, "+git" is added to PV as it is the most popular SCM. Simply adding "+" is also possible, although it is better practice to include the SCM name, so give that example. Update the gcompat example with l3afpad as it didn't include "+git" in its PV definition anymore. (From yocto-docs rev: ee16c96202e5027d1a8d7e89e11c25f127c78326) Signed-off-by: Antonin Godard Signed-off-by: Richard Purdie --- documentation/ref-manual/variables.rst | 59 +++++++++++++++------------------- 1 file changed, 26 insertions(+), 33 deletions(-) (limited to 'documentation/ref-manual/variables.rst') diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst index 1eee617d59..e8db89f8c9 100644 --- a/documentation/ref-manual/variables.rst +++ b/documentation/ref-manual/variables.rst @@ -209,12 +209,11 @@ system and gives an overview of their function and contents. SRCREV = "${AUTOREV}" If you use the previous statement to retrieve the latest version of - software, you need to be sure :term:`PV` contains - ``${``\ :term:`SRCPV`\ ``}``. For example, suppose you have a kernel - recipe that inherits the :ref:`ref-classes-kernel` class and you - use the previous statement. In this example, ``${SRCPV}`` does not - automatically get into :term:`PV`. Consequently, you need to change - :term:`PV` in your recipe so that it does contain ``${SRCPV}``. + software, you need to make sure :term:`PV` contains the ``+`` sign so + :term:`bitbake` includes source control information to :term:`PKGV` when + packaging the recipe. For example:: + + PV = "6.10.y+git" For more information see the ":ref:`dev-manual/packages:automatically incrementing a package version number`" @@ -5157,7 +5156,7 @@ system and gives an overview of their function and contents. The :term:`LINUX_VERSION` variable is used to define :term:`PV` for the recipe:: - PV = "${LINUX_VERSION}+git${SRCPV}" + PV = "${LINUX_VERSION}+git" :term:`LINUX_VERSION_EXTENSION` A string extension compiled into the version string of the Linux @@ -6720,22 +6719,14 @@ system and gives an overview of their function and contents. string. You cannot use the wildcard character in any other location of the string. - The specified version is matched against :term:`PV`, which - does not necessarily match the version part of the recipe's filename. - For example, consider two recipes ``foo_1.2.bb`` and ``foo_git.bb`` - where ``foo_git.bb`` contains the following assignment:: - - PV = "1.1+git${SRCPV}" - - In this case, the correct way to select - ``foo_git.bb`` is by using an assignment such as the following:: - - PREFERRED_VERSION_foo = "1.1+git%" + The specified version is matched against :term:`PV`, which does not + necessarily match the version part of the recipe's filename. - Compare that previous example - against the following incorrect example, which does not work:: - - PREFERRED_VERSION_foo = "git" + If you want to select a recipe named ``foo_git.bb`` which has :term:`PV` + set to ``1.2.3+git``, you can do so by setting ```PREFERRED_VERSION_foo`` + to ``1.2.3%`` (i.e. simply setting ``PREFERRED_VERSION_foo`` to ``git`` + will not work as the name of the recipe isn't used, but rather its + :term:`PV` definition). Sometimes the :term:`PREFERRED_VERSION` variable can be set by configuration files in a way that is hard to change. You can use @@ -8321,21 +8312,23 @@ system and gives an overview of their function and contents. (SCM). :term:`SRCPV` - Returns the version string of the current package. This string is - used to help define the value of :term:`PV`. + The variable :term:`SRCPV` is deprecated. It was previously used to + include source control information in :term:`PV` for :term:`bitbake` to + work correctly but this is no longer a requirement. Source control + information will be automatically included by :term:`bitbake` in the + variable :term:`PKGV` during packaging if the ``+`` sign is present in + :term:`PV`. - The :term:`SRCPV` variable is defined in the ``meta/conf/bitbake.conf`` - configuration file in the :term:`Source Directory` as - follows:: + .. note:: - SRCPV = "${@bb.fetch2.get_srcrev(d)}" + The :term:`SRCPV` variable used to be defined in the + ``meta/conf/bitbake.conf`` configuration file in the :term:`Source + Directory` as follows:: - Recipes that need to define :term:`PV` do so with the help of the - :term:`SRCPV`. For example, the ``ofono`` recipe (``ofono_git.bb``) - located in ``meta/recipes-connectivity`` in the Source Directory - defines :term:`PV` as follows:: + SRCPV = "${@bb.fetch2.get_srcrev(d)}" - PV = "0.12-git${SRCPV}" + The ``get_srcrev`` function can still be used to include source control + information in variables manually. :term:`SRCREV` The revision of the source code used to build the package. This -- cgit v1.2.3-54-g00ecf