SSTATE_MIRRORS/SOURCE_MIRROR_URL: add instructions for mirror authentication

[ YOCTO #15218 ]

There are different ways of configuring the build host when
authentication to a mirror (SSTATE_MIRRORS or SOURCE_MIRROR_URL) is
required.

Document these methods, and begin with the preferred approach which is
to edit ~/.netrc appropriately. When that is not possible, specifying
the credentials from the URL is also possible, so document it as well.

Reported-by: peter.zsifkovits@at.bosch.com
Tested-by: Antonin Godard <antonin.godard@bootlin.com> # Debian 12 container
(From yocto-docs rev: 4c303cce0627e0f2ce52e72597541e220585aaed)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Antonin Godard 2024-12-24 16:35:55 +01:00 committed by Richard Purdie
parent 3ca1044360
commit b301c74baf

View File

@ -8080,6 +8080,31 @@ system and gives an overview of their function and contents.
You can specify only a single URL in :term:`SOURCE_MIRROR_URL`.
.. note::
If the mirror is protected behind a username and password, the
:term:`build host` needs to be configured so the :term:`build system
<OpenEmbedded Build System>` is able to fetch from the mirror.
The recommended way to do that is by setting the following parameters
in ``$HOME/.netrc`` (``$HOME`` being the :term:`build host` home
directory)::
machine example.com
login <user>
password <password>
This file requires permissions set to ``400`` or ``600`` to prevent
other users from reading the file::
chmod 600 "$HOME/.netrc"
Another method to configure the username and password is from the URL
in :term:`SOURCE_MIRROR_URL` directly, with the ``user`` and ``pswd``
parameters::
SOURCE_MIRROR_URL = "http://example.com/my_source_mirror;user=<user>;pswd=<password>"
:term:`SPDX_ARCHIVE_PACKAGED`
This option allows to add to :term:`SPDX` output compressed archives
of the files in the generated target packages.
@ -8487,6 +8512,34 @@ system and gives an overview of their function and contents.
file://.* https://someserver.tld/share/sstate/PATH;downloadfilename=PATH \
file://.* file:///some-local-dir/sstate/PATH"
.. note::
If the mirror is protected behind a username and password, the
:term:`build host` needs to be configured so the :term:`build system
<OpenEmbedded Build System>` is able to download the sstate cache using
authentication.
The recommended way to do that is by setting the following parameters
in ``$HOME/.netrc`` (``$HOME`` being the :term:`build host` home
directory)::
machine someserver.tld
login <user>
password <password>
This file requires permissions set to ``400`` or ``600`` to prevent
other users from reading the file::
chmod 600 "$HOME/.netrc"
Another method to configure the username and password is from the
URL in :term:`SSTATE_MIRRORS` directly, with the ``user`` and ``pswd``
parameters::
SSTATE_MIRRORS ?= "\
file://.* https://someserver.tld/share/sstate/PATH;user=<user>;pswd=<password>;downloadfilename=PATH \
"
The Yocto Project actually shares the cache data objects built by its
autobuilder::