docs: use literalinclude for system requirements

The YAML variables for the host dependencies are updated by hand and
actually only used inside code blocks.

Let's migrate all instructions into separate shell scripts that are then
literalinclude'd into the Sphinx documentation.

This allows a few things:
- ability to run shellcheck on the scripts if we ever want to
- manually calling the appropriate script from a supported distro to
  build stuff (distro or bitbake/yocto stuff)
- use this script to create containers to do CI of documentation on
  different distros, to make sure our instructions are all up to date,

(From yocto-docs rev: 8d993022c2aefc0fde9baa949d39d7a3613f9f46)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Antonin Godard <antonin.godard@bootlin.com>
Tested-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Quentin Schulz 2025-01-27 19:37:04 +01:00 committed by Richard Purdie
parent 09849475c8
commit 9d7930a4e0
15 changed files with 65 additions and 269 deletions

View File

@ -24,237 +24,3 @@ MIN_DISK_SPACE : "90"
MIN_DISK_SPACE_RM_WORK : "40"
# RAM (Gbytes) needed to generate qemux86-64 core-image-sato on Ubuntu 22.04 (x86-64) on a 4 core system
MIN_RAM : "8"
#
# Dependencies
#
# Shared between distros
PIP3_HOST_PACKAGES_DOC: sphinx sphinx_rtd_theme pyyaml
UBUNTU_DEBIAN_HOST_PACKAGES_ESSENTIAL: >-
build-essential
chrpath
cpio
debianutils
diffstat
file
gawk
gcc
git
iputils-ping
libacl1
liblz4-tool
locales
python3
python3-git
python3-jinja2
python3-pexpect
python3-pip
python3-subunit
socat
texinfo
unzip
wget
xz-utils
zstd
UBUNTU_DEBIAN_HOST_PACKAGES_DOC: >-
git
librsvg2-bin
locales
make
python3-saneyaml
python3-sphinx-rtd-theme
sphinx
UBUNTU_DEBIAN_HOST_PACKAGES_DOC_PDF: >-
fonts-freefont-otf
latexmk
tex-gyre
texlive-fonts-extra
texlive-fonts-recommended
texlive-lang-all
texlive-latex-extra
texlive-latex-recommended
texlive-xetex
FEDORA_HOST_PACKAGES_ESSENTIAL: >-
bzip2
ccache
chrpath
cpio
cpp
diffstat
diffutils
file
findutils
gawk
gcc
gcc-c++
git
glibc-devel
glibc-langpack-en
gzip
hostname
libacl
lz4
make
patch
perl
perl-Data-Dumper
perl-File-Compare
perl-File-Copy
perl-FindBin
perl-Text-ParseWords
perl-Thread-Queue
perl-bignum
perl-locale
python
python3
python3-GitPython
python3-jinja2
python3-pexpect
python3-pip
rpcgen
socat
tar
texinfo
unzip
wget
which
xz
zstd
FEDORA_HOST_PACKAGES_DOC: >-
git
glibc-locale-source
librsvg2-tools
make
python3-pip
which
FEDORA_HOST_PACKAGES_DOC_PDF: >-
'texlive-collection-lang*'
latexmk
texlive-collection-fontsextra
texlive-collection-fontsrecommended
texlive-collection-latex
texlive-collection-latexextra
texlive-collection-latexrecommended
texlive-collection-xetex
texlive-fncychap
texlive-gnu-freefont
texlive-tex-gyre
texlive-xetex
OPENSUSE_HOST_PACKAGES_ESSENTIAL: >-
bzip2
chrpath
diffstat
gcc
gcc-c++
git
gzip
hostname
libacl1
lz4
make
makeinfo
patch
python
python-curses
python-xml
python3
python3-Jinja2
python3-curses
python3-pexpect
python3-pip
rpcgen
socat
tar
wget
which
xz
zstd
OPENSUSE_PIP3_HOST_PACKAGES_ESSENTIAL: GitPython
OPENSUSE_HOST_PACKAGES_DOC: >-
git
glibc-i18ndata
make
python3-pip
rsvg-convert
which
OPENSUSE_HOST_PACKAGES_DOC_PDF: >-
'texlive-collection-lang*'
texlive-collection-fontsextra
texlive-collection-fontsrecommended
texlive-collection-latex
texlive-collection-latexextra
texlive-collection-latexrecommended
texlive-collection-xetex
texlive-fncychap
texlive-gnu-freefont
texlive-latexmk
texlive-tex-gyre
texlive-xetex
ALMALINUX_HOST_PACKAGES_ESSENTIAL: >-
bzip2
ccache
chrpath
cpio
cpp
diffstat
diffutils
gawk
gcc
gcc-c++
git
glibc-devel
glibc-langpack-en
gzip
libacl
lz4
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
ALMALINUX_HOST_PACKAGES_DOC: >-
git
glibc-locale-source
librsvg2-tools
make
python3-pip
which
ALMALINUX_HOST_PACKAGES_DOC_PDF: >-
latexmk
texlive-collection-fontsrecommended
texlive-collection-latex
texlive-collection-latexrecommended
texlive-collection-xetex
texlive-fncychap
texlive-gnu-freefont
texlive-tex-gyre
texlive-xetex

View File

@ -158,9 +158,10 @@ Ubuntu and Debian
-----------------
Here are the packages needed to build an image on a headless system
with a supported Ubuntu or Debian Linux distribution::
with a supported Ubuntu or Debian Linux distribution:
$ sudo apt install &UBUNTU_DEBIAN_HOST_PACKAGES_ESSENTIAL;
.. literalinclude:: ../tools/host_packages_scripts/ubuntu_essential.sh
:language: shell
You also need to ensure you have the ``en_US.UTF-8`` locale enabled::
@ -189,64 +190,71 @@ If this is not the case, you can reconfigure the ``locales`` package to add it
$ sudo apt build-dep qemu
$ sudo apt remove oss4-dev
Here are the packages needed to build Project documentation manuals::
Here are the packages needed to build Project documentation manuals:
$ sudo apt install &UBUNTU_DEBIAN_HOST_PACKAGES_DOC;
.. literalinclude:: ../tools/host_packages_scripts/ubuntu_docs.sh
:language: shell
In addition to the previous packages, here are the packages needed to build the
documentation in PDF format::
documentation in PDF format:
$ sudo apt install &UBUNTU_DEBIAN_HOST_PACKAGES_DOC_PDF;
.. literalinclude:: ../tools/host_packages_scripts/ubuntu_docs_pdf.sh
:language: shell
Fedora Packages
---------------
Here are the packages needed to build an image on a headless system
with a supported Fedora Linux distribution::
with a supported Fedora Linux distribution:
$ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL;
.. literalinclude:: ../tools/host_packages_scripts/fedora_essential.sh
:language: shell
Here are the packages needed to build Project documentation manuals::
Here are the packages needed to build Project documentation manuals:
$ sudo dnf install &FEDORA_HOST_PACKAGES_DOC;
$ sudo pip3 install &PIP3_HOST_PACKAGES_DOC;
.. literalinclude:: ../tools/host_packages_scripts/fedora_docs.sh
:language: shell
.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
:language: shell
In addition to the previous packages, here are the packages needed to build the
documentation in PDF format::
documentation in PDF format:
$ sudo dnf install &FEDORA_HOST_PACKAGES_DOC_PDF;
.. literalinclude:: ../tools/host_packages_scripts/fedora_docs_pdf.sh
:language: shell
openSUSE Packages
-----------------
Here are the packages needed to build an image on a headless system
with a supported openSUSE distribution::
with a supported openSUSE distribution:
$ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL;
$ sudo pip3 install &OPENSUSE_PIP3_HOST_PACKAGES_ESSENTIAL;
.. literalinclude:: ../tools/host_packages_scripts/opensuse_essential.sh
:language: shell
Here are the packages needed to build Project documentation manuals::
Here are the packages needed to build Project documentation manuals:
$ sudo zypper install &OPENSUSE_HOST_PACKAGES_DOC;
$ sudo pip3 install &PIP3_HOST_PACKAGES_DOC;
.. literalinclude:: ../tools/host_packages_scripts/opensuse_docs.sh
:language: shell
.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
:language: shell
In addition to the previous packages, here are the packages needed to build the
documentation in PDF format::
$ sudo zypper install &OPENSUSE_HOST_PACKAGES_DOC_PDF;
documentation in PDF format:
.. literalinclude:: ../tools/host_packages_scripts/opensuse_docs_pdf.sh
:language: shell
AlmaLinux Packages
------------------
Here are the packages needed to build an image on a headless system
with a supported AlmaLinux distribution::
with a supported AlmaLinux distribution:
$ sudo dnf install -y epel-release
$ sudo yum install dnf-plugins-core
$ sudo dnf config-manager --set-enabled crb
$ sudo dnf makecache
$ sudo dnf install &ALMALINUX_HOST_PACKAGES_ESSENTIAL;
.. literalinclude:: ../tools/host_packages_scripts/almalinux_essential.sh
:language: shell
.. note::
@ -261,15 +269,13 @@ with a supported AlmaLinux distribution::
- The ``makecache`` command consumes additional Metadata from
``epel-release``.
Here are the packages needed to build Project documentation manuals::
Here are the packages needed to build Project documentation manuals:
$ sudo dnf install &ALMALINUX_HOST_PACKAGES_DOC;
$ sudo pip3 install &PIP3_HOST_PACKAGES_DOC;
.. literalinclude:: ../tools/host_packages_scripts/almalinux_docs.sh
:language: shell
In addition to the previous packages, here are the packages needed to build the
documentation in PDF format::
$ sudo dnf install &ALMALINUX_HOST_PACKAGES_DOC_PDF;
.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
:language: shell
.. warning::
@ -278,6 +284,12 @@ documentation in PDF format::
``texlive-collection-latexextra``, so you may run into issues. These may be
installed using `tlmgr <https://tug.org/texlive/tlmgr.html>`_.
In addition to the previous packages, here are the packages needed to build the
documentation in PDF format:
.. literalinclude:: ../tools/host_packages_scripts/almalinux_docs_pdf.sh
:language: shell
.. _system-requirements-buildtools:
Required Git, tar, Python, make and gcc Versions

View File

@ -0,0 +1 @@
sudo dnf install git glibc-locale-source librsvg2-tools make python3-pip which

View File

@ -0,0 +1 @@
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

View File

@ -0,0 +1,5 @@
sudo dnf install -y epel-release
sudo yum install dnf-plugins-core
sudo dnf config-manager --set-enabled crb
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 lz4 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

View File

@ -0,0 +1 @@
sudo dnf install git glibc-locale-source librsvg2-tools make python3-pip which

View File

@ -0,0 +1 @@
sudo dnf install 'texlive-collection-lang*' latexmk texlive-collection-fontsextra texlive-collection-fontsrecommended texlive-collection-latex texlive-collection-latexextra texlive-collection-latexrecommended texlive-collection-xetex texlive-fncychap texlive-gnu-freefont texlive-tex-gyre texlive-xetex

View File

@ -0,0 +1 @@
sudo dnf install bzip2 ccache chrpath cpio cpp diffstat diffutils file findutils gawk gcc gcc-c++ git glibc-devel glibc-langpack-en gzip hostname libacl lz4 make patch perl perl-Data-Dumper perl-File-Compare perl-File-Copy perl-FindBin perl-Text-ParseWords perl-Thread-Queue perl-bignum perl-locale python python3 python3-GitPython python3-jinja2 python3-pexpect python3-pip rpcgen socat tar texinfo unzip wget which xz zstd

View File

@ -0,0 +1 @@
sudo zypper install git glibc-i18ndata make python3-pip rsvg-convert which

View File

@ -0,0 +1 @@
sudo zypper install 'texlive-collection-lang*' texlive-collection-fontsextra texlive-collection-fontsrecommended texlive-collection-latex texlive-collection-latexextra texlive-collection-latexrecommended texlive-collection-xetex texlive-fncychap texlive-gnu-freefont texlive-latexmk texlive-tex-gyre texlive-xetex

View File

@ -0,0 +1,2 @@
sudo zypper install bzip2 chrpath diffstat gcc gcc-c++ git gzip hostname libacl1 lz4 make makeinfo patch python python-curses python-xml python3 python3-Jinja2 python3-curses python3-pexpect python3-pip rpcgen socat tar wget which xz zstd
sudo pip3 install GitPython

View File

@ -0,0 +1 @@
sudo pip3 install sphinx sphinx_rtd_theme pyyaml

View File

@ -0,0 +1 @@
sudo apt install git librsvg2-bin locales make python3-saneyaml python3-saneyaml python3-sphinx-rtd-theme sphinx

View File

@ -0,0 +1 @@
sudo apt install fonts-freefont-otf latexmk tex-gyre texlive-fonts-extra texlive-fonts-recommended texlive-lang-all texlive-latex-extra texlive-latex-recommended texlive-xetex

View File

@ -0,0 +1 @@
sudo apt-get install build-essential chrpath cpio debianutils diffstat file gawk gcc git iputils-ping libacl1 liblz4-tool locales python3 python3-git python3-jinja2 python3-pexpect python3-pip python3-subunit socat texinfo unzip wget xz-utils zstd