[PATCH 4/5] ref-manual/system-requirements.rst: fix AlmaLinux PDF build

Antonin Godard
2025-12-05T14:51:42Z

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