diff --git a/documentation/contributor-guide/recipe-style-guide.rst b/documentation/contributor-guide/recipe-style-guide.rst index 179c8daa77..617e202431 100644 --- a/documentation/contributor-guide/recipe-style-guide.rst +++ b/documentation/contributor-guide/recipe-style-guide.rst @@ -47,10 +47,10 @@ Debian policy closely. When a recipe references a git revision that does not correspond to a released version of software (e.g. is not a tagged version), the :term:`PV` variable -should include the Git revision using the following to make the -version clear:: +should include the sign ``+``, so :term:`bitbake` automatically includes package +version information during the packaging phase:: - PV = "+git${SRCPV}" + PV = "+git" In this case, ```` should be the most recently released version of the software from the current source revision (``git describe`` can be useful for diff --git a/documentation/dev-manual/external-scm.rst b/documentation/dev-manual/external-scm.rst index 97a7e63e36..896b1b5ac7 100644 --- a/documentation/dev-manual/external-scm.rst +++ b/documentation/dev-manual/external-scm.rst @@ -12,10 +12,13 @@ revision number for changes. Currently, you can do this with Apache Subversion (SVN), Git, and Bazaar (BZR) repositories. To enable this behavior, the :term:`PV` of -the recipe needs to reference -:term:`SRCPV`. Here is an example:: +the recipe needs to include a ``+`` sign in its assignment. +Here is an example:: - PV = "1.2.3+git${SRCPV}" + PV = "1.2.3+git" + +:term:`Bitbake` later includes the source control information in :term:`PKGV` +during the packaging phase. Then, you can add the following to your ``local.conf``:: diff --git a/documentation/dev-manual/new-recipe.rst b/documentation/dev-manual/new-recipe.rst index 61fc2eb122..944b9627f9 100644 --- a/documentation/dev-manual/new-recipe.rst +++ b/documentation/dev-manual/new-recipe.rst @@ -291,13 +291,13 @@ another example that specifies these types of files, see the Another way of specifying source is from an SCM. For Git repositories, you must specify :term:`SRCREV` and you should specify :term:`PV` to include -the revision with :term:`SRCPV`. Here is an example from the recipe -``meta/recipes-core/musl/gcompat_git.bb``:: +a ``+`` sign in its definition. Here is an example from the recipe +:oe_git:`meta/recipes-sato/l3afpad/l3afpad_git.bb `:: - SRC_URI = "git://git.adelielinux.org/adelie/gcompat.git;protocol=https;branch=current" + SRC_URI = "git://github.com/stevenhoneyman/l3afpad.git;branch=master;protocol=https" - PV = "1.0.0+1.1+git${SRCPV}" - SRCREV = "af5a49e489fdc04b9cf02547650d7aeaccd43793" + PV = "0.8.18.1.11+git" + SRCREV ="3cdccdc9505643e50f8208171d9eee5de11a42ff" If your :term:`SRC_URI` statement includes URLs pointing to individual files fetched from a remote server other than a version control system, diff --git a/documentation/dev-manual/packages.rst b/documentation/dev-manual/packages.rst index e5028fffdc..33cf78747d 100644 --- a/documentation/dev-manual/packages.rst +++ b/documentation/dev-manual/packages.rst @@ -84,10 +84,6 @@ the following: - :term:`PR`: The recipe revision. -- :term:`SRCPV`: The OpenEmbedded - build system uses this string to help define the value of :term:`PV` when - the source code revision needs to be included in it. - - :yocto_wiki:`PR Service `: A network-based service that helps automate keeping package feeds compatible with existing package manager applications such as RPM, @@ -256,15 +252,14 @@ the software:: SRCREV = "${AUTOREV}" -Furthermore, you need to reference :term:`SRCPV` in :term:`PV` in order to +Furthermore, you need to include a ``+`` sign in :term:`PV` in order to automatically update the version whenever the revision of the source code changes. Here is an example:: - PV = "1.0+git${SRCPV}" + PV = "1.0+git" -The OpenEmbedded build system substitutes :term:`SRCPV` with the following: - -.. code-block:: none +The OpenEmbedded build system will automatically add the source control +information to the end of the variable :term:`PKGV`, in this format:: AUTOINC+source_code_revision diff --git a/documentation/kernel-dev/common.rst b/documentation/kernel-dev/common.rst index fda41694dc..28ef3b22c3 100644 --- a/documentation/kernel-dev/common.rst +++ b/documentation/kernel-dev/common.rst @@ -1562,16 +1562,9 @@ Here are some basic steps you can use to work with your own sources: changed. - :term:`PV`: The default :term:`PV` - assignment is typically adequate. It combines the - :term:`LINUX_VERSION` with the Source Control Manager (SCM) revision - as derived from the :term:`SRCPV` - variable. The combined results are a string with the following - form:: - - 3.19.11+git1+68a635bf8dfb64b02263c1ac80c948647cc76d5f_1+218bd8d2022b9852c60d32f0d770931e3cf343e2 - - While lengthy, the extra verbosity in :term:`PV` helps ensure you are - using the exact sources from which you intend to build. + assignment is typically adequate. It combines the value of + :term:`LINUX_VERSION` and the value ``+git`` which adds source control + information to :term:`PKGV` later during the packaging phase. - :term:`COMPATIBLE_MACHINE`: A list of the machines supported by your new recipe. This variable diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst index 0c5c7aab97..2e57abe16c 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`" @@ -5109,7 +5108,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 @@ -6657,22 +6656,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:: + The specified version is matched against :term:`PV`, which does not + necessarily match the version part of the recipe's filename. - 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%" - - 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 @@ -8194,21 +8185,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