[PATCH 5/5] ref-manual/system-requirements.rst: add RockyLinux install instructions

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

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