* [PATCH v3 1/5] tools/build-docs-container: move container files in their own directory
2025-12-12 10:22 [PATCH v3 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
@ 2025-12-12 10:22 ` Antonin Godard
2025-12-12 10:30 ` [docs] " Quentin Schulz
2025-12-12 10:22 ` [PATCH v3 2/5] Makefile: fix rsvg-convert --format capitalization Antonin Godard
` (3 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Antonin Godard @ 2025-12-12 10:22 UTC (permalink / raw)
To: docs; +Cc: Thomas Petazzoni, Antonin Godard
Create a directory to hold the Containerfiles as they were lying next to
the scripts. As a consequence we need to change the build context of the
docker build command to build from SCRIPT_DIR and pass the host packages
scripts and container file relative to it.
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
documentation/tools/build-docs-container | 13 ++++++-------
.../tools/{ => containerfiles}/Containerfile.almalinux | 0
documentation/tools/{ => containerfiles}/Containerfile.apt | 0
.../tools/{ => containerfiles}/Containerfile.debian | 0
documentation/tools/{ => containerfiles}/Containerfile.dnf | 0
.../tools/{ => containerfiles}/Containerfile.fedora | 0
.../tools/{ => containerfiles}/Containerfile.ubuntu | 0
.../tools/{ => containerfiles}/Containerfile.zypper | 0
8 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container
index b91a6daa9..7d25b15b9 100755
--- a/documentation/tools/build-docs-container
+++ b/documentation/tools/build-docs-container
@@ -23,7 +23,6 @@ set -eu -o pipefail
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
CONTAINERCMD=${CONTAINERCMD:-docker}
DOCS_DIR="$SCRIPT_DIR/../.."
-SH_DIR="$SCRIPT_DIR/host_packages_scripts"
INCLUDE_ESSENTIAL_PACKAGES=${INCLUDE_ESSENTIAL_PACKAGES:-0}
function usage()
@@ -140,12 +139,12 @@ main ()
--tag "yocto-docs-$sanitized_dockername:latest" \
--build-arg ARG_FROM="docker.io/$image" \
--build-arg INCLUDE_ESSENTIAL_PACKAGES="${INCLUDE_ESSENTIAL_PACKAGES}" \
- --build-arg ESSENTIAL="$essential" \
- --build-arg DOCS="$docs" \
- --build-arg DOCS_PDF="$docs_pdf" \
- --build-arg PIP3="${pip3:-}" \
- --file "$SCRIPT_DIR/$containerfile" \
- "$SH_DIR/"
+ --build-arg ESSENTIAL="host_packages_scripts/$essential" \
+ --build-arg DOCS="host_packages_scripts/$docs" \
+ --build-arg DOCS_PDF="host_packages_scripts/$docs_pdf" \
+ --build-arg PIP3="host_packages_scripts/${pip3:-}" \
+ --file "$SCRIPT_DIR/containerfiles/$containerfile" \
+ "$SCRIPT_DIR"
local -a args_run=(
--rm
diff --git a/documentation/tools/Containerfile.almalinux b/documentation/tools/containerfiles/Containerfile.almalinux
similarity index 100%
rename from documentation/tools/Containerfile.almalinux
rename to documentation/tools/containerfiles/Containerfile.almalinux
diff --git a/documentation/tools/Containerfile.apt b/documentation/tools/containerfiles/Containerfile.apt
similarity index 100%
rename from documentation/tools/Containerfile.apt
rename to documentation/tools/containerfiles/Containerfile.apt
diff --git a/documentation/tools/Containerfile.debian b/documentation/tools/containerfiles/Containerfile.debian
similarity index 100%
rename from documentation/tools/Containerfile.debian
rename to documentation/tools/containerfiles/Containerfile.debian
diff --git a/documentation/tools/Containerfile.dnf b/documentation/tools/containerfiles/Containerfile.dnf
similarity index 100%
rename from documentation/tools/Containerfile.dnf
rename to documentation/tools/containerfiles/Containerfile.dnf
diff --git a/documentation/tools/Containerfile.fedora b/documentation/tools/containerfiles/Containerfile.fedora
similarity index 100%
rename from documentation/tools/Containerfile.fedora
rename to documentation/tools/containerfiles/Containerfile.fedora
diff --git a/documentation/tools/Containerfile.ubuntu b/documentation/tools/containerfiles/Containerfile.ubuntu
similarity index 100%
rename from documentation/tools/Containerfile.ubuntu
rename to documentation/tools/containerfiles/Containerfile.ubuntu
diff --git a/documentation/tools/Containerfile.zypper b/documentation/tools/containerfiles/Containerfile.zypper
similarity index 100%
rename from documentation/tools/Containerfile.zypper
rename to documentation/tools/containerfiles/Containerfile.zypper
--
2.51.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH v3 2/5] Makefile: fix rsvg-convert --format capitalization
2025-12-12 10:22 [PATCH v3 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
2025-12-12 10:22 ` [PATCH v3 1/5] tools/build-docs-container: move container files in their own directory Antonin Godard
@ 2025-12-12 10:22 ` Antonin Godard
2025-12-12 10:22 ` [PATCH v3 3/5] tools/build-docs-container: add CentOS Stream 9 support Antonin Godard
` (2 subsequent siblings)
4 siblings, 0 replies; 11+ messages in thread
From: Antonin Godard @ 2025-12-12 10:22 UTC (permalink / raw)
To: docs; +Cc: Thomas Petazzoni, Antonin Godard, Quentin Schulz
On some versions of rsvg-convert, capitalized formats are unknown.
For example on CentOS Stream 9:
$ rsvg-convert --format=Png --output=ref-manual/svg/releases.png ref-manual/svg/releases.svg
Unknown output format.
While the same command with "png" runs fine.
On Ubuntu 22.04, both are accepted.
Switch to the un-capitalized options, compatible with all versions.
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
documentation/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/documentation/Makefile b/documentation/Makefile
index bade78fe8..e144a50b4 100644
--- a/documentation/Makefile
+++ b/documentation/Makefile
@@ -43,11 +43,11 @@ PNGs := $(foreach dir, $(IMAGEDIRS), $(patsubst %.svg,%.png,$(wildcard $(SOURCED
# Pattern rule for converting SVG to PDF
%.pdf : %.svg
- $(SVG2PDF) --format=Pdf --output=$@ $<
+ $(SVG2PDF) --format=pdf --output=$@ $<
# Pattern rule for converting SVG to PNG
%.png : %.svg
- $(SVG2PNG) --format=Png --output=$@ $<
+ $(SVG2PNG) --format=png --output=$@ $<
clean:
@rm -rf $(BUILDDIR) $(PNGs) $(PDFs) poky.yaml sphinx-static/switchers.js releases.rst
--
2.51.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH v3 3/5] tools/build-docs-container: add CentOS Stream 9 support
2025-12-12 10:22 [PATCH v3 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
2025-12-12 10:22 ` [PATCH v3 1/5] tools/build-docs-container: move container files in their own directory Antonin Godard
2025-12-12 10:22 ` [PATCH v3 2/5] Makefile: fix rsvg-convert --format capitalization Antonin Godard
@ 2025-12-12 10:22 ` Antonin Godard
2025-12-12 11:40 ` [docs] " Quentin Schulz
2025-12-12 10:22 ` [PATCH v3 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build Antonin Godard
2025-12-12 10:22 ` [PATCH v3 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions Antonin Godard
4 siblings, 1 reply; 11+ messages in thread
From: Antonin Godard @ 2025-12-12 10:22 UTC (permalink / raw)
To: docs; +Cc: Thomas Petazzoni, Antonin Godard
Add support for building the docs in CentOS Stream 9. Use RedHat's
container image from quay.io.
The centosstream_essential.sh centosstream_docs.sh are symlinks to the
almalinux scripts. Just pass -y to each dnf command as it was a problem
when building the CentOS container, and isn't a problem for AlmaLinux.
Introduce a new installation script: tlmgr_docs_pdf.sh. As I wasn't able
to locate all the necessary tex packages to build the documentation in a
PDF format, I resorted to using what is used on the Autobuilder: a local
installation of texlive packages through tlmgr.
This will allow us to provide a way of building the docs as PDF for the
distros that lack this support at the moment.
Export TEXTOOLDIR in Containerfile.dnf to pick up TexLive's installation
when available.
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
documentation/ref-manual/system-requirements.rst | 36 ++++++++++++++++++++++
documentation/tools/build-docs-container | 14 ++++++++-
.../tools/containerfiles/Containerfile.dnf | 3 ++
.../tools/containerfiles/Containerfile.stream | 1 +
.../tools/host_packages_scripts/almalinux_docs.sh | 2 +-
.../host_packages_scripts/almalinux_essential.sh | 4 +--
.../host_packages_scripts/centosstream_docs.sh | 1 +
.../centosstream_essential.sh | 1 +
.../tools/host_packages_scripts/tlmgr_docs_pdf.sh | 8 +++++
9 files changed, 66 insertions(+), 4 deletions(-)
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index 9ed29a1df..7d110b886 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -266,6 +266,42 @@ documentation in PDF format:
.. literalinclude:: ../tools/host_packages_scripts/almalinux_docs_pdf.sh
:language: shell
+CentOS Stream Packages
+----------------------
+
+Here are the packages needed to build an image on a headless system
+with a supported CentOS Stream distribution:
+
+.. literalinclude:: ../tools/host_packages_scripts/centosstream_essential.sh
+ :language: shell
+
+Here are the packages needed to build Project documentation manuals:
+
+.. literalinclude:: ../tools/host_packages_scripts/centosstream_docs.sh
+ :language: shell
+
+.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
+ :language: shell
+
+In addition to the previous packages, the following TeX Live packages
+are needed to build the documentation in PDF format and can be installed with
+the `TeX Live package manager <https://tug.org/texlive/tlmgr.html>`__:
+
+.. literalinclude:: ../tools/host_packages_scripts/tlmgr_docs_pdf.sh
+ :language: shell
+
+.. warning::
+
+ The Tex Live installation above is only valid for `x86_64` hosts.
+
+Before building the documentation PDF, setup the ``PATH`` to use the installed
+packages (with ``${textooldir}`` pointing to the TeX Live installation from the
+previous step):
+
+.. code-block:: console
+
+ $ export PATH="${PATH}:${textooldir}/tl/bin/x86_64-linux"
+
.. _system-requirements-buildtools:
Required Git, tar, Python, make and gcc Versions
diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container
index 7d25b15b9..6a83faea6 100755
--- a/documentation/tools/build-docs-container
+++ b/documentation/tools/build-docs-container
@@ -33,6 +33,7 @@ $0 OCI_IMAGE [make arguments...]
OCI_IMAGE is an image:tag of an OCI image hosted on hub.docker.com. It is one
of:
+ - centos:stream9
- debian:12
- debian:13
- fedora:39
@@ -82,6 +83,9 @@ main ()
local version
version=$(echo "$image" | awk -F: '{print $NF}')
+ # Default to docker.io unless overwritten below
+ local repo=docker.io
+
case $image in
# Missing latexmk texlive-gnu-freefont packages at the very least
# "almalinux:8"*|\
@@ -91,6 +95,14 @@ main ()
# docs_pdf=almalinux_docs_pdf.sh
# pip3=pip3_docs.sh
# ;;
+ "centos:stream9"*)
+ containerfile=Containerfile.stream
+ essential=centosstream_essential.sh
+ docs=centosstream_docs.sh
+ docs_pdf=tlmgr_docs_pdf.sh
+ pip3=pip3_docs.sh
+ repo=quay.io/centos
+ ;;
# Missing python3-saneyaml
# "debian:11"*|\
"debian:12"*|\
@@ -137,7 +149,7 @@ main ()
$OCI build \
--tag "yocto-docs-$sanitized_dockername:latest" \
- --build-arg ARG_FROM="docker.io/$image" \
+ --build-arg ARG_FROM="$repo/$image" \
--build-arg INCLUDE_ESSENTIAL_PACKAGES="${INCLUDE_ESSENTIAL_PACKAGES}" \
--build-arg ESSENTIAL="host_packages_scripts/$essential" \
--build-arg DOCS="host_packages_scripts/$docs" \
diff --git a/documentation/tools/containerfiles/Containerfile.dnf b/documentation/tools/containerfiles/Containerfile.dnf
index 65c526705..fd47fde34 100644
--- a/documentation/tools/containerfiles/Containerfile.dnf
+++ b/documentation/tools/containerfiles/Containerfile.dnf
@@ -7,6 +7,9 @@ ARG DOCS=fedora_docs.sh
ARG DOCS_PDF=fedora_docs_pdf.sh
ARG PIP3=pip3_docs.sh
+ENV TEXTOOLDIR=/opt/docs-build-tex-tools
+ENV PATH="$PATH:$TEXTOOLDIR/tl/bin/x86_64-linux"
+
# relative to the location of the dockerfile
COPY --chmod=777 ${ESSENTIAL} /temp/host_packages_essential.sh
COPY --chmod=777 ${DOCS} /temp/host_packages_docs.sh
diff --git a/documentation/tools/containerfiles/Containerfile.stream b/documentation/tools/containerfiles/Containerfile.stream
new file mode 120000
index 000000000..7237e9b99
--- /dev/null
+++ b/documentation/tools/containerfiles/Containerfile.stream
@@ -0,0 +1 @@
+Containerfile.dnf
\ No newline at end of file
diff --git a/documentation/tools/host_packages_scripts/almalinux_docs.sh b/documentation/tools/host_packages_scripts/almalinux_docs.sh
index 8188d529a..9202afc5b 100644
--- a/documentation/tools/host_packages_scripts/almalinux_docs.sh
+++ b/documentation/tools/host_packages_scripts/almalinux_docs.sh
@@ -1 +1 @@
-sudo dnf install git glibc-locale-source librsvg2-tools make python3-pip which
+sudo dnf install -y git glibc-locale-source librsvg2-tools make python3-pip which
diff --git a/documentation/tools/host_packages_scripts/almalinux_essential.sh b/documentation/tools/host_packages_scripts/almalinux_essential.sh
index 76c5280ee..18fdb674e 100644
--- a/documentation/tools/host_packages_scripts/almalinux_essential.sh
+++ b/documentation/tools/host_packages_scripts/almalinux_essential.sh
@@ -1,5 +1,5 @@
sudo dnf install -y epel-release
-sudo yum install dnf-plugins-core
+sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --set-enabled crb
sudo dnf makecache
-sudo dnf install bzip2 ccache chrpath cpio cpp diffstat diffutils gawk gcc gcc-c++ git glibc-devel glibc-langpack-en gzip libacl make patch perl perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python3 python3-GitPython python3-jinja2 python3-pexpect python3-pip rpcgen socat tar texinfo unzip wget which xz zstd
+sudo dnf install -y bzip2 ccache chrpath cpio cpp diffstat diffutils gawk gcc gcc-c++ git glibc-devel glibc-langpack-en gzip libacl make patch perl perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python3 python3-GitPython python3-jinja2 python3-pexpect python3-pip rpcgen socat tar texinfo unzip wget which xz zstd
diff --git a/documentation/tools/host_packages_scripts/centosstream_docs.sh b/documentation/tools/host_packages_scripts/centosstream_docs.sh
new file mode 120000
index 000000000..be13734c0
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/centosstream_docs.sh
@@ -0,0 +1 @@
+almalinux_docs.sh
\ No newline at end of file
diff --git a/documentation/tools/host_packages_scripts/centosstream_essential.sh b/documentation/tools/host_packages_scripts/centosstream_essential.sh
new file mode 120000
index 000000000..ed172e51d
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/centosstream_essential.sh
@@ -0,0 +1 @@
+almalinux_essential.sh
\ No newline at end of file
diff --git a/documentation/tools/host_packages_scripts/tlmgr_docs_pdf.sh b/documentation/tools/host_packages_scripts/tlmgr_docs_pdf.sh
new file mode 100644
index 000000000..b33ff6b25
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/tlmgr_docs_pdf.sh
@@ -0,0 +1,8 @@
+sudo dnf install -y wget
+textooldir=${TEXTOOLDIR:-"./docs-build-tex-tools"}
+mkdir -p "$textooldir"/tl
+wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz -O "$textooldir"/install-tl-unx.tar.gz
+tar xzf "$textooldir"/install-tl-unx.tar.gz -C "$textooldir"
+"$textooldir"/install-tl-*/install-tl --scheme=small --texdir="${textooldir}"/tl --no-interaction
+PATH="$PATH:${textooldir}/tl/bin/x86_64-linux" tlmgr install titlesec varwidth tabulary needspace upquote framed capt-of wrapfig fncychap gnu-freefont ctex latexmk nimbus15
+rm -r "$textooldir"/install-tl*
--
2.51.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [docs] [PATCH v3 3/5] tools/build-docs-container: add CentOS Stream 9 support
2025-12-12 10:22 ` [PATCH v3 3/5] tools/build-docs-container: add CentOS Stream 9 support Antonin Godard
@ 2025-12-12 11:40 ` Quentin Schulz
0 siblings, 0 replies; 11+ messages in thread
From: Quentin Schulz @ 2025-12-12 11:40 UTC (permalink / raw)
To: antonin.godard, docs; +Cc: Thomas Petazzoni
Hi Antonin,
On 12/12/25 11:22 AM, Antonin Godard via lists.yoctoproject.org wrote:
> Add support for building the docs in CentOS Stream 9. Use RedHat's
> container image from quay.io.
>
> The centosstream_essential.sh centosstream_docs.sh are symlinks to the
> almalinux scripts. Just pass -y to each dnf command as it was a problem
> when building the CentOS container, and isn't a problem for AlmaLinux.
>
> Introduce a new installation script: tlmgr_docs_pdf.sh. As I wasn't able
> to locate all the necessary tex packages to build the documentation in a
> PDF format, I resorted to using what is used on the Autobuilder: a local
> installation of texlive packages through tlmgr.
>
> This will allow us to provide a way of building the docs as PDF for the
> distros that lack this support at the moment.
>
> Export TEXTOOLDIR in Containerfile.dnf to pick up TexLive's installation
> when available.
>
Looks ok to me, haven't tested the thing and no experience with CentOS
or tlmgr, so
Acked-by: Quentin Schulz <quentin.schulz@cherry.de>
Thanks!
Quentin
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build
2025-12-12 10:22 [PATCH v3 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
` (2 preceding siblings ...)
2025-12-12 10:22 ` [PATCH v3 3/5] tools/build-docs-container: add CentOS Stream 9 support Antonin Godard
@ 2025-12-12 10:22 ` Antonin Godard
2025-12-12 11:47 ` [docs] " Quentin Schulz
2025-12-12 10:22 ` [PATCH v3 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions Antonin Godard
4 siblings, 1 reply; 11+ messages in thread
From: Antonin Godard @ 2025-12-12 10:22 UTC (permalink / raw)
To: docs; +Cc: Thomas Petazzoni, Antonin Godard
Use the new tlmgr_docs_pdf.sh script in build-docs-container to fix
the build of the documentation PDF for AlmaLinux 8 and 9.
Fix the almalinux_essential.sh script to either enable powertools or crb
depending on the AlmaLinux version (powertools for 8, crb for 9).
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
documentation/ref-manual/system-requirements.rst | 22 ++++++++++++++--------
documentation/tools/build-docs-container | 18 ++++++++++--------
.../tools/containerfiles/Containerfile.almalinux | 2 +-
.../host_packages_scripts/almalinux_docs_pdf.sh | 1 -
.../host_packages_scripts/almalinux_essential.sh | 2 +-
5 files changed, 26 insertions(+), 19 deletions(-)
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index 7d110b886..b41295c4b 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -253,18 +253,24 @@ Here are the packages needed to build Project documentation manuals:
.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
:language: shell
+In addition to the previous packages, the following TeX Live packages
+are needed to build the documentation in PDF format and can be installed with
+the `TeX Live package manager <https://tug.org/texlive/tlmgr.html>`__:
+
+.. literalinclude:: ../tools/host_packages_scripts/tlmgr_docs_pdf.sh
+ :language: shell
+
.. warning::
- Unlike Fedora or OpenSUSE, AlmaLinux does not provide the packages
- ``texlive-collection-fontsextra``, ``texlive-collection-lang*`` and
- ``texlive-collection-latexextra``, so you may run into issues. These may be
- installed using `tlmgr <https://tug.org/texlive/tlmgr.html>`_.
+ The Tex Live installation above is only valid for `x86_64` hosts.
-In addition to the previous packages, here are the packages needed to build the
-documentation in PDF format:
+Before building the documentation PDF, setup the ``PATH`` to use the installed
+packages (with ``${textooldir}`` pointing to the TeX Live installation from the
+previous step):
-.. literalinclude:: ../tools/host_packages_scripts/almalinux_docs_pdf.sh
- :language: shell
+.. code-block:: console
+
+ $ export PATH="${PATH}:${textooldir}/tl/bin/x86_64-linux"
CentOS Stream Packages
----------------------
diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container
index 6a83faea6..6a33b9068 100755
--- a/documentation/tools/build-docs-container
+++ b/documentation/tools/build-docs-container
@@ -33,6 +33,8 @@ $0 OCI_IMAGE [make arguments...]
OCI_IMAGE is an image:tag of an OCI image hosted on hub.docker.com. It is one
of:
+ - almalinux:8
+ - almalinux:9
- centos:stream9
- debian:12
- debian:13
@@ -87,14 +89,14 @@ main ()
local repo=docker.io
case $image in
- # Missing latexmk texlive-gnu-freefont packages at the very least
- # "almalinux:8"*|\
- # "almalinux:9"*)
- # containerfile=Containerfile.almalinux
- # docs=almalinux_docs.sh
- # docs_pdf=almalinux_docs_pdf.sh
- # pip3=pip3_docs.sh
- # ;;
+ "almalinux:8"*|\
+ "almalinux:9"*)
+ containerfile=Containerfile.almalinux
+ essential=almalinux_essential.sh
+ docs=almalinux_docs.sh
+ docs_pdf=tlmgr_docs_pdf.sh
+ pip3=pip3_docs.sh
+ ;;
"centos:stream9"*)
containerfile=Containerfile.stream
essential=centosstream_essential.sh
diff --git a/documentation/tools/containerfiles/Containerfile.almalinux b/documentation/tools/containerfiles/Containerfile.almalinux
index 7237e9b99..5430d17dc 120000
--- a/documentation/tools/containerfiles/Containerfile.almalinux
+++ b/documentation/tools/containerfiles/Containerfile.almalinux
@@ -1 +1 @@
-Containerfile.dnf
\ No newline at end of file
+Containerfile.stream
\ No newline at end of file
diff --git a/documentation/tools/host_packages_scripts/almalinux_docs_pdf.sh b/documentation/tools/host_packages_scripts/almalinux_docs_pdf.sh
deleted file mode 100644
index 8341eb8c2..000000000
--- a/documentation/tools/host_packages_scripts/almalinux_docs_pdf.sh
+++ /dev/null
@@ -1 +0,0 @@
-sudo dnf install latexmk texlive-collection-fontsrecommended texlive-collection-latex texlive-collection-latexrecommended texlive-collection-xetex texlive-fncychap texlive-gnu-freefont texlive-tex-gyre texlive-xetex
diff --git a/documentation/tools/host_packages_scripts/almalinux_essential.sh b/documentation/tools/host_packages_scripts/almalinux_essential.sh
index 18fdb674e..14d18e758 100644
--- a/documentation/tools/host_packages_scripts/almalinux_essential.sh
+++ b/documentation/tools/host_packages_scripts/almalinux_essential.sh
@@ -1,5 +1,5 @@
sudo dnf install -y epel-release
sudo dnf install -y dnf-plugins-core
-sudo dnf config-manager --set-enabled crb
+sudo dnf config-manager --set-enabled crb || sudo dnf config-manager --set-enabled powertools
sudo dnf makecache
sudo dnf install -y bzip2 ccache chrpath cpio cpp diffstat diffutils gawk gcc gcc-c++ git glibc-devel glibc-langpack-en gzip libacl make patch perl perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python3 python3-GitPython python3-jinja2 python3-pexpect python3-pip rpcgen socat tar texinfo unzip wget which xz zstd
--
2.51.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [docs] [PATCH v3 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build
2025-12-12 10:22 ` [PATCH v3 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build Antonin Godard
@ 2025-12-12 11:47 ` Quentin Schulz
2025-12-16 9:16 ` Antonin Godard
0 siblings, 1 reply; 11+ messages in thread
From: Quentin Schulz @ 2025-12-12 11:47 UTC (permalink / raw)
To: antonin.godard, docs; +Cc: Thomas Petazzoni
Hi Antonin,
On 12/12/25 11:22 AM, Antonin Godard via lists.yoctoproject.org wrote:
> Use the new tlmgr_docs_pdf.sh script in build-docs-container to fix
> the build of the documentation PDF for AlmaLinux 8 and 9.
>
> Fix the almalinux_essential.sh script to either enable powertools or crb
> depending on the AlmaLinux version (powertools for 8, crb for 9).
>
> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
> ---
> documentation/ref-manual/system-requirements.rst | 22 ++++++++++++++--------
> documentation/tools/build-docs-container | 18 ++++++++++--------
> .../tools/containerfiles/Containerfile.almalinux | 2 +-
> .../host_packages_scripts/almalinux_docs_pdf.sh | 1 -
> .../host_packages_scripts/almalinux_essential.sh | 2 +-
> 5 files changed, 26 insertions(+), 19 deletions(-)
>
> diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
> index 7d110b886..b41295c4b 100644
> --- a/documentation/ref-manual/system-requirements.rst
> +++ b/documentation/ref-manual/system-requirements.rst
> @@ -253,18 +253,24 @@ Here are the packages needed to build Project documentation manuals:
> .. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
> :language: shell
>
> +In addition to the previous packages, the following TeX Live packages
> +are needed to build the documentation in PDF format and can be installed with
> +the `TeX Live package manager <https://tug.org/texlive/tlmgr.html>`__:
> +
> +.. literalinclude:: ../tools/host_packages_scripts/tlmgr_docs_pdf.sh
> + :language: shell
> +
> .. warning::
>
> - Unlike Fedora or OpenSUSE, AlmaLinux does not provide the packages
> - ``texlive-collection-fontsextra``, ``texlive-collection-lang*`` and
> - ``texlive-collection-latexextra``, so you may run into issues. These may be
> - installed using `tlmgr <https://tug.org/texlive/tlmgr.html>`_.
> + The Tex Live installation above is only valid for `x86_64` hosts.
>
> -In addition to the previous packages, here are the packages needed to build the
> -documentation in PDF format:
> +Before building the documentation PDF, setup the ``PATH`` to use the installed
> +packages (with ``${textooldir}`` pointing to the TeX Live installation from the
> +previous step):
>
> -.. literalinclude:: ../tools/host_packages_scripts/almalinux_docs_pdf.sh
> - :language: shell
> +.. code-block:: console
> +
> + $ export PATH="${PATH}:${textooldir}/tl/bin/x86_64-linux"
>
> CentOS Stream Packages
> ----------------------
> diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container
> index 6a83faea6..6a33b9068 100755
> --- a/documentation/tools/build-docs-container
> +++ b/documentation/tools/build-docs-container
> @@ -33,6 +33,8 @@ $0 OCI_IMAGE [make arguments...]
>
> OCI_IMAGE is an image:tag of an OCI image hosted on hub.docker.com. It is one
> of:
> + - almalinux:8
> + - almalinux:9
> - centos:stream9
> - debian:12
> - debian:13
> @@ -87,14 +89,14 @@ main ()
> local repo=docker.io
>
> case $image in
> - # Missing latexmk texlive-gnu-freefont packages at the very least
> - # "almalinux:8"*|\
> - # "almalinux:9"*)
> - # containerfile=Containerfile.almalinux
> - # docs=almalinux_docs.sh
> - # docs_pdf=almalinux_docs_pdf.sh
> - # pip3=pip3_docs.sh
> - # ;;
> + "almalinux:8"*|\
> + "almalinux:9"*)
> + containerfile=Containerfile.almalinux
> + essential=almalinux_essential.sh
> + docs=almalinux_docs.sh
> + docs_pdf=tlmgr_docs_pdf.sh
> + pip3=pip3_docs.sh
> + ;;
> "centos:stream9"*)
> containerfile=Containerfile.stream
> essential=centosstream_essential.sh
> diff --git a/documentation/tools/containerfiles/Containerfile.almalinux b/documentation/tools/containerfiles/Containerfile.almalinux
> index 7237e9b99..5430d17dc 120000
> --- a/documentation/tools/containerfiles/Containerfile.almalinux
> +++ b/documentation/tools/containerfiles/Containerfile.almalinux
> @@ -1 +1 @@
> -Containerfile.dnf
> \ No newline at end of file
> +Containerfile.stream
> \ No newline at end of file
Any reason for switching the symlink here? In the end
Containerfile.stream is a symlink to Containerfile.dnf I believe so... why?
Looks ok to me otherwise,
Cheers,
Quentin
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [docs] [PATCH v3 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build
2025-12-12 11:47 ` [docs] " Quentin Schulz
@ 2025-12-16 9:16 ` Antonin Godard
0 siblings, 0 replies; 11+ messages in thread
From: Antonin Godard @ 2025-12-16 9:16 UTC (permalink / raw)
To: Quentin Schulz, docs; +Cc: Thomas Petazzoni
Hi,
On Fri Dec 12, 2025 at 12:47 PM CET, Quentin Schulz wrote:
[...]
>> --- a/documentation/tools/containerfiles/Containerfile.almalinux
>> +++ b/documentation/tools/containerfiles/Containerfile.almalinux
>> @@ -1 +1 @@
>> -Containerfile.dnf
>> \ No newline at end of file
>> +Containerfile.stream
>> \ No newline at end of file
>
> Any reason for switching the symlink here? In the end
> Containerfile.stream is a symlink to Containerfile.dnf I believe so... why?
Indeed, I was still reasoning like in my previous version of the series, where
Containerfile.stream was a separate file. I will switch this locally and merge
to master-next, as I think we've dealt with the other issues.
Thanks!
Antonin
--
Antonin Godard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions
2025-12-12 10:22 [PATCH v3 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
` (3 preceding siblings ...)
2025-12-12 10:22 ` [PATCH v3 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build Antonin Godard
@ 2025-12-12 10:22 ` Antonin Godard
2025-12-12 11:49 ` [docs] " Quentin Schulz
4 siblings, 1 reply; 11+ messages in thread
From: Antonin Godard @ 2025-12-12 10:22 UTC (permalink / raw)
To: docs; +Cc: Thomas Petazzoni, Antonin Godard
Add instructions on how to install host packages on Rocky Linux. It is
very similar to AlmaLinux so installation scripts were based on it.
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
documentation/ref-manual/system-requirements.rst | 49 ++++++++++++++++++++++
documentation/tools/build-docs-container | 10 +++++
.../tools/containerfiles/Containerfile.rocky | 1 +
.../tools/host_packages_scripts/rockylinux_docs.sh | 1 +
.../host_packages_scripts/rockylinux_essential.sh | 1 +
5 files changed, 62 insertions(+)
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index b41295c4b..a56e683ca 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -304,6 +304,55 @@ Before building the documentation PDF, setup the ``PATH`` to use the installed
packages (with ``${textooldir}`` pointing to the TeX Live installation from the
previous step):
+.. code-block:: console
+
+ $ export PATH="${PATH}:${textooldir}/tl/bin/x86_64-linux"
+
+RockyLinux Packages
+-------------------
+
+Here are the packages needed to build an image on a headless system
+with a supported RockyLinux distribution:
+
+.. literalinclude:: ../tools/host_packages_scripts/rockylinux_essential.sh
+ :language: shell
+
+.. note::
+
+ - Extra Packages for Enterprise Linux (i.e. ``epel-release``) is
+ a collection of packages from Fedora built on RHEL/CentOS for
+ easy installation of packages not included in enterprise Linux
+ by default. You need to install these packages separately.
+
+ - The ``PowerTools/CRB`` repo provides additional packages such as
+ ``rpcgen`` and ``texinfo``.
+
+ - The ``makecache`` command consumes additional Metadata from
+ ``epel-release``.
+
+Here are the packages needed to build Project documentation manuals:
+
+.. literalinclude:: ../tools/host_packages_scripts/rockylinux_docs.sh
+ :language: shell
+
+.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
+ :language: shell
+
+In addition to the previous packages, the following TeX Live packages
+are needed to build the documentation in PDF format and can be installed with
+the `TeX Live package manager <https://tug.org/texlive/tlmgr.html>`__:
+
+.. literalinclude:: ../tools/host_packages_scripts/tlmgr_docs_pdf.sh
+ :language: shell
+
+.. warning::
+
+ The Tex Live installation above is only valid for `x86_64` hosts.
+
+Before building the documentation PDF, setup the ``PATH`` to use the installed
+packages (with ``${textooldir}`` pointing to the TeX Live installation from the
+previous step):
+
.. code-block:: console
$ export PATH="${PATH}:${textooldir}/tl/bin/x86_64-linux"
diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container
index 6a33b9068..23c3dfe33 100755
--- a/documentation/tools/build-docs-container
+++ b/documentation/tools/build-docs-container
@@ -44,6 +44,8 @@ $0 OCI_IMAGE [make arguments...]
- fedora:42
- leap:15.5
- leap:15.6
+ - rockylinux:8
+ - rockylinux:9
- ubuntu:22.04
- ubuntu:24.04
- ubuntu:25.04
@@ -133,6 +135,14 @@ main ()
docs_pdf=opensuse_docs_pdf.sh
pip3=pip3_docs.sh
;;
+ "rockylinux:8"*|\
+ "rockylinux:9"*)
+ containerfile=Containerfile.rocky
+ essential=rockylinux_essential.sh
+ docs=rockylinux_docs.sh
+ docs_pdf=tlmgr_docs_pdf.sh
+ pip3=pip3_docs.sh
+ ;;
"ubuntu:22.04"*|\
"ubuntu:24.04"*|\
"ubuntu:25.04"*|\
diff --git a/documentation/tools/containerfiles/Containerfile.rocky b/documentation/tools/containerfiles/Containerfile.rocky
new file mode 120000
index 000000000..5430d17dc
--- /dev/null
+++ b/documentation/tools/containerfiles/Containerfile.rocky
@@ -0,0 +1 @@
+Containerfile.stream
\ No newline at end of file
diff --git a/documentation/tools/host_packages_scripts/rockylinux_docs.sh b/documentation/tools/host_packages_scripts/rockylinux_docs.sh
new file mode 120000
index 000000000..be13734c0
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/rockylinux_docs.sh
@@ -0,0 +1 @@
+almalinux_docs.sh
\ No newline at end of file
diff --git a/documentation/tools/host_packages_scripts/rockylinux_essential.sh b/documentation/tools/host_packages_scripts/rockylinux_essential.sh
new file mode 120000
index 000000000..ed172e51d
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/rockylinux_essential.sh
@@ -0,0 +1 @@
+almalinux_essential.sh
\ No newline at end of file
--
2.51.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [docs] [PATCH v3 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions
2025-12-12 10:22 ` [PATCH v3 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions Antonin Godard
@ 2025-12-12 11:49 ` Quentin Schulz
0 siblings, 0 replies; 11+ messages in thread
From: Quentin Schulz @ 2025-12-12 11:49 UTC (permalink / raw)
To: antonin.godard, docs; +Cc: Thomas Petazzoni
Hi Antonin,
On 12/12/25 11:22 AM, Antonin Godard via lists.yoctoproject.org wrote:
> Add instructions on how to install host packages on Rocky Linux. It is
> very similar to AlmaLinux so installation scripts were based on it.
>
> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
> ---
> documentation/ref-manual/system-requirements.rst | 49 ++++++++++++++++++++++
> documentation/tools/build-docs-container | 10 +++++
> .../tools/containerfiles/Containerfile.rocky | 1 +
> .../tools/host_packages_scripts/rockylinux_docs.sh | 1 +
> .../host_packages_scripts/rockylinux_essential.sh | 1 +
> 5 files changed, 62 insertions(+)
>
> diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
> index b41295c4b..a56e683ca 100644
> --- a/documentation/ref-manual/system-requirements.rst
> +++ b/documentation/ref-manual/system-requirements.rst
> @@ -304,6 +304,55 @@ Before building the documentation PDF, setup the ``PATH`` to use the installed
> packages (with ``${textooldir}`` pointing to the TeX Live installation from the
> previous step):
>
> +.. code-block:: console
> +
> + $ export PATH="${PATH}:${textooldir}/tl/bin/x86_64-linux"
> +
> +RockyLinux Packages
> +-------------------
> +
> +Here are the packages needed to build an image on a headless system
> +with a supported RockyLinux distribution:
> +
> +.. literalinclude:: ../tools/host_packages_scripts/rockylinux_essential.sh
> + :language: shell
> +
> +.. note::
> +
> + - Extra Packages for Enterprise Linux (i.e. ``epel-release``) is
> + a collection of packages from Fedora built on RHEL/CentOS for
> + easy installation of packages not included in enterprise Linux
> + by default. You need to install these packages separately.
> +
> + - The ``PowerTools/CRB`` repo provides additional packages such as
> + ``rpcgen`` and ``texinfo``.
> +
> + - The ``makecache`` command consumes additional Metadata from
> + ``epel-release``.
> +
> +Here are the packages needed to build Project documentation manuals:
> +
> +.. literalinclude:: ../tools/host_packages_scripts/rockylinux_docs.sh
> + :language: shell
> +
> +.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
> + :language: shell
> +
> +In addition to the previous packages, the following TeX Live packages
> +are needed to build the documentation in PDF format and can be installed with
> +the `TeX Live package manager <https://tug.org/texlive/tlmgr.html>`__:
> +
> +.. literalinclude:: ../tools/host_packages_scripts/tlmgr_docs_pdf.sh
> + :language: shell
> +
> +.. warning::
> +
> + The Tex Live installation above is only valid for `x86_64` hosts.
> +
> +Before building the documentation PDF, setup the ``PATH`` to use the installed
> +packages (with ``${textooldir}`` pointing to the TeX Live installation from the
> +previous step):
> +
> .. code-block:: console
>
> $ export PATH="${PATH}:${textooldir}/tl/bin/x86_64-linux"
> diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container
> index 6a33b9068..23c3dfe33 100755
> --- a/documentation/tools/build-docs-container
> +++ b/documentation/tools/build-docs-container
> @@ -44,6 +44,8 @@ $0 OCI_IMAGE [make arguments...]
> - fedora:42
> - leap:15.5
> - leap:15.6
> + - rockylinux:8
> + - rockylinux:9
> - ubuntu:22.04
> - ubuntu:24.04
> - ubuntu:25.04
> @@ -133,6 +135,14 @@ main ()
> docs_pdf=opensuse_docs_pdf.sh
> pip3=pip3_docs.sh
> ;;
> + "rockylinux:8"*|\
> + "rockylinux:9"*)
> + containerfile=Containerfile.rocky
> + essential=rockylinux_essential.sh
> + docs=rockylinux_docs.sh
> + docs_pdf=tlmgr_docs_pdf.sh
> + pip3=pip3_docs.sh
> + ;;
> "ubuntu:22.04"*|\
> "ubuntu:24.04"*|\
> "ubuntu:25.04"*|\
> diff --git a/documentation/tools/containerfiles/Containerfile.rocky b/documentation/tools/containerfiles/Containerfile.rocky
> new file mode 120000
> index 000000000..5430d17dc
> --- /dev/null
> +++ b/documentation/tools/containerfiles/Containerfile.rocky
> @@ -0,0 +1 @@
> +Containerfile.stream
> \ No newline at end of file
Same question as for patch 4, why a symlink to .stream and not .dnf
directly?
Otherwise, with no experience or testing of RockyLinux, this looks fine
to me
Cheers,
Quentin
^ permalink raw reply [flat|nested] 11+ messages in thread