* [PATCH 1/5] tools/build-docs-container: move container files in their own directory
2025-12-05 14:51 [PATCH 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
@ 2025-12-05 14:51 ` Antonin Godard
2025-12-05 14:51 ` [PATCH 2/5] Makefile: fix rsvg-convert --format capitalization Antonin Godard
` (3 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Antonin Godard @ 2025-12-05 14:51 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] 9+ messages in thread* [PATCH 2/5] Makefile: fix rsvg-convert --format capitalization
2025-12-05 14:51 [PATCH 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
2025-12-05 14:51 ` [PATCH 1/5] tools/build-docs-container: move container files in their own directory Antonin Godard
@ 2025-12-05 14:51 ` Antonin Godard
2025-12-05 15:03 ` [docs] " Quentin Schulz
2025-12-05 14:51 ` [PATCH 3/5] tools/build-docs-container: add CentOS Stream 9 support Antonin Godard
` (2 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Antonin Godard @ 2025-12-05 14:51 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] 9+ messages in thread* Re: [docs] [PATCH 2/5] Makefile: fix rsvg-convert --format capitalization
2025-12-05 14:51 ` [PATCH 2/5] Makefile: fix rsvg-convert --format capitalization Antonin Godard
@ 2025-12-05 15:03 ` Quentin Schulz
0 siblings, 0 replies; 9+ messages in thread
From: Quentin Schulz @ 2025-12-05 15:03 UTC (permalink / raw)
To: antonin.godard, docs; +Cc: Thomas Petazzoni
Hi Antonin,
On 12/5/25 3:51 PM, 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.
>
rsvg-convert doc only mentions all lowercase format options, so looks
fine to me
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
FYI, --format=pdf is a "moving" target, that is it isn't always the same
PDF version depending on rsvg-convert's own version. They mention it can
be an issue with some latexpdf versions only supporting older PDF
versions. See
https://github.com/GNOME/librsvg/blob/main/rsvg-convert.rst#pdf-versions
At least you're aware of it now, no idea if we should be doing something
about it. I guess we could try to be smart and detect the max PDF
version supported by latexmk at runtime and select the pdf version for
rsvg-convert based on that.
Thanks!
Quentin
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3/5] tools/build-docs-container: add CentOS Stream 9 support
2025-12-05 14:51 [PATCH 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
2025-12-05 14:51 ` [PATCH 1/5] tools/build-docs-container: move container files in their own directory Antonin Godard
2025-12-05 14:51 ` [PATCH 2/5] Makefile: fix rsvg-convert --format capitalization Antonin Godard
@ 2025-12-05 14:51 ` Antonin Godard
2025-12-05 15:29 ` [docs] " Quentin Schulz
2025-12-05 14:51 ` [PATCH 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build Antonin Godard
2025-12-05 14:51 ` [PATCH 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions Antonin Godard
4 siblings, 1 reply; 9+ messages in thread
From: Antonin Godard @ 2025-12-05 14:51 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 | 31 ++++++++++++++++++++
documentation/tools/build-docs-container | 9 ++++++
.../tools/containerfiles/Containerfile.apt | 5 +++-
.../tools/containerfiles/Containerfile.dnf | 5 +++-
.../tools/containerfiles/Containerfile.stream | 34 ++++++++++++++++++++++
.../tools/containerfiles/Containerfile.zypper | 5 +++-
documentation/tools/containerfiles/entrypoint | 6 ++++
.../host_packages_scripts/centosstream_docs.sh | 1 +
.../centosstream_essential.sh | 5 ++++
.../tools/host_packages_scripts/tlmgr_docs_pdf.sh | 7 +++++
10 files changed, 105 insertions(+), 3 deletions(-)
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index 9ed29a1df..02b6a0cb9 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -266,6 +266,37 @@ 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
+
+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..d753e2153 100755
--- a/documentation/tools/build-docs-container
+++ b/documentation/tools/build-docs-container
@@ -41,6 +41,7 @@ $0 OCI_IMAGE [make arguments...]
- fedora:42
- leap:15.5
- leap:15.6
+ - tgagor/centos:stream9
- ubuntu:22.04
- ubuntu:24.04
- ubuntu:25.04
@@ -119,6 +120,13 @@ main ()
docs_pdf=opensuse_docs_pdf.sh
pip3=pip3_docs.sh
;;
+ "tgagor/centos:stream9"*)
+ containerfile=Containerfile.stream
+ essential=centosstream_essential.sh
+ docs=centosstream_docs.sh
+ docs_pdf=tlmgr_docs_pdf.sh
+ pip3=pip3_docs.sh
+ ;;
"ubuntu:22.04"*|\
"ubuntu:24.04"*|\
"ubuntu:25.04"*|\
@@ -143,6 +151,7 @@ main ()
--build-arg DOCS="host_packages_scripts/$docs" \
--build-arg DOCS_PDF="host_packages_scripts/$docs_pdf" \
--build-arg PIP3="host_packages_scripts/${pip3:-}" \
+ --build-arg ENTRY="containerfiles/entrypoint" \
--file "$SCRIPT_DIR/containerfiles/$containerfile" \
"$SCRIPT_DIR"
diff --git a/documentation/tools/containerfiles/Containerfile.apt b/documentation/tools/containerfiles/Containerfile.apt
index a573786f0..c3e1660a6 100644
--- a/documentation/tools/containerfiles/Containerfile.apt
+++ b/documentation/tools/containerfiles/Containerfile.apt
@@ -5,6 +5,7 @@ ARG INCLUDE_ESSENTIAL_PACKAGES=0
ARG ESSENTIAL=ubuntu_essential.sh
ARG DOCS=ubuntu_docs.sh
ARG DOCS_PDF=ubuntu_docs_pdf.sh
+ARG ENTRY=entrypoint
ENV DEBIAN_FRONTEND=noninteractive
ARG TZ=Europe/Vienna
@@ -26,5 +27,7 @@ RUN ln -fs "/usr/share/zoneinfo/$TZ" /etc/localtime \
RUN git config --global --add safe.directory /docs
-ENTRYPOINT ["/usr/bin/env", "make", "-C", "documentation/"]
+COPY --chmod=777 $ENTRY /entrypoint
+
+ENTRYPOINT ["/entrypoint"]
CMD ["publish"]
diff --git a/documentation/tools/containerfiles/Containerfile.dnf b/documentation/tools/containerfiles/Containerfile.dnf
index 65c526705..d00bb5adc 100644
--- a/documentation/tools/containerfiles/Containerfile.dnf
+++ b/documentation/tools/containerfiles/Containerfile.dnf
@@ -6,6 +6,7 @@ ARG ESSENTIAL=fedora_essential.sh
ARG DOCS=fedora_docs.sh
ARG DOCS_PDF=fedora_docs_pdf.sh
ARG PIP3=pip3_docs.sh
+ARG ENTRY=entrypoint
# relative to the location of the dockerfile
COPY --chmod=777 ${ESSENTIAL} /temp/host_packages_essential.sh
@@ -25,5 +26,7 @@ RUN dnf update -y \
RUN git config --global --add safe.directory /docs
-ENTRYPOINT ["/usr/bin/env", "make", "-C", "documentation/"]
+COPY --chmod=777 $ENTRY /entrypoint
+
+ENTRYPOINT ["/entrypoint"]
CMD ["publish"]
diff --git a/documentation/tools/containerfiles/Containerfile.stream b/documentation/tools/containerfiles/Containerfile.stream
new file mode 100644
index 000000000..5968f94ba
--- /dev/null
+++ b/documentation/tools/containerfiles/Containerfile.stream
@@ -0,0 +1,34 @@
+ARG ARG_FROM=fedora:40 # default value to avoid warning
+FROM $ARG_FROM
+
+ARG INCLUDE_ESSENTIAL_PACKAGES=0
+ARG ESSENTIAL=fedora_essential.sh
+ARG DOCS=fedora_docs.sh
+ARG DOCS_PDF=fedora_docs_pdf.sh
+ARG PIP3=pip3_docs.sh
+ARG ENTRY=entrypoint
+
+ENV TEXTOOLDIR=/opt/docs-build-tex-tools
+
+# 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
+COPY --chmod=777 ${DOCS_PDF} /temp/host_packages_docs_pdf.sh
+COPY --chmod=777 ${PIP3} /temp/pip3_docs.sh
+
+RUN dnf update -y \
+ && dnf install -y sudo \
+ && if [ "$INCLUDE_ESSENTIAL_PACKAGES" = "1" ]; then yes | /temp/host_packages_essential.sh; fi \
+ && yes | /temp/host_packages_docs.sh \
+ && yes | /temp/host_packages_docs_pdf.sh \
+ && yes | /temp/pip3_docs.sh \
+ && dnf autoremove -y \
+ && dnf clean all -y \
+ && rm -rf /temp
+
+RUN git config --global --add safe.directory /docs
+
+COPY --chmod=777 $ENTRY /entrypoint
+
+ENTRYPOINT ["/entrypoint"]
+CMD ["publish"]
diff --git a/documentation/tools/containerfiles/Containerfile.zypper b/documentation/tools/containerfiles/Containerfile.zypper
index 3850b9ff9..d7302ef6f 100644
--- a/documentation/tools/containerfiles/Containerfile.zypper
+++ b/documentation/tools/containerfiles/Containerfile.zypper
@@ -6,6 +6,7 @@ ARG ESSENTIAL=opensuse_essential.sh
ARG DOCS=opensuse_docs.sh
ARG DOCS_PDF=opensuse_docs_pdf.sh
ARG PIP3=pip3_docs.sh
+ARG ENTRY=entrypoint
# relative to the location of the dockerfile
COPY --chmod=777 ${ESSENTIAL} /temp/host_packages_essential.sh
@@ -32,5 +33,7 @@ RUN zypper update -y \
RUN git config --global --add safe.directory /docs
-ENTRYPOINT ["/usr/bin/env", "make", "-C", "documentation/"]
+COPY --chmod=777 $ENTRY /entrypoint
+
+ENTRYPOINT ["/entrypoint"]
CMD ["publish"]
diff --git a/documentation/tools/containerfiles/entrypoint b/documentation/tools/containerfiles/entrypoint
new file mode 100644
index 000000000..97ee93c29
--- /dev/null
+++ b/documentation/tools/containerfiles/entrypoint
@@ -0,0 +1,6 @@
+#!/usr/bin/env sh
+
+tldir=/opt/docs-build-tex-tools/tl/bin/x86_64-linux
+[ -d $tldir ] && export PATH="$PATH:$tldir"
+
+make -C documentation/ "$@"
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..9202afc5b
--- /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
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..f3b81da3e
--- /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
+zcat < "$textooldir"/install-tl-unx.tar.gz | tar xf - -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] 9+ messages in thread* Re: [docs] [PATCH 3/5] tools/build-docs-container: add CentOS Stream 9 support
2025-12-05 14:51 ` [PATCH 3/5] tools/build-docs-container: add CentOS Stream 9 support Antonin Godard
@ 2025-12-05 15:29 ` Quentin Schulz
2025-12-11 8:13 ` Antonin Godard
0 siblings, 1 reply; 9+ messages in thread
From: Quentin Schulz @ 2025-12-05 15:29 UTC (permalink / raw)
To: antonin.godard, docs; +Cc: Thomas Petazzoni
Hi Antonin,
On 12/5/25 3:51 PM, Antonin Godard via lists.yoctoproject.org wrote:
[...]
> diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container
> index 7d25b15b9..d753e2153 100755
> --- a/documentation/tools/build-docs-container
> +++ b/documentation/tools/build-docs-container
> @@ -41,6 +41,7 @@ $0 OCI_IMAGE [make arguments...]
> - fedora:42
> - leap:15.5
> - leap:15.6
> + - tgagor/centos:stream9
quay.io/centos/centos:stream9 is probably better?
We would need to remove the docker.io prefix from the ARG_FROM and make
it configurable but that should be easy to do.
[...]
> diff --git a/documentation/tools/containerfiles/entrypoint b/documentation/tools/containerfiles/entrypoint
> new file mode 100644
> index 000000000..97ee93c29
> --- /dev/null
> +++ b/documentation/tools/containerfiles/entrypoint
> @@ -0,0 +1,6 @@
> +#!/usr/bin/env sh
> +
> +tldir=/opt/docs-build-tex-tools/tl/bin/x86_64-linux
> +[ -d $tldir ] && export PATH="$PATH:$tldir"
> +
> +make -C documentation/ "$@"
Doesn't
ENV PATH="$PATH:$TEXTOOLDIR/tl/bin/x86_64-linux"
in Containerfile.stream work just fine instead of having to go through
an ENTRYPOINT?
This also makes the instructions x86_64-only. I have no clue if one can
run the current instructions on Aarch64 and make it work, but this for
sure won't help.
> 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..9202afc5b
> --- /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
> 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..f3b81da3e
> --- /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
> +zcat < "$textooldir"/install-tl-unx.tar.gz | tar xf - -C "$textooldir"
Can't this simply be
tar xzf "$textooldir"/install-tl-unx.tar.gz -C "$textooldir"
?
Cheers,
Quentin
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [docs] [PATCH 3/5] tools/build-docs-container: add CentOS Stream 9 support
2025-12-05 15:29 ` [docs] " Quentin Schulz
@ 2025-12-11 8:13 ` Antonin Godard
0 siblings, 0 replies; 9+ messages in thread
From: Antonin Godard @ 2025-12-11 8:13 UTC (permalink / raw)
To: Quentin Schulz, docs; +Cc: Thomas Petazzoni
Hi,
On Fri Dec 5, 2025 at 4:29 PM CET, Quentin Schulz wrote:
> Hi Antonin,
>
> On 12/5/25 3:51 PM, Antonin Godard via lists.yoctoproject.org wrote:
>
> [...]
>
>> diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container
>> index 7d25b15b9..d753e2153 100755
>> --- a/documentation/tools/build-docs-container
>> +++ b/documentation/tools/build-docs-container
>> @@ -41,6 +41,7 @@ $0 OCI_IMAGE [make arguments...]
>> - fedora:42
>> - leap:15.5
>> - leap:15.6
>> + - tgagor/centos:stream9
>
> quay.io/centos/centos:stream9 is probably better?
>
> We would need to remove the docker.io prefix from the ARG_FROM and make
> it configurable but that should be easy to do.
Indeed, I'll do that thanks.
>> diff --git a/documentation/tools/containerfiles/entrypoint b/documentation/tools/containerfiles/entrypoint
>> new file mode 100644
>> index 000000000..97ee93c29
>> --- /dev/null
>> +++ b/documentation/tools/containerfiles/entrypoint
>> @@ -0,0 +1,6 @@
>> +#!/usr/bin/env sh
>> +
>> +tldir=/opt/docs-build-tex-tools/tl/bin/x86_64-linux
>> +[ -d $tldir ] && export PATH="$PATH:$tldir"
>> +
>> +make -C documentation/ "$@"
>
> Doesn't
>
> ENV PATH="$PATH:$TEXTOOLDIR/tl/bin/x86_64-linux"
>
> in Containerfile.stream work just fine instead of having to go through
> an ENTRYPOINT?
Works nicely! That will allow some simplifications, thanks.
> This also makes the instructions x86_64-only. I have no clue if one can
> run the current instructions on Aarch64 and make it work, but this for
> sure won't help.
Yeah correct, well I will add a warning for that, as I don't think I'll have the
time to add support for other archs or if even possible with this installer.
>> 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..9202afc5b
>> --- /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
>> 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..f3b81da3e
>> --- /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
>> +zcat < "$textooldir"/install-tl-unx.tar.gz | tar xf - -C "$textooldir"
>
> Can't this simply be
>
> tar xzf "$textooldir"/install-tl-unx.tar.gz -C "$textooldir"
It can! Thanks.
Antonin
--
Antonin Godard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build
2025-12-05 14:51 [PATCH 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
` (2 preceding siblings ...)
2025-12-05 14:51 ` [PATCH 3/5] tools/build-docs-container: add CentOS Stream 9 support Antonin Godard
@ 2025-12-05 14:51 ` Antonin Godard
2025-12-05 14:51 ` [PATCH 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions Antonin Godard
4 siblings, 0 replies; 9+ messages in thread
From: Antonin Godard @ 2025-12-05 14:51 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 | 19 ++++++++++---------
documentation/tools/build-docs-container | 18 ++++++++++--------
.../tools/containerfiles/Containerfile.almalinux | 2 +-
.../tools/host_packages_scripts/almalinux_docs_pdf.sh | 1 -
.../host_packages_scripts/almalinux_essential.sh | 6 +++---
5 files changed, 24 insertions(+), 22 deletions(-)
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index 02b6a0cb9..af102ce98 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -253,18 +253,19 @@ Here are the packages needed to build Project documentation manuals:
.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
:language: shell
-.. warning::
+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>`__:
- 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>`_.
+.. literalinclude:: ../tools/host_packages_scripts/tlmgr_docs_pdf.sh
+ :language: shell
-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:
-.. 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 d753e2153..d61ba5d4c 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
- debian:12
- debian:13
- fedora:39
@@ -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
+ ;;
# Missing python3-saneyaml
# "debian:11"*|\
"debian:12"*|\
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 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] 9+ messages in thread* [PATCH 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions
2025-12-05 14:51 [PATCH 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc Antonin Godard
` (3 preceding siblings ...)
2025-12-05 14:51 ` [PATCH 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build Antonin Godard
@ 2025-12-05 14:51 ` Antonin Godard
4 siblings, 0 replies; 9+ messages in thread
From: Antonin Godard @ 2025-12-05 14:51 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 | 44 ++++++++++++++++++++++
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, 61 insertions(+)
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index af102ce98..79513687d 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -294,6 +294,50 @@ 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
+
+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 d61ba5d4c..d92d6ee50 100755
--- a/documentation/tools/build-docs-container
+++ b/documentation/tools/build-docs-container
@@ -43,6 +43,8 @@ $0 OCI_IMAGE [make arguments...]
- fedora:42
- leap:15.5
- leap:15.6
+ - rockylinux:8
+ - rockylinux:9
- tgagor/centos:stream9
- ubuntu:22.04
- ubuntu:24.04
@@ -122,6 +124,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
+ ;;
"tgagor/centos:stream9"*)
containerfile=Containerfile.stream
essential=centosstream_essential.sh
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..8188d529a
--- /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
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] 9+ messages in thread