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: e0f88c9595a084244691c6c6aee8d95ce29602fc)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 4c303cce0627e0f2ce52e72597541e220585aaed)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
Antonin Godard 2024-12-24 16:35:55 +01:00 committed by Steve Sakoman
parent 4d01328526
commit 1418534d22

View File

@ -7527,6 +7527,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.
@ -7905,6 +7930,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::