diff mbox series

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

Message ID 20251212-build-docs-container-tlmgr-v3-4-a45c1ce6d8f7@bootlin.com
State New
Headers show
Series Add missing CentOS Stream / RockyLinux distros to the system-requirements.rst doc | expand

Commit Message

Antonin Godard Dec. 12, 2025, 10:22 a.m. UTC
Use the new tlmgr_docs_pdf.sh script in build-docs-container to fix
the build of the documentation PDF for AlmaLinux 8 and 9.

Fix the almalinux_essential.sh script to either enable powertools or crb
depending on the AlmaLinux version (powertools for 8, crb for 9).

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
 documentation/ref-manual/system-requirements.rst   | 22 ++++++++++++++--------
 documentation/tools/build-docs-container           | 18 ++++++++++--------
 .../tools/containerfiles/Containerfile.almalinux   |  2 +-
 .../host_packages_scripts/almalinux_docs_pdf.sh    |  1 -
 .../host_packages_scripts/almalinux_essential.sh   |  2 +-
 5 files changed, 26 insertions(+), 19 deletions(-)

Comments

Quentin Schulz Dec. 12, 2025, 11:47 a.m. UTC | #1
Hi Antonin,

On 12/12/25 11:22 AM, Antonin Godard via lists.yoctoproject.org wrote:
> Use the new tlmgr_docs_pdf.sh script in build-docs-container to fix
> the build of the documentation PDF for AlmaLinux 8 and 9.
> 
> Fix the almalinux_essential.sh script to either enable powertools or crb
> depending on the AlmaLinux version (powertools for 8, crb for 9).
> 
> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
> ---
>   documentation/ref-manual/system-requirements.rst   | 22 ++++++++++++++--------
>   documentation/tools/build-docs-container           | 18 ++++++++++--------
>   .../tools/containerfiles/Containerfile.almalinux   |  2 +-
>   .../host_packages_scripts/almalinux_docs_pdf.sh    |  1 -
>   .../host_packages_scripts/almalinux_essential.sh   |  2 +-
>   5 files changed, 26 insertions(+), 19 deletions(-)
> 
> diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
> index 7d110b886..b41295c4b 100644
> --- a/documentation/ref-manual/system-requirements.rst
> +++ b/documentation/ref-manual/system-requirements.rst
> @@ -253,18 +253,24 @@ Here are the packages needed to build Project documentation manuals:
>   .. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
>      :language: shell
>   
> +In addition to the previous packages, the following TeX Live packages
> +are needed to build the documentation in PDF format and can be installed with
> +the `TeX Live package manager <https://tug.org/texlive/tlmgr.html>`__:
> +
> +.. literalinclude:: ../tools/host_packages_scripts/tlmgr_docs_pdf.sh
> +   :language: shell
> +
>   .. warning::
>   
> -   Unlike Fedora or OpenSUSE, AlmaLinux does not provide the packages
> -   ``texlive-collection-fontsextra``, ``texlive-collection-lang*`` and
> -   ``texlive-collection-latexextra``, so you may run into issues. These may be
> -   installed using `tlmgr <https://tug.org/texlive/tlmgr.html>`_.
> +   The Tex Live installation above is only valid for `x86_64` hosts.
>   
> -In addition to the previous packages, here are the packages needed to build the
> -documentation in PDF format:
> +Before building the documentation PDF, setup the ``PATH`` to use the installed
> +packages (with ``${textooldir}`` pointing to the TeX Live installation from the
> +previous step):
>   
> -.. literalinclude:: ../tools/host_packages_scripts/almalinux_docs_pdf.sh
> -   :language: shell
> +.. code-block:: console
> +
> +   $ export PATH="${PATH}:${textooldir}/tl/bin/x86_64-linux"
>   
>   CentOS Stream Packages
>   ----------------------
> diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container
> index 6a83faea6..6a33b9068 100755
> --- a/documentation/tools/build-docs-container
> +++ b/documentation/tools/build-docs-container
> @@ -33,6 +33,8 @@ $0 OCI_IMAGE [make arguments...]
>   
>      OCI_IMAGE is an image:tag of an OCI image hosted on hub.docker.com. It is one
>      of:
> +     - almalinux:8
> +     - almalinux:9
>        - centos:stream9
>        - debian:12
>        - debian:13
> @@ -87,14 +89,14 @@ main ()
>     local repo=docker.io
>   
>     case $image in
> -    # Missing latexmk texlive-gnu-freefont packages at the very least
> -    # "almalinux:8"*|\
> -    # "almalinux:9"*)
> -    #   containerfile=Containerfile.almalinux
> -    #   docs=almalinux_docs.sh
> -    #   docs_pdf=almalinux_docs_pdf.sh
> -    #   pip3=pip3_docs.sh
> -    #   ;;
> +    "almalinux:8"*|\
> +    "almalinux:9"*)
> +      containerfile=Containerfile.almalinux
> +      essential=almalinux_essential.sh
> +      docs=almalinux_docs.sh
> +      docs_pdf=tlmgr_docs_pdf.sh
> +      pip3=pip3_docs.sh
> +      ;;
>       "centos:stream9"*)
>         containerfile=Containerfile.stream
>         essential=centosstream_essential.sh
> diff --git a/documentation/tools/containerfiles/Containerfile.almalinux b/documentation/tools/containerfiles/Containerfile.almalinux
> index 7237e9b99..5430d17dc 120000
> --- a/documentation/tools/containerfiles/Containerfile.almalinux
> +++ b/documentation/tools/containerfiles/Containerfile.almalinux
> @@ -1 +1 @@
> -Containerfile.dnf
> \ No newline at end of file
> +Containerfile.stream
> \ No newline at end of file

Any reason for switching the symlink here? In the end 
Containerfile.stream is a symlink to Containerfile.dnf I believe so... why?

Looks ok to me otherwise,
Cheers,
Quentin
diff mbox series

Patch

diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index 7d110b886..b41295c4b 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -253,18 +253,24 @@  Here are the packages needed to build Project documentation manuals:
 .. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
    :language: shell
 
+In addition to the previous packages, the following TeX Live packages
+are needed to build the documentation in PDF format and can be installed with
+the `TeX Live package manager <https://tug.org/texlive/tlmgr.html>`__:
+
+.. literalinclude:: ../tools/host_packages_scripts/tlmgr_docs_pdf.sh
+   :language: shell
+
 .. warning::
 
-   Unlike Fedora or OpenSUSE, AlmaLinux does not provide the packages
-   ``texlive-collection-fontsextra``, ``texlive-collection-lang*`` and
-   ``texlive-collection-latexextra``, so you may run into issues. These may be
-   installed using `tlmgr <https://tug.org/texlive/tlmgr.html>`_.
+   The Tex Live installation above is only valid for `x86_64` hosts.
 
-In addition to the previous packages, here are the packages needed to build the
-documentation in PDF format:
+Before building the documentation PDF, setup the ``PATH`` to use the installed
+packages (with ``${textooldir}`` pointing to the TeX Live installation from the
+previous step):
 
-.. literalinclude:: ../tools/host_packages_scripts/almalinux_docs_pdf.sh
-   :language: shell
+.. code-block:: console
+
+   $ export PATH="${PATH}:${textooldir}/tl/bin/x86_64-linux"
 
 CentOS Stream Packages
 ----------------------
diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container
index 6a83faea6..6a33b9068 100755
--- a/documentation/tools/build-docs-container
+++ b/documentation/tools/build-docs-container
@@ -33,6 +33,8 @@  $0 OCI_IMAGE [make arguments...]
 
    OCI_IMAGE is an image:tag of an OCI image hosted on hub.docker.com. It is one
    of:
+     - almalinux:8
+     - almalinux:9
      - centos:stream9
      - debian:12
      - debian:13
@@ -87,14 +89,14 @@  main ()
   local repo=docker.io
 
   case $image in
-    # Missing latexmk texlive-gnu-freefont packages at the very least
-    # "almalinux:8"*|\
-    # "almalinux:9"*)
-    #   containerfile=Containerfile.almalinux
-    #   docs=almalinux_docs.sh
-    #   docs_pdf=almalinux_docs_pdf.sh
-    #   pip3=pip3_docs.sh
-    #   ;;
+    "almalinux:8"*|\
+    "almalinux:9"*)
+      containerfile=Containerfile.almalinux
+      essential=almalinux_essential.sh
+      docs=almalinux_docs.sh
+      docs_pdf=tlmgr_docs_pdf.sh
+      pip3=pip3_docs.sh
+      ;;
     "centos:stream9"*)
       containerfile=Containerfile.stream
       essential=centosstream_essential.sh
diff --git a/documentation/tools/containerfiles/Containerfile.almalinux b/documentation/tools/containerfiles/Containerfile.almalinux
index 7237e9b99..5430d17dc 120000
--- a/documentation/tools/containerfiles/Containerfile.almalinux
+++ b/documentation/tools/containerfiles/Containerfile.almalinux
@@ -1 +1 @@ 
-Containerfile.dnf
\ No newline at end of file
+Containerfile.stream
\ No newline at end of file
diff --git a/documentation/tools/host_packages_scripts/almalinux_docs_pdf.sh b/documentation/tools/host_packages_scripts/almalinux_docs_pdf.sh
deleted file mode 100644
index 8341eb8c2..000000000
--- a/documentation/tools/host_packages_scripts/almalinux_docs_pdf.sh
+++ /dev/null
@@ -1 +0,0 @@ 
-sudo dnf install latexmk texlive-collection-fontsrecommended texlive-collection-latex texlive-collection-latexrecommended texlive-collection-xetex texlive-fncychap texlive-gnu-freefont texlive-tex-gyre texlive-xetex
diff --git a/documentation/tools/host_packages_scripts/almalinux_essential.sh b/documentation/tools/host_packages_scripts/almalinux_essential.sh
index 18fdb674e..14d18e758 100644
--- a/documentation/tools/host_packages_scripts/almalinux_essential.sh
+++ b/documentation/tools/host_packages_scripts/almalinux_essential.sh
@@ -1,5 +1,5 @@ 
 sudo dnf install -y epel-release
 sudo dnf install -y dnf-plugins-core
-sudo dnf config-manager --set-enabled crb
+sudo dnf config-manager --set-enabled crb || sudo dnf config-manager --set-enabled powertools
 sudo dnf makecache
 sudo dnf install -y bzip2 ccache chrpath cpio cpp diffstat diffutils gawk gcc gcc-c++ git glibc-devel glibc-langpack-en gzip libacl make patch perl perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python3 python3-GitPython python3-jinja2 python3-pexpect python3-pip rpcgen socat tar texinfo unzip wget which xz zstd