summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
authorAntonin Godard <antonin.godard@bootlin.com>2024-12-09 17:43:43 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-12-20 12:47:59 +0000
commitc9565b89d070d31db5f4e4ee499f4905938ed4f6 (patch)
tree38ea29bf46a83ac8df36ef5fe165342fe962604a /documentation
parent6968e17ae5992fd7948098e5d5221a3e106e3452 (diff)
downloadpoky-c9565b89d070d31db5f4e4ee499f4905938ed4f6.tar.gz
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 <antonin.godard@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation')
-rw-r--r--documentation/contributor-guide/recipe-style-guide.rst6
-rw-r--r--documentation/dev-manual/external-scm.rst9
-rw-r--r--documentation/dev-manual/new-recipe.rst10
-rw-r--r--documentation/dev-manual/packages.rst13
-rw-r--r--documentation/kernel-dev/common.rst13
-rw-r--r--documentation/ref-manual/variables.rst59
6 files changed, 47 insertions, 63 deletions
diff --git a/documentation/contributor-guide/recipe-style-guide.rst b/documentation/contributor-guide/recipe-style-guide.rst
index 6a3eec3a0e..806bf23848 100644
--- a/documentation/contributor-guide/recipe-style-guide.rst
+++ b/documentation/contributor-guide/recipe-style-guide.rst
@@ -47,10 +47,10 @@ Debian policy closely.
47 47
48When a recipe references a git revision that does not correspond to a released 48When a recipe references a git revision that does not correspond to a released
49version of software (e.g. is not a tagged version), the :term:`PV` variable 49version of software (e.g. is not a tagged version), the :term:`PV` variable
50should include the Git revision using the following to make the 50should include the sign ``+``, so :term:`bitbake` automatically includes package
51version clear:: 51version information during the packaging phase::
52 52
53 PV = "<version>+git${SRCPV}" 53 PV = "<version>+git"
54 54
55In this case, ``<version>`` should be the most recently released version of the 55In this case, ``<version>`` should be the most recently released version of the
56software from the current source revision (``git describe`` can be useful for 56software 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
12Subversion (SVN), Git, and Bazaar (BZR) repositories. 12Subversion (SVN), Git, and Bazaar (BZR) repositories.
13 13
14To enable this behavior, the :term:`PV` of 14To enable this behavior, the :term:`PV` of
15the recipe needs to reference 15the recipe needs to include a ``+`` sign in its assignment.
16:term:`SRCPV`. Here is an example:: 16Here is an example::
17 17
18 PV = "1.2.3+git${SRCPV}" 18 PV = "1.2.3+git"
19
20:term:`Bitbake` later includes the source control information in :term:`PKGV`
21during the packaging phase.
19 22
20Then, you can add the following to your 23Then, you can add the following to your
21``local.conf``:: 24``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
291 291
292Another way of specifying source is from an SCM. For Git repositories, 292Another way of specifying source is from an SCM. For Git repositories,
293you must specify :term:`SRCREV` and you should specify :term:`PV` to include 293you must specify :term:`SRCREV` and you should specify :term:`PV` to include
294the revision with :term:`SRCPV`. Here is an example from the recipe 294a ``+`` sign in its definition. Here is an example from the recipe
295``meta/recipes-core/musl/gcompat_git.bb``:: 295:oe_git:`meta/recipes-sato/l3afpad/l3afpad_git.bb </openembedded-core/tree/meta/recipes-sato/l3afpad/l3afpad_git.bb>`::
296 296
297 SRC_URI = "git://git.adelielinux.org/adelie/gcompat.git;protocol=https;branch=current" 297 SRC_URI = "git://github.com/stevenhoneyman/l3afpad.git;branch=master;protocol=https"
298 298
299 PV = "1.0.0+1.1+git${SRCPV}" 299 PV = "0.8.18.1.11+git"
300 SRCREV = "af5a49e489fdc04b9cf02547650d7aeaccd43793" 300 SRCREV ="3cdccdc9505643e50f8208171d9eee5de11a42ff"
301 301
302If your :term:`SRC_URI` statement includes URLs pointing to individual files 302If your :term:`SRC_URI` statement includes URLs pointing to individual files
303fetched from a remote server other than a version control system, 303fetched 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:
84 84
85- :term:`PR`: The recipe revision. 85- :term:`PR`: The recipe revision.
86 86
87- :term:`SRCPV`: The OpenEmbedded
88 build system uses this string to help define the value of :term:`PV` when
89 the source code revision needs to be included in it.
90
91- :yocto_wiki:`PR Service </PR_Service>`: A 87- :yocto_wiki:`PR Service </PR_Service>`: A
92 network-based service that helps automate keeping package feeds 88 network-based service that helps automate keeping package feeds
93 compatible with existing package manager applications such as RPM, 89 compatible with existing package manager applications such as RPM,
@@ -256,15 +252,14 @@ the software::
256 252
257 SRCREV = "${AUTOREV}" 253 SRCREV = "${AUTOREV}"
258 254
259Furthermore, you need to reference :term:`SRCPV` in :term:`PV` in order to 255Furthermore, you need to include a ``+`` sign in :term:`PV` in order to
260automatically update the version whenever the revision of the source 256automatically update the version whenever the revision of the source
261code changes. Here is an example:: 257code changes. Here is an example::
262 258
263 PV = "1.0+git${SRCPV}" 259 PV = "1.0+git"
264
265The OpenEmbedded build system substitutes :term:`SRCPV` with the following:
266 260
267.. code-block:: none 261The OpenEmbedded build system will automatically add the source control
262information to the end of the variable :term:`PKGV`, in this format::
268 263
269 AUTOINC+source_code_revision 264 AUTOINC+source_code_revision
270 265
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:
1562 changed. 1562 changed.
1563 1563
1564 - :term:`PV`: The default :term:`PV` 1564 - :term:`PV`: The default :term:`PV`
1565 assignment is typically adequate. It combines the 1565 assignment is typically adequate. It combines the value of
1566 :term:`LINUX_VERSION` with the Source Control Manager (SCM) revision 1566 :term:`LINUX_VERSION` and the value ``+git`` which adds source control
1567 as derived from the :term:`SRCPV` 1567 information to :term:`PKGV` later during the packaging phase.
1568 variable. The combined results are a string with the following
1569 form::
1570
1571 3.19.11+git1+68a635bf8dfb64b02263c1ac80c948647cc76d5f_1+218bd8d2022b9852c60d32f0d770931e3cf343e2
1572
1573 While lengthy, the extra verbosity in :term:`PV` helps ensure you are
1574 using the exact sources from which you intend to build.
1575 1568
1576 - :term:`COMPATIBLE_MACHINE`: 1569 - :term:`COMPATIBLE_MACHINE`:
1577 A list of the machines supported by your new recipe. This variable 1570 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 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.
209 SRCREV = "${AUTOREV}" 209 SRCREV = "${AUTOREV}"
210 210
211 If you use the previous statement to retrieve the latest version of 211 If you use the previous statement to retrieve the latest version of
212 software, you need to be sure :term:`PV` contains 212 software, you need to make sure :term:`PV` contains the ``+`` sign so
213 ``${``\ :term:`SRCPV`\ ``}``. For example, suppose you have a kernel 213 :term:`bitbake` includes source control information to :term:`PKGV` when
214 recipe that inherits the :ref:`ref-classes-kernel` class and you 214 packaging the recipe. For example::
215 use the previous statement. In this example, ``${SRCPV}`` does not 215
216 automatically get into :term:`PV`. Consequently, you need to change 216 PV = "6.10.y+git"
217 :term:`PV` in your recipe so that it does contain ``${SRCPV}``.
218 217
219 For more information see the 218 For more information see the
220 ":ref:`dev-manual/packages:automatically incrementing a package version number`" 219 ":ref:`dev-manual/packages:automatically incrementing a package version number`"
@@ -5157,7 +5156,7 @@ system and gives an overview of their function and contents.
5157 The :term:`LINUX_VERSION` variable is used to define :term:`PV` 5156 The :term:`LINUX_VERSION` variable is used to define :term:`PV`
5158 for the recipe:: 5157 for the recipe::
5159 5158
5160 PV = "${LINUX_VERSION}+git${SRCPV}" 5159 PV = "${LINUX_VERSION}+git"
5161 5160
5162 :term:`LINUX_VERSION_EXTENSION` 5161 :term:`LINUX_VERSION_EXTENSION`
5163 A string extension compiled into the version string of the Linux 5162 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.
6720 string. You cannot use the wildcard character in any other 6719 string. You cannot use the wildcard character in any other
6721 location of the string. 6720 location of the string.
6722 6721
6723 The specified version is matched against :term:`PV`, which 6722 The specified version is matched against :term:`PV`, which does not
6724 does not necessarily match the version part of the recipe's filename. 6723 necessarily match the version part of the recipe's filename.
6725 For example, consider two recipes ``foo_1.2.bb`` and ``foo_git.bb``
6726 where ``foo_git.bb`` contains the following assignment::
6727
6728 PV = "1.1+git${SRCPV}"
6729
6730 In this case, the correct way to select
6731 ``foo_git.bb`` is by using an assignment such as the following::
6732
6733 PREFERRED_VERSION_foo = "1.1+git%"
6734 6724
6735 Compare that previous example 6725 If you want to select a recipe named ``foo_git.bb`` which has :term:`PV`
6736 against the following incorrect example, which does not work:: 6726 set to ``1.2.3+git``, you can do so by setting ```PREFERRED_VERSION_foo``
6737 6727 to ``1.2.3%`` (i.e. simply setting ``PREFERRED_VERSION_foo`` to ``git``
6738 PREFERRED_VERSION_foo = "git" 6728 will not work as the name of the recipe isn't used, but rather its
6729 :term:`PV` definition).
6739 6730
6740 Sometimes the :term:`PREFERRED_VERSION` variable can be set by 6731 Sometimes the :term:`PREFERRED_VERSION` variable can be set by
6741 configuration files in a way that is hard to change. You can use 6732 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.
8321 (SCM). 8312 (SCM).
8322 8313
8323 :term:`SRCPV` 8314 :term:`SRCPV`
8324 Returns the version string of the current package. This string is 8315 The variable :term:`SRCPV` is deprecated. It was previously used to
8325 used to help define the value of :term:`PV`. 8316 include source control information in :term:`PV` for :term:`bitbake` to
8317 work correctly but this is no longer a requirement. Source control
8318 information will be automatically included by :term:`bitbake` in the
8319 variable :term:`PKGV` during packaging if the ``+`` sign is present in
8320 :term:`PV`.
8326 8321
8327 The :term:`SRCPV` variable is defined in the ``meta/conf/bitbake.conf`` 8322 .. note::
8328 configuration file in the :term:`Source Directory` as
8329 follows::
8330 8323
8331 SRCPV = "${@bb.fetch2.get_srcrev(d)}" 8324 The :term:`SRCPV` variable used to be defined in the
8325 ``meta/conf/bitbake.conf`` configuration file in the :term:`Source
8326 Directory` as follows::
8332 8327
8333 Recipes that need to define :term:`PV` do so with the help of the 8328 SRCPV = "${@bb.fetch2.get_srcrev(d)}"
8334 :term:`SRCPV`. For example, the ``ofono`` recipe (``ofono_git.bb``)
8335 located in ``meta/recipes-connectivity`` in the Source Directory
8336 defines :term:`PV` as follows::
8337 8329
8338 PV = "0.12-git${SRCPV}" 8330 The ``get_srcrev`` function can still be used to include source control
8331 information in variables manually.
8339 8332
8340 :term:`SRCREV` 8333 :term:`SRCREV`
8341 The revision of the source code used to build the package. This 8334 The revision of the source code used to build the package. This