[PATCH v2 1/2] ref-manual/system-requirements.rst: make python3-websockets a default host requirement

Antonin Godard
2026-04-20T09:52:34Z

When configuring the project through bitbake-setup we can choose the
"poky-with-sstate" configuration, which requires the python3-websockets
package.

Add this package as a host requirement (under different names depending
on the distro).

Alma, CentOS, and Rocky have a requirement on the buildtools tarball,
which already contains this package, so we don't need to add it for
them.

On Ubuntu 22.04 and Debian 11, the version of python3-websockets
provided by the distribution is too old compared to what we need [1].
Add a separate set of instructions for these.

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
documentation/ref-manual/system-requirements.rst | 28 ++++++++++++++++++++++
.../host_packages_scripts/fedora_essential.sh | 2 +-
.../opensuse_essential_16.0.sh | 2 +-
3 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index 298832dd9..baa965573 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -166,6 +166,34 @@ Ubuntu and Debian

.. include:: ubuntu-debian-host-packages-nodocs.rst

+Additionally, on distributions other than Debian 11 and Ubuntu 22.04 (otherwise
+see note below), install the following package:
+
+.. code-block:: console
+
+ $ sudo apt install python3-websockets
+
+.. note::
+
+ On Debian 11 and Ubuntu 22.04, the requirement on the version of
+ ``python3-websockets`` is not satisfied by the host distribution. This
+ package is used for fetching pre-built :ref:`shared state
+ <overview-manual/concepts:shared state>` artifacts from upstream Yocto Project
+ servers (see :ref:`ref-fragments-core-yocto-sstate-mirror-cdn` for more
+ information).
+
+ In order to use this feature, you can get the correct version of
+ ``python3-websockets`` by either:
+
+ - Using a :term:`buildtools` tarball by following the
+ :ref:`system-requirements-buildtools` section below.
+
+ - Installing ``python3-websockets`` using `Pip <https://pip.pypa.io/en/stable/>`__:
+
+ .. code-block:: console
+
+ $ pip install websockets
+
Here are the packages needed to build Project documentation manuals:

.. literalinclude:: ../tools/host_packages_scripts/ubuntu_docs.sh
diff --git a/documentation/tools/host_packages_scripts/fedora_essential.sh b/documentation/tools/host_packages_scripts/fedora_essential.sh
index 99e5d2c0b..55b8b704b 100644
--- a/documentation/tools/host_packages_scripts/fedora_essential.sh
+++ b/documentation/tools/host_packages_scripts/fedora_essential.sh
@@ -1 +1 @@
-sudo dnf install bzip2 ccache chrpath cpio cpp diffstat diffutils file findutils gawk gcc gcc-c++ git glibc-devel glibc-langpack-en gzip hostname libacl make patch perl perl-Data-Dumper perl-File-Compare perl-File-Copy perl-FindBin perl-Text-ParseWords perl-Thread-Queue perl-bignum perl-locale python python3 python3-GitPython python3-jinja2 python3-pexpect python3-pip rpcgen socat tar texinfo unzip wget which xz zstd $([ $(rpm -E %fedora) -ge 42 ] && echo "util-linux-script")
+sudo dnf install bzip2 ccache chrpath cpio cpp diffstat diffutils file findutils gawk gcc gcc-c++ git glibc-devel glibc-langpack-en gzip hostname libacl make patch perl perl-Data-Dumper perl-File-Compare perl-File-Copy perl-FindBin perl-Text-ParseWords perl-Thread-Queue perl-bignum perl-locale python python3 python3-GitPython python3-jinja2 python3-pexpect python3-pip python3-websockets rpcgen socat tar texinfo unzip wget which xz zstd $([ $(rpm -E %fedora) -ge 42 ] && echo "util-linux-script")
diff --git a/documentation/tools/host_packages_scripts/opensuse_essential_16.0.sh b/documentation/tools/host_packages_scripts/opensuse_essential_16.0.sh
index e557ae4fb..96bdd9317 100644
--- a/documentation/tools/host_packages_scripts/opensuse_essential_16.0.sh
+++ b/documentation/tools/host_packages_scripts/opensuse_essential_16.0.sh
@@ -1 +1 @@
-sudo zypper install bzip2 chrpath diffstat gcc gcc-c++ git gzip hostname libacl1 make makeinfo patch python3 python3-GitPython python3-Jinja2 python3-curses python3-pexpect python3-pip python3-xml rpcgen socat tar wget which xz zstd
+sudo zypper install bzip2 chrpath diffstat gcc gcc-c++ git gzip hostname libacl1 make makeinfo patch python3 python3-GitPython python3-Jinja2 python3-curses python3-pexpect python3-pip python313-websockets python3-xml rpcgen socat tar wget which xz zstd

--
2.53.0