* [PATCH v2 1/5] tools/build-docs-container: move container files in their own directory
2025-12-11 9:06 [PATCH v2 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
@ 2025-12-11 9:06 ` Antonin Godard
2025-12-11 12:26 ` [docs] " Quentin Schulz
2025-12-11 9:06 ` [PATCH v2 2/5] Makefile: fix rsvg-convert --format capitalization Antonin Godard
` (4 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Antonin Godard @ 2025-12-11 9:06 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. 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] 13+ messages in thread* Re: [docs] [PATCH v2 1/5] tools/build-docs-container: move container files in their own directory
2025-12-11 9:06 ` [PATCH v2 1/5] tools/build-docs-container: move container files in their own directory Antonin Godard
@ 2025-12-11 12:26 ` Quentin Schulz
2025-12-12 8:19 ` Antonin Godard
0 siblings, 1 reply; 13+ messages in thread
From: Quentin Schulz @ 2025-12-11 12:26 UTC (permalink / raw)
To: antonin.godard, docs; +Cc: Thomas Petazzoni
Hi Antonin,
On 12/11/25 10:06 AM, Antonin Godard via lists.yoctoproject.org wrote:
> Create a directory to hold the Containerfiles as they were lying next to
> the scripts. 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.
>
It's unclear what this helps with. (I'm assuming this could be a remnant
from last version's ENTRYPOINT support attempt?).
> 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"
>
This seems to be doing two things: moving Containerfile.* into a subdir
containerfiles and changing the context dir from SH_DIR to SCRIPT_DIR.
Is there a reason they are both done in the same commit? Is the latter
really necessary (I'm not sure it helps in terms of readability?).
Looks ok otherwise.
Cheers,
Quentin
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: [docs] [PATCH v2 1/5] tools/build-docs-container: move container files in their own directory
2025-12-11 12:26 ` [docs] " Quentin Schulz
@ 2025-12-12 8:19 ` Antonin Godard
0 siblings, 0 replies; 13+ messages in thread
From: Antonin Godard @ 2025-12-12 8:19 UTC (permalink / raw)
To: Quentin Schulz, docs; +Cc: Thomas Petazzoni
Hi,
On Thu Dec 11, 2025 at 1:26 PM CET, Quentin Schulz wrote:
> Hi Antonin,
>
> On 12/11/25 10:06 AM, Antonin Godard via lists.yoctoproject.org wrote:
>> Create a directory to hold the Containerfiles as they were lying next to
>> the scripts. 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.
>>
>
> It's unclear what this helps with. (I'm assuming this could be a remnant
> from last version's ENTRYPOINT support attempt?).
It's just for re-organizing, serves no other purpose than not mixing up scripts
and container files.
>> 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"
>>
>
> This seems to be doing two things: moving Containerfile.* into a subdir
> containerfiles and changing the context dir from SH_DIR to SCRIPT_DIR.
> Is there a reason they are both done in the same commit? Is the latter
> really necessary (I'm not sure it helps in terms of readability?).
I wasn't able to make that work any other way.
Antonin
--
Antonin Godard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 2/5] Makefile: fix rsvg-convert --format capitalization
2025-12-11 9:06 [PATCH v2 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
2025-12-11 9:06 ` [PATCH v2 1/5] tools/build-docs-container: move container files in their own directory Antonin Godard
@ 2025-12-11 9:06 ` Antonin Godard
2025-12-11 12:27 ` [docs] " Quentin Schulz
2025-12-11 9:06 ` [PATCH v2 3/5] tools/build-docs-container: add CentOS Stream 9 support Antonin Godard
` (3 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Antonin Godard @ 2025-12-11 9:06 UTC (permalink / raw)
To: docs; +Cc: Thomas Petazzoni, Antonin Godard
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.
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] 13+ messages in thread* Re: [docs] [PATCH v2 2/5] Makefile: fix rsvg-convert --format capitalization
2025-12-11 9:06 ` [PATCH v2 2/5] Makefile: fix rsvg-convert --format capitalization Antonin Godard
@ 2025-12-11 12:27 ` Quentin Schulz
0 siblings, 0 replies; 13+ messages in thread
From: Quentin Schulz @ 2025-12-11 12:27 UTC (permalink / raw)
To: antonin.godard, docs; +Cc: Thomas Petazzoni
Hi Antonin,
On 12/11/25 10:06 AM, Antonin Godard via lists.yoctoproject.org wrote:
> 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.
>
I already gave my R-B in v1 (albeit in the middle of some text and
rambling :) ), so missing here:
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Thanks!
Quentin
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 3/5] tools/build-docs-container: add CentOS Stream 9 support
2025-12-11 9:06 [PATCH v2 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
2025-12-11 9:06 ` [PATCH v2 1/5] tools/build-docs-container: move container files in their own directory Antonin Godard
2025-12-11 9:06 ` [PATCH v2 2/5] Makefile: fix rsvg-convert --format capitalization Antonin Godard
@ 2025-12-11 9:06 ` Antonin Godard
2025-12-11 12:43 ` [docs] " Quentin Schulz
2025-12-11 9:06 ` [PATCH v2 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build Antonin Godard
` (2 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Antonin Godard @ 2025-12-11 9:06 UTC (permalink / raw)
To: docs; +Cc: Thomas Petazzoni, Antonin Godard
Add support for building the docs in CentOS Stream 9. As there are no
official images for CentOS Stream, use tgagor/centos from dockerhub
which is actively updated.
The centosstream_essential.sh centosstream_docs.sh files are based on
the almalinux files.
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.
Use a new Containerfile.stream file as it needs TEXTOOLDIR exported for
installing the texlive tools in a known directory (we assume the base
dnf Containerfile does not need it, as it is currently the case for
Fedora).
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
documentation/ref-manual/system-requirements.rst | 35 ++++++++++++++++++++++
documentation/tools/build-docs-container | 14 ++++++++-
.../tools/containerfiles/Containerfile.dnf | 3 ++
.../tools/containerfiles/Containerfile.stream | 1 +
.../host_packages_scripts/centosstream_docs.sh | 1 +
.../centosstream_essential.sh | 5 ++++
.../tools/host_packages_scripts/tlmgr_docs_pdf.sh | 7 +++++
7 files changed, 65 insertions(+), 1 deletion(-)
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index 9ed29a1df..e9d5012e3 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -266,6 +266,41 @@ 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:
+
+.. 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..0800c4333 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
@@ -91,6 +92,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"*|\
@@ -135,9 +144,12 @@ main ()
;;
esac
+ # Default to docker.io unless specified above
+ [ -z "$repo" ] && repo=docker.io
+
$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/centosstream_docs.sh b/documentation/tools/host_packages_scripts/centosstream_docs.sh
new file mode 100644
index 000000000..351f75893
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/centosstream_docs.sh
@@ -0,0 +1 @@
+sudo dnf install -y git glibc-locale-source librsvg2-tools make python3-pip which wget
diff --git a/documentation/tools/host_packages_scripts/centosstream_essential.sh b/documentation/tools/host_packages_scripts/centosstream_essential.sh
new file mode 100644
index 000000000..e38fa93c2
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/centosstream_essential.sh
@@ -0,0 +1,5 @@
+sudo dnf install -y epel-release
+sudo yum install -y dnf-plugins-core
+sudo dnf config-manager --set-enabled crb
+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
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..727bf9e35
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/tlmgr_docs_pdf.sh
@@ -0,0 +1,7 @@
+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] 13+ messages in thread* Re: [docs] [PATCH v2 3/5] tools/build-docs-container: add CentOS Stream 9 support
2025-12-11 9:06 ` [PATCH v2 3/5] tools/build-docs-container: add CentOS Stream 9 support Antonin Godard
@ 2025-12-11 12:43 ` Quentin Schulz
0 siblings, 0 replies; 13+ messages in thread
From: Quentin Schulz @ 2025-12-11 12:43 UTC (permalink / raw)
To: antonin.godard, docs; +Cc: Thomas Petazzoni
Hi Antonin,
On 12/11/25 10:06 AM, Antonin Godard via lists.yoctoproject.org wrote:
> Add support for building the docs in CentOS Stream 9. As there are no
> official images for CentOS Stream, use tgagor/centos from dockerhub
> which is actively updated.
>
There's one, on quay.io, managed by Red Hat.
> The centosstream_essential.sh centosstream_docs.sh files are based on
> the almalinux files.
>
> 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.
>
> Use a new Containerfile.stream file as it needs TEXTOOLDIR exported for
> installing the texlive tools in a known directory (we assume the base
> dnf Containerfile does not need it, as it is currently the case for
> Fedora).
>
Not applicable anymore since we use Containerfile.dnf?
> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
> ---
> documentation/ref-manual/system-requirements.rst | 35 ++++++++++++++++++++++
> documentation/tools/build-docs-container | 14 ++++++++-
> .../tools/containerfiles/Containerfile.dnf | 3 ++
> .../tools/containerfiles/Containerfile.stream | 1 +
> .../host_packages_scripts/centosstream_docs.sh | 1 +
> .../centosstream_essential.sh | 5 ++++
> .../tools/host_packages_scripts/tlmgr_docs_pdf.sh | 7 +++++
> 7 files changed, 65 insertions(+), 1 deletion(-)
>
> diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
> index 9ed29a1df..e9d5012e3 100644
> --- a/documentation/ref-manual/system-requirements.rst
> +++ b/documentation/ref-manual/system-requirements.rst
> @@ -266,6 +266,41 @@ 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:
> +
> +.. code-block:: console
> +
> + $ export PATH="${PATH}:${textooldir}/tl/bin/x86_64-linux"
> +
I'm assuming textooldir is NOT a typically set environment variable so
we should specify the user is expected to modify this to match their path?
> .. _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..0800c4333 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
> @@ -91,6 +92,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"*|\
> @@ -135,9 +144,12 @@ main ()
> ;;
> esac
>
> + # Default to docker.io unless specified above
> + [ -z "$repo" ] && repo=docker.io
> +
Maybe set this at the top with other defaults so they all are in the
same place?
> $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/centosstream_docs.sh b/documentation/tools/host_packages_scripts/centosstream_docs.sh
> new file mode 100644
> index 000000000..351f75893
> --- /dev/null
> +++ b/documentation/tools/host_packages_scripts/centosstream_docs.sh
> @@ -0,0 +1 @@
> +sudo dnf install -y git glibc-locale-source librsvg2-tools make python3-pip which wget
This is the same as for
documentation/tools/host_packages_scripts/almalinux_docs.sh except for
-y and wget. I'm assuming we only need the latter for the PDF variant,
so maybe symlink this here to almalinux_docs.sh and then install wget as
part of tlmgr_docs_pdf.sh? If curl is installed as part of the other
dependencies, another option is to use curl instead of wget to avoid
requiring this additional dependency?
> diff --git a/documentation/tools/host_packages_scripts/centosstream_essential.sh b/documentation/tools/host_packages_scripts/centosstream_essential.sh
> new file mode 100644
> index 000000000..e38fa93c2
> --- /dev/null
> +++ b/documentation/tools/host_packages_scripts/centosstream_essential.sh
> @@ -0,0 +1,5 @@
> +sudo dnf install -y epel-release
> +sudo yum install -y dnf-plugins-core
> +sudo dnf config-manager --set-enabled crb
> +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
Isn't this the same for
documentation/tools/host_packages_scripts/almalinux_essential.sh? so
just symlink it?
> 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..727bf9e35
> --- /dev/null
> +++ b/documentation/tools/host_packages_scripts/tlmgr_docs_pdf.sh
> @@ -0,0 +1,7 @@
> +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*
>
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#8243): https://lists.yoctoproject.org/g/docs/message/8243
> Mute This Topic: https://lists.yoctoproject.org/mt/116726509/6293953
> Group Owner: docs+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/docs/unsub [quentin.schulz@cherry.de]
> -=-=-=-=-=-=-=-=-=-=-=-
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build
2025-12-11 9:06 [PATCH v2 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
` (2 preceding siblings ...)
2025-12-11 9:06 ` [PATCH v2 3/5] tools/build-docs-container: add CentOS Stream 9 support Antonin Godard
@ 2025-12-11 9:06 ` Antonin Godard
2025-12-11 13:55 ` [docs] " Quentin Schulz
2025-12-11 9:06 ` [PATCH v2 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions Antonin Godard
2026-01-05 13:52 ` [PATCH v2 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
5 siblings, 1 reply; 13+ messages in thread
From: Antonin Godard @ 2025-12-11 9:06 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). Pass
-y to dnf install command (otherwise stops when building the container).
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
documentation/ref-manual/system-requirements.rst | 21 +++++++++++++--------
documentation/tools/build-docs-container | 18 ++++++++++--------
.../tools/containerfiles/Containerfile.almalinux | 2 +-
.../tools/host_packages_scripts/almalinux_docs.sh | 2 +-
.../host_packages_scripts/almalinux_docs_pdf.sh | 1 -
.../host_packages_scripts/almalinux_essential.sh | 6 +++---
6 files changed, 28 insertions(+), 22 deletions(-)
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index e9d5012e3..4063253f7 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -253,18 +253,23 @@ 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.
+
+Before building the documentation PDF, setup the ``PATH`` to use the installed
+packages:
-In addition to the previous packages, here are the packages needed to build the
-documentation in PDF format:
+.. code-block:: console
-.. literalinclude:: ../tools/host_packages_scripts/almalinux_docs_pdf.sh
- :language: shell
+ $ 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 0800c4333..9d1bfdcdf 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
@@ -84,14 +86,14 @@ main ()
version=$(echo "$image" | awk -F: '{print $NF}')
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.sh b/documentation/tools/host_packages_scripts/almalinux_docs.sh
index 8188d529a..dfb201fe2 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 git glibc-locale-source librsvg2-tools make python3-pip which wget
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 76c5280ee..9564bb4fe 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 config-manager --set-enabled crb
+sudo yum install -y dnf-plugins-core
+sudo dnf config-manager --set-enabled crb || sudo dnf config-manager --set-enabled powertools
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
--
2.51.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [docs] [PATCH v2 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build
2025-12-11 9:06 ` [PATCH v2 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build Antonin Godard
@ 2025-12-11 13:55 ` Quentin Schulz
0 siblings, 0 replies; 13+ messages in thread
From: Quentin Schulz @ 2025-12-11 13:55 UTC (permalink / raw)
To: antonin.godard, docs; +Cc: Thomas Petazzoni
Hi Antonin,
On 12/11/25 10:06 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.
>
This should be one commit...
> Fix the almalinux_essential.sh script to either enable powertools or crb
> depending on the AlmaLinux version (powertools for 8, crb for 9). Pass
...another one...
> -y to dnf install command (otherwise stops when building the container).
>
and another one.
> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
> ---
> documentation/ref-manual/system-requirements.rst | 21 +++++++++++++--------
> documentation/tools/build-docs-container | 18 ++++++++++--------
> .../tools/containerfiles/Containerfile.almalinux | 2 +-
> .../tools/host_packages_scripts/almalinux_docs.sh | 2 +-
> .../host_packages_scripts/almalinux_docs_pdf.sh | 1 -
> .../host_packages_scripts/almalinux_essential.sh | 6 +++---
> 6 files changed, 28 insertions(+), 22 deletions(-)
>
> diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
> index e9d5012e3..4063253f7 100644
> --- a/documentation/ref-manual/system-requirements.rst
> +++ b/documentation/ref-manual/system-requirements.rst
> @@ -253,18 +253,23 @@ 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.
> +
> +Before building the documentation PDF, setup the ``PATH`` to use the installed
> +packages:
>
> -In addition to the previous packages, here are the packages needed to build the
> -documentation in PDF format:
> +.. code-block:: console
>
> -.. literalinclude:: ../tools/host_packages_scripts/almalinux_docs_pdf.sh
> - :language: shell
> + $ export PATH="${PATH}:${textooldir}/tl/bin/x86_64-linux"
>
Same remark as in patch 3.
> CentOS Stream Packages
> ----------------------
> diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container
> index 0800c4333..9d1bfdcdf 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
> @@ -84,14 +86,14 @@ main ()
> version=$(echo "$image" | awk -F: '{print $NF}')
>
> 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.sh b/documentation/tools/host_packages_scripts/almalinux_docs.sh
> index 8188d529a..dfb201fe2 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 git glibc-locale-source librsvg2-tools make python3-pip which wget
I don't think wget is a requirement for the docs (the non-PDF variants)?
[...]
> diff --git a/documentation/tools/host_packages_scripts/almalinux_essential.sh b/documentation/tools/host_packages_scripts/almalinux_essential.sh
> index 76c5280ee..9564bb4fe 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 config-manager --set-enabled crb
> +sudo yum install -y dnf-plugins-core
Interesting that we use yum here and not dnf?
Looks ok to me otherwise.
Cheers,
Quentin
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions
2025-12-11 9:06 [PATCH v2 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
` (3 preceding siblings ...)
2025-12-11 9:06 ` [PATCH v2 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build Antonin Godard
@ 2025-12-11 9:06 ` Antonin Godard
2025-12-11 13:59 ` [docs] " Quentin Schulz
2026-01-05 13:52 ` [PATCH v2 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
5 siblings, 1 reply; 13+ messages in thread
From: Antonin Godard @ 2025-12-11 9:06 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 | 48 ++++++++++++++++++++++
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 | 5 +++
5 files changed, 65 insertions(+)
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index 4063253f7..66d920698 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -302,6 +302,54 @@ the `TeX Live package manager <https://tug.org/texlive/tlmgr.html>`__:
Before building the documentation PDF, setup the ``PATH`` to use the installed
packages:
+.. 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:
+
.. 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 9d1bfdcdf..dda4a6170 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
@@ -130,6 +132,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 100644
index 000000000..dfb201fe2
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/rockylinux_docs.sh
@@ -0,0 +1 @@
+sudo dnf install git glibc-locale-source librsvg2-tools make python3-pip which wget
diff --git a/documentation/tools/host_packages_scripts/rockylinux_essential.sh b/documentation/tools/host_packages_scripts/rockylinux_essential.sh
new file mode 100644
index 000000000..9564bb4fe
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/rockylinux_essential.sh
@@ -0,0 +1,5 @@
+sudo dnf install -y epel-release
+sudo yum install -y dnf-plugins-core
+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] 13+ messages in thread* Re: [docs] [PATCH v2 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions
2025-12-11 9:06 ` [PATCH v2 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions Antonin Godard
@ 2025-12-11 13:59 ` Quentin Schulz
0 siblings, 0 replies; 13+ messages in thread
From: Quentin Schulz @ 2025-12-11 13:59 UTC (permalink / raw)
To: antonin.godard, docs; +Cc: Thomas Petazzoni
Hi Antonin,
On 12/11/25 10:06 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 | 48 ++++++++++++++++++++++
> 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 | 5 +++
> 5 files changed, 65 insertions(+)
>
> diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
> index 4063253f7..66d920698 100644
> --- a/documentation/ref-manual/system-requirements.rst
> +++ b/documentation/ref-manual/system-requirements.rst
> @@ -302,6 +302,54 @@ the `TeX Live package manager <https://tug.org/texlive/tlmgr.html>`__:
> Before building the documentation PDF, setup the ``PATH`` to use the installed
> packages:
>
> +.. code-block:: console
> +
> + $ export PATH="${PATH}:${textooldir}/tl/bin/x86_64-linux"
> +
Same remark as in patch 3 and 4.
> +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:
> +
> .. 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 9d1bfdcdf..dda4a6170 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
> @@ -130,6 +132,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 100644
> index 000000000..dfb201fe2
> --- /dev/null
> +++ b/documentation/tools/host_packages_scripts/rockylinux_docs.sh
> @@ -0,0 +1 @@
> +sudo dnf install git glibc-locale-source librsvg2-tools make python3-pip which wget
Same remark as patch 4.
> diff --git a/documentation/tools/host_packages_scripts/rockylinux_essential.sh b/documentation/tools/host_packages_scripts/rockylinux_essential.sh
> new file mode 100644
> index 000000000..9564bb4fe
> --- /dev/null
> +++ b/documentation/tools/host_packages_scripts/rockylinux_essential.sh
> @@ -0,0 +1,5 @@
> +sudo dnf install -y epel-release
> +sudo yum install -y dnf-plugins-core
> +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
>
Is there anything actually different from almalinux in here that
prevents us from using a symlink?
Cheers,
Quentin
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc
2025-12-11 9:06 [PATCH v2 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
` (4 preceding siblings ...)
2025-12-11 9:06 ` [PATCH v2 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions Antonin Godard
@ 2026-01-05 13:52 ` Antonin Godard
5 siblings, 0 replies; 13+ messages in thread
From: Antonin Godard @ 2026-01-05 13:52 UTC (permalink / raw)
To: docs, Antonin Godard; +Cc: Thomas Petazzoni
On Thu, 11 Dec 2025 10:06:13 +0100, Antonin Godard wrote:
> These two distros were missing so add a section for them along with
> their list of requirements, which all and all are very similar to
> AlmaLinux and Fedora.
>
> For these distros and AlmaLinux, we now provide a way to build the
> documentation PDF using a local installation of TeX Live packages (using
> the TeX Live package manager, tlmgr). This is not as nice as the other
> distributions where we have a working list of packages for that, but
> it's still better than the current nothing, and finding all the required
> TeX packages proves to be quite hard. Using tlmgr is also what is
> currently done for all the distros on the Autobuilder.
>
> [...]
Applied, thanks!
[1/5] tools/build-docs-container: move container files in their own directory
commit: 4ee207aa6678812e93a625be84dff87df56610b2
[2/5] Makefile: fix rsvg-convert --format capitalization
commit: ec588f83a38439bf4af7d6019169ec4445a72b9a
[3/5] tools/build-docs-container: add CentOS Stream 9 support
commit: 2989f2fcd9e81f9385fcd2431ec7f3d9e7e507ff
[4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build
commit: 6751174d760a10dfe65d10dd3cc1c57395a10b0a
[5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions
commit: 5919767adc4b2dbd97fd1506b5f7c7e13ad083dc
Best regards,
--
^ permalink raw reply [flat|nested] 13+ messages in thread