summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuentin Schulz <quentin.schulz@cherry.de>2025-01-27 19:37:04 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-02-18 15:47:37 +0000
commit9d7930a4e0d0566e41ad0e0cf551cab04e847d64 (patch)
treeb9d968f5454135b8b1304fa66b4e5cff5ee4a4dc
parent09849475c8bdd711fc07c4ef4bb0ae13de046817 (diff)
downloadpoky-9d7930a4e0d0566e41ad0e0cf551cab04e847d64.tar.gz
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>
-rw-r--r--documentation/poky.yaml.in234
-rw-r--r--documentation/ref-manual/system-requirements.rst82
-rw-r--r--documentation/tools/host_packages_scripts/almalinux_docs.sh1
-rw-r--r--documentation/tools/host_packages_scripts/almalinux_docs_pdf.sh1
-rw-r--r--documentation/tools/host_packages_scripts/almalinux_essential.sh5
-rw-r--r--documentation/tools/host_packages_scripts/fedora_docs.sh1
-rw-r--r--documentation/tools/host_packages_scripts/fedora_docs_pdf.sh1
-rw-r--r--documentation/tools/host_packages_scripts/fedora_essential.sh1
-rw-r--r--documentation/tools/host_packages_scripts/opensuse_docs.sh1
-rw-r--r--documentation/tools/host_packages_scripts/opensuse_docs_pdf.sh1
-rw-r--r--documentation/tools/host_packages_scripts/opensuse_essential.sh2
-rw-r--r--documentation/tools/host_packages_scripts/pip3_docs.sh1
-rw-r--r--documentation/tools/host_packages_scripts/ubuntu_docs.sh1
-rw-r--r--documentation/tools/host_packages_scripts/ubuntu_docs_pdf.sh1
-rw-r--r--documentation/tools/host_packages_scripts/ubuntu_essential.sh1
15 files changed, 65 insertions, 269 deletions
diff --git a/documentation/poky.yaml.in b/documentation/poky.yaml.in
index d045ff596e..c93b780664 100644
--- a/documentation/poky.yaml.in
+++ b/documentation/poky.yaml.in
@@ -24,237 +24,3 @@ MIN_DISK_SPACE : "90"
24MIN_DISK_SPACE_RM_WORK : "40" 24MIN_DISK_SPACE_RM_WORK : "40"
25# RAM (Gbytes) needed to generate qemux86-64 core-image-sato on Ubuntu 22.04 (x86-64) on a 4 core system 25# RAM (Gbytes) needed to generate qemux86-64 core-image-sato on Ubuntu 22.04 (x86-64) on a 4 core system
26MIN_RAM : "8" 26MIN_RAM : "8"
27
28#
29# Dependencies
30#
31
32# Shared between distros
33PIP3_HOST_PACKAGES_DOC: sphinx sphinx_rtd_theme pyyaml
34
35UBUNTU_DEBIAN_HOST_PACKAGES_ESSENTIAL: >-
36 build-essential
37 chrpath
38 cpio
39 debianutils
40 diffstat
41 file
42 gawk
43 gcc
44 git
45 iputils-ping
46 libacl1
47 liblz4-tool
48 locales
49 python3
50 python3-git
51 python3-jinja2
52 python3-pexpect
53 python3-pip
54 python3-subunit
55 socat
56 texinfo
57 unzip
58 wget
59 xz-utils
60 zstd
61
62UBUNTU_DEBIAN_HOST_PACKAGES_DOC: >-
63 git
64 librsvg2-bin
65 locales
66 make
67 python3-saneyaml
68 python3-sphinx-rtd-theme
69 sphinx
70
71UBUNTU_DEBIAN_HOST_PACKAGES_DOC_PDF: >-
72 fonts-freefont-otf
73 latexmk
74 tex-gyre
75 texlive-fonts-extra
76 texlive-fonts-recommended
77 texlive-lang-all
78 texlive-latex-extra
79 texlive-latex-recommended
80 texlive-xetex
81
82FEDORA_HOST_PACKAGES_ESSENTIAL: >-
83 bzip2
84 ccache
85 chrpath
86 cpio
87 cpp
88 diffstat
89 diffutils
90 file
91 findutils
92 gawk
93 gcc
94 gcc-c++
95 git
96 glibc-devel
97 glibc-langpack-en
98 gzip
99 hostname
100 libacl
101 lz4
102 make
103 patch
104 perl
105 perl-Data-Dumper
106 perl-File-Compare
107 perl-File-Copy
108 perl-FindBin
109 perl-Text-ParseWords
110 perl-Thread-Queue
111 perl-bignum
112 perl-locale
113 python
114 python3
115 python3-GitPython
116 python3-jinja2
117 python3-pexpect
118 python3-pip
119 rpcgen
120 socat
121 tar
122 texinfo
123 unzip
124 wget
125 which
126 xz
127 zstd
128
129FEDORA_HOST_PACKAGES_DOC: >-
130 git
131 glibc-locale-source
132 librsvg2-tools
133 make
134 python3-pip
135 which
136
137FEDORA_HOST_PACKAGES_DOC_PDF: >-
138 'texlive-collection-lang*'
139 latexmk
140 texlive-collection-fontsextra
141 texlive-collection-fontsrecommended
142 texlive-collection-latex
143 texlive-collection-latexextra
144 texlive-collection-latexrecommended
145 texlive-collection-xetex
146 texlive-fncychap
147 texlive-gnu-freefont
148 texlive-tex-gyre
149 texlive-xetex
150
151OPENSUSE_HOST_PACKAGES_ESSENTIAL: >-
152 bzip2
153 chrpath
154 diffstat
155 gcc
156 gcc-c++
157 git
158 gzip
159 hostname
160 libacl1
161 lz4
162 make
163 makeinfo
164 patch
165 python
166 python-curses
167 python-xml
168 python3
169 python3-Jinja2
170 python3-curses
171 python3-pexpect
172 python3-pip
173 rpcgen
174 socat
175 tar
176 wget
177 which
178 xz
179 zstd
180
181OPENSUSE_PIP3_HOST_PACKAGES_ESSENTIAL: GitPython
182
183OPENSUSE_HOST_PACKAGES_DOC: >-
184 git
185 glibc-i18ndata
186 make
187 python3-pip
188 rsvg-convert
189 which
190
191OPENSUSE_HOST_PACKAGES_DOC_PDF: >-
192 'texlive-collection-lang*'
193 texlive-collection-fontsextra
194 texlive-collection-fontsrecommended
195 texlive-collection-latex
196 texlive-collection-latexextra
197 texlive-collection-latexrecommended
198 texlive-collection-xetex
199 texlive-fncychap
200 texlive-gnu-freefont
201 texlive-latexmk
202 texlive-tex-gyre
203 texlive-xetex
204
205ALMALINUX_HOST_PACKAGES_ESSENTIAL: >-
206 bzip2
207 ccache
208 chrpath
209 cpio
210 cpp
211 diffstat
212 diffutils
213 gawk
214 gcc
215 gcc-c++
216 git
217 glibc-devel
218 glibc-langpack-en
219 gzip
220 libacl
221 lz4
222 make
223 patch
224 perl
225 perl-Data-Dumper
226 perl-Text-ParseWords
227 perl-Thread-Queue
228 python3
229 python3-GitPython
230 python3-jinja2
231 python3-pexpect
232 python3-pip
233 rpcgen
234 socat
235 tar
236 texinfo
237 unzip
238 wget
239 which
240 xz
241 zstd
242
243ALMALINUX_HOST_PACKAGES_DOC: >-
244 git
245 glibc-locale-source
246 librsvg2-tools
247 make
248 python3-pip
249 which
250
251ALMALINUX_HOST_PACKAGES_DOC_PDF: >-
252 latexmk
253 texlive-collection-fontsrecommended
254 texlive-collection-latex
255 texlive-collection-latexrecommended
256 texlive-collection-xetex
257 texlive-fncychap
258 texlive-gnu-freefont
259 texlive-tex-gyre
260 texlive-xetex
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index b087d374d2..93b95a7fb2 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -158,9 +158,10 @@ Ubuntu and Debian
158----------------- 158-----------------
159 159
160Here are the packages needed to build an image on a headless system 160Here are the packages needed to build an image on a headless system
161with a supported Ubuntu or Debian Linux distribution:: 161with a supported Ubuntu or Debian Linux distribution:
162 162
163 $ sudo apt install &UBUNTU_DEBIAN_HOST_PACKAGES_ESSENTIAL; 163.. literalinclude:: ../tools/host_packages_scripts/ubuntu_essential.sh
164 :language: shell
164 165
165You also need to ensure you have the ``en_US.UTF-8`` locale enabled:: 166You also need to ensure you have the ``en_US.UTF-8`` locale enabled::
166 167
@@ -189,64 +190,71 @@ If this is not the case, you can reconfigure the ``locales`` package to add it
189 $ sudo apt build-dep qemu 190 $ sudo apt build-dep qemu
190 $ sudo apt remove oss4-dev 191 $ sudo apt remove oss4-dev
191 192
192Here are the packages needed to build Project documentation manuals:: 193Here are the packages needed to build Project documentation manuals:
193 194
194 $ sudo apt install &UBUNTU_DEBIAN_HOST_PACKAGES_DOC; 195.. literalinclude:: ../tools/host_packages_scripts/ubuntu_docs.sh
196 :language: shell
195 197
196In addition to the previous packages, here are the packages needed to build the 198In addition to the previous packages, here are the packages needed to build the
197documentation in PDF format:: 199documentation in PDF format:
198 200
199 $ sudo apt install &UBUNTU_DEBIAN_HOST_PACKAGES_DOC_PDF; 201.. literalinclude:: ../tools/host_packages_scripts/ubuntu_docs_pdf.sh
202 :language: shell
200 203
201Fedora Packages 204Fedora Packages
202--------------- 205---------------
203 206
204Here are the packages needed to build an image on a headless system 207Here are the packages needed to build an image on a headless system
205with a supported Fedora Linux distribution:: 208with a supported Fedora Linux distribution:
206 209
207 $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL; 210.. literalinclude:: ../tools/host_packages_scripts/fedora_essential.sh
211 :language: shell
208 212
209Here are the packages needed to build Project documentation manuals:: 213Here are the packages needed to build Project documentation manuals:
210 214
211 $ sudo dnf install &FEDORA_HOST_PACKAGES_DOC; 215.. literalinclude:: ../tools/host_packages_scripts/fedora_docs.sh
212 $ sudo pip3 install &PIP3_HOST_PACKAGES_DOC; 216 :language: shell
217
218.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
219 :language: shell
213 220
214In addition to the previous packages, here are the packages needed to build the 221In addition to the previous packages, here are the packages needed to build the
215documentation in PDF format:: 222documentation in PDF format:
216 223
217 $ sudo dnf install &FEDORA_HOST_PACKAGES_DOC_PDF; 224.. literalinclude:: ../tools/host_packages_scripts/fedora_docs_pdf.sh
225 :language: shell
218 226
219openSUSE Packages 227openSUSE Packages
220----------------- 228-----------------
221 229
222Here are the packages needed to build an image on a headless system 230Here are the packages needed to build an image on a headless system
223with a supported openSUSE distribution:: 231with a supported openSUSE distribution:
224 232
225 $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL; 233.. literalinclude:: ../tools/host_packages_scripts/opensuse_essential.sh
226 $ sudo pip3 install &OPENSUSE_PIP3_HOST_PACKAGES_ESSENTIAL; 234 :language: shell
227 235
228Here are the packages needed to build Project documentation manuals:: 236Here are the packages needed to build Project documentation manuals:
229 237
230 $ sudo zypper install &OPENSUSE_HOST_PACKAGES_DOC; 238.. literalinclude:: ../tools/host_packages_scripts/opensuse_docs.sh
231 $ sudo pip3 install &PIP3_HOST_PACKAGES_DOC; 239 :language: shell
232 240
233In addition to the previous packages, here are the packages needed to build the 241.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
234documentation in PDF format:: 242 :language: shell
235 243
236 $ sudo zypper install &OPENSUSE_HOST_PACKAGES_DOC_PDF; 244In addition to the previous packages, here are the packages needed to build the
245documentation in PDF format:
237 246
247.. literalinclude:: ../tools/host_packages_scripts/opensuse_docs_pdf.sh
248 :language: shell
238 249
239AlmaLinux Packages 250AlmaLinux Packages
240------------------ 251------------------
241 252
242Here are the packages needed to build an image on a headless system 253Here are the packages needed to build an image on a headless system
243with a supported AlmaLinux distribution:: 254with a supported AlmaLinux distribution:
244 255
245 $ sudo dnf install -y epel-release 256.. literalinclude:: ../tools/host_packages_scripts/almalinux_essential.sh
246 $ sudo yum install dnf-plugins-core 257 :language: shell
247 $ sudo dnf config-manager --set-enabled crb
248 $ sudo dnf makecache
249 $ sudo dnf install &ALMALINUX_HOST_PACKAGES_ESSENTIAL;
250 258
251.. note:: 259.. note::
252 260
@@ -261,15 +269,13 @@ with a supported AlmaLinux distribution::
261 - The ``makecache`` command consumes additional Metadata from 269 - The ``makecache`` command consumes additional Metadata from
262 ``epel-release``. 270 ``epel-release``.
263 271
264Here are the packages needed to build Project documentation manuals:: 272Here are the packages needed to build Project documentation manuals:
265
266 $ sudo dnf install &ALMALINUX_HOST_PACKAGES_DOC;
267 $ sudo pip3 install &PIP3_HOST_PACKAGES_DOC;
268 273
269In addition to the previous packages, here are the packages needed to build the 274.. literalinclude:: ../tools/host_packages_scripts/almalinux_docs.sh
270documentation in PDF format:: 275 :language: shell
271 276
272 $ sudo dnf install &ALMALINUX_HOST_PACKAGES_DOC_PDF; 277.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
278 :language: shell
273 279
274.. warning:: 280.. warning::
275 281
@@ -278,6 +284,12 @@ documentation in PDF format::
278 ``texlive-collection-latexextra``, so you may run into issues. These may be 284 ``texlive-collection-latexextra``, so you may run into issues. These may be
279 installed using `tlmgr <https://tug.org/texlive/tlmgr.html>`_. 285 installed using `tlmgr <https://tug.org/texlive/tlmgr.html>`_.
280 286
287In addition to the previous packages, here are the packages needed to build the
288documentation in PDF format:
289
290.. literalinclude:: ../tools/host_packages_scripts/almalinux_docs_pdf.sh
291 :language: shell
292
281.. _system-requirements-buildtools: 293.. _system-requirements-buildtools:
282 294
283Required Git, tar, Python, make and gcc Versions 295Required Git, tar, Python, make and gcc Versions
diff --git a/documentation/tools/host_packages_scripts/almalinux_docs.sh b/documentation/tools/host_packages_scripts/almalinux_docs.sh
new file mode 100644
index 0000000000..8188d529a1
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/almalinux_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/almalinux_docs_pdf.sh b/documentation/tools/host_packages_scripts/almalinux_docs_pdf.sh
new file mode 100644
index 0000000000..8341eb8c25
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/almalinux_docs_pdf.sh
@@ -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
diff --git a/documentation/tools/host_packages_scripts/almalinux_essential.sh b/documentation/tools/host_packages_scripts/almalinux_essential.sh
new file mode 100644
index 0000000000..16f25fa1f2
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/almalinux_essential.sh
@@ -0,0 +1,5 @@
1sudo dnf install -y epel-release
2sudo yum install dnf-plugins-core
3sudo dnf config-manager --set-enabled crb
4sudo dnf makecache
5sudo 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
diff --git a/documentation/tools/host_packages_scripts/fedora_docs.sh b/documentation/tools/host_packages_scripts/fedora_docs.sh
new file mode 100644
index 0000000000..8188d529a1
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/fedora_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/fedora_docs_pdf.sh b/documentation/tools/host_packages_scripts/fedora_docs_pdf.sh
new file mode 100644
index 0000000000..816f1c36ec
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/fedora_docs_pdf.sh
@@ -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
diff --git a/documentation/tools/host_packages_scripts/fedora_essential.sh b/documentation/tools/host_packages_scripts/fedora_essential.sh
new file mode 100644
index 0000000000..4841853e1e
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/fedora_essential.sh
@@ -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
diff --git a/documentation/tools/host_packages_scripts/opensuse_docs.sh b/documentation/tools/host_packages_scripts/opensuse_docs.sh
new file mode 100644
index 0000000000..7d36eb0f99
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/opensuse_docs.sh
@@ -0,0 +1 @@
sudo zypper install git glibc-i18ndata make python3-pip rsvg-convert which
diff --git a/documentation/tools/host_packages_scripts/opensuse_docs_pdf.sh b/documentation/tools/host_packages_scripts/opensuse_docs_pdf.sh
new file mode 100644
index 0000000000..ee9f07886c
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/opensuse_docs_pdf.sh
@@ -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
diff --git a/documentation/tools/host_packages_scripts/opensuse_essential.sh b/documentation/tools/host_packages_scripts/opensuse_essential.sh
new file mode 100644
index 0000000000..a784f4a5dc
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/opensuse_essential.sh
@@ -0,0 +1,2 @@
1sudo 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
2sudo pip3 install GitPython
diff --git a/documentation/tools/host_packages_scripts/pip3_docs.sh b/documentation/tools/host_packages_scripts/pip3_docs.sh
new file mode 100644
index 0000000000..fd6ad98053
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/pip3_docs.sh
@@ -0,0 +1 @@
sudo pip3 install sphinx sphinx_rtd_theme pyyaml
diff --git a/documentation/tools/host_packages_scripts/ubuntu_docs.sh b/documentation/tools/host_packages_scripts/ubuntu_docs.sh
new file mode 100644
index 0000000000..d2a1832e27
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/ubuntu_docs.sh
@@ -0,0 +1 @@
sudo apt install git librsvg2-bin locales make python3-saneyaml python3-saneyaml python3-sphinx-rtd-theme sphinx
diff --git a/documentation/tools/host_packages_scripts/ubuntu_docs_pdf.sh b/documentation/tools/host_packages_scripts/ubuntu_docs_pdf.sh
new file mode 100644
index 0000000000..d6310bd21d
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/ubuntu_docs_pdf.sh
@@ -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
diff --git a/documentation/tools/host_packages_scripts/ubuntu_essential.sh b/documentation/tools/host_packages_scripts/ubuntu_essential.sh
new file mode 100644
index 0000000000..f3388c88c9
--- /dev/null
+++ b/documentation/tools/host_packages_scripts/ubuntu_essential.sh
@@ -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