public inbox for docs@lists.yoctoproject.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc
@ 2025-12-11  9:06 Antonin Godard
  2025-12-11  9:06 ` [PATCH v2 1/5] tools/build-docs-container: move container files in their own directory Antonin Godard
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Antonin Godard @ 2025-12-11  9:06 UTC (permalink / raw)
  To: docs; +Cc: Thomas Petazzoni, Antonin Godard

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.

This series also reorganizes the container files to put them in their
own directory, along with the new entrypoint which is needed to setup
the PATH.

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
Changes in v2:
- Apply suggestions from Quentin, thanks!
  - Switch to environment variables directly set in the Containerfile,
    instead of an entrypoint.
  - Simplify tar extraction command.
- Link to v1: https://patch.msgid.link/20251205-build-docs-container-tlmgr-v1-0-de30623e664d@bootlin.com

---
Antonin Godard (5):
      tools/build-docs-container: move container files in their own directory
      Makefile: fix rsvg-convert --format capitalization
      tools/build-docs-container: add CentOS Stream 9 support
      ref-manual/system-requirements.rst: fix AlmaLinux PDF build
      ref-manual/system-requirements.rst: add RockyLinux install instructions

 documentation/Makefile                             |   4 +-
 documentation/ref-manual/system-requirements.rst   | 102 +++++++++++++++++++--
 documentation/tools/build-docs-container           |  55 +++++++----
 .../tools/containerfiles/Containerfile.almalinux   |   1 +
 .../tools/{ => containerfiles}/Containerfile.apt   |   0
 .../{ => containerfiles}/Containerfile.debian      |   0
 .../tools/{ => containerfiles}/Containerfile.dnf   |   3 +
 .../{ => containerfiles}/Containerfile.fedora      |   0
 .../tools/containerfiles/Containerfile.rocky       |   1 +
 .../Containerfile.stream}                          |   0
 .../{ => containerfiles}/Containerfile.ubuntu      |   0
 .../{ => containerfiles}/Containerfile.zypper      |   0
 .../tools/host_packages_scripts/almalinux_docs.sh  |   2 +-
 .../host_packages_scripts/almalinux_docs_pdf.sh    |   1 -
 .../host_packages_scripts/almalinux_essential.sh   |   6 +-
 .../host_packages_scripts/centosstream_docs.sh     |   1 +
 .../centosstream_essential.sh                      |   5 +
 .../tools/host_packages_scripts/rockylinux_docs.sh |   1 +
 .../host_packages_scripts/rockylinux_essential.sh  |   5 +
 .../tools/host_packages_scripts/tlmgr_docs_pdf.sh  |   7 ++
 20 files changed, 164 insertions(+), 30 deletions(-)
---
base-commit: efa93ba6a9340cf3b3c52525de83aa74ca09c5c9
change-id: 20251205-build-docs-container-tlmgr-0bb2d0c4cce4



^ permalink raw reply	[flat|nested] 13+ messages in thread

* [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

* [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

* [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

* [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

* [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 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 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

* 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

* 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

* 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: [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

* 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

end of thread, other threads:[~2026-01-05 13:53 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 12:26   ` [docs] " Quentin Schulz
2025-12-12  8:19     ` Antonin Godard
2025-12-11  9:06 ` [PATCH v2 2/5] Makefile: fix rsvg-convert --format capitalization 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
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
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
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox