From 48a1f726b3266dddb07894ea5e991ae97831cdad Mon Sep 17 00:00:00 2001 From: <> Date: Tue, 17 Sep 2024 13:16:46 +0000 Subject: [PATCH] Deployed ceef303 with MkDocs version: 1.5.3 --- .gitignore | 1 - CNAME | 1 - HowTo/migrate_to_rocky_linux/index.html | 38 +- README.md | 133 - docs/HowTo/centos8-eol-solution.md | 95 - docs/HowTo/create-iso-with-repositories.md | 82 - docs/HowTo/docker.md | 95 - docs/HowTo/els.md | 55 - docs/HowTo/ha-rs-enable-repository.md | 157 - docs/HowTo/install-epel-on-eurolinux.md | 35 - docs/HowTo/migrate_to_rocky_linux.md | 33 - docs/HowTo/mirror-eurolinux-locally.md | 288 - docs/HowTo/vagrant-with-libvirt.md | 95 - docs/HowTo/virtualbox.md | 129 - docs/HowTo/z-documentation-markdown.md | 140 - docs/assets/8-jumpstart/additional-repos.png | Bin 63991 -> 0 bytes docs/assets/8-jumpstart/g-inst-1.png | Bin 5757 -> 0 bytes docs/assets/8-jumpstart/g-inst-2.png | Bin 9007 -> 0 bytes docs/assets/8-jumpstart/g-inst-3.png | Bin 144136 -> 0 bytes docs/assets/8-jumpstart/g-inst-4.png | Bin 123746 -> 0 bytes docs/assets/8-jumpstart/g-inst-5.png | Bin 107176 -> 0 bytes docs/assets/8-jumpstart/text-inst-1.png | Bin 6058 -> 0 bytes docs/assets/8-jumpstart/text-inst-2.png | Bin 7277 -> 0 bytes docs/assets/8-jumpstart/text-inst-3.png | Bin 8913 -> 0 bytes .../9-beta-jumpstart/additional-repos.png | Bin 114669 -> 0 bytes docs/assets/9-beta-jumpstart/g-inst-1.png | Bin 5536 -> 0 bytes docs/assets/9-beta-jumpstart/g-inst-2.png | Bin 4580 -> 0 bytes docs/assets/9-beta-jumpstart/g-inst-3.png | Bin 211107 -> 0 bytes docs/assets/9-beta-jumpstart/g-inst-4.png | Bin 219223 -> 0 bytes docs/assets/9-beta-jumpstart/g-inst-5.png | Bin 136340 -> 0 bytes .../9-beta-jumpstart/pre-release-software.png | Bin 198738 -> 0 bytes docs/assets/9-beta-jumpstart/text-inst-1.png | Bin 5960 -> 0 bytes docs/assets/9-beta-jumpstart/text-inst-2.png | Bin 8659 -> 0 bytes docs/assets/9-beta-jumpstart/text-inst-3.png | Bin 8879 -> 0 bytes .../9-beta-jumpstart/text-inst-vnc-prompt.png | Bin 5573 -> 0 bytes docs/assets/9-jumpstart/additional-repos.png | Bin 44661 -> 0 bytes docs/assets/9-jumpstart/g-inst-1.png | Bin 5536 -> 0 bytes docs/assets/9-jumpstart/g-inst-2.png | Bin 4597 -> 0 bytes docs/assets/9-jumpstart/g-inst-3.png | Bin 212221 -> 0 bytes docs/assets/9-jumpstart/g-inst-4.png | Bin 219650 -> 0 bytes docs/assets/9-jumpstart/g-inst-5.png | Bin 91288 -> 0 bytes docs/assets/9-jumpstart/text-inst-1.png | Bin 5832 -> 0 bytes docs/assets/9-jumpstart/text-inst-2.png | Bin 8579 -> 0 bytes docs/assets/9-jumpstart/text-inst-3.png | Bin 8879 -> 0 bytes .../9-jumpstart/text-inst-vnc-prompt.png | Bin 5494 -> 0 bytes docs/assets/el-logo.png | Bin 5564 -> 0 bytes docs/assets/favicon-white.png | Bin 14813 -> 0 bytes docs/assets/favicon.png | Bin 11029 -> 0 bytes docs/assets/wrong-efi/reinstall.png | Bin 19750 -> 0 bytes docs/assets/wrong-efi/rescue-tux-1.png | Bin 270164 -> 0 bytes docs/assets/wrong-efi/rescue-tux-2.png | Bin 153205 -> 0 bytes docs/assets/wrong-efi/wrong-efi-screen.png | Bin 23888 -> 0 bytes docs/index.md | 133 - docs/jumpstarts/8-jumpstart.md | 337 - docs/jumpstarts/9-beta-jumpstart.md | 331 - docs/jumpstarts/9-jumpstart.md | 321 - docs/jumpstarts/cloud-jump-start.md | 76 - docs/jumpstarts/container-jumpstart.md | 87 - docs/jumpstarts/rpi.md | 226 - docs/jumpstarts/vagrant-jumpstart.md | 114 - docs/jumpstarts/wsl.md | 45 - .../knowledge-base/el6-jdk-install-failure.md | 20 - docs/knowledge-base/eurolinux-6-vault.md | 58 - docs/knowledge-base/eurolinux-7-vault.md | 94 - .../eurolinux-8-10-efi-problem.md | 214 - .../eurolinux-capabilities-and-limits.md | 134 - docs/knowledge-base/eurolinux-vault-policy.md | 83 - .../unable-to-find-requested-software.md | 47 - docs/release-notes/8.10.md | 91 - docs/release-notes/8.3.md | 68 - docs/release-notes/8.4-beta.md | 87 - docs/release-notes/8.4.md | 155 - docs/release-notes/8.5-arm64.md | 216 - docs/release-notes/8.5.md | 212 - docs/release-notes/8.6-beta.md | 250 - docs/release-notes/8.6.md | 236 - docs/release-notes/8.7-beta.md | 234 - docs/release-notes/8.7.md | 220 - docs/release-notes/8.8-beta.md | 233 - docs/release-notes/8.8.md | 233 - docs/release-notes/8.9-beta.md | 190 - docs/release-notes/8.9.md | 196 - docs/release-notes/9.0-beta.md | 221 - docs/release-notes/9.0.md | 204 - docs/release-notes/9.1.md | 175 - docs/release-notes/9.2.md | 152 - docs/release-notes/9.3.md | 97 - docs/release-notes/9.4.md | 92 - docs/release-notes/ELD.md | 26 - docs/stylesheets/extra.css | 10 - mkdocs.yml | 43 - overrides/main.html | 22 - requirements.txt | 36 - search/search_index.json | 2 +- site/404.html | 1574 ---- site/HowTo/centos8-eol-solution/index.html | 1801 ----- .../create-iso-with-repositories/index.html | 1759 ----- site/HowTo/docker/index.html | 1816 ----- site/HowTo/els/index.html | 1719 ----- site/HowTo/ha-rs-enable-repository/index.html | 1856 ----- .../install-epel-on-eurolinux/index.html | 1711 ----- site/HowTo/migrate_to_rocky_linux/index.html | 1687 ----- .../HowTo/mirror-eurolinux-locally/index.html | 1985 ----- site/HowTo/vagrant-with-libvirt/index.html | 1800 ----- site/HowTo/virtualbox/index.html | 1877 ----- .../HowTo/z-documentation-markdown/index.html | 1879 ----- site/assets/8-jumpstart/additional-repos.png | Bin 63991 -> 0 bytes site/assets/8-jumpstart/g-inst-1.png | Bin 5757 -> 0 bytes site/assets/8-jumpstart/g-inst-2.png | Bin 9007 -> 0 bytes site/assets/8-jumpstart/g-inst-3.png | Bin 144136 -> 0 bytes site/assets/8-jumpstart/g-inst-4.png | Bin 123746 -> 0 bytes site/assets/8-jumpstart/g-inst-5.png | Bin 107176 -> 0 bytes site/assets/8-jumpstart/text-inst-1.png | Bin 6058 -> 0 bytes site/assets/8-jumpstart/text-inst-2.png | Bin 7277 -> 0 bytes site/assets/8-jumpstart/text-inst-3.png | Bin 8913 -> 0 bytes .../9-beta-jumpstart/additional-repos.png | Bin 114669 -> 0 bytes site/assets/9-beta-jumpstart/g-inst-1.png | Bin 5536 -> 0 bytes site/assets/9-beta-jumpstart/g-inst-2.png | Bin 4580 -> 0 bytes site/assets/9-beta-jumpstart/g-inst-3.png | Bin 211107 -> 0 bytes site/assets/9-beta-jumpstart/g-inst-4.png | Bin 219223 -> 0 bytes site/assets/9-beta-jumpstart/g-inst-5.png | Bin 136340 -> 0 bytes .../9-beta-jumpstart/pre-release-software.png | Bin 198738 -> 0 bytes site/assets/9-beta-jumpstart/text-inst-1.png | Bin 5960 -> 0 bytes site/assets/9-beta-jumpstart/text-inst-2.png | Bin 8659 -> 0 bytes site/assets/9-beta-jumpstart/text-inst-3.png | Bin 8879 -> 0 bytes .../9-beta-jumpstart/text-inst-vnc-prompt.png | Bin 5573 -> 0 bytes site/assets/9-jumpstart/additional-repos.png | Bin 44661 -> 0 bytes site/assets/9-jumpstart/g-inst-1.png | Bin 5536 -> 0 bytes site/assets/9-jumpstart/g-inst-2.png | Bin 4597 -> 0 bytes site/assets/9-jumpstart/g-inst-3.png | Bin 212221 -> 0 bytes site/assets/9-jumpstart/g-inst-4.png | Bin 219650 -> 0 bytes site/assets/9-jumpstart/g-inst-5.png | Bin 91288 -> 0 bytes site/assets/9-jumpstart/text-inst-1.png | Bin 5832 -> 0 bytes site/assets/9-jumpstart/text-inst-2.png | Bin 8579 -> 0 bytes site/assets/9-jumpstart/text-inst-3.png | Bin 8879 -> 0 bytes .../9-jumpstart/text-inst-vnc-prompt.png | Bin 5494 -> 0 bytes site/assets/el-logo.png | Bin 5564 -> 0 bytes site/assets/favicon-white.png | Bin 14813 -> 0 bytes site/assets/favicon.png | Bin 11029 -> 0 bytes site/assets/images/favicon.png | Bin 1870 -> 0 bytes .../assets/javascripts/bundle.94c44541.min.js | 29 - .../javascripts/bundle.94c44541.min.js.map | 7 - .../javascripts/lunr/min/lunr.ar.min.js | 1 - .../javascripts/lunr/min/lunr.da.min.js | 18 - .../javascripts/lunr/min/lunr.de.min.js | 18 - .../javascripts/lunr/min/lunr.du.min.js | 18 - .../javascripts/lunr/min/lunr.es.min.js | 18 - .../javascripts/lunr/min/lunr.fi.min.js | 18 - .../javascripts/lunr/min/lunr.fr.min.js | 18 - .../javascripts/lunr/min/lunr.he.min.js | 1 - .../javascripts/lunr/min/lunr.hi.min.js | 1 - .../javascripts/lunr/min/lunr.hu.min.js | 18 - .../javascripts/lunr/min/lunr.hy.min.js | 1 - .../javascripts/lunr/min/lunr.it.min.js | 18 - .../javascripts/lunr/min/lunr.ja.min.js | 1 - .../javascripts/lunr/min/lunr.jp.min.js | 1 - .../javascripts/lunr/min/lunr.kn.min.js | 1 - .../javascripts/lunr/min/lunr.ko.min.js | 1 - .../javascripts/lunr/min/lunr.multi.min.js | 1 - .../javascripts/lunr/min/lunr.nl.min.js | 18 - .../javascripts/lunr/min/lunr.no.min.js | 18 - .../javascripts/lunr/min/lunr.pt.min.js | 18 - .../javascripts/lunr/min/lunr.ro.min.js | 18 - .../javascripts/lunr/min/lunr.ru.min.js | 18 - .../javascripts/lunr/min/lunr.sa.min.js | 1 - .../lunr/min/lunr.stemmer.support.min.js | 1 - .../javascripts/lunr/min/lunr.sv.min.js | 18 - .../javascripts/lunr/min/lunr.ta.min.js | 1 - .../javascripts/lunr/min/lunr.te.min.js | 1 - .../javascripts/lunr/min/lunr.th.min.js | 1 - .../javascripts/lunr/min/lunr.tr.min.js | 18 - .../javascripts/lunr/min/lunr.vi.min.js | 1 - .../javascripts/lunr/min/lunr.zh.min.js | 1 - site/assets/javascripts/lunr/tinyseg.js | 206 - site/assets/javascripts/lunr/wordcut.js | 6708 ----------------- .../workers/search.f886a092.min.js | 42 - .../workers/search.f886a092.min.js.map | 7 - site/assets/stylesheets/main.bd3936ea.min.css | 1 - .../stylesheets/main.bd3936ea.min.css.map | 1 - .../stylesheets/palette.356b1318.min.css | 1 - .../stylesheets/palette.356b1318.min.css.map | 1 - site/assets/wrong-efi/reinstall.png | Bin 19750 -> 0 bytes site/assets/wrong-efi/rescue-tux-1.png | Bin 270164 -> 0 bytes site/assets/wrong-efi/rescue-tux-2.png | Bin 153205 -> 0 bytes site/assets/wrong-efi/wrong-efi-screen.png | Bin 23888 -> 0 bytes site/index.html | 1816 ----- site/jumpstarts/8-jumpstart/index.html | 2204 ------ site/jumpstarts/9-beta-jumpstart/index.html | 2165 ------ site/jumpstarts/9-jumpstart/index.html | 2152 ------ site/jumpstarts/cloud-jump-start/index.html | 1848 ----- .../jumpstarts/container-jumpstart/index.html | 1769 ----- site/jumpstarts/rpi/index.html | 1925 ----- site/jumpstarts/vagrant-jumpstart/index.html | 1828 ----- site/jumpstarts/wsl/index.html | 1749 ----- .../el6-jdk-install-failure/index.html | 1702 ----- .../eurolinux-6-vault/index.html | 1739 ----- .../eurolinux-7-vault/index.html | 1773 ----- .../eurolinux-8-10-efi-problem/index.html | 1916 ----- .../index.html | 2156 ------ .../eurolinux-vault-policy/index.html | 1781 ----- .../index.html | 1773 ----- site/release-notes/8.10/index.html | 1840 ----- site/release-notes/8.3/index.html | 1803 ----- site/release-notes/8.4-beta/index.html | 1811 ----- site/release-notes/8.4/index.html | 1890 ----- site/release-notes/8.5-arm64/index.html | 1972 ----- site/release-notes/8.5/index.html | 1951 ----- site/release-notes/8.6-beta/index.html | 1992 ----- site/release-notes/8.6/index.html | 1972 ----- site/release-notes/8.7-beta/index.html | 1978 ----- site/release-notes/8.7/index.html | 1972 ----- site/release-notes/8.8-beta/index.html | 1990 ----- site/release-notes/8.8/index.html | 1990 ----- site/release-notes/8.9-beta/index.html | 1947 ----- site/release-notes/8.9/index.html | 1952 ----- site/release-notes/9.0-beta/index.html | 1974 ----- site/release-notes/9.0/index.html | 1957 ----- site/release-notes/9.1/index.html | 1852 ----- site/release-notes/9.2/index.html | 1833 ----- site/release-notes/9.3/index.html | 1786 ----- site/release-notes/9.4/index.html | 1840 ----- site/release-notes/ELD/index.html | 1707 ----- site/search/search_index.json | 1 - site/sitemap.xml | 243 - site/sitemap.xml.gz | Bin 608 -> 0 bytes site/stylesheets/extra.css | 10 - sitemap.xml.gz | Bin 608 -> 608 bytes 227 files changed, 20 insertions(+), 106690 deletions(-) delete mode 100644 .gitignore delete mode 100644 CNAME delete mode 100644 README.md delete mode 100644 docs/HowTo/centos8-eol-solution.md delete mode 100644 docs/HowTo/create-iso-with-repositories.md delete mode 100644 docs/HowTo/docker.md delete mode 100644 docs/HowTo/els.md delete mode 100644 docs/HowTo/ha-rs-enable-repository.md delete mode 100644 docs/HowTo/install-epel-on-eurolinux.md delete mode 100644 docs/HowTo/migrate_to_rocky_linux.md delete mode 100644 docs/HowTo/mirror-eurolinux-locally.md delete mode 100644 docs/HowTo/vagrant-with-libvirt.md delete mode 100644 docs/HowTo/virtualbox.md delete mode 100644 docs/HowTo/z-documentation-markdown.md delete mode 100644 docs/assets/8-jumpstart/additional-repos.png delete mode 100644 docs/assets/8-jumpstart/g-inst-1.png delete mode 100644 docs/assets/8-jumpstart/g-inst-2.png delete mode 100644 docs/assets/8-jumpstart/g-inst-3.png delete mode 100644 docs/assets/8-jumpstart/g-inst-4.png delete mode 100644 docs/assets/8-jumpstart/g-inst-5.png delete mode 100644 docs/assets/8-jumpstart/text-inst-1.png delete mode 100644 docs/assets/8-jumpstart/text-inst-2.png delete mode 100644 docs/assets/8-jumpstart/text-inst-3.png delete mode 100644 docs/assets/9-beta-jumpstart/additional-repos.png delete mode 100644 docs/assets/9-beta-jumpstart/g-inst-1.png delete mode 100644 docs/assets/9-beta-jumpstart/g-inst-2.png delete mode 100644 docs/assets/9-beta-jumpstart/g-inst-3.png delete mode 100644 docs/assets/9-beta-jumpstart/g-inst-4.png delete mode 100644 docs/assets/9-beta-jumpstart/g-inst-5.png delete mode 100644 docs/assets/9-beta-jumpstart/pre-release-software.png delete mode 100644 docs/assets/9-beta-jumpstart/text-inst-1.png delete mode 100644 docs/assets/9-beta-jumpstart/text-inst-2.png delete mode 100644 docs/assets/9-beta-jumpstart/text-inst-3.png delete mode 100644 docs/assets/9-beta-jumpstart/text-inst-vnc-prompt.png delete mode 100644 docs/assets/9-jumpstart/additional-repos.png delete mode 100644 docs/assets/9-jumpstart/g-inst-1.png delete mode 100644 docs/assets/9-jumpstart/g-inst-2.png delete mode 100644 docs/assets/9-jumpstart/g-inst-3.png delete mode 100644 docs/assets/9-jumpstart/g-inst-4.png delete mode 100644 docs/assets/9-jumpstart/g-inst-5.png delete mode 100644 docs/assets/9-jumpstart/text-inst-1.png delete mode 100644 docs/assets/9-jumpstart/text-inst-2.png delete mode 100644 docs/assets/9-jumpstart/text-inst-3.png delete mode 100644 docs/assets/9-jumpstart/text-inst-vnc-prompt.png delete mode 100644 docs/assets/el-logo.png delete mode 100644 docs/assets/favicon-white.png delete mode 100644 docs/assets/favicon.png delete mode 100644 docs/assets/wrong-efi/reinstall.png delete mode 100644 docs/assets/wrong-efi/rescue-tux-1.png delete mode 100644 docs/assets/wrong-efi/rescue-tux-2.png delete mode 100644 docs/assets/wrong-efi/wrong-efi-screen.png delete mode 100644 docs/index.md delete mode 100644 docs/jumpstarts/8-jumpstart.md delete mode 100644 docs/jumpstarts/9-beta-jumpstart.md delete mode 100644 docs/jumpstarts/9-jumpstart.md delete mode 100644 docs/jumpstarts/cloud-jump-start.md delete mode 100644 docs/jumpstarts/container-jumpstart.md delete mode 100644 docs/jumpstarts/rpi.md delete mode 100644 docs/jumpstarts/vagrant-jumpstart.md delete mode 100644 docs/jumpstarts/wsl.md delete mode 100644 docs/knowledge-base/el6-jdk-install-failure.md delete mode 100644 docs/knowledge-base/eurolinux-6-vault.md delete mode 100644 docs/knowledge-base/eurolinux-7-vault.md delete mode 100644 docs/knowledge-base/eurolinux-8-10-efi-problem.md delete mode 100644 docs/knowledge-base/eurolinux-capabilities-and-limits.md delete mode 100644 docs/knowledge-base/eurolinux-vault-policy.md delete mode 100644 docs/knowledge-base/unable-to-find-requested-software.md delete mode 100644 docs/release-notes/8.10.md delete mode 100644 docs/release-notes/8.3.md delete mode 100644 docs/release-notes/8.4-beta.md delete mode 100644 docs/release-notes/8.4.md delete mode 100644 docs/release-notes/8.5-arm64.md delete mode 100644 docs/release-notes/8.5.md delete mode 100644 docs/release-notes/8.6-beta.md delete mode 100644 docs/release-notes/8.6.md delete mode 100644 docs/release-notes/8.7-beta.md delete mode 100644 docs/release-notes/8.7.md delete mode 100644 docs/release-notes/8.8-beta.md delete mode 100644 docs/release-notes/8.8.md delete mode 100644 docs/release-notes/8.9-beta.md delete mode 100644 docs/release-notes/8.9.md delete mode 100644 docs/release-notes/9.0-beta.md delete mode 100644 docs/release-notes/9.0.md delete mode 100644 docs/release-notes/9.1.md delete mode 100644 docs/release-notes/9.2.md delete mode 100644 docs/release-notes/9.3.md delete mode 100644 docs/release-notes/9.4.md delete mode 100644 docs/release-notes/ELD.md delete mode 100644 docs/stylesheets/extra.css delete mode 100644 mkdocs.yml delete mode 100644 overrides/main.html delete mode 100644 requirements.txt delete mode 100644 site/404.html delete mode 100644 site/HowTo/centos8-eol-solution/index.html delete mode 100644 site/HowTo/create-iso-with-repositories/index.html delete mode 100644 site/HowTo/docker/index.html delete mode 100644 site/HowTo/els/index.html delete mode 100644 site/HowTo/ha-rs-enable-repository/index.html delete mode 100644 site/HowTo/install-epel-on-eurolinux/index.html delete mode 100644 site/HowTo/migrate_to_rocky_linux/index.html delete mode 100644 site/HowTo/mirror-eurolinux-locally/index.html delete mode 100644 site/HowTo/vagrant-with-libvirt/index.html delete mode 100644 site/HowTo/virtualbox/index.html delete mode 100644 site/HowTo/z-documentation-markdown/index.html delete mode 100644 site/assets/8-jumpstart/additional-repos.png delete mode 100644 site/assets/8-jumpstart/g-inst-1.png delete mode 100644 site/assets/8-jumpstart/g-inst-2.png delete mode 100644 site/assets/8-jumpstart/g-inst-3.png delete mode 100644 site/assets/8-jumpstart/g-inst-4.png delete mode 100644 site/assets/8-jumpstart/g-inst-5.png delete mode 100644 site/assets/8-jumpstart/text-inst-1.png delete mode 100644 site/assets/8-jumpstart/text-inst-2.png delete mode 100644 site/assets/8-jumpstart/text-inst-3.png delete mode 100644 site/assets/9-beta-jumpstart/additional-repos.png delete mode 100644 site/assets/9-beta-jumpstart/g-inst-1.png delete mode 100644 site/assets/9-beta-jumpstart/g-inst-2.png delete mode 100644 site/assets/9-beta-jumpstart/g-inst-3.png delete mode 100644 site/assets/9-beta-jumpstart/g-inst-4.png delete mode 100644 site/assets/9-beta-jumpstart/g-inst-5.png delete mode 100644 site/assets/9-beta-jumpstart/pre-release-software.png delete mode 100644 site/assets/9-beta-jumpstart/text-inst-1.png delete mode 100644 site/assets/9-beta-jumpstart/text-inst-2.png delete mode 100644 site/assets/9-beta-jumpstart/text-inst-3.png delete mode 100644 site/assets/9-beta-jumpstart/text-inst-vnc-prompt.png delete mode 100644 site/assets/9-jumpstart/additional-repos.png delete mode 100644 site/assets/9-jumpstart/g-inst-1.png delete mode 100644 site/assets/9-jumpstart/g-inst-2.png delete mode 100644 site/assets/9-jumpstart/g-inst-3.png delete mode 100644 site/assets/9-jumpstart/g-inst-4.png delete mode 100644 site/assets/9-jumpstart/g-inst-5.png delete mode 100644 site/assets/9-jumpstart/text-inst-1.png delete mode 100644 site/assets/9-jumpstart/text-inst-2.png delete mode 100644 site/assets/9-jumpstart/text-inst-3.png delete mode 100644 site/assets/9-jumpstart/text-inst-vnc-prompt.png delete mode 100644 site/assets/el-logo.png delete mode 100644 site/assets/favicon-white.png delete mode 100644 site/assets/favicon.png delete mode 100644 site/assets/images/favicon.png delete mode 100644 site/assets/javascripts/bundle.94c44541.min.js delete mode 100644 site/assets/javascripts/bundle.94c44541.min.js.map delete mode 100644 site/assets/javascripts/lunr/min/lunr.ar.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.da.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.de.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.du.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.es.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.fi.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.fr.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.he.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.hi.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.hu.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.hy.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.it.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.ja.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.jp.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.kn.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.ko.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.multi.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.nl.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.no.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.pt.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.ro.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.ru.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.sa.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.sv.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.ta.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.te.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.th.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.tr.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.vi.min.js delete mode 100644 site/assets/javascripts/lunr/min/lunr.zh.min.js delete mode 100644 site/assets/javascripts/lunr/tinyseg.js delete mode 100644 site/assets/javascripts/lunr/wordcut.js delete mode 100644 site/assets/javascripts/workers/search.f886a092.min.js delete mode 100644 site/assets/javascripts/workers/search.f886a092.min.js.map delete mode 100644 site/assets/stylesheets/main.bd3936ea.min.css delete mode 100644 site/assets/stylesheets/main.bd3936ea.min.css.map delete mode 100644 site/assets/stylesheets/palette.356b1318.min.css delete mode 100644 site/assets/stylesheets/palette.356b1318.min.css.map delete mode 100644 site/assets/wrong-efi/reinstall.png delete mode 100644 site/assets/wrong-efi/rescue-tux-1.png delete mode 100644 site/assets/wrong-efi/rescue-tux-2.png delete mode 100644 site/assets/wrong-efi/wrong-efi-screen.png delete mode 100644 site/index.html delete mode 100644 site/jumpstarts/8-jumpstart/index.html delete mode 100644 site/jumpstarts/9-beta-jumpstart/index.html delete mode 100644 site/jumpstarts/9-jumpstart/index.html delete mode 100644 site/jumpstarts/cloud-jump-start/index.html delete mode 100644 site/jumpstarts/container-jumpstart/index.html delete mode 100644 site/jumpstarts/rpi/index.html delete mode 100644 site/jumpstarts/vagrant-jumpstart/index.html delete mode 100644 site/jumpstarts/wsl/index.html delete mode 100644 site/knowledge-base/el6-jdk-install-failure/index.html delete mode 100644 site/knowledge-base/eurolinux-6-vault/index.html delete mode 100644 site/knowledge-base/eurolinux-7-vault/index.html delete mode 100644 site/knowledge-base/eurolinux-8-10-efi-problem/index.html delete mode 100644 site/knowledge-base/eurolinux-capabilities-and-limits/index.html delete mode 100644 site/knowledge-base/eurolinux-vault-policy/index.html delete mode 100644 site/knowledge-base/unable-to-find-requested-software/index.html delete mode 100644 site/release-notes/8.10/index.html delete mode 100644 site/release-notes/8.3/index.html delete mode 100644 site/release-notes/8.4-beta/index.html delete mode 100644 site/release-notes/8.4/index.html delete mode 100644 site/release-notes/8.5-arm64/index.html delete mode 100644 site/release-notes/8.5/index.html delete mode 100644 site/release-notes/8.6-beta/index.html delete mode 100644 site/release-notes/8.6/index.html delete mode 100644 site/release-notes/8.7-beta/index.html delete mode 100644 site/release-notes/8.7/index.html delete mode 100644 site/release-notes/8.8-beta/index.html delete mode 100644 site/release-notes/8.8/index.html delete mode 100644 site/release-notes/8.9-beta/index.html delete mode 100644 site/release-notes/8.9/index.html delete mode 100644 site/release-notes/9.0-beta/index.html delete mode 100644 site/release-notes/9.0/index.html delete mode 100644 site/release-notes/9.1/index.html delete mode 100644 site/release-notes/9.2/index.html delete mode 100644 site/release-notes/9.3/index.html delete mode 100644 site/release-notes/9.4/index.html delete mode 100644 site/release-notes/ELD/index.html delete mode 100644 site/search/search_index.json delete mode 100644 site/sitemap.xml delete mode 100644 site/sitemap.xml.gz delete mode 100644 site/stylesheets/extra.css diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 09dd1da..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -venv/* diff --git a/CNAME b/CNAME deleted file mode 100644 index fe1482e..0000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -docs.euro-linux.com diff --git a/HowTo/migrate_to_rocky_linux/index.html b/HowTo/migrate_to_rocky_linux/index.html index 7c4c9d7..7cff791 100644 --- a/HowTo/migrate_to_rocky_linux/index.html +++ b/HowTo/migrate_to_rocky_linux/index.html @@ -1505,43 +1505,43 @@

Procedure for migrating EuroLinux to RockyLinux

    -
  1. Preparation:
  2. +
  3. +

    Preparation:

    +
  4. Download migration scripts:

    -
  5. +
  6. Migration:

    -
  7. -
  8. -

    Migrating EuroLinux 8 to RockyLinux 8: -

    sudo bash migrate2rocky.sh -r
    -

    -
  9. -
  10. -

    Migrating EuroLinux 9.4 to RockyLinux 9.4:

      +
    • Migrating EuroLinux 8 to RockyLinux 8: +
      sudo bash migrate2rocky.sh -r
      +
    • +
    • Migrating EuroLinux 9.4 to RockyLinux 9.4:
      • If RockyLinux has not yet released version 9.5: -
        sudo bash migrate2rocky9.sh -r
        +  
        sudo bash migrate2rocky9.sh -r
         
      • If RockyLinux has already released version 9.5 or higher: -
        sudo bash migrate2rocky9.sh -rv 9.4
        +  
        sudo bash migrate2rocky9.sh -rv 9.4
         
    • +
    +
diff --git a/README.md b/README.md deleted file mode 100644 index b5e671e..0000000 --- a/README.md +++ /dev/null @@ -1,133 +0,0 @@ -# EuroLinux - - -## About Documentation -This is EuroLinux community-driven documentation. - -**We welcome your contributions to EuroLinux!** - -You can: - -- star the repository to show your support -- contribute via a Pull Request - see [How to contribute](#how-to-contribute) -- create requests for a particular topic via [Issue Creation on - GitHub](https://github.com/EuroLinux/eurolinux-open-docs/issues/new/choose) - - - -!!! info additional documentation - As EuroLinux is in Open Core model there are also additional documentation - for our customer that are available at [EuroLinux Support - Portal](https://support.euro-linux.com). - - -!!! info EuroLinux man Pages - You can find our online Enterprise Linux Man pages server here - [https://man.docs.euro-linux.com](https://man.docs.euro-linux.com). - - -## How documentation is organized? - -Documentation is organized in the following manner: - -- JumpStarts - Installation guides with extras -- HowTo - How To guides on various topics -- Release Notes - -## How to contribute - -We love your input! We value transparent and easy to contribute projects, that's -why we choose GitHub. You can contribute to this project with: - -- Proposing a new topic that should be described -- Discussing the current state of the docs -- Reporting a bug -- Submitting a fix - -**We Use GitHub with GitHub Flow. All changes are made through pull requests.** - -Pull requests are the best and well-established way to propose changes. The -GitHub Flow that allows us to provide reviews and discussion about documentation/code -is described in detail [here](https://docs.github.com/en/get-started/quickstart/github-flow). - -Use our specially crafted issue templates: [EuroLinux Open Docs issue from a -template](https://github.com/EuroLinux/eurolinux-open-docs/issues/new/choose) to -contribute a topic you would like to see. - -If you want to contribute with code (we keep documentation as code), do the -following: - -1. Fork the repository and create your own branch from master. -2. It would be great if you could test your changes with mkdocs (described in - detail in [Setup environment locally](#setup-environment-locally)) -3. Write/Apply your changes and commit to your branch. -4. Create a pull request! - -### GitHub Labs - -If you are new to Git VCS (Version Control System) or GitHub, you can visit -[GitHub Learning Lab](https://lab.github.com/), especially [First Day on GitHub -course](https://lab.github.com/githubtraining/first-day-on-github). GitHub -courses are free, interactive and put stress on practical aspects. - -## Tools -We are using `mkdocs` with `mkdocs-material` to build and style our -documentation. - -- [MkDocs site](https://mkdocs.readthedocs.io/en/stable/) -- [Material for MkDocs site](https://squidfunk.github.io/mkdocs-material/) - - -## Setup environment locally - -Because MkDocs is Python based, you need at least these installed to run this -documentation locally: - -- python3 (3.6+) -- pip -- virtualenv - -First, let's create a virtualenv, so you don't bloat your system-wide python -environment: -``` -virtualenv -p /usr/bin/python3 venv -``` - -Then activate virtualenv - -Bash: -```bash -. venv/bin/activate -``` - -Fish: -```fish -. venv/bin/activate.fish -``` - -Now you are ready to install MkDocs and other Python packages: -``` -pip install -r requirements.txt -``` - -After it serving documentation on your host is as easy as running: -``` -mkdocs serve -``` - -To build documentation invoke: -``` -mkdocs build -``` - -It will build documentation and save it into `site` directory - -!!! warning "Please don't include site directory in pull requests" - Because we deploy this documentation with GitHub Pages, the `site` - directory is not gitignored - - -## Markdown cheat sheet for this project -We created simple cheat sheet for MkDocs markdown syntax with extensions -enabled in this project. It can be found -[here](HowTo/z-documentation-markdown.md). diff --git a/docs/HowTo/centos8-eol-solution.md b/docs/HowTo/centos8-eol-solution.md deleted file mode 100644 index 0b86c38..0000000 --- a/docs/HowTo/centos8-eol-solution.md +++ /dev/null @@ -1,95 +0,0 @@ -# CentOS 8 End of Life - solution - -## Introduction - -This how-to provides a solution to the problem of CentOS 8 running out of -support. -With the end of 2021, CentOS ended its life in its stable form -and started functioning as CentOS Stream, a development branch for Red Hat® -Enterprise Linux®. As a result, it stopped receiving proven, stable updates -and its use, especially in production environments, became risky. This is -a very serious problem for many companies and individuals around the world. So -there was an urgent need to find a new source of updates for CentOS in order -to keep it in the infrastructure. A complete solution to this problem is -support switching, that is, pointing to a new repository from which CentOS -will be downloading stable updates. Such a solution is offered by EuroLinux. -It is worth mentioning that both CentOS and RHEL and EuroLinux are systems -built on the same source code, so they provide the same functionality. They -differ mainly in branding. - -The operation of switching support is simple, reasonably safe and completely -reversible. What is very important, it requires neither reinstallation of the -system nor the applications installed on it. The process consists of switching -the repository, installing the el-release package, updating the system and -reinstalling the system packages in-place. -After the in-place migration, CentOS will still be usable, even in production -environments. - -All resources used in this tutorial can be found in the [additional -resources section](#additional-resources). - -## The solution - -A project named *eurolinux-migration-scripts* has been created. It contains -among others a script that will take care of the migration automatically. Here -we describe, how to perform the switch successfully. - -### Preparations - -It's vital that the system be updated to the newest release. Use the following -command: - -```bash -sudo yum update -y -``` - -### Running the migration script - -Then download the [latest production-ready -release](https://github.com/EuroLinux/eurolinux-migration-scripts/archive/refs/heads/master.zip) -of the project containing the script. Unpack the release, visit the -unpacked directory and run the script - usually this will require -right-clicking in the current directory, using the 'Open in Terminal' option -and running this command: - -```bash -sudo bash migrate2eurolinux.sh -``` - -Refer to the project's README for additional commands. - -### After the switch - -Once the migration has finished, it's recommended to reboot your system: - -```bash -sudo reboot -``` - -Once the system has rebooted, the migration process can be considered -complete. -In order to quickly verify that it was carried out successfully, we -can check the distribution description: - -```bash -cat /etc/el-release -``` - -As a result we should get a response about the distribution and latest -EuroLinux version. - -## Conclusion - -As you can see, the process is quick and seamless. You can switch the -repository for RHEL, Oracle Linux, AlmaLinux, and Rocky Linux the same way. -In each case, the process will look almost identical. - -If you have any questions or concerns, please submit them to the repository -linked in the [additional resources section](#additional-resources). Thank you. - -## Additional resources - -- [EuroLinux support switching script GitHub - repository](https://github.com/EuroLinux/eurolinux-migration-scripts) -- [Latest production-ready release of the - project](https://github.com/EuroLinux/eurolinux-migration-scripts/archive/refs/heads/master.zip) diff --git a/docs/HowTo/create-iso-with-repositories.md b/docs/HowTo/create-iso-with-repositories.md deleted file mode 100644 index 2e0db76..0000000 --- a/docs/HowTo/create-iso-with-repositories.md +++ /dev/null @@ -1,82 +0,0 @@ -# How to create ISO file with EuroLinux repositories - -Creating ISO that contains RPM repositories is a straightforward process. First -you have to mirror repositories locally - mirroring is described in [Mirror -EuroLinux Locally How To](mirror-eurolinux-locally.md). - -To create an ISO file, you need `mkiso` command that is part of `genisoimage` -package. You can install it with the following command: - - -```bash -sudo yum install -y genisoimage -``` - -## Creating ISO with repositories - -In the example below, we create ISO from the repositories saved in `/repos` -directory the output is saved to `/var/eurolinux-repos.iso`. -``` -sudo mkisofs -R -J -o /var/eurolinux-repos.iso /repos/ -``` - -This file could be: - -- locally copied to the machine that will be using it -- added to ISOs pool of Virtual Machine manager/orchestrator or cloud computing - platform of your choice - -## Mounting ISO from local file - -Mounting local ISO file is as simple as: - -```bash -sudo mount -o loop /PATH/TO/ISO /MOUNT/PATH -``` - -example: - -```bash -sudo mount -o loop /var/eurolinux-repos.iso /mnt/mirror -``` - -## Mounting ISO from virtual cd-rom device - - -Mounting CD-ROM device is as simple as: - -```bash -sudo mount /dev/DEVICE /MOUNT/PATH -``` - -The following example has ISO mounted as CD-ROM device `/dev/sr0`: - -```bash -sudo mount /dev/sr0 /mnt/mirror -``` - -## Using locally mounted ISO with RPM repositories - -To use the repositories, that the ISO file provides, create a proper `.repo` -file that resides inside `/etc/yum.repos.d/` directory. - -Here is an example `/etc/yum.repos.d/local-iso.repo` file for EuroLinux 7 and -the ISO image attached to `/mnt/mirror` directory. - -```ini -[base] -name = EuroLinux 7 x86_64 Base -baseurl=file:///mnt/mirror/eurolinux-os-7/ -enabled=1 -# Disabled gpgcheck, enable if el-release is already installed on your system -gpgcheck=0 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7 - -[updates] -name = EuroLinux 7 x86_64 Updates -baseurl=file:///mnt/mirror/eurolinux-updates-7/ -enabled=1 -# Disabled gpgcheck, enable if el-release is already installed on your system -gpgcheck=0 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7 -``` diff --git a/docs/HowTo/docker.md b/docs/HowTo/docker.md deleted file mode 100644 index 670e00b..0000000 --- a/docs/HowTo/docker.md +++ /dev/null @@ -1,95 +0,0 @@ -# Docker - -How to set up your Docker Community Edition installation. - -## Introduction - -### Use cases - -Consider the following examples: - -- You want a standardized runtime environment across production, QA and - developer scenarios. -- You want all the runtime environment's specification in a single file, what - is easy to manage through version control systems. -- You want the environment to be reproducible. After all, it's just a matter of - building an image from the specification and once it's done it is already -self-documented on what steps were taken to cook the final image. -- You prefer a layered architecture and the ability to cache artifacts across - several images and backup & restore the images easily. - -### Why use Docker containers over virtual machines? - -In short: Docker containers utilize Linux's capabilities such as cgroups and -namespaces to create an isolated environment and do not virtualize hardware. -Therefore, they are way more lightweight than virtual machines and can be -brought up in a large scale in a blink of an eye rather than waiting for a -single virtual machine to boot. - -For more information, take a look at our blog entry on [the basics of -containerization](https://en.euro-linux.com/blog/the-basics-of-containerization/). - -## System requirements - -The following operating systems and architectures are covered by this guide: - -- EuroLinux 8 on the x86_64 and aarch64 architecture. -- EuroLinux 7 on the x86_64 architecture. - -Make sure the containers you want to run are of the same architecture as your -machine. - -If you need support with installation on the EuroLinux releases this guide does -not cover, please create an appropriate ticket. - -## Installation - -### EuroLinux 8 - -The following steps are based on [Docker, Inc. official guide as of -2022.02.01](https://web.archive.org/web/20220201054013/https://docs.docker.com/engine/install/centos/). -We will just use the commands provided as snippets for a quick way of copying -& pasting one snippet for a successful installation. - -The following snippet installs Docker on EuroLinux 8.6. Other releases may work -as well, but have not been tested. Once a new EuroLinux release is out, this -guide will be updated. - -!!! danger "Docker installation removes podman and buildah" - Please note that this operation will replace **runc** with **containerd.io** - and remove both **podman** and **buildah**. - -``` -sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine -which yum-config-manager || sudo yum install -y yum-utils -sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -sudo yum install -y docker-ce docker-ce-cli containerd.io --allowerasing -sudo systemctl enable docker --now -``` - -### EuroLinux 7 - -EuroLinux provides their own builds of Docker for EuroLinux 7. - -Please prepare your EuroMan credentials and enable the -`el-server-7-extras-x86_64` channel first, like so: - -``` -sudo rhn-channel -u "$el_euroman_user" -p "$el_euroman_password" -c el-server-7-extras-x86_64 -a -``` - -Then you are ready to install Docker: - -``` -sudo yum install -y docker -sudo systemctl enable docker --now -``` - -## What's next? - -[EuroLinux provides several Docker images for you to -use](https://hub.docker.com/u/eurolinux). They are publicly available and free -of charge. Take a look at our entry [*EuroLinux docker images are now -available*](https://en.euro-linux.com/blog/eurolinux-docker-images-are-now-available/) -for more information. Additionally, [we provide a quick guide for having the -images up and running in no time](../jumpstarts/container-jumpstart.md). diff --git a/docs/HowTo/els.md b/docs/HowTo/els.md deleted file mode 100644 index 591402c..0000000 --- a/docs/HowTo/els.md +++ /dev/null @@ -1,55 +0,0 @@ -# Migrate to EuroELS - -This guide is about how to switch your repositories to the ones provided by EuroLinux Extended Life Support. - -## Introduction - -Enterprise Linuxes 6 ended their life a few years ago. Still, security updates can be provided by several vendors for a fee. That's where EuroELS comes in. You can extend the lifecycle of your Enterprise Linux up to the half of 2024. - -## How to migrate - -First, make sure that your system is up to date. It should be CentOS 6.10 (minor version 10). - -``` -su -yum update -y -``` - -Second, in accordance with good practice, we recommend backing up your machine. - -Please download the migration script available at this location: - -https://github.com/EuroLinux/eurolinux-migration-scripts.git - -``` -wget https://github.com/EuroLinux/eurolinux-migration-scripts/archive/refs/heads/el6-only-switch-repos.zip -``` - -Please unpack the downloaded file: - -``` -unzip el6-only-switch-repos.zip -``` - -and navigate to the script's directory: - -``` -cd eurolinux-migration-scripts-el6-only-switch-repos -``` - -To start the switching process, just run the script with administrator privileges: - -``` -./migrate2eurolinux.sh -``` - -Once the command is executed, we'll get a recommendation to make a backup. Type YES to make the script continue. - -The script will ask us about our EuroMan credentials. We provide our login and password when asked. - -The repository switch has completed successfully. We can now update our Enterprise Linux 6 with the command: - -``` -yum update -y -``` - diff --git a/docs/HowTo/ha-rs-enable-repository.md b/docs/HowTo/ha-rs-enable-repository.md deleted file mode 100644 index 1cba9b6..0000000 --- a/docs/HowTo/ha-rs-enable-repository.md +++ /dev/null @@ -1,157 +0,0 @@ -# How to install High Availability and Resilient Storage in EuroLinux 8 - -For EuroLinux 8.4, you should update the `el-release` package. The newer -version has `resilient-storage` and `high-availability` repositories saved in -the `/etc/yum.repos.d/certify.repo` file. - -``` -sudo yum update -y el-release -``` - -!!! info "'certify-' prefix" - Since EuroLinux 8.6 the 'certify-' prefixes in repo URLs and names are no - longer used. These URLs are and will be kept as the symbolic link for - backward compatibility. The `certify.repo` file will be used for the whole - EuroLinux 8 lifecycle. - - -If you cannot update the release package because the new `el-release` package errata -is not security-related, you might manually add the following to the -`/etc/yum.repos.d/certify.repo` - -``` -[high-availability] -name = EuroLinux High Availability -baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/HighAvailability/os -enabled=0 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8 - -[resilient-storage] -name = EuroLinux Resilient Storage -baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os -enabled=0 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8 -``` - -## Enabling repositories permanently - -### Enabling High Availability and Resilient Storage repository manually - -Use your favourite text editor and change `enabled=0` to `enabled=1` for -`high-availability` and `resilient-storage` repositories. - -Before edit: -``` -[resilient-storage] -name = EuroLinux Resilient Storage -baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os -enabled=0 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8 -``` - -After Edit: - -``` -[resilient-storage] -name = EuroLinux Resilient Storage -baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8 -``` - -You should do the identical changes for high-availability repositories. - -### Enabling High Availability and Resilient Storage repository with yum-config-manager - -The `yum-config-manager` command is part of the `yum-utils` package. Firstly -let's install that package: - -```bash -sudo yum install -y yum-utils -``` - -Then enable Resilient Storage and High Availability repository with the -following command: - -``` -sudo yum-config-manager --enable high-availability -sudo yum-config-manager --enable resilient-storage -``` - -## Installing HA and/or Resilient Storage - -Both High Availability and Resilient Storage have rpm groups, so installing -them is trivial. - -To install the High Availability add-on, invoke the following command: - -``` -sudo yum install -y @ha -``` - -To install the Resilient Storage add-on, invoke the following command: - -``` -sudo yum install -y @resilient-storage -``` - -## Basic HA configuration - -### Configuring firewalld - -Before configuring a firewall, it's appropriate to check if firewalld is actually -running. The standard `systemctl is-active` command is one of the options. - -``` -systemctl is-active firewalld -``` - -For a system that has firewalld started and enabled, you might use good -enough configuration with: - -``` -sudo firewall-cmd --permanent --add-service=high-availability -sudo firewall-cmd --reload -``` - -### Starting pcsd - -After configuring a firewall, you can start and enable pcsd (PCS GUI and remote -configuration interface) with the following commands: -``` -sudo systemctl start pcsd.service -sudo systemctl enable pcsd.service -``` - -To make a very basic test of the pcsd installation, we recommend setting -`hacluster` user password. As `root` user, you can, for example invoke: - -``` -# echo "secret-pass" | passwd hacluster --stdin -``` - -Then login into Pacemaker/Corosync configuration. Use the machine address on -port 2224 (example: `https://MACHINE_IP:2224`) in your browser. The -username is `hacluster` with password you set in previous step. - -!!! warning "HTTPS Required" - Web browser like Firefox and other programs like cURL will report - "Connection reset by peer" or "The connection was reset" when connecting - with cleartext HTTP. - ``` - [root@test1 pcsd]# curl localhost:2224 - curl: (56) Recv failure: Connection reset by peer - ``` - -From this point you can freely configure High Availability and Resilient -Storage. We recommend using upstream documentation provided in Additional Links -below. - -## Additional links - -- [Red Hat Documentation - Configuring and Managing High Availability Clusters](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_high_availability_clusters/index) -- [Red Hat Documentation - Configuring GFS2 File System](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_gfs2_file_systems/index) diff --git a/docs/HowTo/install-epel-on-eurolinux.md b/docs/HowTo/install-epel-on-eurolinux.md deleted file mode 100644 index 1e29d20..0000000 --- a/docs/HowTo/install-epel-on-eurolinux.md +++ /dev/null @@ -1,35 +0,0 @@ -# How to Install and Enable EPEL repository on EuroLinux 8 - -EPEL (Extra Packages for Enterprise Linux) repository is one of the most -popular third-party repositories for the Enterprise Linux family. From the 4th -November EuroLinux team included the original `epel-release` package from EPEL in -the BaseOS repo. It was the most voted **small quality of life change** during our -first community meeting. The package is re-signed with a EuroLinux GPG key, so -there is no need to accept an external key to install this particular package. - - -The package version will be checked and updated if necessary **during minor -releases**. - - -!!! info "EPEL is an external repository that is community supported" - As a company, we cannot provide proper care in terms of security, quality, - support and lifecycle standards on a third-party repository. Nevertheless, the - EPEL repository has a great history of community support. - - -## Installing EPEL on EuroLinux - -Installing EPEL on EuroLinux 8 and EuroLinux 7 is as simple as: - -```bash -sudo yum install -y epel-release -``` - -!!! info "EPEL is enabled by default" - The base EPEL repository is enabled by default for modular (EuroLinux 8) - and non-modular packages. You can enable debuginfo and source packages in - respective `/etc/yum.repos.d/epel*.repo` file. - -From this moment, you can install and then use all EPEL goodies like `htop`, `wine` or -`createrepo`. diff --git a/docs/HowTo/migrate_to_rocky_linux.md b/docs/HowTo/migrate_to_rocky_linux.md deleted file mode 100644 index 6194dd2..0000000 --- a/docs/HowTo/migrate_to_rocky_linux.md +++ /dev/null @@ -1,33 +0,0 @@ -# Procedure for migrating EuroLinux to RockyLinux - -1. Preparation: - - Ensure a stable and reliable internet connection throughout the entire migration process. This is critical for downloading scripts and packages. - - Create a full backup of the system to be migrated. - - Test the recovery procedure to ensure you can restore the system in case of interruption or errors during migration. - - It is recommended to run the migration in a session manager, e.g., tmux. - -2. Download migration scripts: - - For EL8: - ``` - curl -O https://raw.githubusercontent.com/EuroLinux/rocky-tools/feature/vaulted_migration/migrate2rocky/migrate2rocky.sh - ``` - - For EL9: - ``` - curl -O https://raw.githubusercontent.com/EuroLinux/rocky-tools/feature/vaulted_migration/migrate2rocky/migrate2rocky9.sh - ``` - -3. Migration: - - Migrating EuroLinux 8 to RockyLinux 8: - ``` - sudo bash migrate2rocky.sh -r - ``` - - - Migrating EuroLinux 9.4 to RockyLinux 9.4: - - If RockyLinux has not yet released version 9.5: - ``` - sudo bash migrate2rocky9.sh -r - ``` - - If RockyLinux has already released version 9.5 or higher: - ``` - sudo bash migrate2rocky9.sh -rv 9.4 - ``` diff --git a/docs/HowTo/mirror-eurolinux-locally.md b/docs/HowTo/mirror-eurolinux-locally.md deleted file mode 100644 index cb4f84e..0000000 --- a/docs/HowTo/mirror-eurolinux-locally.md +++ /dev/null @@ -1,288 +0,0 @@ -# How to set up internal EuroLinux RPM mirror - -This short how-to instructs how to set up your own **internal** EuroLinux mirror. -External (publicly available) mirrors should not be set up this way. - -## System requirements - -- Internet connection for sync server is required -- The firewall must allow connection to EuroLinux servers -- For each version of EuroLinux, you need about 80 GB of storage -- You have to install utilities like reposync and createrepo. The - following command will work on an Enterprise Linux 7 and 8: - ```bash - # --skip-broken because depending on the version not all packages might be present - sudo yum install -y createrepo_c createrepo yum-utils dnf-utils --skip-broken - ``` - -## Mirroring EuroLinux 9 - -Making a local mirrors for EuroLinux 8 and EuroLinux 9 is simple because: - -- repositories are open -- reposync can pull repository metadata, erratas, and modules files - automatically. - -!!! info "Use Enterprise Linux 9" - These instructions have been tested to work properly on Enterprise - Linux 9 and Enterprise Linux 8. - -First, let's create the directory where mirroring configuration will reside: -``` -sudo mkdir -p /etc/yum-mirror-config -``` - -Then, let's create configuration file for EuroLinux 9 mirroring -`/etc/yum-mirror-config/mirror_yum_el9.conf` with the contents: - -```ini -[main] -cachedir=/var/cache/yum/mirror/$basearch/$releasever -keepcache=0 -debuglevel=2 -logfile=/var/log/mirror-yum-el9.log -plugins=1 -exactarch=0 -obsoletes=0 -reposdir=/dev/null - -[baseos] -name = EuroLinux BaseOS -baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/BaseOS/os -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9 -skip_if_unavailable=1 - -[appstream] -name = EuroLinux AppStream -baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/AppStream/os -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9 -skip_if_unavailable=1 - -[crb] -name = EuroLinux CRB -baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/CRB/os -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9 -skip_if_unavailable=1 -``` - -Then invoke the command `reposync` with the following arguments: - -``` -reposync --downloadcomps --download-metadata -c /etc/yum-mirror-config/mirror_yum_el9.conf -p /repos -``` - -## Mirroring EuroLinux 8 - -Making a local mirror for EuroLinux 8 and EuroLinux 9 is simple because: - -- repositories are open -- reposync can pull repository metadata, erratas, and modules files - automatically. - -!!! info "Use Enterprise Linux 8" - These instructions have been tested to work properly on Enterprise - Linux 8. While everything may work well, it's not recommended to use - other versions. - -First, let's create the file `/etc/yum-mirror-config/mirror_yum.conf` -with the contents: - -```ini -[main] -cachedir=/var/cache/yum/mirror/$basearch/$releasever -keepcache=0 -debuglevel=2 -logfile=/var/log/mirror-yum.log -plugins=1 -exactarch=0 -obsoletes=0 -reposdir=/dev/null - -[baseos] -name = EuroLinux BaseOS -baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/BaseOS/os -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8 -skip_if_unavailable=1 - -[appstream] -name = EuroLinux AppStream -baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/AppStream/os -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8 -skip_if_unavailable=1 - -[powertools] -name = EuroLinux PowerTools -baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/PowerTools/os -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8 -skip_if_unavailable=1 -``` - -Then invoke the command `reposync` with the following arguments: - -``` -reposync --downloadcomps --download-metadata -c /etc/yum-mirror-config/mirror_yum.conf -p /repos -``` - -## Mirroring EuroLinux 7 - -!!! info "Use Enterprise Linux 7" - These instructions have been tested to work properly on Enterprise - Linux 7. While everything may work well, it's not recommended to use - other versions. - -### The official way - -**EuroLinux 7 is not open-core**; therefore, only organizations with a proper -license (EuroMan or Golden Key) can mirror it freely. - -!!! information "We know" - We are well aware that it is possible to mirror repos even with a single - license. You can read about that below. - -The official way to mirror EuroLinux repositories is the following: - -- You need a proper subscription, like EuroMan or Golden Key -- EuroLinux engineer will provide you with SSL certificates that we will name - `repo.key` and `repo.crt` and CA that we will name `ca.crt` - -Create the directory `/etc/yum-mirror-config/`. -With the repokeys residing in that directory, create the file -`/etc/yum-mirror-config/mirror_yum.conf` with the contents: - -```ini -[main] -cachedir=/var/cache/yum/mirror/$basearch/$releasever -keepcache=0 -debuglevel=2 -logfile=/var/log/mirror-yum.log -exactarch=0 -obsoletes=0 -gpgcheck=0 -plugins=0 -reposdir=/dev/null - -[eurolinux-os-7] -name=el7_x86_64_os -baseurl=https://cdn.euro-linux.com/dist/eurolinux/server/7/x86_64/os/ -sslclientkey=/etc/yum-mirror-config/repo.key -sslclientcrt=/etc/yum-mirror-config/repo.crt -sslcacert=/etc/yum-mirror-config/ca.crt - -[eurolinux-updates-7] -name=el7_x86_64_updates -baseurl=https://cdn.euro-linux.com/dist/eurolinux/server/7/x86_64/updates/ -sslclientkey=/etc/yum-mirror-config/repo.key -sslclientcrt=/etc/yum-mirror-config/repo.crt -sslcacert=/etc/yum-mirror-config/ca.crt -``` - -Then invoke the command `reposync` with the following arguments: - -``` -reposync -d -m --download-metadata -c /etc/yum-mirror-config/mirror_yum.conf -p /repos -``` - -When the download finishes, the next step is to create repodata and enable -groups. - -```bash -cd /repos/eurolinux-os-7/; createrepo . -g comps.xml -cd /repos/eurolinux-updates-7/; createrepo . -g comps.xml -``` - -!!! info Erratas - Enabling updateinfo (erratas information) is a little bit tricky, because - firstly you have to find the newest updateinfo, unpack it, then invoke - modifyrepo script. It can be automated with the script below. - -```bash -REPO_DIR=/repos/eurolinux-os-7/ -unset -v LAST_UI -# finding the newest file -for file in "$REPO_DIR"/*updateinfo.xml.gz; do - [[ "$file" -nt "$LAST_UI" ]] && LAST_UI=$file -done -# unpacking to updateinfo.xml file -sudo gunzip -c "$LAST_UI" > "$REPO_DIR/updateinfo.xml" -# Depending on the system - some has modifrepo.py script some has "normal" command -/usr/share/createrepo/modifyrepo.py "$REPO_DIR/updateinfo.xml" "$REPO_DIR/repodata" || modifyrepo "$REPO_DIR/updateinfo.xml" "$REPO_DIR/repodata" - -REPO_DIR=/repos/eurolinux-updates-7/ -unset -v LAST_UI -for file in "$REPO_DIR"/*updateinfo.xml.gz; do - [[ $file -nt $LAST_UI ]] && LAST_UI=$file -done -sudo gunzip -c "$LAST_UI" > "$REPO_DIR/updateinfo.xml" -# Depending on the system - some has modifrepo.py script some has "normal" command -/usr/share/createrepo/modifyrepo.py "$REPO_DIR/updateinfo.xml" "$REPO_DIR/repodata" || modifyrepo "$REPO_DIR/updateinfo.xml" "$REPO_DIR/repodata" -``` - -### The unsupported way - -There is also the possibility to mirror EuroLinux repositories even with a -single or even test subscription. - -!!! warning "True Product – Real Support – Fair Price" - We are faithful to our values. We also know that it's always possible to - cheat and not play fair. Please be aware that during support inqury, we - might check if your system is registered and supported. To this day, we - always had pleasure to work with honest companies - please don't ruin that. - -!!! danger "Mirroring other distros" - The instruction allows cloning other distros, including paid ones. If you - want to mirror paid Linux distribution, note that this might breach the - license/license agreement. - -You can mirror EuroLinux or other Enterprise Linux repositories with the -following step: - -- Register your system with `rhn_register` command for EuroLinux or another way - to mirror another system repositories. - -Then run the following snippet as root: - -```bash -reposync -d -m --download-metadata --plugins -r el-server-7-x86_64 -p /repos/ -# recreating repodata and updateinfo -REPO_DIR=/repos/el-server-7-x86_64/ -cd /repos/el-server-7-x86_64/; createrepo . -g comps.xml -unset -v LAST_UI -for file in "$REPO_DIR"/*updateinfo.xml.gz; do - [[ $file -nt $LAST_UI ]] && LAST_UI=$file -done -sudo gunzip -c "$LAST_UI" > "$REPO_DIR/updateinfo.xml" -# Depending on the system - some has modifrepo.py script some has "normal" command -/usr/share/createrepo/modifyrepo.py "$REPO_DIR/updateinfo.xml" "$REPO_DIR/repodata" || modifyrepo "$REPO_DIR/updateinfo.xml" "$REPO_DIR/repodata" -``` - -## Mirroring EuroLinux 6 ELS - -First, register your system to EuroLinux EuroMan with the [migration scripts](https://github.com/EuroLinux/eurolinux-migration-scripts/tree/el6-only-switch-repos) - use the `el6-only-switch-repos` branch for this. - -Once the system has been registered and is receiving EL6 ELS updates, you can mirror the ELS packages with the following commands. Run them as root: - -``` -reposync -d -m --download-metadata --plugins -r els-6-x86_64 -p /repos/ -# recreating repodata and updateinfo -REPO_DIR=/repos/els-6-x86_64/ -cd /repos/els-6-x86_64/; createrepo . -g comps.xml -unset -v LAST_UI -for file in "$REPO_DIR"/*updateinfo.xml.gz; do - [[ $file -nt $LAST_UI ]] && LAST_UI=$file -done -sudo gunzip -c "$LAST_UI" > "$REPO_DIR/updateinfo.xml" -# Depending on the system - some has modifrepo.py script some has "normal" command -/usr/share/createrepo/modifyrepo.py "$REPO_DIR/updateinfo.xml" "$REPO_DIR/repodata" || modifyrepo "$REPO_DIR/updateinfo.xml" "$REPO_DIR/repodata" -``` diff --git a/docs/HowTo/vagrant-with-libvirt.md b/docs/HowTo/vagrant-with-libvirt.md deleted file mode 100644 index f97d4bb..0000000 --- a/docs/HowTo/vagrant-with-libvirt.md +++ /dev/null @@ -1,95 +0,0 @@ -# Vagrant with vagrant-libvirt plugin on Enterprise Linux 8 - -## Introduction - -This guide covers the installation of libvirt and related tools along with the -Vagrant plugin that allows using libvirt as a provider. This has been tested on -a clean installation of EuroLinux 8.5 - only Vagrant has been installed already -as described in [Vagrant jumpstart](../jumpstarts/vagrant-jumpstart.md). - -### Terminology - -- **QEMU** - a generic machine emulator -- **KVM** - a virtualisation solution that is native to Linux. Used by QEMU to - achieve near-native performances by executing the guest code directly on - the host CPU -- **libvirt** - a management suite for several hypervisors - -While libvirt can manage many virtualisation solutions, in the context of this -document *libvirt* refers to: *QEMU with KVM managed by libvirt*. - -### Why prefer libvirt over providers such as VirtualBox? - -As mentioned, KVM is a native virtualisation solution to Linux. This means a -[significant performance -boost](https://web.archive.org/web/20210119220104/https://www.phoronix.com/scan.php?page=article&item=virtualbox-60-kvm&num=1) -when compared to other providers at the slight cost of portability - if you run -Linux only, then this is your solution of choice! - -If you have never used libvirt before and just heard about it in this how-to, -there are several goodies worth mentioning. As an example unrelated to Vagrant: -Virt-Manager allows you to get a similar GUI experience out of KVM as that of -e.g. VirtualBox, it is fully Free Software (no worrying about licensing -shenanigans) and is more modular - in fact, there is a [libvirt VirtualBox -driver](https://libvirt.org/drvvbox.html) out there. - -## Install the plugin - -Normally one would invoke a single command: `vagrant plugin install -vagrant-libvirt` and the plugin would work well out-of-the-box. This is not the -case for Linux distributions from the Enterprise Linux family and [Upstream is -aware of that](https://github.com/hashicorp/vagrant/issues/11020), but as of -today (2021.12.21) it doesn't appear to be resolved. - -Because of that, you'll need to build additional components and use them with -your Vagrant installation. The following procedure covers all of this and has -been tested to work well with EuroLinux 8.5. - -Use these commands: - -``` -[ "$(command -v vagrant)" ] || \ -( read -p "Install Vagrant first before running the following commands" \ - && exit 1 ) - -sudo dnf groupinstall "Development Tools" "Virtualization Host" -y -sudo dnf install cmake libvirt-devel ruby-devel -y - -mkdir krb5 -cd krb5 -wget https://vault.cdn.euro-linux.com/sources/eurolinux/8/baseos/x86_64/Packages/k/krb5-1.18.2-8.el8.src.rpm -rpm2cpio krb5*.src.rpm | cpio -idmv -tar xf krb5*.tar.gz -cd krb5*/src -./configure -make -sudo cp -P lib/crypto/libk5crypto.* /opt/vagrant/embedded/lib64/ -cd - -mkdir libssh -cd libssh -wget https://vault.cdn.euro-linux.com/sources/eurolinux/8/baseos/x86_64/Packages/l/libssh-0.9.4-3.el8.src.rpm -rpm2cpio libssh*.src.rpm | cpio -idmv -tar xf libssh*.tar.xz -mkdir build -cd build -cmake ../libssh-*/ -DOPENSSL_ROOT_DIR=/opt/vagrant/embedded/ -make -sudo cp lib/libssh* /opt/vagrant/embedded/lib64 -cd - -vagrant plugin install vagrant-libvirt && rm -rf krb5 libssh -sudo usermod -a -G libvirt $USER -``` - -Next, log out from all of your sessions (graphical and text) and log in again. -From now on you should be able to run Vagrant boxes with libvirt if all -requirements have been satisfied, e.g. you don't have any other providers -enabled (an equivalent of deploying this guide on a clean installation). - -## Additional resources - -- The [plugin's repository](https://github.com/vagrant-libvirt/vagrant-libvirt) -- Websites of provider-related projects: [KVM](http://linux-kvm.org/), - [libvirt](http://libvirt.org/), [QEMU](http://qemu.org), - [Virt-Manager](http://virt-manager.org/) diff --git a/docs/HowTo/virtualbox.md b/docs/HowTo/virtualbox.md deleted file mode 100644 index 66b584e..0000000 --- a/docs/HowTo/virtualbox.md +++ /dev/null @@ -1,129 +0,0 @@ -# VirtualBox - -How to set up your VirtualBox installation. - -## Introduction - -### Use cases - -Consider the following examples: - -- You use software that doesn't work on your EuroLinux 8 installation. -- You want to try out some potentially dangerous actions and don't want to - endanger your machine. -- You develop some awesome software and want to test it on several systems for - compatibility -- You want an easily reproducible environment that works the same way on every - person's machine -- You need a multi-machine laboratory, maybe with several different systems and - don't have the resources for a physical equipment - -### Why use it over other virtualisation providers? - -VirtualBox is the provider with a copyleft license and a focus on -interoperability when it comes to supporting different platforms. This allows -you to cooperate with someone running a different operating system and when -exchanging documentation - once written it's applicable to anyone that can run -the software. -New VirtualBox versions usually support older operating systems too. One can -enjoy the new features on a system, which has recently reached its End of Life, -which can be indispensable for a company that can't migrate yet. - -## System requirements - -A brief documentation is available at -[Upstream's](https://www.virtualbox.org/wiki/End-user_documentation). - -Your machine shall support hardware virtualisation. If it doesn't, you either -need to perform additional troubleshooting - e.g. enable virtualisation in your -machine's BIOS settings. - -``` -[ $(grep -cE 'vmx|svm' /proc/cpuinfo) -gt 0 ] && echo "OK" -``` - -Make sure you're running EuroLinux 8 on x86_64 architecture rather than ARM. - -``` -[ "$(arch)" == "x86_64" ] && echo "OK" -``` - -## Installation on EuroLinux 8 - -As of today (2 September 2021), 6.1 is the main VirtualBox branch and this is -the one we install in this guide. -Assuming your account has been made an administrator during the system -installation process, simply run these commands for an installation: - -``` -sudo dnf groupinstall "Development Tools" -y -sudo dnf config-manager \ - --add-repo=https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo -sudo dnf install VirtualBox-6.1 -y -``` - -VirtualBox should be ready to use! - -### USB devices - -If you want VirtualBox to support USB devices for your system account, run -this command as well: - -``` -sudo usermod -a -G vboxusers $USER -``` - -then log out of your graphical session and log in again. - -### Extension Pack - -VirtualBox doesn't support certain technologies out-of-the-box, e.g. USB -2.0/3.0 or builtin disk encryption, among others. If you want them to be -supported, you will need VirtualBox Extension Pack. Make sure you have read -[its license](https://www.virtualbox.org/wiki/VirtualBox_PUEL) and understand -its implications - you're responsible for compliance. -You may want to read [Upstream's -FAQ](https://www.virtualbox.org/wiki/Licensing_FAQ) for a quick start. - -Once you're sure you'll be able to comply with the licensing terms, run these -commands to install the Extension Pack: - -``` -export vbox_version="$(VBoxManage --version | cut -d'r' -f 1)" -wget "https://download.virtualbox.org/virtualbox/$vbox_version/Oracle_VM_VirtualBox_Extension_Pack-$vbox_version.vbox-extpack" -yes | sudo VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-$vbox_version.vbox-extpack -``` - -## Troubleshooting - -### I can't enable hardware virtualisation and prefer software emulation - -As [Upstream -says](https://web.archive.org/web/20210830005115/https://www.virtualbox.org/wiki/Downloads), -for software mode you'll need VirtualBox branch 6.0 or older. -> Please also use version 6.0 if you need to run VMs with software -> virtualization, as this has been discontinued in 6.1. - -## Additional resources - -### Upstream's release pages - -If you prefer a manual download, check out [Upstream's Linux release -pages](https://www.virtualbox.org/wiki/Linux_Downloads) and use the one they -provide for RHEL 8. - -### RPM Fusion - -Alternatively you can use [RPM Fusion](https://rpmfusion.org/) repository for -installation. The software might differ in branding a bit and only the latest -release is provided. Use these commands: - -``` -sudo dnf localinstall \ - https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y -sudo dnf localinstall --nogpgcheck \ - https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm -y -sudo dnf install VirtualBox -y -sudo akmods --kernels $(uname -r) && sudo systemctl restart vboxdrv.service -``` - diff --git a/docs/HowTo/z-documentation-markdown.md b/docs/HowTo/z-documentation-markdown.md deleted file mode 100644 index 77aba01..0000000 --- a/docs/HowTo/z-documentation-markdown.md +++ /dev/null @@ -1,140 +0,0 @@ -# Quick markdown and extensions guide - -The first part of this guide is loosely based on [Adam Pritchard markdown-here -cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet). -We include it here for contributors as reference and show how different pieces -will be styled. If you are familiar with markdown, and want to skip to this -project specific extensions they start with [Admonition](#admonition): - -### Headers -Headers are created with `#`. -``` -# H1 This is is reserved for page title/name -## H2 [Contribution guide] is h2 -### H3 [Headers] is h3 -... -###### H6 -``` -#### This is fourth header -##### This is fifth header -###### This is sixth header - -**Headers are essentials, because table of content is based on them.** - -### Emphasis -``` -Emphasis, aka italics, with *asterisks* or _underscores_. - -Strong emphasis, aka bold, with **asterisks** or __underscores__. - -Combined emphasis with **asterisks and _underscores_**. - -Strikethrough uses two tildes. ~~Scratch this.~~ -``` -Emphasis, aka italics, with *asterisks* or _underscores_. - -Strong emphasis, aka bold, with **asterisks** or __underscores__. - -Combined emphasis with **asterisks and _underscores_**. - -Strikethrough uses two tildes. ~~Scratch this.~~ - -### List - -!!! warning "Proper markdown required" - MK-Docs has proper markdown list ordering that is 1 to 1 with markdown standard. - - See: [Python Markdown Issue 3](https://github.com/Python-Markdown/markdown/issues/3) - - **TLDR: You have indent sub-list and paragraps with 4 spaces** - -(In this example, leading and trailing spaces are shown with with dots: ⋅) -``` -1. First ordered list item -2. Another item -⋅⋅⋅⋅* Unordered sub-list. -1. Actual numbers don't matter, just that it's a number -⋅⋅⋅⋅1. Ordered sub-list -4. And another item. - -⋅⋅⋅⋅To create paragraph within list item you need newline and four leading spaces. To have a line⋅⋅ -⋅⋅⋅⋅break without a paragraph, you will need to use two trailing spaces. - -!!! info Python markdown quirk - Python-Markdown won't reset list without paragraph. Even if list types are - not compatybile (ordered vs unordered) - -* Unordered list can use asterisks -- Or minuses -+ Or pluses -``` - -1. First ordered list item -2. Another item - * Unordered sub-list. -1. Actual numbers don't matter, just that it's a number - 1. Ordered sub-list -4. And another item. - - To create paragraph within list item you need newline and four leading spaces. To have a line - break without a paragraph, you use two trailing spaces. - -!!! info "Python markdown quirk" - Python-Markdown won't reset list without paragraph. Even if list types are - not compatybile (ordered vs unordered) - -* Unordered list can use asterisks -- Or minuses -+ Or pluses - -### Code blocks - -To add code block use (without leading space) -``` - ```python - # nice - for i in range(69, 420): - print(i) - ``` -``` - -Example: -```python -# nice -for i in range(69, 420): - print(i) -``` - -### Admonition - -!!! info - This is admontion extension for markdown. It support things like - (info,todo), (warning,caution,attention), (danger,error) and more. - -Code in markdown: - -``` -!!! info - This is admontion extension for markdown. It support things like - (info,todo), (warning,caution,attention), (danger,error) and more. -``` -!!! warning "For more information check documentation" - Check [mkdocs-material docs](https://squidfunk.github.io/mkdocs-material/reference/admonitions/) - -Code in markdown: -``` -!!! warning "For more information check documentation" - Check [mkdocs-material docs](https://squidfunk.github.io/mkdocs-material/reference/admonitions/) -``` - -### Keyboard Keys - -Sometimes you might add keys combinations. For example: - - -To use second TY terminal use following key combination ++ctrl+alt+f2++ - -To make them visible in nice way you should use following syntax: -``` -To use second TY terminal use following key combination ++ctrl+alt+f2++ -``` diff --git a/docs/assets/8-jumpstart/additional-repos.png b/docs/assets/8-jumpstart/additional-repos.png deleted file mode 100644 index 256ad5603984cefae396042cacf6a276c72afe3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63991 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 A5dZ)H diff --git a/docs/assets/8-jumpstart/g-inst-1.png b/docs/assets/8-jumpstart/g-inst-1.png deleted file mode 100644 index 9ef1bee0fce6a9d1edf034e90a8e9ae1c32ff46e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5757 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 diff --git a/docs/assets/8-jumpstart/g-inst-2.png b/docs/assets/8-jumpstart/g-inst-2.png deleted file mode 100644 index eb6a9ce7c988e5bdb047886f8edd4a75f471e35c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9007 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 diff --git a/docs/assets/8-jumpstart/g-inst-3.png b/docs/assets/8-jumpstart/g-inst-3.png deleted file mode 100644 index 7992865053796a99a6057f2e82d5bf5a4beefd3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144136 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௛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

mg6@B|wJg*6t;Bz^CpM)G9K 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 G|Nj96S-XP( diff --git a/docs/assets/8-jumpstart/g-inst-4.png b/docs/assets/8-jumpstart/g-inst-4.png deleted file mode 100644 index 561a20f655af80fb1b4744f0792ac4e67f45caae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123746 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 Z&-|!f#NpDXgQ}pBYEM@`mvv4FO#rLTDCqzI diff --git a/docs/assets/8-jumpstart/g-inst-5.png b/docs/assets/8-jumpstart/g-inst-5.png deleted file mode 100644 index 07b45ad72a6eb9d69c8378e76fb827ea76f4aaed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107176 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 diff --git a/docs/assets/8-jumpstart/text-inst-1.png b/docs/assets/8-jumpstart/text-inst-1.png deleted file mode 100644 index 5bc6d49bbc0f742bd8390af60700d1b1765a8f8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6058 zcmchZcQoA5w#R>ZZ$SiMBoU&Hh+amCE_&}Rqcg(joghj=B1nQE(d&>9MvoGSUZQsr zoiR~|VXphu`{TW}?ppV*_s84+oOSm4?7hx+pR?CKiTb+gG?Z+V007WvYN!|j0AUmW z5G<1uU3&=W1ShW-B0ptKV{&rxxfQ+T>n#Ud)f}!7>;v@;aPx!ta+w%v0?(jc{xV=N z*e}=*4)x+t323|qng0o@z`PvXyt#B8yr6)mo40?EsEDWtD{JxPH6Zdo0232U6~Niq z$?2iE_#+|lhf)uP#GXny2uVvxND4_pMV>yCfI5pxi#;9DyD++rW&3BWI@BBL>j1w# zgp!XB5a8wu7xHrOc5s3ER%}HdUQ;apn=*y^`nkcp0a0O5;fK~B-t}vZm-Cc{uWw*rU}$J)WMpJ)Y;0m;Vrpt? zW@ct?Zf;>=VQFb;Wo2b;ZEa&?V{2<`XJ=<`Z|~sX;OOY+f++!>gwv| z=H~A1?&0C#>FMd^<>l?|4THgae0-igd**wbOhr|8-{R0950s{ksf`WpBgF`|> zLa(i0Bs@GkA|fI(GBPSEDmpqkCMG5}Hum}R=W%gy@$vBq2?;N*t*tFFF)=AADLFYg zB_-wM%a^ZSy-H0@O-oCA{rdHrH*eC@)8D>*n~{-`nVFfDmG$o3yZ7(kfB5hrJ3Bik zCnq;I7lAlq)=YRb8@zbYI1qB6#g@r{$Ma9L%B_$=LrKM$MW##4N6%`egm6cUh zRn^tiNF=hRrlz*G_Vee@U%q^)tE;Q8umAe>YePdrV`C!e^yZ77gqJB2D3ujyc!JI*RX+K~k8^EPB=E4MJmlHn;Az`mrN4&} zSxGTqX#9Qf><<6v*>^HbH0BwLlC%@O0kO(&RE=V|sL{lNk%^7`_@iAO#*@>_&4fKf zHDa+0Z*1m2^_Bj*`~IydzCXVj9x5tnaN7zjt3X@YnPoG0$^1?1f_I4WLC2?`P_+-z zB;S<3?3&YKZ~-shOW2y%K>>ZN;zBryUhB)D_E&Q#he?^A>a^o3%pIV5IM9<;LK^6i zgF1@d3;QiXV~yxvs>TR~Q{L=iq1i(@MM;GUfTRTrG9z2oo4u@XUhxoL*Hm#D$9Z=M zW_!HNsrLjC?Zk_ptiSkf3U!yAn)Pts-kvQI_|UJ`@V0kGdPQYHTJBtCnAGdIu_64i zjU)Ha>4CJ8Db7Ir>%^0@WjrMW!I zYRfK=Reh10SvAXK9du$f{UuBFnb?%%#R&w1t6CHa928+27)>^V&7rLNgwl_DS_Vpa z6@Kjbp6=VoO0?n??Fu$EWsBw^$juda1y$s>W*q4rYtFlG zn-^s#B952uH~-#8*_3YbAMf$FS<;JJEZFsdk-OVBH+{?^F5?+ie9?CMlvD~u!^rwn z%jTB*GCPxy47(xq9>}=e(T{=XZ#RcEf{kPi{EjM*%XhzQoC;fi zk0l!zyA+1-2hCTe`5;4Cw#PbVWdvYzx7QWJ)OrK$X8rQ>gsq%LI|?ik?r7$|wnZc4 zPILF{A9N~>-baDMWOn?wMTcGzR0jH`u|h>%PT-hdT&D*zx$TD8zCJeTl5zt!fXth- zyiFvU)pK--QOhx_UVTvxr)Cq7o}~f~_iAPvJZhi{)Ap+O zh2QEpc6m#=?0p!}`?B0h66^)^9M~J<8*Sy5YyC=h$_vTLwa=w0Kn4|P4Tg@dS)1f6 z-hP8d7FckJ;_1|{#^tdGQ6*WF%l@X%CWNMqvm~M%TOeEgpq-xCufP0F&g069PSLHy zqIjK&y~vNnaKPh8d=agFZ(ufSB56E_@WQ&lbl8)T_+Sm3LB1?;As<b1aMfyHV+?G$4pMCAA*^5v#+En=UqMz$Qi z#|}W&TUz^z(3sE%2?m1`73NpJzgq+NVNl0DRV)yI&20({b6mMQbg>=pv-_!+oH>m* zBw07oSZI0r20_b0VBvTd@EuK(_eDv^P-J}rK4rxE8&IRq)FE&Jk)4HKeMrO(DssSc6tx7T3}Ew7WRO&iMjEzfgdHmr{<76!~q!JAEg zh9+3-XkU=k#3EG1zwyzhWR|$7%n3~BQSAs&+2^+L$j=0$DiD}J12MR?^W%?vOW_RS zHbuH4mq(8oCC^yoP5kRxznba=H<@%3J@7W0B4Cld*gAZ@ZGy)TlSdxDm==QeqiAFGJm`ZKoS==T{LWBRvCPADr)2uXMh0wXoFm?veFl3F876w` zZ-E&hB?y&Gs(dMEI7tCyN9ua3Ea1bMz{8`MXlZ<8Ll z+$TJXwO{!xgt=6pw|-X^sSgGVQP0Op;EG83oB5Ah0z-{of~YYz$rj6|XP;iLoGII6 zT7|c;Z{OFAF22~C3$}@zH4myypl2xsuDC%RA`3-ijc zT>U|NpjLJb+_@gA(j*^776|i7XM_8YxMtVd-V|nM9H;OAOkPNt~JuQr8?(ual>A*+~`ZPj>QBfw$V|G3esNYHk)n#v$ss*+JAitrxWu z9J-b??RvF&Ulz3PP5y8Hy#E=XC|&HPYL^=Er1dextWeJ$9A{7VmR+%QVtS}Q;ou{T81q91q}XidgQCs`nsCKk z3o2JqK@%X3L&{Roc!Ug2_&|k~pl(eKFc{@33<63<2|tk#NmZ!;B|6#*WZY2?LaA?1 zd&GWIf7{`6T-RAMO$l|VapX-?`ag)A&|MF*`yrD&Q+W)llkh+$X7s5k6iersX^z|S8+!>>@mUhnCEQUSiGJ>J|` zzvZ%AiGi%+Yn|T!UpsG#Xz9t37;Icmu}W4&X0V^azIVzg#`7_#rk+f{(J5Y;%dkGG zmMe=gzlKPiYI>IF!EOsHEC1Mkmw{=h^aJqqFED%g8BQ>eNp7Eclb-pA;8G~#RP@Ox z;QXcRB8s?%c^!P4G}-mcgT|`B_}r?pvqt*Xs%3a@rEHGGA}?i2t|IB3|GHm$*jpXM zNY=5COMi~-{dp^aL~yd<1vFxHk+q|9qH$IFMb88ORwf#I+yZ0lhng5{V&nt?b$MkB zkjePha4Aabq!ZWOTEf7zj*}0C?Ru1lGg**x@H1b?*;xM4;vZt=%zghh$#fae`7W< zGjxjd6vNl`h^1^9W=T;%r+U8WIE$7Y9(|OTu?n&637)s8%<;)1=6jCjGvkyBRlAXD#3tI6^0T7r`H63ijTN z^E)MYwYaQ=@2=@AR>S*8ttkZkBDVt5y?Zk<8JVvv`A%%*qT(p2ulxlJ#FG{+wHXyH z#G+IWSroFS$=D@Ezk?mnQ%gL%4!|Dq%|&y{Q=0;(+O{9w*`6>n^H%{|ZevjFA4jyA z6qmtnP^FOr?(I`fUHGk0DpM#snKOr3OLb1>Fommwf@a1JF$57Q`Cu_#s&-UI<~N)G zUa*?@_=urcBcDOhEu3}t^g)0`t)BG00SkYfMgMzsYtQ!evhQ}I&e96v4;qlN6@D z0Hgc2hCH#7WyfqL3i~mxpD7M48e2v_e#9f3aprqoNdV7F27YS8elihE^1ZO7*ur@x zH-eW7Kb`|@_z-AWd{>4GEO2EqT9tQ1IXwQ29aZ%b4v+~h&FSaGCYiF zg`>K$L?0jLxO1A+Zntu%-AJv!tz2gX5|yB=RT!RphAwV8ojTtys{d^FRXTEIeQ_xd zLt6g!v&^d&|M2MS3nOHvWuY1XDE6N)K>Hwtg0DRuHTpw8F&G%J65aBzKC851AndU*ppN|Bi z3vbp;b8+{C$+&o}f|vA>XVByL^ v>fb)?Dj1VSwGJ{8Kq%-H|Fg~?`FusJHRRozR$Kq&pAnj>x+>Mm_A&neQo1$u diff --git a/docs/assets/8-jumpstart/text-inst-2.png b/docs/assets/8-jumpstart/text-inst-2.png deleted file mode 100644 index 52617934c6112f87c287ecab04f2983da4f8835b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7277 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 z 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 Dckc}) diff --git a/docs/assets/9-beta-jumpstart/additional-repos.png b/docs/assets/9-beta-jumpstart/additional-repos.png deleted file mode 100644 index 9f1ec1221dceba97d39901de218b6828aff5e9ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114669 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

qHLC)7m8IQ(3tfoTw64U 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 G{Qn0LJ$YIH diff --git a/docs/assets/9-beta-jumpstart/g-inst-2.png b/docs/assets/9-beta-jumpstart/g-inst-2.png deleted file mode 100644 index 78347793480ce8d2b561e0bf072190934341e22e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4580 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 JTXqJY_&-&HP2&In diff --git a/docs/assets/9-beta-jumpstart/g-inst-3.png b/docs/assets/9-beta-jumpstart/g-inst-3.png deleted file mode 100644 index 16c08cc0f7124a2bf3aa4667cde0d1b4a2074753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211107 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 dWYVb$8%$zX5|T1A@0)Mj>i+(5 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

UASdiC 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
I;j6;Y>cgfYD?>fJB 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 z

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

`qtKw&uS79>?vEq&2E-e&KPgrx#BZ(L-137!) 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 - - -## Minimum memory - -These requirements are only for systems supported as VMs or Physical hosts. In -most cases, it's possible to run a system without complications on less memory. -The minimum requirements have been provided below because it might not be -possible to support systems with less memory. - - -| Architecture | EuroLinux 6 | EuroLinux 7 | EuroLinux 8 | EuroLinux 9 | -|---|---|---|---|---| -| x86_64 | Minimum 1 GiB, 1 GiB per logical core is recommended | Minimum 1 GiB, 1 GiB per logical core is recommended | Minimum 1 GiB, 1.5 GiB per logical core is recommended | Minimum 1.5 GiB, 1.5 GiB per logical core is recommended | -| ARM64 | X | X | 2GiB | 2GiB | - - -## Maximum memory - -| Architecture | EuroLinux 6 | EuroLinux 7 | EuroLinux 8 | EuroLinux 9 | -|---|---|---|---|---| -| x86_64 | 12TB (64TB) | 12TB (64TB) | 24TB (64TB) | 48TB (64TB) | -| ARM64 | X | X | 1.5TB (256TB) | 1.5TB (256TB) | - - -## Minimum required disk space - -| EuroLinux 6 | EuroLinux 7 | EuroLinux 8 | EuroLinux 9 | -|---|---|---|---| -| 1Gib Minimum, 5GiB recommended | 5 GiB Minimum, 20 GiB recommended | 10 GiB Minimum, 20 GiB recommended | 10 GiB Minimum, 20 GiB recommended | - -## File systems and storage limits - -All filesystems in this document support ACL (Access Control List). - -### Ext3 - -Ext3 is mostly a legacy filesystem. Please use Ext4 or XFS. - -| Feature | EuroLinux 6 | EuroLinux 7 | EuroLinux 8 | EuroLinux 9 | -|---|---|---|---|---| -| Maximum File Size | 2TiB | 2TiB | 2TiB | 2TiB | -| Maximum Filesystem Size | 16TiB | 16TiB | 16TiB | 16TiB | -| Maximum Subdirectories or files in directory | 32000 | 32000 | 32000 | 32000 | -| Maximum symlink depth | 8 | 8 | 8 | 8 | - - -### Ext4 - -Ext4 is the default filesystem for EuroLinux 6. - -| Feature | EuroLinux 6 | EuroLinux 7 | EuroLinux 8 | EuroLinux 9 | -|---|---|---|---|---| -| Maximum File Size | 16TiB | 16TiB | 16TiB | 16TiB | -| Maximum Filesystem Size | 1EiB | 1EiB | 1EiB | 1EiB | -| Maximum Subdirectories or files in directory | 65000/unlimited with `dir_nlink` option | 65000/unlimited with `dir_nlink` option | 65000/unlimited with `dir_nlink` option | 65000/unlimited with `dir_nlink` option | -| Maximum symlink depth | 8 | 8 | 8 | 8 | - -### XFS - -XFS is the default filesystem for in EuroLinux 7, 8 and 9. - -| Feature | EuroLinux 6 | EuroLinux 7 | EuroLinux 8 | EuroLinux 9 | -|---|---|---|---|---| -| Maximum File Size | 8EiB | 8EiB | 8EiB | 8EiB | -| Maximum Filesystem Size | 16EiB | 16EiB | 1PiB | 1PiB | -| Maximum Subdirectories or files in directory | unlimited | unlimited | unlimited | unlimited | -| Maximum symlink depth | 8 | 8 | 8 | 8 | - - -### GFS2 - -Global Filesystem 2 is part of EuroLinux Resilient Storage and High -Availability add-ons that are freely available with subscription or free -available in the Open Core model. - -| Feature | EuroLinux 6 | EuroLinux 7 | EuroLinux 8 | EuroLinux 9 | -|---|---|---|---|---| -| Maximum File Size | 8EiB | 8EiB | 8EiB | 8EiB | -| Maximum Filesystem Size | 8EiB | 8EiB | 8EiB | 8EiB | -| Maximum Subdirectories or files in directory | unlimited | unlimited | unlimited | unlimited | -| Maximum symlink depth | unlimited | unlimited | unlimited | unlimited | - - -### Kernel and the most important components versions - -| Feature | EuroLinux 6 | EuroLinux 7 | EuroLinux 8 | EuroLinux 9 | -|---|---|---|---|---| -| Base Linux Kernel version | 2.6.34 | 3.10 | 4.18 | 5.14 | -| Package Management | RPM/Yum | RPM/Yum | RPM/Dnf, Flatpak| RPM/Dnf, Flatpak | -| System Init | Upstart | systemd | systemd | systemd | -| Base GNU C Library (glibc) Version | 2.12 | 2.17 | 2.28 | 2.34 | -| Base (First) GCC version | 4.4.7 | 4.8.5 | 8.2.1 (updated in newer versions) | 11.2.1 (might be updated in the future)| -| Base (First) LLVM version | X | X | 7.0.1 (updated in newer versions)| 13.0.0 (might be updated in the future) | -| Default Desktop | Gnome 2 | Gnome 3 | Gnome 3 | Gnome 40 | -| Office Suite | LibreOffice | LibreOffice | LibreOffice | LibreOffice | -| Default Web Browser | Firefox | Firefox | Firefox | Firefox | -| Default Mail Client | Thunderbird | Evolution or Thunderbird | Evolution or Thunderbird | Evolution or Thunderbird | diff --git a/docs/knowledge-base/eurolinux-vault-policy.md b/docs/knowledge-base/eurolinux-vault-policy.md deleted file mode 100644 index 980b9aa..0000000 --- a/docs/knowledge-base/eurolinux-vault-policy.md +++ /dev/null @@ -1,83 +0,0 @@ -# EuroLinux Vault and Archiving Policy - -## Vault - vault.cdn.euro-linux.com - -The idea of the vault is simple - it stores older or archived versions of the -software packages (mostly RPMs) and allow to create and maintain the -environment that requires old versions of the packages, specific libraries or -cannot or even must not be updated. - -!!! warning "Warning! Security considerations" - Due to their nature, the old versions of the software contain security - vulnerabilities. Many of them have ready and easy to use exploits. Using - unsupported versions of software is a dangerous practice, especially - when system is running in the public networks. - - -## Vault's initial and last version for minor releases - -From version 8.6 and 9.0 we decided that we will provide three versions for -each minor release (minor release is for example EuroLinux 8.6 -> 8.7 -> 8.8), -of the vault. The first one is the initial state of the release, then there is -current state (for living release), the third one has '-last' and it's the last -snapshot before a new minor release. This idea originated from community -feedback. For example in case of EuroLinux 8.7 (that in time of writing this -documentation is the latest minor release): - -- [https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7-init/](https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7-init/) - contains the initial state for 8.7 -- [https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7/](https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7/) - contains the current state of EuroLinux 8.7 -- [https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7-last/](https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7-last/) - **Will** contain the last snapshot for 8.7 before general availability of the - EuroLinux 8.8. It will be just a symbolic link to 8.7 that will mark the EOL - of this minor release. - -If there is no version with `-last` suffix it means that this version is a -newest minor release or the `-last` was not created. - -## Vault for the current version - -For your convince EuroLinux Vault also keeps the track of the current version -of the EuroLinux as a symbolic link to **the newest minor release**. The -symlinks are `8` for version 8 and `9` for version 9. - -- [https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8/](https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8/) -- [https://vault.cdn.euro-linux.com/legacy/eurolinux/9/9/](https://vault.cdn.euro-linux.com/legacy/eurolinux/9/9/) - -These repositories are updated regularly in the same manner as main/mirrors -repositories. - -## EuroLinux sources on vault.cdn.euro-linux.com - -We used to provide sources for EuroLinux on GitHub. Unfortunately, due to -GitHub's limitations, it wasn't as feasible in long run. Each source needed to -be repacked on the client system and source wasn't signed. - - -We decided to go with a friendlier and more standarized direction after -receiving feedback from the community and clients. Since version 8 we deliver -the sources as .src.rpms. It's a better solution in many ways, and the -advantages include: - -- All source packages (sources used to build EuroLinux and other Enterprise - Linux distributions) are securely signed cryptographically -- The src.rpm is native format for distributions that leverage RPMs. It allows - to use common toolchains like mock, rpmbuild, EuroLinux Gaia, Open Build - Service, Koji and much more -- It's easier to mirror repositories -- It's also easier to maintain - - -The source can be found at -[https://vault.cdn.euro-linux.com/sources/eurolinux/](https://vault.cdn.euro-linux.com/sources/eurolinux/). - - -## Bug tracker - -If you encounter any missing sources or problem with vault, please don't -hesitate to contact as via e-mail (support[at]euro-linux.com) or fill bug in -our [distro bug -tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc). If you -are our client you can contact us on the support site or with sale -representative. diff --git a/docs/knowledge-base/unable-to-find-requested-software.md b/docs/knowledge-base/unable-to-find-requested-software.md deleted file mode 100644 index e77fe21..0000000 --- a/docs/knowledge-base/unable-to-find-requested-software.md +++ /dev/null @@ -1,47 +0,0 @@ -# Unable to Find Requested Software - -## Environment - -- EuroLinux 7 -- EuroLinux 8 - -## Issue - -An error occurs during a search for missing components. A similar message is -shown by GNOME Software: - -> Unfortunately, the [...] you were searching for could not be found. Please -> see [...] for more information. - -### Missing Package - -The package you are searching for is not available in EuroLinux base -repositories. - -### Missing Codec - -The codec you are searching for is not available in EuroLinux base -repositories due to licensing reasons or patent encumbrance. - -### Missing Hardware Support - -A kernel module or a driver is not available in EuroLinux base repositories -due to licensing reasons that prohibit redistribution or is not yet in the -upstream Linux kernel. - -### Missing Font - -The font you are searching for is not available in EuroLinux base -repositories. - -### Missing MIME Support - -An application that supports operations on your file with its MIME type is not -available in EuroLinux base repositories due to them being supported -exclusively by a third party application or an application that runs only on a -platform different than EuroLinux. - -## Resolution - -If you would like to request for a certain component availability, please -[contact us](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc). diff --git a/docs/release-notes/8.10.md b/docs/release-notes/8.10.md deleted file mode 100644 index 2ea95a5..0000000 --- a/docs/release-notes/8.10.md +++ /dev/null @@ -1,91 +0,0 @@ -# EuroLinux 8.10 Release Notes - -This version’s code name is Bucharest - the capital of Romania, also known as “Paris of the East”. - -## Major changes in EuroLinux 8.10. - -## Security - -Key security-related highlights: - -- **OpenSSL** adds API-level protection for RSA PKCS #1 v1.5 decryption process. -- **libkcapi** delivers new functions and tools. -- **stunnel** provides many new SSL-related features. - -## Programming languages, web and database servers - -Later versions of the following application are now available: - -- **MariaDB 10.11** -- **nginx 1.24** -- **PHP 8.2** -- **PostgreSQL 16** -- **Python 3.12** - -The following components have been upgraded: - -- **Git LFS** to version 3.4.1 -- **Git** to version 2.43.0 - -## Compilers and development tools -## Updated performance tools and debuggers - -The following performance tools and debuggers have been updated: - -- **elfutils 0.190** -- **Valgrind 3.22** - -## Updated compiler toolsets - -The following compiler toolsets have been updated: - -- **GCC Toolset** 13 -- **Go Toolset** 1.21.0 -- **LLVM Toolset** 17.0.6 -- **Rust Toolset** 1.75.0 - -## Java implementations in EuroLinux 8 - -The EuroLinux 8 AppStream repository includes: - -- The `java-21-openjdk` packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit. -- The `java-11-openjdk` packages, which provide the OpenJDK 11 Java Runtime -Environment and the OpenJDK 11 Java Software Development Kit. -- The `java-17-openjdk` packages, which provide the OpenJDK 17 Java Runtime -Environment and the OpenJDK 17 Java Software Development Kit. -- The `java-1.8.0-openjdk` packages, which provide the OpenJDK 8 Java Runtime Environment and the OpenJDK 8 Java Software Development Kit. - -## Batteries repositories - -Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 3000 packages for each buildroot. - -## Known issues - -- The AppStream is is about 15GiB. After long discussion and feedback we - decided to keep it RHEL like way, where AppStream ISO is so full because it - can be used to mount repositories used for mirroring and system. We are - sorry but current state (mostly modularity) make things extremely hard to - manage without breaking user experience. -- Due to evolution of build process update for **SCAP Security Guide** are delayed now. They are going to be delivered soon. - -## Gaia build system - -We are currently using Gaia 3.0 and preparing 4.0 with branding kit. - -## Container and cloud images - -You can use the following publicly available images for EuroLinux 8: - -- [EuroLinux 8 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)](https://app.vagrantup.com/eurolinux-vagrant/boxes/eurolinux-8) -- [EuroLinux 8 Container on the Docker Hub](https://hub.docker.com/r/eurolinux/eurolinux-8) -- [EuroLinux 8 Container on the Quay.io](https://quay.io/repository/eurolinux/eurolinux-8) - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/) -- [Download EuroLinux ISO secondary download](https://fbi2.cdn.euro-linux.com/isos/) -- [EuroLinux universal migration scripts](https://github.com/EuroLinux/eurolinux-migration-scripts) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 8.10 Release Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.10_release_notes/index) parts of our release notes are loosely based on this document. diff --git a/docs/release-notes/8.3.md b/docs/release-notes/8.3.md deleted file mode 100644 index cc98bdb..0000000 --- a/docs/release-notes/8.3.md +++ /dev/null @@ -1,68 +0,0 @@ -# EuroLinux 8.3 Release Notes - -## Dynamic programming languages -Later versions of the following components are now available: - -- **Node.js 14** - module `nodejs` stream 14 -- **Perl 5.30** - module `perl` stream 5.30 -- **PHP 7.4** - module `php` stream 7.4 -- **Ruby 2.7** - module `ruby` stream 2.7 -- **Java 11 with OpenJDK** - new version of Open Java Development Kit (OpenJDK) - is now available as standalone rpms packages. - -## Web and Database servers - -Later versions of the following components are now available - -- **nginx 1.18** - module `nginx` stream 1.18 - -## Compiler toolsets - -The following compiler toolsets have been updated in EL 8.3: - -- **GCC Toolset 10** - software collection `gcc-toolset-10` -- **LLVM Toolset 10.0.1** - module `llvm-toolset` -- **Rust Toolset 1.45.2** - module `rust-toolset` -- **Go Toolset 1.14.7** - module `go-toolset` - - -## Security - -- EuroLinux 8.3 provides Ansible roles for automated deployments of - Policy-Based Decryption (PBD) solutions using **Clevis** and **Tang**. New - version of the package `rhel-system-roles` adds an Ansible role for - EuroLinux logging through **Rsyslog**. - -- The **USBGuard** framework now provides: - - its own SELinux policy - - notification for user in GUI - - multiple enhancement and bug fixes - -## General updates and improvements - -- **Git** was updated to version 2.27 -- **Squid** was updated to version 4.11 -- The **Tuned** system tuning tool has been rebased to version 2.13. This - version adds support for architecture-dependent tuning and ability to use - multiple include directives. - -### Identity Management - -The Rivest Cipher 4 (RC4) cipher suite, the default encryption type for users, -services, and trusts between Active Directory domains in an Active Directory -forest, has been deprecated in EuroLinux 8. For compatibility, this -release introduces cryptographic subpolicy named *AD-SUPPORT* to enable -support for this deprecated encryption type. The new subpolicy allows you to -use RC4 with EuroLinux IPA and SSSD Active Directory. - -### The web console - -The cockpit web console provides an option to switch between superuser -access and limited access from inside of a user session. - -### Desktop and graphics - -The **Direct Rendering Manager** (DRM) kernel graphics subsystem has been -rebased to upstream Linux kernel version 5.6. It provides a number of -enhancements over the previous versions, including support for new GPUs and -APUs. diff --git a/docs/release-notes/8.4-beta.md b/docs/release-notes/8.4-beta.md deleted file mode 100644 index 1581fed..0000000 --- a/docs/release-notes/8.4-beta.md +++ /dev/null @@ -1,87 +0,0 @@ -# EuroLinux Beta 8.4 Release Notes - -## Dynamic programming languages - -Later versions of the following components are now available: - -- **Python 3.9** - module `python39` stream 39. -- **SWIG 4.0** - module `swig` stream 4.0 - -## Web and Database servers - -Later versions of the following components are now available: - -- **Redis 6** - module `redis` stream 6 -- **PostgreSQL 13** - module `postgresql` stream 13 -- **MariaDB 10.5** - module `mariadb` stream 10.5 - -## Compiler Toolset - -The following compiler toolsets have been updated in EL 8.4: - -- **GCC Toolset 10** - software collection `gcc-toolset-10` -- **LLVM Toolset 11.0.0** - module `llvm-toolset` stream `rhel` -- **Rust Toolset 1.49.0** - module `rust-toolset` stream `rhel` -- **Go Toolset 1.15.7** - module `go-toolset` stream `rhel` - -There is new a module containing Persistent Memory Development Kit (PMDK): - -- **PMDK** - module `pmkd` stream `1_fileformat_v6` - -## Security - -- **IPsec VPN** provided by Libreswan now supports TCP encapsulation and - security labels for IKEv2. -- The **OpenSCAP** packages have been rebased to version 1.3.4, - **scap-security-guide** has been rebased to version 0.1.54. -- The **fapolicyd** framework now provides integrity checking, and the - RPM plugin now registers any system update handled by either the - YUM package manager or the RPM Package Manager. - -## General updates and improvements - -- EuroLinux 8.4 offers now **Subversion 1.14**. It's packed as the module - `subversion` with stream 1.14. The 1.10 stream remain the default module that - contains this package. -- New module `eclipse`. This module has Eclipse IDE but is commonly used - to build Java related packages. -- The *nmstate* packages provide a library and the *nmstatectl* command-line - utility to manage host network settings declaratively. Nmstate is a - network API for hosts and is fully supported in EuroLinux 8.4. The Multi-protocol - Label Switching (MPLS) is an in-kernel data-forwarding mechanism to route - traffic flow across enterprise networks. - -- The *iproute2* utility introduces three new traffic control actions. -- EuroLinux 8 kernel now uses **proactive compaction** that regularly - initiates memory compaction work before a request for an allocation is made. - Therefore, **latency for specific memory allocation requests is lowered**. -- EuroLinux 8 kernel has now a new implementation of a slab memory controller - for control groups. -- EuroLinux kernel now supports the time namespace feature. It allows changing - date and time inside the Linux containers. -- EuroLinux 8 kernel now supports the Error Detection and Correction (EDAC) in - 8th and 9th generation Intel Core Processors. -- There are changes in the pacemaker resource agent - it now can detect - failures asynchronously and inject a failure into Pacemaker - immediately without waiting for the following monitor interval. - -## Batteries - -Batteries repository contains packages that are needed to rebuild distribution -but are not included in upstream repositories. Right now, this repository -includes more than 2000 packages for each buildroot. - -Multiple batteries were updated for this release there including: - -- mdds -- meson -- spirv-headers -- fontforge -- multiple python packages -- modules for bootstrapping python39 - -## Additional resources - -- [Red Hat 8.4 - Release-Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.4_release_notes/index) - part of our release notes, are loosely based on this document. diff --git a/docs/release-notes/8.4.md b/docs/release-notes/8.4.md deleted file mode 100644 index 68ce1dd..0000000 --- a/docs/release-notes/8.4.md +++ /dev/null @@ -1,155 +0,0 @@ -# EuroLinux 8.4 Release Notes - -## Dynamic programming languages - -Later versions of the following components are now available: - -- **Python 3.9** - module `python39` stream 39. -- **SWIG 4.0** - module `swig` stream 4.0 - -## Web and Database servers - -Later versions of the following components are now available: - -- **Redis 6** - module `redis` stream 6 -- **PostgreSQL 13** - module `postgresql` stream 13 -- **MariaDB 10.5** - module `mariadb` stream 10.5 - -## Compiler Toolset - -The following compiler toolsets have been updated in EL 8.4: - -- **GCC Toolset 10** - software collection `gcc-toolset-10` -- **LLVM Toolset 11.0.0** - module `llvm-toolset` stream `rhel` -- **Rust Toolset 1.49.0** - module `rust-toolset` stream `rhel` -- **Go Toolset 1.15.7** - module `go-toolset` stream `rhel` - -There is new a module containing Persistent Memory Development Kit (PMDK): - -- **PMDK** - module `pmkd` stream `1_fileformat_v6` - -## Security - -- **IPsec VPN** provided by Libreswan now supports TCP encapsulation and - security labels for IKEv2. -- The **OpenSCAP** packages have been rebased to version 1.3.4, - **scap-security-guide** has been rebased to version 0.1.54. -- The **fapolicyd** framework now provides integrity checking, and the - RPM plugin now registers any system update handled by either the - YUM package manager or the RPM Package Manager. - -## General updates and improvements - -- EuroLinux 8.4 offers now **Subversion 1.14**. It's packed as the module - `subversion` with stream 1.14. The 1.10 stream remain the default module that - contains this package. -- New module `eclipse`. This module has Eclipse IDE but is commonly used - to build Java related packages. -- The *nmstate* packages provide a library and the *nmstatectl* command-line - utility to manage host network settings declaratively. Nmstate is a - network API for hosts and is fully supported in EuroLinux 8.4. The Multi-protocol - Label Switching (MPLS) is an in-kernel data-forwarding mechanism to route - traffic flow across enterprise networks. -- The *iproute2* utility introduces three new traffic control actions. -- EuroLinux 8 kernel now uses **proactive compaction** that regularly - initiates memory compaction work before a request for an allocation is made. - Therefore, **latency for specific memory allocation requests is lowered**. -- EuroLinux 8 kernel has now a new implementation of a slab memory controller - for control groups. -- EuroLinux kernel now supports the time namespace feature. It allows changing - date and time inside the Linux containers. -- EuroLinux 8 kernel now supports the Error Detection and Correction (EDAC) in - 8th and 9th generation Intel Core Processors. -- There are changes in the pacemaker resource agent - it now can detect - failures asynchronously and inject a failure into Pacemaker - immediately without waiting for the following monitor interval. - -## How to update from beta - -The beta repository has an updated package `el-release`, that contains production -repositories. Upgrading from EuroLinux 8.4 beta to 8.4 is as simple as running: - -``` -sudo yum update -y el-release -sudo yum update -y -``` - -## Branded packages - -Multiple packages have names changed due to branding, including: - -- redhat-backgrounds -> el-backgrounds -- redhat-indexhtml -> el-indexhtml -- redhat-logos -> el-logos -- redhat-logos-httpd -> el-logos-httpd -- redhat-logos-ipa -> el-logos-ipa -- redhat-release -> el-release -- redhat-release-eula -> el-release - we include EULA in release package - -All these packages have proper RPM `provides` declaration. - -The list of the packages that are changed due to branding includes, among the -others: - -- abrt -- anaconda -- anaconda-user-help -- anacondafirefox -- cloud-init -- crash -- httpd -- httpd -- initial-setup -- ipa -- liberport -- libguestfs -- libreoffice -- nginx -- opa-ff -- opa-fm -- openscap -- osinfo-db -- python3 -- redhat-rpm-config -- scap-security-guide -- skopeo -- sos -- subscription-manager -- thunderbird - - -## Batteries - -Batteries repository contains packages that are needed to rebuild distribution -but are not included in upstream repositories. Right now, this repository -contains more than 2000 packages for each buildroot. - -Multiple batteries were updated for this release there including: - -- mdds -- meson -- spirv-headers -- fontforge -- multiple python packages -- modules for bootstrapping python39 - -## Other notable changes - -- Because we changed the business model to open core, there is no longer a need - to use FBI (free base image) repositories as they are a subset of entire - repositories. FBI repos are removed from the `el-release` package. -- EuroLinux 8.4 is first version that can use `BaseOS-all`, `AppStream-all` and - `PowerTools-all` repositories that contain **all** packages produced during - build process. However, these packages are not supported by upstream or - EuroLinux. -- EuroLinux by default uses Docker Hub instead of Quay. - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/) -- [EuroLinux Public Request for Change and Bug Tracker](https://fbi.cdn.euro-linux.com/isos/) -- Roadmap for the project can be found in press notes available on our company - blog. [Press Notes](https://en.euro-linux.com/blog/). -- [Red Hat 8.4 - Release Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.4_release_notes/index) - parts of our release notes are loosely based on this document. diff --git a/docs/release-notes/8.5-arm64.md b/docs/release-notes/8.5-arm64.md deleted file mode 100644 index a565d13..0000000 --- a/docs/release-notes/8.5-arm64.md +++ /dev/null @@ -1,216 +0,0 @@ -# EuroLinux 8.5 Release Notes for ARM 64 (aarch64) - -EuroLinux 8.5 is the first version of EuroLinux that provides ARM 64 General -Availability. We have to update the Gaia build system in the customers' sites -for this release. This version code name is Tirana - the capital city of -Albania. - - -Below you can find the essential changes in EuroLinux 8.5 GA release for -`aarch64` architecture from EuroLinux 8.4 Beta for ARM64. - -## Dynamic programming languages, Web and Database servers - -New versions of the following components are now available: - -- **Ruby 3.0** - module `ruby` stream 3.0. -- **nginx 1.20** - module `nginx` stream 1.20 -- **Nodejs 16** - module `nodejs` stream 16 - -## Compiler Toolset - -The following compiler toolsets have been updated in EL 8.5: - -- **GCC Toolset 11** - software collection `gcc-toolset-11` -- **LLVM Toolset 12.0.1** - module `llvm-toolset` stream `rhel` -- **Rust Toolset 1.54.0** - module `rust-toolset` stream `rhel` -- **Go Toolset 1.16.7** - module `go-toolset` stream `rhel` - -## Security - -Most of the security features are connected to rebased/updated versions -of the packages. The most crucial security changes include: - -- rsyslog - now support OpenSSL -- OpenSCAP framework - added new profiles and multiple changes and enhancements -- cryptopolicies were updated - these system-wide cryptographic policies from this - version support different policies for different backends (scoped policies) - -## High Availability and Resilient Storage - -- High Availability and Resilient Storage modules are not supported on ARM64 - architecture. This is in line with upstream policy. - -## General updates and improvements - -Among the others, the following packages were updated and enhanced: - -- NetworkManager was updated to 1.32.10 from 1.30 -- OpenIMP was updated to 2.0.31 from 2.0.29 -- acel was updated to 3.1 from 2.8 -- bluez was updated to 5.56 from 5.52 -- chrony was updated to 4.1 from 3.5 -- cockpit was updated to version 251.1 from 238.2 -- crypto-policies was updated to 20210617 from 20210209 -- dnf was updated to 4.7.0 from 4.4.2 -- elfutils were updated to 0.185 from 0.182 -- freeipmi was updated to 1.6.8 from 1.6.6 -- gnutls was updated to 3.6.16 from 3.6.14 -- ibacm was updated to 35.0 from 32.0 -- libmodulemd updated to version 2.13.0 from 2.9.4 -- libreswan was updated to version 4.4 from 4.3 -- main GCC was updated to 8.5.0 from 8.4.1 -- opencryptoki updated to version 3.16.0 from 3.15.1 -- rsyslog was updated to version 8.2102.0 from 8.1911.0 -- sssd was updated to version 2.5.2 from 2.4.0 - - -## New packages - -Among the others, the following packages were added to this release: - -- adwaita-qt5 -- ansible-collection-microsoft-sql -- ansible-collection-redhat-rhel_mgmt -- ansible-freeipa-tests -- ansible-pcp -- compact-hwloc1 -- coreos-installer -- dotnet6.0 -- eth-tools -- java-17-openjdk* -- libadwaita-qt5 -- libcap-ng-python3 -- libcomps-devel is now included in PowerTools -- libvoikko-devel - is now included in PowerTools -- mobile-broadband-provider-info-devel is now included in PowerTools -- modulemd-tools -- pcm -- python3-cloud-what -- python3-libstoragemgmt -- python3-pyghmi -- qt5-qtserialbus-devel is now included in PowerTools -- resource-agents-paf (resilient storage) -- rsyslog-openssl -- samba-vfs-iouring -- sblim-gather -- sblim-gather-provider is now included in PowerTools -- sevctl -- stratisd-dracut -- tesseract -- tss2 -- udftools -- unicode-ucd-unihan -- xapian-core and its development packages are now included - - -## How to update from beta - -The beta repository has an updated package `el-release`, that contains -production repositories. Upgrading from EuroLinux 8.4 beta for ARM64 to 8.5 GA -is as simple as running: - -``` -sudo yum update -y el-release -sudo yum update -y -``` - -## Branded packages - -Multiple packages have names changed due to branding, including: - -- redhat-backgrounds -> el-backgrounds -- redhat-indexhtml -> el-indexhtml -- redhat-logos -> el-logos -- redhat-logos-httpd -> el-logos-httpd -- redhat-logos-ipa -> el-logos-ipa -- redhat-release -> el-release -- redhat-release-eula -> el-release - we include EULA in release package - -All these packages have proper RPM `provides` declaration. - -The list of the packages that are changed due to branding includes, among the -others: - -- abrt -- anaconda -- anaconda-user-help -- anacondafirefox -- cloud-init -- crash -- httpd -- initial-setup -- ipa -- libreport -- libguestfs -- libreoffice -- nginx -- opa-ff -- opa-fm -- openscap -- osinfo-db -- python3 -- redhat-rpm-config -- scap-security-guide -- skopeo -- sos -- subscription-manager -- thunderbird - - -## Batteries - -Batteries repository contains packages that are needed to rebuild the -distribution but are not included in upstream repositories. Right now, this -repository includes more than 2100 packages for each buildroot. - - -Multiple batteries were updated for this release there, including: - -- Bootstraps for rust-toolset -- Bootstraps for go-toolset - -## Gaia build system - -Gaia build system was updated in all interested parties' environments. We had -to select/order (with current long delivery times)/install hardware for -aarch64. We also changed the rebuild policy. None of our customers was -interested in using RHEL as a buildroot for their own Enterprise Linux forks. -It means that EuroLinux must be released faster, but at the very same time, we -can exclusively focus on providing EuroLinux in the early stages and thus -release it faster. We also decided that the next version will be released -asynchronously with more batch compilation. Batch compilation is scheduled for -EuroLinux 9.0 and 8.6. - - -## Other notable changes - -- EuroLinux 8.5 is the first version that can use `baseos-all`, `appstream-all` - and `powertools-all` repositories that contain **all** packages produced - during the build process. However, these packages are not supported by upstream - or EuroLinux. They are intended for developers to build their own solutions. -- EuroLinux reverted the previous changes that made DockerHub the default - container image registry. We observed other RHEL clones and decided that - keeping default might be more suitable for users. - -## Currently missing features - -### Container and cloud images - -We will work on broader support for cloud/container images based on EuroLinux -8.5 for arm including: - -- New container images on DockerHub and Quay.io -- AWS images for Graviton processors -- New Vagrant Boxes - note that HashiCorp does not provide an aarch64 build for - Vagrant. Still, Linux distributions like Fedora delivers it so, it's achievable - and usable. - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/) -- [Download EuroLinux ISO secondary download](https://fbi2.cdn.euro-linux.com/isos/) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 8.5 - Release Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.5_release_notes/index) - parts of our release notes are loosely based on this document. diff --git a/docs/release-notes/8.5.md b/docs/release-notes/8.5.md deleted file mode 100644 index 8608aa6..0000000 --- a/docs/release-notes/8.5.md +++ /dev/null @@ -1,212 +0,0 @@ -# EuroLinux 8.5 Release Notes - -EuroLinux 8.5 is the first minor release created in a continuous way. It was -also the first version when we deployed our engineer to remote sites (in most -cases virtual) to provide support for organisations that rebuild RHEL/EuroLinux -from sources with Gaia build system. This version code name is Tirana - the -capital city of Albania. - - -Below you can find the essential changes in EuroLinux 8.5 release for `x86_64` -architecture. The `aarch64` GA release is slightly delayed. Release notes for -`aarch64` will be provided in a separate document. - -## Dynamic programming languages, Web and Database servers - -New versions of the following components are now available: - -- **Ruby 3.0** - module `ruby` stream 3.0. -- **nginx 1.20** - module `nginx` stream 1.20 -- **Nodejs 16** - module `nodejs` stream 16 - -## Compiler Toolset - -The following compiler toolsets have been updated in EL 8.5: - -- **GCC Toolset 11** - software collection `gcc-toolset-11` -- **LLVM Toolset 12.0.1** - module `llvm-toolset` stream `rhel` -- **Rust Toolset 1.54.0** - module `rust-toolset` stream `rhel` -- **Go Toolset 1.16.7** - module `go-toolset` stream `rhel` - -## Security - -Most of the security features are connected to rebased/updated versions -of the packages. The most crucial security changes include: - -- rsyslog - now support OpenSSL -- OpenSCAP framework - added new profiles and multiple changes and enhancements -- cryptopolicies were updated - these system-wide cryptographic policies from this - version support different policies for different backends (scoped policies) - -## High Availability and Resilient Storage - -- cmirror was updated to version 2.03.12 -- corosync was updated to version 3.1.5 -- pacemaker was updated to version 2.1.0 -- resource-agents-paf package was added to HA an RS repositories - -## General updates and improvements - -Among the others, the following packages were updated and enhanced: - -- NetworkManager was updated to 1.32.10 from 1.30 -- OpenIMP was updated to 2.0.31 from 2.0.29 -- acel was updated to 3.1 from 2.8 -- bluez was updated to 5.56 from 5.52 -- chrony was updated to 4.1 from 3.5 -- cockpit was updated to version 251.1 from 238.2 -- crypto-policies was updated to 20210617 from 20210209 -- dnf was updated to 4.7.0 from 4.4.2 -- elfutils were updated to 0.185 from 0.182 -- freeipmi was updated to 1.6.8 from 1.6.6 -- gnutls was updated to 3.6.16 from 3.6.14 -- ibacm was updated to 35.0 from 32.0 -- libmodulemd updated to version 2.13.0 from 2.9.4 -- libreswan was updated to version 4.4 from 4.3 -- main GCC was updated to 8.5.0 from 8.4.1 -- opencryptoki updated to version 3.16.0 from 3.15.1 -- rsyslog was updated to version 8.2102.0 from 8.1911.0 -- sssd was updated to version 2.5.2 from 2.4.0 - - -## New packages - -Among the others, the following packages were added to this release: - -- adwaita-qt5 -- ansible-collection-microsoft-sql -- ansible-collection-redhat-rhel_mgmt -- ansible-freeipa-tests -- ansible-pcp -- compact-hwloc1 -- coreos-installer -- dotnet-build-reference-packages -- dotnet-sdk-3.1-source-built-artifacts -- dotnet-sdk-5.0-source-built-artifacts -- dotnet5.0-build-reference-packages -- eth-tools -- flatpak (i686) included in PowerTools -- java-17-openjdk* -- libadwaita-qt5 -- libcap-ng-python3 -- libcomps-devel is now included in PowerTools -- libvoikko-devel - is now included in PowerTools -- lpsolve (i686) is now included in PowerTools -- mobile-broadband-provider-info-devel is now included in PowerTools -- modulemd-tools -- pcm -- python3-cloud-what -- python3-libstoragemgmt -- python3-pillow (i686) is now included in PowerTools -- python3-pyghmi -- qt5-qtserialbus-devel is now included in PowerTools -- resource-agents-paf (resilient storage) -- rsyslog-openssl -- samba-vfs-iouring -- sblim-gather -- sblim-gather-provider is now included in PowerTools -- sevctl -- stratisd-dracut -- tesseract -- tss2 -- udftools -- unicode-ucd-unihan -- xapian-core and its development packages are now included - - -## How to update from beta - -The beta repository has an updated package `el-release`, that contains production -repositories. Upgrading from EuroLinux 8.5 beta to 8.5 is as simple as running: - -``` -sudo yum update -y el-release -sudo yum update -y -``` - -## Branded packages - -Multiple packages have names changed due to branding, including: - -- redhat-backgrounds -> el-backgrounds -- redhat-indexhtml -> el-indexhtml -- redhat-logos -> el-logos -- redhat-logos-httpd -> el-logos-httpd -- redhat-logos-ipa -> el-logos-ipa -- redhat-release -> el-release -- redhat-release-eula -> el-release - we include EULA in release package - -All these packages have proper RPM `provides` declaration. - -The list of the packages that are changed due to branding includes, among the -others: - -- abrt -- anaconda -- anaconda-user-help -- anacondafirefox -- cloud-init -- crash -- httpd -- initial-setup -- ipa -- libreport -- libguestfs -- libreoffice -- nginx -- opa-ff -- opa-fm -- openscap -- osinfo-db -- python3 -- redhat-rpm-config -- scap-security-guide -- skopeo -- sos -- subscription-manager -- thunderbird - - -## Batteries - -Batteries repository contains packages that are needed to rebuild the -distribution but are not included in upstream repositories. Right now, this -repository includes more than 2100 packages for each buildroot. - -Multiple batteries were updated for this release there including: - -- Bootstraps for rust-toolset -- Bootstraps for go-toolset - -## Gaia build system - -Gaia build system was updated in all interested parties' environments. We also -changed the rebuild policy. None of our customers was interested in using RHEL -as a buildroot for their own Enterprise Linux forks. It means that EuroLinux -must be released faster, but at the very same time, we can exclusively focus on -providing EuroLinux in the early stages and thus release it faster. We also -decided that the next version will be released asynchronously with more batch -compilation. Synchronization was especially problematic in this release as -there was a lot of holidays in Poland. - - -## Other notable changes - -- EuroLinux 8.5 is the first version that can use `baseos-all`, `appstream-all` - and `powertools-all`,`high-availability-all`, `resilient-storage-all` - repositories that contain **all** packages produced during the build process. - However, these packages are not supported by upstream or EuroLinux. They are - intended for developers to build they own solutions. -- EuroLinux reverted the previous changes that made DockerHub the default - container image registry. We observed other RHEL clones and decided that - keeping default might be more suitable for users. - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- A roadmap for the project can be found in press notes available on our company - blog. [EuroLinux Roadmap For Q4 2021](https://en.euro-linux.com/blog/eurolinux-roadmap-for-q4-2021/). -- [Red Hat 8.5 - Release Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.5_release_notes/index) - parts of our release notes are loosely based on this document. diff --git a/docs/release-notes/8.6-beta.md b/docs/release-notes/8.6-beta.md deleted file mode 100644 index fdc9f87..0000000 --- a/docs/release-notes/8.6-beta.md +++ /dev/null @@ -1,250 +0,0 @@ -# EuroLinux 8.6 Beta Release Notes - -EuroLinux 8.6 is the first minor release with a full-fledged beta available -before the General Availability of the upstream version (RHEL 8.6). The Beta -version will allow releasing EuroLinux 8.6 GA faster. We decided to publish -x86_64 and corresponding x86_64, i686 open buildroots for this beta. The GA -version will release all supported arches simultaneously. - -This version’s code name is Kyiv - the capital city of Ukraine. - -## Dynamic programming languages, Web and Database servers - -New versions of the following components are now available: - -- New: **PHP 8.0** - module `php` stream `8.0` -- New: **Perl 5.32** - module `perl` stream `5.32` -- New: **Maven 3.5** - module `maven` stream `3.5` -- New: **Log4j:2** - module `log4j` stream `2` -- **PostgreSQL 10** - module `postgresql` stream `10` was rebased to PostgreSQL 10.19 from 10.17 -- **PMDK 1_fileformat_v6** - module `pmdk` stream `1_fileformat_v6` was rebased to version 1.11.1 from 1.9.2 - -## Compiler Toolset - -The following compiler toolsets have been updated in EL 8.6: - -- **Rust Toolset** - module `rust-toolset:rhel8` was updated to version 1.58.1 from 1.54.0 -- **LLVM Toolset** - module `llvm-toolset:rhel8` was updated to version 13.0.1 from 12.0.1 -- **Go Lang Toolset** - module `go-toolset:rhel8` that provides the Go Lang stack was updated to version 1.17.7 from 1.16.12 -- **GCC-Toolset-11** - toolset `gcc-toolset-11` has multiple updates and was rebased to version 11.2 - -## Containers - -- **New Containers Tools module `containers-tools` stream `4.0`** -- Containers tools module `containers-tools` stream `rhel` was heavily updated - -## Security - -Most of the security features are connected to rebased/updated versions -of the packages. The most crucial security changes include: - -- `semodule` now supports the `--checksum` option for verifying SELinux policy modules versions -- OpenSSL 3.0 support in opencryptoki, among others -- OpenSCAP supports OSBuild Blueprint as a remediation type and several command-line option improvements -- SCAP Security Guide - `authselect` for rules that harden PAM stack and more precise `xccdf_org.ssgproject.content_enable_fips_mode` rule implementation among others - -## General updates and improvements - -Among the others, the following packages were updated and enhanced: - -- Git was updated to version 2.31 from 2.27 -- 389-ds-base (Directory Server) was updated to 1.4.3.28 -- Libreswan was updated to 4.5 -- PCP was rebased to version 5.3.5-8 -- OpenSCAP was updated to 1.3.6 -- grafana and grafana containers were rebased to the newer versions -- SCAP Security Guide was updated to 0.1.60 -- authselect was updated to 1.2.2 -- bind was updated to 9.16.23 -- fapolicyd was updated to 1.1 -- libcap was updated to 2.48 -- lsvpd was updated to 1.7.13 -- opencryptoki was updated to 3.17.0 -- pcsc-lite was updated to 1.9.5 -- powerpc-utils was updated to 1.3.9 -- samba was updated to 4.15.5 - -## New packages - -Among the others, the following packages were added to `os` repository for this release: - -- aardvark-dns -- adwaita-icon-theme-devel -- ansible-core -- ansible-test -- bind9.16 -- bind9.16-chroot -- bind9.16-devel -- bind9.16-dnssec-utils -- bind9.16-doc -- bind9.16-libs -- bind9.16-license -- bind9.16-utils -- coreos-installer-dracut -- fdo-admin-cli -- fdo-client -- fdo-init -- fdo-manufacturing-server -- fdo-owner-cli -- fdo-owner-onboarding-server -- fdo-rendezvous-server -- fence-virtd-cpg -- fwupd-devel -- gdm-devel -- gdm-pam-extensions-devel -- glibc-gconv-extra -- gnome-shell-extension-classification-banner -- gnome-shell-extension-dash-to-panel -- greenboot-default-health-checks -- hostapd -- libgcab1-devel -- libguestfs-appliance -- libnbd-bash-completion -- libpinyin-devel -- libqrtr-glib -- libselinux-static -- libss-devel -- libtpms -- libtpms-devel -- libuser-devel -- libvirt-wireshark -- libxmlb-devel -- lmdb-devel -- maven-openjdk17 -- nbdkit-gzip-filter -- nbdkit-nbd-plugin -- nbdkit-tar-filter -- nbdkit-tar-plugin -- nbdkit-tmpdisk-plugin -- netavark -- NetworkManager-initscripts-updown -- nftables-devel -- nginx-mod-devel -- nmstate-devel -- nmstate-libs -- osbuild-composer-dnf-json -- osbuild-luks2 -- osbuild-lvm2 -- pcp-pmda-denki -- pcp-pmda-mongodb -- php-pecl-xdebug3 -- multiple perl-\* that are in perl 5.32 modules -- prometheus-jmx-exporter-openjdk11 -- python38-resolvelib -- python3-bind9.16 -- python3-dnf-plugin-modulesync -- qatlib-tests -- qatzip -- qatzip-devel -- qatzip-libs -- qemu-kvm-docs -- qemu-kvm-hw-usbredir -- qemu-kvm-ui-opengl -- qemu-kvm-ui-spice -- rig -- rsyslog-mmfields -- rust-std-static-wasm32-wasi -- shadow-utils-subid -- shadow-utils-subid-devel -- sshpass -- stress-ng -- swtpm -- swtpm-devel -- swtpm-libs -- swtpm-tools -- swtpm-tools-pkcs11 -- virt-v2v-bash-completion -- virt-v2v-man-pages-ja -- virt-v2v-man-pages-uk -- webrtc-audio-processing-devel -- weldr-client - - -## Branded packages - -Multiple packages have names changed due to branding, including: - -- redhat-backgrounds -> el-backgrounds -- redhat-indexhtml -> el-indexhtml -- redhat-logos -> el-logos -- redhat-logos-httpd -> el-logos-httpd -- redhat-logos-ipa -> el-logos-ipa -- redhat-release -> el-release -- redhat-release-eula -> el-release - we include EULA in release package - -All these packages have proper RPM `provides` declaration. - -The list of the packages that are changed due to branding includes, among the -others: - -- abrt -- anaconda -- anaconda-user-help -- cloud-init -- crash -- firefox -- httpd -- initial-setup -- ipa -- libguestfs -- libreoffice -- libreport -- nginx -- opa-ff -- opa-fm -- openscap -- osinfo-db -- python3 -- redhat-rpm-config -- scap-security-guide -- skopeo -- sos -- subscription-manager -- thunderbird - -## Removed packages - -The following packages were removed: - -- rhc and related packages -- insights-client and related packages - -## Batteries - -Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 2500 packages for each buildroot. - -Multiple batteries were updated for this release including: - -- Bootstraps for Perl 5.32 -- Updated mesa batteries -- Smaller packages that broke buildroot - - -About 420 packages were updated for x86_64 buildroot alone. - - -## Gaia build system - -We are still working on Gaia 3.0. - -## Known bugs - -- This is a Beta release! -- openscap will probably not work -- There is ambiguity when it comes to SCAP profiles naming that will be resolved for - 8.6 GA [GitHub Bug Report](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc/issues/2) -- After installation, the first kernel might report EuroLinux 8.5 -> updated - kernel should report 8.6 beta. -- evolution-mapi was wrongly linked against older samba. The solution is `yum reinstall -y evolution-mapi` as we updated the package in-place -- dhcp-client was wrongly linked against older bind-export-libs. The solution is `yum reinstall -y dhcp-client` as we updated the package in-place - - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 8.6 Beta - Release Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-beta/html/8.6_release_notes/index) - parts of our release notes are loosely based on this document. diff --git a/docs/release-notes/8.6.md b/docs/release-notes/8.6.md deleted file mode 100644 index e1a28bd..0000000 --- a/docs/release-notes/8.6.md +++ /dev/null @@ -1,236 +0,0 @@ -# EuroLinux 8.6 Release Notes - -Since EuroLinux 8.6 was first minor release with a full-fledged beta available -before the General Availability of the upstream version (RHEL 8.6), the Beta -version allowed us to release EuroLinux 8.6 faster. - -This version’s code name is Kyiv - the capital city of Ukraine. - -## Dynamic programming languages, Web and Database servers - -New versions of the following components are now available: - -- New: **PHP 8.0** - module `php` stream `8.0` -- New: **Perl 5.32** - module `perl` stream `5.32` -- New: **Maven 3.5** - module `maven` stream `3.5` -- New: **Log4j:2** - module `log4j` stream `2` -- **PostgreSQL 10** - module `postgresql` stream `10` was rebased to PostgreSQL 10.19 from 10.17 -- **PMDK 1_fileformat_v6** - module `pmdk` stream `1_fileformat_v6` was rebased to version 1.11.1 from 1.9.2 - -## Compiler Toolset - -The following compiler toolsets have been updated in EL 8.6: - -- **Rust Toolset** - module `rust-toolset:rhel8` was updated to version 1.58.1 from 1.54.0 -- **LLVM Toolset** - module `llvm-toolset:rhel8` was updated to version 13.0.1 from 12.0.1 -- **Go Lang Toolset** - module `go-toolset:rhel8` that provides the Go Lang stack was updated to version 1.17.7 from 1.16.12 -- **GCC-Toolset-11** - toolset `gcc-toolset-11` has multiple updates and was rebased to version 11.2 - -## Containers - -- **New Containers Tools module `containers-tools` stream `4.0`** -- Containers tools module `containers-tools` stream `rhel` was heavily updated - -## Security - -Most of the security features are connected to rebased/updated versions -of the packages. The most crucial security changes include: - -- `semodule` now supports the `--checksum` option for verifying SELinux policy modules versions -- OpenSSL 3.0 support in opencryptoki, among others -- OpenSCAP supports OSBuild Blueprint as a remediation type and several command-line option improvements -- SCAP Security Guide - `authselect` for rules that harden PAM stack and more precise `xccdf_org.ssgproject.content_enable_fips_mode` rule implementation among others - -## General updates and improvements - -Among the others, the following packages were updated and enhanced: - -- Git was updated to version 2.31 from 2.27 -- 389-ds-base (Directory Server) was updated to 1.4.3.28 -- Libreswan was updated to 4.5 -- PCP was rebased to version 5.3.5-8 -- OpenSCAP was updated to 1.3.6 -- grafana and grafana containers were rebased to the newer versions -- SCAP Security Guide was updated to 0.1.60 -- authselect was updated to 1.2.2 -- bind was updated to 9.16.23 -- fapolicyd was updated to 1.1 -- libcap was updated to 2.48 -- lsvpd was updated to 1.7.13 -- opencryptoki was updated to 3.17.0 -- pcsc-lite was updated to 1.9.5 -- powerpc-utils was updated to 1.3.9 -- samba was updated to 4.15.5 - -## New packages - -Among the others, the following packages were added to `os` repository for this release: - -- aardvark-dns -- adwaita-icon-theme-devel -- ansible-core -- ansible-test -- bind9.16 -- bind9.16-chroot -- bind9.16-devel -- bind9.16-dnssec-utils -- bind9.16-doc -- bind9.16-libs -- bind9.16-license -- bind9.16-utils -- coreos-installer-dracut -- fdo-admin-cli -- fdo-client -- fdo-init -- fdo-manufacturing-server -- fdo-owner-cli -- fdo-owner-onboarding-server -- fdo-rendezvous-server -- fence-virtd-cpg -- fwupd-devel -- gdm-devel -- gdm-pam-extensions-devel -- glibc-gconv-extra -- gnome-shell-extension-classification-banner -- gnome-shell-extension-dash-to-panel -- greenboot-default-health-checks -- hostapd -- libgcab1-devel -- libguestfs-appliance -- libnbd-bash-completion -- libpinyin-devel -- libqrtr-glib -- libselinux-static -- libss-devel -- libtpms -- libtpms-devel -- libuser-devel -- libvirt-wireshark -- libxmlb-devel -- lmdb-devel -- maven-openjdk17 -- nbdkit-gzip-filter -- nbdkit-nbd-plugin -- nbdkit-tar-filter -- nbdkit-tar-plugin -- nbdkit-tmpdisk-plugin -- netavark -- NetworkManager-initscripts-updown -- nftables-devel -- nginx-mod-devel -- nmstate-devel -- nmstate-libs -- osbuild-composer-dnf-json -- osbuild-luks2 -- osbuild-lvm2 -- pcp-pmda-denki -- pcp-pmda-mongodb -- php-pecl-xdebug3 -- multiple perl-\* that are in perl 5.32 modules -- prometheus-jmx-exporter-openjdk11 -- python38-resolvelib -- python3-bind9.16 -- python3-dnf-plugin-modulesync -- qatlib-tests -- qatzip -- qatzip-devel -- qatzip-libs -- qemu-kvm-docs -- qemu-kvm-hw-usbredir -- qemu-kvm-ui-opengl -- qemu-kvm-ui-spice -- rig -- rsyslog-mmfields -- rust-std-static-wasm32-wasi -- shadow-utils-subid -- shadow-utils-subid-devel -- sshpass -- stress-ng -- swtpm -- swtpm-devel -- swtpm-libs -- swtpm-tools -- swtpm-tools-pkcs11 -- virt-v2v-bash-completion -- virt-v2v-man-pages-ja -- virt-v2v-man-pages-uk -- webrtc-audio-processing-devel -- weldr-client - - -## Branded packages - -Multiple packages have names changed due to branding, including: - -- redhat-backgrounds -> el-backgrounds -- redhat-indexhtml -> el-indexhtml -- redhat-logos -> el-logos -- redhat-logos-httpd -> el-logos-httpd -- redhat-logos-ipa -> el-logos-ipa -- redhat-release -> el-release -- redhat-release-eula -> el-release - we include EULA in release package - -All these packages have proper RPM `provides` declaration. - -The list of the packages that are changed due to branding includes, among the -others: - -- abrt -- anaconda -- anaconda-user-help -- cloud-init -- crash -- firefox -- httpd -- initial-setup -- ipa -- libguestfs -- libreoffice -- libreport -- nginx -- opa-ff -- opa-fm -- openscap -- osinfo-db -- python3 -- redhat-rpm-config -- scap-security-guide -- skopeo -- sos -- subscription-manager -- thunderbird - -## Removed packages - -The following packages were removed: - -- rhc and related packages -- insights-client and related packages - -## Batteries - -Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 2500 packages for each buildroot. - -Multiple batteries were updated for this release including: - -- Bootstraps for Perl 5.32 -- Updated mesa batteries -- Smaller packages that broke buildroot - - -About 420 packages were updated for x86_64 buildroot alone. - - -## Gaia build system - -We are still working on Gaia 3.0. - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/), [(secondary download link)](https://fbi2.cdn.euro-linux.com/isos/) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 8.6 Release - Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.6_release_notes/index) - parts of our release notes are loosely based on this document. diff --git a/docs/release-notes/8.7-beta.md b/docs/release-notes/8.7-beta.md deleted file mode 100644 index 91a86db..0000000 --- a/docs/release-notes/8.7-beta.md +++ /dev/null @@ -1,234 +0,0 @@ -# EuroLinux 8.7 Beta Release Notes - -EuroLinux 8.7 is the first beta release for x86_64 and aarch64 beta published -concurrently. The Beta version will allow us to provide EuroLinux 8.7 faster. - -This version’s code name is Brussels - the capital city of Belgium and the -heart of European Union. - - -!!! info "Older modules removed" - In this beta we noticed that a lot of modules were obsoleted or removed, we - are waiting for GA version to confirm that there will be a mechanism that - should allow smoother migration between modules or that these modules will - be available. - -## Dynamic programming languages, Web and Database servers - -New versions of the following components are now available: - -- New: **Ruby 3.1** - module `ruby` stream `3.1` -- New: **Mercurial 6.2** - module `mercurial` stream `6.2` -- New: **Node.js 18** - module `nodejs` stream `18` -- **Redis 6** - module `redis:6` was updated from version 6.0 to 6.2.7 - -## Compiler Toolset - -The following compiler toolsets have been updated in EL 8.7: - -- New: **GCC-Toolset-12** - toolset `gcc-toolset-12` -- New: **Dotnet 7.0** - Dotnet 7.0 packages -- **Rust Toolset** - module `rust-toolset:rhel8` was updated to version 1.62.1 from 1.58.1 -- **LLVM Toolset** - module `llvm-toolset:rhel8` was updated to version 14.0.0 from 13.0.1 -- **Go Lang Toolset** - module `go-toolset:rhel8` that provides the Go Lang stack was updated to version 1.18.4 from 1.17.7 - -## Containers - -- Containers tools module `containers-tools` stream `rhel` was heavily updated -- Containers tools module `containers-tools` stream `4.0` was heavily updated -- Containers tools module `containers-tools` stream `3.0` was mostly removed -- Containers tools module `containers-tools` stream `2.0` was mostly removed - -## Security - -Most of the security features are connected to rebased/updated versions of the -packages. The most crucial security changes include: - -- **NSS no longer support RSA keys shorter than 1023 bits and won't work with such keys.** -- Updated SCAP security guilde with new `sysctl`, `pampwquality`, `grub2` rules. -- fapolicyd rebased to 1.1.3 - - -## General updates and improvements - -Among the others, the following packages were updated and enhanced: - -- QT5 toolchain and utilities were updated from 5.15.2 to 5.15.3 -- Opencryptoki was updated to version 3.18.0 from 3.17.0 -- Libva was updated to version 2.13.0 from 2.5.0 -- Chrony was updated to version 4.2 from 4.1 -- Unbound was updated to version 1.16.2 from 1.7.3 -- Fapolicyd rebased to 1.1.3 from 1.1 -- Mariadb-java-client rebased to version 2.7.1 from 2.2.5 -- open-vm-tools rebased to 12.0.5 from 11.3.5 - -## New packages - -Among the others, the following packages were added to `os` repository for this -release: - -- Multiple qt5-docs packages -- aardvark-dns -- anaconda-widgets-devel -- aspnetcore-runtime-7.0 -- aspnetcore-targeting-pack-7.0 -- dotnet-apphost-pack-7.0 -- dotnet-hostfxr-7.0 -- dotnet-sdk-7.0-source-built-artifacts -- egl-utils -- frr-selinux -- fstrm-utils -- gcc-plugin-annobin -- gcc-toolset-12 -- gcc-toolset-12-annobin-annocheck -- gcc-toolset-12-annobin-docs -- gcc-toolset-12-annobin-plugin-gcc -- gcc-toolset-12-binutils -- gcc-toolset-12-binutils-devel -- gcc-toolset-12-binutils-gold -- gcc-toolset-12-build -- gcc-toolset-12-dwz -- gcc-toolset-12-gcc -- gcc-toolset-12-gcc-c++ -- gcc-toolset-12-gcc-gfortran -- gcc-toolset-12-gcc-plugin-devel -- gcc-toolset-12-gdb -- gcc-toolset-12-libasan-devel -- gcc-toolset-12-libatomic-devel -- gcc-toolset-12-libgccjit -- gcc-toolset-12-libgccjit-devel -- gcc-toolset-12-libgccjit-docs -- gcc-toolset-12-libitm-devel -- gcc-toolset-12-liblsan-devel -- gcc-toolset-12-libstdc++-devel -- gcc-toolset-12-libstdc++-docs -- gcc-toolset-12-libtsan-devel -- gcc-toolset-12-libubsan-devel -- gcc-toolset-12-runtime -- gtk3-devel-docs -- idm-pki-acme -- idm-pki-base -- idm-pki-base-java -- idm-pki-ca -- idm-pki-kra -- idm-pki-symkey -- libasan8 -- libdhash-devel -- libestr-devel -- liblockfile -- libstoragemgmt-nfs-plugin -- libverto-libev -- make-latest (currently make43) -- make43 -- make43-devel -- open-vm-tools-salt-minion -- openslp-devel -- pam_wrapper -- poppler-qt5 -- python-ldb-devel-common -- python-sphinx-latex -- python3-babeltrace -- python3-cairo-devel -- python3-idm-pki -- python3-lasso -- python3-ldb-devel -- python3-talloc-devel -- redhat-cloud-client-configuration -- ssd-idp -- systemd-resolved **(technology preview)** -- tuned-profiles-postgresql -- xmlstarlet -- xxhash -- yara - - -## Branded packages - -Multiple packages have names changed due to branding, including: - -- redhat-backgrounds -> el-backgrounds -- redhat-indexhtml -> el-indexhtml -- redhat-logos -> el-logos -- redhat-logos-httpd -> el-logos-httpd -- redhat-logos-ipa -> el-logos-ipa -- redhat-release -> el-release -- redhat-release-eula -> el-release - we include EULA in release package - -All these packages have proper RPM `provides` declaration. - -The list of the packages that are changed due to branding includes, among the -others: - -- abrt -- anaconda -- anaconda-user-help -- cloud-init -- crash -- firefox -- httpd -- initial-setup -- ipa -- libguestfs -- libreoffice -- libreport -- nginx -- opa-ff -- opa-fm -- openscap -- osinfo-db -- python3 -- redhat-rpm-config -- scap-security-guide -- sos -- subscription-manager -- thunderbird - -## Removed packages - -The following packages were removed: - -- rhc and related packages -- insights-client and related packages - -## Maven 3.8 - -**Maven 3.8** - module `maven` stream `3.8` was not introduced in this beta. -Currently upstream didn't provide modules metadata for -javapackages-tools:202201 and javapackages-bootstrap:202201 that are required to -build Maven 3.8. The default profile for javapackages-tools:202201 is available -in the Red Hat CodeReady-Builder repository but there is no modular metadata or -RPMs. - -**We manage to create this module in not reproducible way** and in worst case -scenario we will provide specially crafted VM to build it for orgs that are -using Gaia Build System. We decided not to put this module as we are rebuilding -EuroLinux multiple times and not reproducible rebuilds are next to impossible to -maintain. - - -## Batteries - -Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 2500 packages for each buildroot. - -About 30 packages were updated for x86_64 buildroot. - -## Gaia build system - -We are currently using Gaia 3.0 alpha. - -## EuroLinux 9.1 beta - -As we released a brand new EuroLinux Desktop we are working on better test -integrations with EuroLinux 9. This process takes time. We should deliver -EuroLinux 9.1 beta before EuroLinux 9.1 GA. - - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/), [(secondary download link)](https://fbi2.cdn.euro-linux.com/isos/) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 8.7 beta Release - Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-beta/html/8.7_release_notes/index) - parts of our release notes are loosely based on this document. diff --git a/docs/release-notes/8.7.md b/docs/release-notes/8.7.md deleted file mode 100644 index 2c3254b..0000000 --- a/docs/release-notes/8.7.md +++ /dev/null @@ -1,220 +0,0 @@ -# EuroLinux 8.7 Release Notes - -This version’s code name is Brussels - the capital city of Belgium and the -heart of European Union. - -## Dynamic programming languages, Web and Database servers - -New versions of the following components are now available: - -- New: **Ruby 3.1** - module `ruby` stream `3.1` -- New: **Mercurial 6.2** - module `mercurial` stream `6.2` -- New: **Node.js 18** - module `nodejs` stream `18` -- **Redis 6** - module `redis:6` was updated from version 6.0 to 6.2.7 - -## Compiler Toolset - -The following compiler toolsets have been updated in EL 8.6: - -- New: **GCC-Toolset-12** - toolset `gcc-toolset-12` -- New: **Dotnet 7.0** - Dotnet 7.0 packages -- **Rust Toolset** - module `rust-toolset:rhel8` was updated to version 1.62.1 from 1.58.1 -- **LLVM Toolset** - module `llvm-toolset:rhel8` was updated to version 14.0.0 from 13.0.1 -- **Go Lang Toolset** - module `go-toolset:rhel8` that provides the Go Lang stack was updated to version 1.18.4 from 1.17.7 - -## Containers - -- Containers tools module `containers-tools` stream `rhel` was heavily updated -- Containers tools module `containers-tools` stream `4.0` was heavily updated - -## Security - -Most of the security features are connected to rebased/updated versions of the -packages. The most crucial security changes include: - -- **NSS no longer support RSA keys shorter than 1023 bits and won't work with such keys.** -- Updated SCAP security guilde with new `sysctl`, `pampwquality`, `grub2` rules. -- fapolicyd rebased to 1.1.3 - - -## General updates and improvements - -Among the others, the following packages were updated and enhanced: - -- QT5 toolchain and utilities were updated from 5.15.2 to 5.15.3 -- Opencryptoki was updated to version 3.18.0 from 3.17.0 -- Libva was updated to version 2.13.0 from 2.5.0 -- Chrony was updated to version 4.2 from 4.1 -- Unbound was updated to version 1.16.2 from 1.7.3 -- Fapolicyd rebased to 1.1.3 from 1.1 -- Mariadb-java-client rebased to version 2.7.1 from 2.2.5 -- open-vm-tools rebased to 12.0.5 from 11.3.5 - -## New packages - -Among the others, the following packages were added to `os` repository for this -release: - -- Multiple qt5-docs packages -- aardvark-dns -- anaconda-widgets-devel -- aspnetcore-runtime-7.0 -- aspnetcore-targeting-pack-7.0 -- dotnet-apphost-pack-7.0 -- dotnet-hostfxr-7.0 -- dotnet-sdk-7.0-source-built-artifacts -- egl-utils -- frr-selinux -- fstrm-utils -- gcc-plugin-annobin -- gcc-toolset-12 -- gcc-toolset-12-annobin-annocheck -- gcc-toolset-12-annobin-docs -- gcc-toolset-12-annobin-plugin-gcc -- gcc-toolset-12-binutils -- gcc-toolset-12-binutils-devel -- gcc-toolset-12-binutils-gold -- gcc-toolset-12-build -- gcc-toolset-12-dwz -- gcc-toolset-12-gcc -- gcc-toolset-12-gcc-c++ -- gcc-toolset-12-gcc-gfortran -- gcc-toolset-12-gcc-plugin-devel -- gcc-toolset-12-gdb -- gcc-toolset-12-libasan-devel -- gcc-toolset-12-libatomic-devel -- gcc-toolset-12-libgccjit -- gcc-toolset-12-libgccjit-devel -- gcc-toolset-12-libgccjit-docs -- gcc-toolset-12-libitm-devel -- gcc-toolset-12-liblsan-devel -- gcc-toolset-12-libstdc++-devel -- gcc-toolset-12-libstdc++-docs -- gcc-toolset-12-libtsan-devel -- gcc-toolset-12-libubsan-devel -- gcc-toolset-12-runtime -- gtk3-devel-docs -- idm-pki-acme -- idm-pki-base -- idm-pki-base-java -- idm-pki-ca -- idm-pki-kra -- idm-pki-symkey -- libasan8 -- libdhash-devel -- libestr-devel -- liblockfile -- libstoragemgmt-nfs-plugin -- libverto-libev -- make-latest (currently make43) -- make43 -- make43-devel -- open-vm-tools-salt-minion -- openslp-devel -- pam_wrapper -- poppler-qt5 -- python-ldb-devel-common -- python-sphinx-latex -- python3-babeltrace -- python3-cairo-devel -- python3-idm-pki -- python3-lasso -- python3-ldb-devel -- python3-talloc-devel -- redhat-cloud-client-configuration -- ssd-idp -- systemd-resolved **(technology preview)** -- tuned-profiles-postgresql -- xmlstarlet -- xxhash -- yara - - -## Branded packages - -Multiple packages have names changed due to branding, including: - -- redhat-backgrounds -> el-backgrounds -- redhat-indexhtml -> el-indexhtml -- redhat-logos -> el-logos -- redhat-logos-httpd -> el-logos-httpd -- redhat-logos-ipa -> el-logos-ipa -- redhat-release -> el-release -- redhat-release-eula -> el-release - we include EULA in release package - -All these packages have proper RPM `provides` declaration. - -The list of the packages that are changed due to branding includes, among the -others: - -- abrt -- anaconda -- anaconda-user-help -- cloud-init -- crash -- firefox -- httpd -- initial-setup -- ipa -- libguestfs -- libreoffice -- libreport -- nginx -- opa-ff -- opa-fm -- openscap -- osinfo-db -- python3 -- redhat-rpm-config -- scap-security-guide -- sos -- subscription-manager -- thunderbird - -## Removed packages - -The following packages were removed: - -- rhc and related packages -- insights-client and related packages - -## New vault policy - -With feedback from community we decided to add the `-last` to the EuroLinux 8.6 -vaulted versions that represents the last snapshot of the EuroLinux 8.6. More -about vault policy [here](../knowledge-base/eurolinux-vault-policy.md). - -## Smaller base repositories - -Until now we keeped all produced **versions of the same package** in base -repositories. Upstream policy is to keep only selected versions and the rest in -the vaults. It is reasonable as saves a internet bandwith, and put much less -stress on the mirroring sites. From EuroLinux 8.7 we will aim to use upstream -schema for packages. - -Older packages are still available at EuroLinux Vault. - -## Installation from baseurl with .treeinfo - -EuroLinux 8.7 is first release that officially supports the installation from -URL leveraging .treeinfo files. - -## Batteries - -Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 2500 packages for each buildroot. - -About 30 packages were updated for x86_64 buildroot. - -## Gaia build system - -Gaia build system is still in the 3.0 alpha. - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/), [(secondary download link)](https://fbi2.cdn.euro-linux.com/isos/) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 8.7 Release - Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/8.7_release_notes/index) - parts of our release notes are loosely based on this document. diff --git a/docs/release-notes/8.8-beta.md b/docs/release-notes/8.8-beta.md deleted file mode 100644 index ddaf0ff..0000000 --- a/docs/release-notes/8.8-beta.md +++ /dev/null @@ -1,233 +0,0 @@ -# EuroLinux 8.8 Beta Release Notes - -This version’s code name is Sofia - the capital city of Bulgaria. The Beta -version will allow us to provide EuroLinux 8.8 faster. - -Major changes in EuroLinux 8.8 Beta: - -## Dynamic programming languages, Web and Database servers - -New versions of the following components are now available: - -- New: **Python 3.11** - available as regular RPM packages -- New: **Nginx 1.22** - available as a module -- New: **PostgreSQL 15** - available as a module -- New: **Swig 4.1** - available as a module -- New: **jaxb 4** - available as a module - -The following components have been upgraded: - -- **Git** 2.39.1 -- **Git LFS** 3.2.0 - -## Updated performance monitoring tools - -The following performance monitoring tools have been updated in EuroLinux 8.8: - -- **PCP** 5.3.7 -- **Grafana** 7.5.15 - -## Kernel version - -EuroLinux 8.8 Beta is distributed with the kernel version 4.18.0-477. - -## Compilers and development tools - -The following performance tools and debuggers have been updated in EuroLinux 8.8: - -- **Valgrind** 3.19 -- **SystemTap** 4.8 -- **Dyninst** 12.1.0 -- **elfutils** 0.188 - -## Compiler Toolset - -The following compiler toolsets have been updated in EL 8.8: - -- GCC Toolset 12 -- LLVM Toolset 15.0.7 -- Rust Toolset 1.66 -- Go Toolset 1.19.4 - -## Security - -The most crucial security changes include: - -- The Libreswan IPsec implementation was rebased to version 4.9. -- Rsyslog TLS-encrypted logging now supports multiple CA files. -- The systemd-socket-proxyd service now runs in its own SELinux domain due to an update to the SELinux policy. -- The OpenSCAP security compliance utility was rebased to version 1.3.7. -- With the fapolicyd software framework, you can now filter the RPM database. - -## General updates and improvements - -- Podman now supports events for auditing. -- The Container Tools packages have been updated. -- The Aardvark and Netavark network stack now supports custom DNS server selection. -- Podman Quadlet is now available as a Technology Preview. -- The *container-tools:3.0* module stream has been deprecated. -- The CNI network stack has been deprecated. - -## New packages - -Among the others, the following packages were added to `os` repository for this -release: - -- bind9.16-dnssec-utils -- cifs-utils-devel -- ecj -- ipxe-bootimgs-aarch64 -- libnetapi -- libsndfile-utils -- libtraceevent -- libtraceevent-devel -- libtracefs -- libtracefs-devel -- libwpe -- libwpe-devel -- libxdp-devel -- libxdp-static -- lmdb -- mpdecimal -- mpdecimal++ -- mpdecimal-devel -- mpdecimal-doc -- nss_wrapper-libs -- perl-Mail-AuthenticationResults -- procps-ng-devel -- python3-bind9.16 -- python3-scour -- python3.11 -- python3.11-Cython -- python3.11-PyMySQL -- python3.11-attrs -- python3.11-cffi -- python3.11-charset-normalizer -- python3.11-cryptography -- python3.11-debug -- python3.11-devel -- python3.11-idle -- python3.11-idna -- python3.11-iniconfig -- python3.11-libs -- python3.11-lxml -- python3.11-mod_wsgi -- python3.11-numpy -- python3.11-numpy-f2py -- python3.11-packaging -- python3.11-pip -- python3.11-pip-wheel -- python3.11-pluggy -- python3.11-ply -- python3.11-psycopg2 -- python3.11-psycopg2-debug -- python3.11-psycopg2-tests -- python3.11-pybind11 -- python3.11-pybind11-devel -- python3.11-pycparser -- python3.11-pyparsing -- python3.11-pysocks -- python3.11-pytest -- python3.11-pyyaml -- python3.11-requests -- python3.11-rpm-macros -- python3.11-scipy -- python3.11-semantic_version -- python3.11-setuptools -- python3.11-setuptools-rust -- python3.11-setuptools-wheel -- python3.11-six -- python3.11-test -- python3.11-tkinter -- python3.11-urllib3 -- python3.11-wheel -- python3.11-wheel-wheel -- rtla -- samba-dc-libs -- samba-dcerpc -- texlive-translator -- tomcat -- tomcat-admin-webapps -- tomcat-docs-webapp -- tomcat-el-3.0-api -- tomcat-jsp-2.3-api -- tomcat-lib -- tomcat-servlet-4.0-api -- tomcat-webapps -- tpm2-pkcs11 -- tpm2-pkcs11-tools -- wpebackend-fdo -- wpebackend-fdo-devel - -## Branded packages - -Multiple packages have names changed due to branding, including: - -- redhat-backgrounds -> el-backgrounds -- redhat-indexhtml -> el-indexhtml -- redhat-logos -> el-logos -- redhat-logos-httpd -> el-logos-httpd -- redhat-logos-ipa -> el-logos-ipa -- redhat-release -> el-release -- redhat-release-eula -> el-release - we include EULA in release package - -All these packages have proper RPM `provides` declaration. - -The list of the packages that are changed due to branding includes, among others: - -- abrt -- anaconda -- anaconda-user-help -- cloud-init -- crash -- firefox -- httpd -- initial-setup -- ipa -- libguestfs -- libreoffice -- libreport -- nginx -- opa-ff -- opa-fm -- openscap -- osinfo-db -- python3 -- redhat-rpm-config -- scap-security-guide -- sos -- subscription-manager -- thunderbird - -## Removed packages - -The following packages were removed: - -- rhc and related packages -- insights-client and related packages - -## Batteries - -Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 3000 packages for each buildroot. - -About 150 packages were updated for x86_64 buildroot alone. We also added some -of the packages (like python3.11 for i686) to the publicly available **open -buildroots**. - -## Known issues - -- Due to compose error LibreOffice is available in the older version than one - available in the RHEL 8.8 beta. The new version will land in main repos shortly. - -## Gaia build system - -We are currently using Gaia 3.0 beta. - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/beta) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 8.8 beta Release - Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-beta/html/8.8_release_notes/index) (parts of our release notes are loosely based on this document). diff --git a/docs/release-notes/8.8.md b/docs/release-notes/8.8.md deleted file mode 100644 index bf55cdf..0000000 --- a/docs/release-notes/8.8.md +++ /dev/null @@ -1,233 +0,0 @@ -# EuroLinux 8.8 Release Notes - -This version’s code name is Sofia - the capital city of Bulgaria. - -Major changes in EuroLinux 8.8: - -## Dynamic programming languages, Web and Database servers - -New versions of the following components are now available: - -- New: **Python 3.11** - available as regular RPM packages -- New: **Nginx 1.22** - available as a module -- New: **PostgreSQL 15** - available as a module -- New: **Swig 4.1** - available as a module -- New: **jaxb 4** - available as a module - -The following components have been upgraded: - -- **Git** 2.39.1 -- **Git LFS** 3.2.0 - -## Updated performance monitoring tools - -The following performance monitoring tools have been updated in EuroLinux 8.8: - -- **PCP** 5.3.7 -- **Grafana** 7.5.15 - -## Kernel version - -EuroLinux 8.8 is distributed with the kernel version 4.18.0-477. - -## Compilers and development tools - -The following performance tools and debuggers have been updated in EuroLinux 8.8: - -- **Valgrind** 3.19 -- **SystemTap** 4.8 -- **Dyninst** 12.1.0 -- **elfutils** 0.188 - -## Compiler Toolset - -The following compiler toolsets have been updated in EL 8.8: - -- GCC Toolset 12 -- LLVM Toolset 15.0.7 -- Rust Toolset 1.66 -- Go Toolset 1.19.4 - -## Security - -The most crucial security changes include: - -- The Libreswan IPsec implementation was rebased to version 4.9. -- Rsyslog TLS-encrypted logging now supports multiple CA files. -- The systemd-socket-proxyd service now runs in its own SELinux domain due to an update to the SELinux policy. -- The OpenSCAP security compliance utility was rebased to version 1.3.7. -- With the fapolicyd software framework, you can now filter the RPM database. - -## General updates and improvements - -- Podman now supports events for auditing. -- The Container Tools packages have been updated. -- The Aardvark and Netavark network stack now supports custom DNS server selection. -- Podman Quadlet is now available as a Technology Preview. -- The *container-tools:3.0* module stream has been deprecated. -- The CNI network stack has been deprecated. - -## New packages - -Among the others, the following packages were added to `os` repository for this -release: - -- bind9.16-dnssec-utils -- cifs-utils-devel -- ecj -- ipxe-bootimgs-aarch64 -- libnetapi -- libsndfile-utils -- libtraceevent -- libtraceevent-devel -- libtracefs -- libtracefs-devel -- libwpe -- libwpe-devel -- libxdp-devel -- libxdp-static -- lmdb -- mpdecimal -- mpdecimal++ -- mpdecimal-devel -- mpdecimal-doc -- nss_wrapper-libs -- perl-Mail-AuthenticationResults -- procps-ng-devel -- python3-bind9.16 -- python3-scour -- python3.11 -- python3.11-Cython -- python3.11-PyMySQL -- python3.11-attrs -- python3.11-cffi -- python3.11-charset-normalizer -- python3.11-cryptography -- python3.11-debug -- python3.11-devel -- python3.11-idle -- python3.11-idna -- python3.11-iniconfig -- python3.11-libs -- python3.11-lxml -- python3.11-mod_wsgi -- python3.11-numpy -- python3.11-numpy-f2py -- python3.11-packaging -- python3.11-pip -- python3.11-pip-wheel -- python3.11-pluggy -- python3.11-ply -- python3.11-psycopg2 -- python3.11-psycopg2-debug -- python3.11-psycopg2-tests -- python3.11-pybind11 -- python3.11-pybind11-devel -- python3.11-pycparser -- python3.11-pyparsing -- python3.11-pysocks -- python3.11-pytest -- python3.11-pyyaml -- python3.11-requests -- python3.11-rpm-macros -- python3.11-scipy -- python3.11-semantic_version -- python3.11-setuptools -- python3.11-setuptools-rust -- python3.11-setuptools-wheel -- python3.11-six -- python3.11-test -- python3.11-tkinter -- python3.11-urllib3 -- python3.11-wheel -- python3.11-wheel-wheel -- rtla -- samba-dc-libs -- samba-dcerpc -- texlive-translator -- tomcat -- tomcat-admin-webapps -- tomcat-docs-webapp -- tomcat-el-3.0-api -- tomcat-jsp-2.3-api -- tomcat-lib -- tomcat-servlet-4.0-api -- tomcat-webapps -- tpm2-pkcs11 -- tpm2-pkcs11-tools -- wpebackend-fdo -- wpebackend-fdo-devel - -## Branded packages - -Multiple packages have names changed due to branding, including: - -- redhat-backgrounds -> el-backgrounds -- redhat-indexhtml -> el-indexhtml -- redhat-logos -> el-logos -- redhat-logos-httpd -> el-logos-httpd -- redhat-logos-ipa -> el-logos-ipa -- redhat-release -> el-release -- redhat-release-eula -> el-release - we include EULA in release package - -All these packages have proper RPM `provides` declaration. - -The list of the packages that are changed due to branding includes, among others: - -- abrt -- anaconda -- anaconda-user-help -- cloud-init -- crash -- firefox -- httpd -- initial-setup -- ipa -- libguestfs -- libreoffice -- libreport -- nginx -- opa-ff -- opa-fm -- openscap -- osinfo-db -- python3 -- redhat-rpm-config -- scap-security-guide -- sos -- subscription-manager -- thunderbird - -## Removed packages - -The following packages were removed: - -- rhc and related packages -- insights-client and related packages - -## Batteries - -Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 3000 packages for each buildroot. - -About 150 packages were updated for x86_64 buildroot alone. We also added some -of the packages (like python3.11 for i686) to the publicly available **open -buildroots**. - -## Known issues - -- Java packages requires build with portable java version. We need a little bit more time - to compile it in reproducible manner. - -## Gaia build system - -We are currently using Gaia 3.0 beta. - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 8.8 Release Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.8_release_notes/index) - this is expected link to final Red Hat release notes. As we release our notes - before Red Hat this link in moment of publication might be dead. diff --git a/docs/release-notes/8.9-beta.md b/docs/release-notes/8.9-beta.md deleted file mode 100644 index 2b1669f..0000000 --- a/docs/release-notes/8.9-beta.md +++ /dev/null @@ -1,190 +0,0 @@ -# EuroLinux 8.9 Beta Release Notes - -This version’s code name is Monako - a sovereign city-state in France. The Beta -version will allow us to provide EuroLinux 8.9 safer and faster. - -Major changes in EuroLinux 8.9 Beta: - -## Kernel version - -EuroLinux 8.9 Beta is distributed with the kernel version 4.18.0-513. - -## New versions - Programming languages, Web and Database servers - -New versions of the following components are now available: - -- New: **NodeJS 20** - available as a module -- New: **GCC Toolset 13** - availabile as a software collection -- New: **Java-21-OpenJDK** - available as rpms - -## Compilers and development tools - -The following performance tools and debuggers have been updated in EuroLinux 8.9 beta: - -- **Valgrind** 3.21 from 3.19 -- **SystemTap** 4.9 from 4.8 -- **elfutils** 0.189 from 0.188 - -## Compiler Toolset - -The following compiler toolsets have been updated in EL 8.9 beta: - -- LLVM Toolset 16.0.6 - from 15.0.7 -- Rust Toolset 1.71.1 from 1.66 -- Go Toolset 1.20.6 from 1.19.4 - -## Updated performance monitoring tools - -The following performance monitoring tools have been updated in EuroLinux 8.9: - -- **Grafana** 9.2.10 - -## Security - -The most crucial security changes include: - -- Kernel 4.18.0-513.1.1 support AutoIRBS. -- OpenSCAP rebased to 1.3.8 -- SCAP ANSSI-BP-028 security profiles updated to version 2.0 -- Perl module HTTP::Tiny verifies SSL/TLS certificate by default. - -## General updates and improvements - -- Postfix now supports SRV DNS records. -- iproute updated to version 6.2.0 -- sos updated to version 4.6 - -## New packages - -Among the others, the following packages were added to `os` repositories for this -release: - -- avahi-tools -- gcc-toolset-13 -- gcc-toolset-13-annobin-annocheck -- gcc-toolset-13-annobin-docs -- gcc-toolset-13-annobin-plugin-gcc -- gcc-toolset-13-binutils -- gcc-toolset-13-binutils-devel -- gcc-toolset-13-binutils-gold -- gcc-toolset-13-dwz -- gcc-toolset-13-gcc -- gcc-toolset-13-gcc-c++ -- gcc-toolset-13-gcc-gfortran -- gcc-toolset-13-gcc-plugin-annobin -- gcc-toolset-13-gcc-plugin-devel -- gcc-toolset-13-gdb -- gcc-toolset-13-libasan-devel -- gcc-toolset-13-libatomic-devel -- gcc-toolset-13-libgccjit -- gcc-toolset-13-libgccjit-devel -- gcc-toolset-13-libitm-devel -- gcc-toolset-13-liblsan-devel -- gcc-toolset-13-libquadmath-devel -- gcc-toolset-13-libstdc++-devel -- gcc-toolset-13-libstdc++-docs -- gcc-toolset-13-libtsan-devel -- gcc-toolset-13-libubsan-devel -- gcc-toolset-13-offload-nvptx -- gcc-toolset-13-runtime -- gtk-vnc2-devel -- gvnc-devel -- java-21-openjdk -- java-21-openjdk-demo -- java-21-openjdk-demo-fastdebug -- java-21-openjdk-demo-slowdebug -- java-21-openjdk-devel -- java-21-openjdk-devel-fastdebug -- java-21-openjdk-devel-slowdebug -- java-21-openjdk-fastdebug -- java-21-openjdk-headless -- java-21-openjdk-headless-fastdebug -- java-21-openjdk-headless-slowdebug -- java-21-openjdk-javadoc -- java-21-openjdk-javadoc-zip -- java-21-openjdk-jmods -- java-21-openjdk-jmods-fastdebug -- java-21-openjdk-jmods-slowdebug -- java-21-openjdk-slowdebug -- java-21-openjdk-src -- java-21-openjdk-src-fastdebug -- java-21-openjdk-src-slowdebug -- java-21-openjdk-static-libs -- java-21-openjdk-static-libs-fastdebug -- java-21-openjdk-static-libs-slowdebug -- libvma-utils -- marisa-devel -- python3-tomli -- unifdef - -## Branded packages - -Multiple packages have names changed due to branding, including: - -- redhat-backgrounds -> el-backgrounds -- redhat-indexhtml -> el-indexhtml -- redhat-logos -> el-logos -- redhat-logos-httpd -> el-logos-httpd -- redhat-logos-ipa -> el-logos-ipa -- redhat-release -> el-release -- redhat-release-eula -> el-release - we include EULA in release package - -All these packages have proper RPM `provides` declaration. - -The list of the packages that are changed due to branding includes, among others: - -- abrt -- anaconda -- anaconda-user-help -- cloud-init -- crash -- firefox -- httpd -- initial-setup -- ipa -- libguestfs -- libreoffice -- libreport -- nginx -- opa-ff -- opa-fm -- openscap -- osinfo-db -- python3 -- redhat-rpm-config -- scap-security-guide -- sos -- subscription-manager -- thunderbird - -## Removed packages - -The following packages were removed: - -- rhc and related packages -- insights-client and related packages - -## Batteries - -Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 3000 packages for each buildroot. - -About 50 packages were updated for x86_64 buildroot alone. We also added some -of the packages (like python3.11 for i686) to the publicly available **open -buildroots**. - -## Known issues - -- No known issues. - -## Gaia build system - -We are currently using Gaia 3.0 and preparing 4.0 with branding kit. - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/beta) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 8.9 beta Release - Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-beta/html/8.9_release_notes/index) (parts of our release notes are loosely based on this document). diff --git a/docs/release-notes/8.9.md b/docs/release-notes/8.9.md deleted file mode 100644 index c249e33..0000000 --- a/docs/release-notes/8.9.md +++ /dev/null @@ -1,196 +0,0 @@ -# EuroLinux 8.9 Release Notes - -This version’s code name is Monako - a sovereign city-state in France. - - -Major changes in EuroLinux 8.9: - -## Kernel version - -EuroLinux 8.9 is distributed with the kernel version 4.18.0-513. - -## New versions - Programming languages, Web and Database servers - -New versions of the following components are now available: - -- New: **NodeJS 20** - available as a module -- New: **GCC Toolset 13** - availabile as a software collection -- New: **Java-21-OpenJDK** - available as rpms - -## Compilers and development tools - -The following performance tools and debuggers have been updated in EuroLinux 8.9: - -- **Valgrind** 3.21 from 3.19 -- **SystemTap** 4.9 from 4.8 -- **elfutils** 0.189 from 0.188 - -## Compiler Toolset - -The following compiler toolsets have been updated in EL 8.9: - -- LLVM Toolset 16.0.6 - from 15.0.7 -- Rust Toolset 1.71.1 from 1.66 -- Go Toolset 1.20.6 from 1.19.4 - -## Updated performance monitoring tools - -The following performance monitoring tools have been updated in EuroLinux 8.9: - -- **Grafana** 9.2.10 - -## Security - -The most crucial security changes include: - -- Kernel 4.18.0-513.1.1 support AutoIRBS. -- OpenSCAP rebased to 1.3.8 -- SCAP ANSSI-BP-028 security profiles updated to version 2.0 -- Perl module HTTP::Tiny verifies SSL/TLS certificate by default. - -## General updates and improvements - -- Postfix now supports SRV DNS records. -- iproute updated to version 6.2.0 -- sos updated to version 4.6 - -## New packages - -Among the others, the following packages were added to `os` repositories for this -release: - -- avahi-tools -- gcc-toolset-13 -- gcc-toolset-13-annobin-annocheck -- gcc-toolset-13-annobin-docs -- gcc-toolset-13-annobin-plugin-gcc -- gcc-toolset-13-binutils -- gcc-toolset-13-binutils-devel -- gcc-toolset-13-binutils-gold -- gcc-toolset-13-dwz -- gcc-toolset-13-gcc -- gcc-toolset-13-gcc-c++ -- gcc-toolset-13-gcc-gfortran -- gcc-toolset-13-gcc-plugin-annobin -- gcc-toolset-13-gcc-plugin-devel -- gcc-toolset-13-gdb -- gcc-toolset-13-libasan-devel -- gcc-toolset-13-libatomic-devel -- gcc-toolset-13-libgccjit -- gcc-toolset-13-libgccjit-devel -- gcc-toolset-13-libitm-devel -- gcc-toolset-13-liblsan-devel -- gcc-toolset-13-libquadmath-devel -- gcc-toolset-13-libstdc++-devel -- gcc-toolset-13-libstdc++-docs -- gcc-toolset-13-libtsan-devel -- gcc-toolset-13-libubsan-devel -- gcc-toolset-13-offload-nvptx -- gcc-toolset-13-runtime -- gtk-vnc2-devel -- gvnc-devel -- java-21-openjdk -- java-21-openjdk-demo -- java-21-openjdk-demo-fastdebug -- java-21-openjdk-demo-slowdebug -- java-21-openjdk-devel -- java-21-openjdk-devel-fastdebug -- java-21-openjdk-devel-slowdebug -- java-21-openjdk-fastdebug -- java-21-openjdk-headless -- java-21-openjdk-headless-fastdebug -- java-21-openjdk-headless-slowdebug -- java-21-openjdk-javadoc -- java-21-openjdk-javadoc-zip -- java-21-openjdk-jmods -- java-21-openjdk-jmods-fastdebug -- java-21-openjdk-jmods-slowdebug -- java-21-openjdk-slowdebug -- java-21-openjdk-src -- java-21-openjdk-src-fastdebug -- java-21-openjdk-src-slowdebug -- java-21-openjdk-static-libs -- java-21-openjdk-static-libs-fastdebug -- java-21-openjdk-static-libs-slowdebug -- kmod-redhat-ahci -- libvma-utils -- marisa-devel -- python3-tomli -- unifdef - -## Branded packages - -Multiple packages have names changed due to branding, including: - -- redhat-backgrounds -> el-backgrounds -- redhat-indexhtml -> el-indexhtml -- redhat-logos -> el-logos -- redhat-logos-httpd -> el-logos-httpd -- redhat-logos-ipa -> el-logos-ipa -- redhat-release -> el-release -- redhat-release-eula -> el-release - we include EULA in release package - -All these packages have proper RPM `provides` declaration. - -The list of the packages that are changed due to branding includes, among others: - -- abrt -- anaconda -- anaconda-user-help -- cloud-init -- crash -- firefox -- httpd -- initial-setup -- ipa -- libguestfs -- libreoffice -- libreport -- nginx -- opa-ff -- opa-fm -- openscap -- osinfo-db -- python3 -- redhat-rpm-config -- scap-security-guide -- sos -- subscription-manager -- thunderbird - -## Removed packages - -The following packages were removed: - -- rhc and related packages -- insights-client and related packages - -## Batteries - -Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 3000 packages for each buildroot. - -About 50 packages were updated for x86_64 buildroot alone. We also added some -of the packages (like python3.11 for i686) to the publicly available **open -buildroots**. - -## Known issues - -- The AppStream is is about 15GiB. After long discussion and feedback we - decided to keep it RHEL like way, where AppStream ISO is so full because it - can be used to mount repositories used for mirroring and system. We are - sorry but current state (mostly modularity) make things extremely hard to - manage without breaking user experience. -- There is huge problem with packages of java-21 not being reproducible. - -## Gaia build system - -We are currently using Gaia 3.0 and preparing 4.0 with branding kit. - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 8.9 Release - Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.9_release_notes/index) (parts of our release notes are loosely based on this document). diff --git a/docs/release-notes/9.0-beta.md b/docs/release-notes/9.0-beta.md deleted file mode 100644 index 00151c6..0000000 --- a/docs/release-notes/9.0-beta.md +++ /dev/null @@ -1,221 +0,0 @@ -# EuroLinux 9 Beta Release Notes - -## Technical changes between EuroLinux 9 and 8 - -### Installer and image creation - -In EuroLinux 9.0 you can now use a standalone smart card to both authenticate -yourself and gain additional privileges via `sudo`. - -For the typical cases of installing EuroLinux with a medium such as a disk -interactively a Quality of Life tweak has been implemented: the Anaconda -installer will now automatically activate a network connection if applicable -(will try to obtain an address via DHCP). - -You can now optionally permit a password-based root login via SSH or completely -lock the root account in any case. (While the former is not recommended due to -security and disabled in EuroLinux 9 by default, there are valid use cases -which we support with this single easy switch) - -### Administrative tools - -If you want to rename a network interface, it is recommended that you use -systemd link files. Check `man 5 systemd.link` for more information. - -Alternatively udev rules may be used. If you need to use the `ifcfg` tool, -please install the `initscripts` package first since it is not installed by -default. - -### Security - -EuroLinux 9 provides OpenSSL version 3.0.0. Among other things, the concept of -*providers* has been added, which means that different programs can use -different security algorithms depending on their needs. You can imagine a -situation where you have implemented solutions where one needs to use FIPS -mode, while others need to maintain compliance with less secure policies. - -This new version comes with a few security-related implications. The `TLS-1.3` -protocol requires that a `PKCS#11` token supports `raw RSA` or `RSA-PSS` -signatures. - -If this is applicable to your scenario, please configure your software to use -TLS up to `TLS-1.2`. Additionally please edit the file -`/etc/pki/tls/openssl.cnf` and add this snippet at the very end of the -`[ crypto_policy ]` section: - -``` -SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384 -MaxProtocol = TLSv1.2 -``` - -### Developer tools - -Some of the newest and most reliable technology stacks for developers are -available in the repositories. These include: - -- Ant 1.10 -- GCC 11.2 -- Git 2.31 -- Go 1.17.5 -- LLVM 13 -- Maven 3.6.3 -- NodeJS 16 -- OpenJDK 17.0.1 -- PHP 8.0 -- Perl 5.32 -- Python 3.9 -- Ruby 3.0 -- Rust 1.56 -- SVN 1.14 - -The EuroLinux 9 platform ships glibc 2.34, which will provide 10 years of -business-class stability support and the same amount of software binary -interface compatibility time. As a result, programs written today will work the -same way 10 years from now. - -### Web servers and database engines - -The following software is now available in our repositories: - -HTTP servers: - -- Apache HTTPD 2.4 -- nginx 1.20 - -Proxy servers: - -- Squid 5.1 -- Varnish Cache 6.5 - -Database engines: - -- MariaDB 10.5.12 -- MySQL 8.0 -- PostgreSQL 13 -- Redis 6.2.6 - -### Security Policies - SCAP Security Guide - -The SCAP Security Guide has been updated to version 0.1.57 and made a number of changes -from the counterpart we provide in EuroLinux 8: - -- Removed deprecated SCAP 1.2 source data streams. -- Removed Bash profile remediation scripts to encourage more secure practices. -- Although references for EuroLinux 8 have been left in place, the current - package is designed for EuroLinux 9 - please kindly use packages for older - releases if you need to check them for security policies. - -### GNOME 40 - -GNOME has been updated to GNOME 40, a major step forward from EuroLinux 8's -GNOME 3.32.2 , which includes many new features. - -GNOME 40 includes a new and improved style, including the user interface, icons -and desktop, The *Activities* look and feel provides a better experience when -working, launching applications and arranging your personal workspace - -workspaces are now arranged horizontally and the window overview and -application grid are available vertically. - -Many *Quality of Life* improvements have also been added, including: - -- running the software using a separate graphics card by right-clicking and - selecting the appropriate option -- The ability to mute notifications by selecting *Do not disturb*, which will - appear as a separate button in the notification -- Each screen can use a different refresh rate -- The *Activities* program allows you to group application icons into folders - using a *drag-and-drop* method -- provide the ability to fractionally scale the display - - -## Notable changes - -EuroLinux 9 provides refreshed and updated versions of the following packages: - -- m4 was updated from version `1.4.18` to `1.4.19` -- xdp-tools was updated from version `1.1.1` to `1.2.1` -- openchange was updated from `2.3` (version) `37` (release) to `2.3` (version) `38` (release) -- tigervnc was updated from `1.11.0` (version) `20` (release) to `1.11.0` (version) `21` (release) - -**We expect updated versions of these packages to be available in the GA -version of RHEL.** - -## Known issues - - -- Dotnet is not available at the moment. ~~Fix will arrive next week (the first - week of march)~~ **Update: It's planned for release with ARM Beta** -- We are waiting for Secure Boot; as you can see here - https://github.com/rhboot/shim-review/issues, it is a long process -- ~~There is only minimal ISO. AppStream complete ISO be published next week (the - first week of April)~~ **Update: AppStream ISO is available.** -- SCAP is not usable. A fix will arrive with EuroLinux 9 beta for ARM64 -- Until GA we will not rebuild other Enterprise Linuxes as it is pointless -- There might be branding issues. If you find one, please create an issue in - our public bug tracker -- Migration scripts worked well in our tests. We were able to migrate from - CentOS Stream 9 and Red Hat Enterprise Linux 9 beta. Because EuroLinux 9 and - Red Hat Enterprise Linux 9 are in the beta stage, in the meantime, CentOS - Stream 9 is heavily developed. **We won't provide assistance and support for - migration until the GA of EuroLinux 9.** -- **EuroLinux 9 beta is not officially supported for production uses** -- We will update this section when fixes arrive, or new issues arise.. - -## Batteries repositories - -The battery repository is available for customers with Golden Key and Gaia -subscriptions. There are about 1000 packages that are not part of any build (so -they are not included in EuroLinux Open Build roots) but are required to -rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources. - -## EuroLinux 9 for ARM - -EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this -is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It -also allowed us to create x86_64, open build roots for i686 and x86_64 and -batteries repos faster. Because creating EuroLinux 9 beta took us about four -weeks, ARM should take about two weeks, after updating Gaia Stack, as we have -all the necessary batteries and build orders figured out. - -## Gaia updates - -New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed. - -There are new commands in Gaia: - -- new automodule-update Gaia subcommand, that well - automatically updates - modules. No more manual config changes for modules -- new automodule-merge Gaia subcommand. This command uses multiple input files - (RH/EuroLinux modules files + result build + custom files) to create an updated - module definition - -Other notable changes: - -- Striga now creates `automodule-*` commands -- Striga can create `--partial` commands for module rebuild -- Vardoger now supports config files that allows ignoring chosen tests/levels - for selected RPMs -- A lot of new configs for EuroLinux 9 - - -We will also update hardware requirements for rebuild, including reference -build servers for ARM and PowerPC. The rebuilds will start with the release of -EuroLinux 9. It will also require updated infrastructure. - -## Container and cloud images - -You can use the following publicly available images for EuroLinux 9 beta - -- [EuroLinux 9 Beta Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) ](https://app.vagrantup.com/eurolinux-vagrant/boxes/eurolinux-9) -- [EuroLinux 9 Beta Container on the Docker Hub](https://hub.docker.com/r/eurolinux/eurolinux-9) -- [EuroLinux 9 Beta Container on the Quay.io](https://quay.io/repository/eurolinux/eurolinux-9) - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/) -- [Download EuroLinux ISO secondary download](https://fbi2.cdn.euro-linux.com/isos/) -- [EuroLinux universal migration scripts](https://github.com/EuroLinux/eurolinux-migration-scripts) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 9.0 beta - Release Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9-beta/html/9.0_release_notes/index) - parts of our release notes are loosely based on this document. diff --git a/docs/release-notes/9.0.md b/docs/release-notes/9.0.md deleted file mode 100644 index 9b9a383..0000000 --- a/docs/release-notes/9.0.md +++ /dev/null @@ -1,204 +0,0 @@ -# EuroLinux 9 Release Notes - -## Technical changes between EuroLinux 9 and 8 - -### Installer and image creation - -In EuroLinux 9.0 you can now use a standalone smart card to both authenticate -yourself and gain additional privileges via `sudo`. - -For the typical cases of installing EuroLinux with a medium such as a disk -interactively a Quality of Life tweak has been implemented: the Anaconda -installer will now automatically activate a network connection if applicable -(will try to obtain an address via DHCP). - -You can now optionally permit a password-based root login via SSH or completely -lock the root account in any case. (While the former is not recommended due to -security and disabled in EuroLinux 9 by default, there are valid use cases -which we support with this single easy switch) - -### Administrative tools - -If you want to rename a network interface, it is recommended that you use -systemd link files. Check `man 5 systemd.link` for more information. - -Alternatively udev rules may be used. If you need to use the `ifcfg` tool, -please install the `initscripts` package first since it is not installed by -default. - -### Security - -EuroLinux 9 provides OpenSSL version 3.0.0. Among other things, the concept of -*providers* has been added, which means that different programs can use -different security algorithms depending on their needs. You can imagine a -situation where you have implemented solutions where one needs to use FIPS -mode, while others need to maintain compliance with less secure policies. - -This new version comes with a few security-related implications. The `TLS-1.3` -protocol requires that a `PKCS#11` token supports `raw RSA` or `RSA-PSS` -signatures. - -If this is applicable to your scenario, please configure your software to use -TLS up to `TLS-1.2`. Additionally please edit the file -`/etc/pki/tls/openssl.cnf` and add this snippet at the very end of the -`[ crypto_policy ]` section: - -``` -SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384 -MaxProtocol = TLSv1.2 -``` - -### Developer tools - -Some of the newest and most reliable technology stacks for developers are -available in the repositories. These include: - -- Ant 1.10 -- GCC 11.2 -- Git 2.31 -- Go 1.17.5 -- LLVM 13 -- Maven 3.6.3 -- NodeJS 16 -- OpenJDK 17.0.1 -- PHP 8.0 -- Perl 5.32 -- Python 3.9 -- Ruby 3.0 -- Rust 1.56 -- SVN 1.14 - -The EuroLinux 9 platform ships glibc 2.34, which will provide 10 years of -business-class stability support and the same amount of software binary -interface compatibility time. As a result, programs written today will work the -same way 10 years from now. - -### Web servers and database engines - -The following software is now available in our repositories: - -HTTP servers: - -- Apache HTTPD 2.4 -- nginx 1.20 - -Proxy servers: - -- Squid 5.1 -- Varnish Cache 6.5 - -Database engines: - -- MariaDB 10.5.12 -- MySQL 8.0 -- PostgreSQL 13 -- Redis 6.2.6 - -### Security Policies - SCAP Security Guide - -The SCAP Security Guide has been updated to version 0.1.57 and made a number of changes -from the counterpart we provide in EuroLinux 8: - -- Removed deprecated SCAP 1.2 source data streams. -- Removed Bash profile remediation scripts to encourage more secure practices. -- Although references for EuroLinux 8 have been left in place, the current - package is designed for EuroLinux 9 - please kindly use packages for older - releases if you need to check them for security policies. - -### GNOME 40 - -GNOME has been updated to GNOME 40, a major step forward from EuroLinux 8's -GNOME 3.32.2 , which includes many new features. - -GNOME 40 includes a new and improved style, including the user interface, icons -and desktop, The *Activities* look and feel provides a better experience when -working, launching applications and arranging your personal workspace - -workspaces are now arranged horizontally and the window overview and -application grid are available vertically. - -Many *Quality of Life* improvements have also been added, including: - -- running the software using a separate graphics card by right-clicking and - selecting the appropriate option -- The ability to mute notifications by selecting *Do not disturb*, which will - appear as a separate button in the notification -- Each screen can use a different refresh rate -- The *Activities* program allows you to group application icons into folders - using a *drag-and-drop* method -- provide the ability to fractionally scale the display - - -## Notable changes - -EuroLinux 9 provides refreshed and updated versions of the following packages: - -- m4 was updated from version `1.4.18` to `1.4.19` -- xdp-tools was updated from version `1.1.1` to `1.2.1` -- openchange was updated from `2.3` (version) `37` (release) to `2.3` (version) `38` (release) -- tigervnc was updated from `1.11.0` (version) `20` (release) to `1.11.0` (version) `21` (release) - -**We expect updated versions of these packages to be available in the GA -version of RHEL.** - -## Known issues - - -- We are waiting for Secure Boot; as you can see here - https://github.com/rhboot/shim-review/issues, it is a long process - -## Batteries repositories - -The battery repository is available for customers with Golden Key and Gaia -subscriptions. There are about 1000 packages that are not part of any build (so -they are not included in EuroLinux Open Build roots) but are required to -rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources. - -## EuroLinux 9 for ARM - -EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this -is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It -also allowed us to create x86_64, open build roots for i686 and x86_64 and -batteries repos faster. - -## Gaia updates - -New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed. - -There are new commands in Gaia: - -- new automodule-update Gaia subcommand, that well - automatically updates - modules. No more manual config changes for modules -- new automodule-merge Gaia subcommand. This command uses multiple input files - (RH/EuroLinux modules files + result build + custom files) to create an updated - module definition - -Other notable changes: - -- Striga now creates `automodule-*` commands -- Striga can create `--partial` commands for module rebuild -- Vardoger now supports config files that allows ignoring chosen tests/levels - for selected RPMs -- A lot of new configs for EuroLinux 9 - - -We will also update hardware requirements for rebuild, including reference -build servers for ARM and PowerPC. The rebuilds will start with the release of -EuroLinux 9. It will also require updated infrastructure. - -## Container and cloud images - -You can use the following publicly available images for EuroLinux 9 - -- [EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) ](https://app.vagrantup.com/eurolinux-vagrant/boxes/eurolinux-9) -- [EuroLinux 9 Container on the Docker Hub](https://hub.docker.com/r/eurolinux/eurolinux-9) -- [EuroLinux 9 Container on the Quay.io](https://quay.io/repository/eurolinux/eurolinux-9) - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/) -- [Download EuroLinux ISO secondary download](https://fbi2.cdn.euro-linux.com/isos/) -- [EuroLinux universal migration scripts](https://github.com/EuroLinux/eurolinux-migration-scripts) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 9.0 - Release Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/9.0_release_notes/index) - parts of our release notes are loosely based on this document. diff --git a/docs/release-notes/9.1.md b/docs/release-notes/9.1.md deleted file mode 100644 index ea23cd0..0000000 --- a/docs/release-notes/9.1.md +++ /dev/null @@ -1,175 +0,0 @@ -# EuroLinux 9.1 Release Notes - -## Major changes in EuroLinux 9.1. - -## Installer and image creation - -Image builder on-premise now supports: - -- Uploading images to GCP. -- Customizing the /boot partition. -- Pushing a container image directly to a registry. -- Users can now customize their blueprints during the image creation process. - -Installer support customization size of the `/boot` partition. `-allow-ssh` kickstart option allows ssh login as root user. - -GRUB bootloader menu is hidden by default. - - -## Security - -EuroLinux 9.1 introduces **Keylime**, a remote machine attestation tool using the -trusted platform module (TPM) technology. With Keylime, you can verify and -continuously monitor the integrity of remote machines. - -**OpenSSH** now supports setting minimum RSA key length. The option to be set is named `RequiredRSASize`. `crypto-policies` enforce minimum 2048-bit RSA key length for OpenSSH by default. - -**NSS** no longer support RSA keys shorter than 1023bit. - -SELinux user-space packages have been upgraded to version 3.4. **Changes**: -- Improved relabeling performance through parallel relabeling -- Support for SHA-256 in the `semodule` tool -- New policy utilities in the `libsepol-utils` package - -## Command-line tools - -The following command-line tools have been updated in EuroLinux 9.1: -- `cronie`, now supports a randomized time within range `~` -- `ReaR`, now utilises new variables for executing commands before and after recovery -- `opencryptoki` to version 3.18.0 -- `lsvpd` to version 1.7.14 -- `libvpd` to version 2.2.9 -- `sysctl` supports same syntax for arguments as `systemd-sysctl` - - -EuroLinux 9.1 introduces a new package `xmlstarlet` with which you can -parse, query, validate, transform and edit XML files. - - -## Infrastructure services - -The following infrastructure services tools have been updated in EuroLinux 9.1: -- `chrony` to version 4.2 -- `unbound` to version 1.16.2 -- `frr` to version 8.2.2 -- `whois` package now provides the `/usr/bin/mkpasswd` binary, which can be used to encrypt a password with the `crypt` C library interface. - -## Networking - -NetworkManager supports migrating connection profiles from the deprecated -*ifcfg* format to keyfile format. - -The MultiPath TCP (MPTCP) code in the kernel has been updated and upstream -Linux 5.19. - -NetworkManager now clearly indicates that WEP support is not available in -EuroLinux 9. - -## Programming languages, web and database servers - -Later versions of the following components are now available as new module -streams: -- *PHP* 8.1 -- *Ruby* 3.1 -- *Node.js* 18 - -The Apache HTTP Server has been updated to version 2.4.53. - -# Compilers and development tools - -## Updated system toolchain - -The following system toolchain components have been updated in EuroLinux 9.1: -- *binutils* 2.35.2 -- *GCC* 11.2.1 -- *glibc* 2.34 - -## Updated performance tools and debuggers - -The following performance tools and debuggers have been updated in EuroLinux -9.1: -- *GDB* 10.2 -- *Valgrind* 3.19 -- *SystemTap* 4.7 -- *Dyninst* 12.1.0 -- *elfutils* 0.187 - -## Updated performance monitoring tools - -The following performance monitoring tools have been updated in EuroLinux 9.1: -- *Grafana* 7.5.13 -- *PCP* 5.3.7 - -## Updated compiler toolsets - -The following compiler toolsets have been updated in EuroLinux 9.1: -- *GCC Toolset* 12 -- *Go Toolset* 1.18 -- *Rust Toolset* 1.62 -- *LLVM Toolset* 14.0.6 - -# Java implementations in EuroLinx 9.1 - -EuroLinux 9 AppStream repository includes: -- *java-11-openjdk* - OpenJDK 11 Java Runtime Environment and the OpenJDK 11 - Java Software Development Kit. -- *java-17-openjdk* - OpenJDK 17 Java Runtime Environment and the OpenJDK 17 - Java Software Development Kit. -- *java-1.8.0-openjdk* - OpenJDK 8 Java Runtime Environment and the OpenJDK 8 - Java Software Development Kit. -- *Maven 3.8* has been added as a module stream - - -## Batteries repositories - -The battery repository is available for customers with Golden Key and Gaia -subscriptions. There are about 1000 packages that are not part of any build (so -they are not included in EuroLinux Open Build roots) but are required to -rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources. - -## EuroLinux 9 for ARM - -EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this -is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It -also allowed us to create x86_64, open build roots for i686 and x86_64 and -batteries repos faster. Because creating EuroLinux 9 beta took us about four -weeks, ARM should take about two weeks, after updating Gaia Stack, as we have -all the necessary batteries and build orders figured out. - -## Gaia updates - -New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed. - -There are new commands in Gaia: -- new automodule-update Gaia subcommand, that well - automatically updates - modules. No more manual config changes for modules -- new automodule-merge Gaia subcommand. This command uses multiple input files - (RH/EuroLinux modules files + result build + custom files) to create an updated - module definition - -Other notable changes: -- Striga now creates `automodule-*` commands -- Striga can create `--partial` commands for module rebuild -- Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs -- A lot of new configs for EuroLinux 9 - - -We will also update hardware requirements for rebuild, including reference -build servers for ARM and PowerPC. The rebuilds will start with the release of -EuroLinux 9. It will also require updated infrastructure. - -## Container and cloud images - -You can use the following publicly available images for EuroLinux 9 beta -- [EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) ](https://app.vagrantup.com/eurolinux-vagrant/boxes/eurolinux-9) -- [EuroLinux 9 Container on the Docker Hub](https://hub.docker.com/r/eurolinux/eurolinux-9) -- [EuroLinux 9 Container on the Quay.io](https://quay.io/repository/eurolinux/eurolinux-9) - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/) -- [Download EuroLinux ISO secondary download](https://fbi2.cdn.euro-linux.com/isos/) -- [EuroLinux universal migration scripts](https://github.com/EuroLinux/eurolinux-migration-scripts) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 9.1 Release Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.1_release_notes/index) parts of our release notes are loosely based on this document. - diff --git a/docs/release-notes/9.2.md b/docs/release-notes/9.2.md deleted file mode 100644 index c1d1b72..0000000 --- a/docs/release-notes/9.2.md +++ /dev/null @@ -1,152 +0,0 @@ -# EuroLinux 9.2 Release Notes - -## Major changes in EuroLinux 9.2. - -## Security - -Key security-related highlights: - -- The OpenSSL secure communications library was rebased to version 3.0.7. -- SELinux user-space packages were updated to version 3.5. -- Keylime was rebased to version 6.5.2 -- OpenSCAP was rebased to version 1.3.7. -- SCAP Security Guide was rebased to version 0.1.66. -- A new rule for idle session termination was added to SCAP. -- Clevis now accepts external tokens. -- Rsyslog TLS-encrypted logging now supports multiple CA files. -- Rsyslog privileges are limited to minimize security exposure. - -## Programming languages, web and database servers - -Later versions of the following application are now available: - -- **Python** 3.11 -- **PostgreSQL** 15 -- **nginx** 1.22 - -The following components have been upgraded: - -- **Git LFS** to version 3.2.0 -- **Git** to version 2.39.1 - -## Compilers and development tools - -The following system toolchain components have been updated in EuroLinux 9.2: - -- **GCC** 11.3.1 -- **glibc** 2.34 -- **binutils** 2.35.2 - -# Updated performance tools and debuggers - -The following performance tools and debuggers have been updated in EuroLinux 9.2: - -- **elfutils** 0.188 -- **GDB** 10.2 -- **Valgrind** 3.19 -- **SystemTap** 4.8 -- **Dyninst** 12.1.0 - -## Updated performance monitoring tools - -The following performance monitoring tools have been updated in EuroLinux 9.2: - -- **PCP** 6.0.1 -- **Grafana** 9.0.9 -- Updated compiler toolsets - -The following compiler toolsets have been updated in EuroLinux 9.2: - -- **GCC Toolset** 12 -- **Go Toolset** 1.19.6 -- **LLVM Toolset** 15.0.7 -- **Rust Toolset** 1.66 - -## Installer and image creation - -Key highlights for image builder: - -- Image builder on-prem now offers a new and improved way to create blueprints - and images in the image builder web console. -- Creating customized files and directories in the /etc directory is now supported. - -## Java implementations in EuroLinux 9 - -The EuroLinux 9 AppStream repository includes: - -The ```java-11-openjdk``` packages, which provide the OpenJDK 11 Java Runtime -Environment and the OpenJDK 11 Java Software Development Kit. -The ```java-17-openjdk``` packages, which provide the OpenJDK 17 Java Runtime -Environment and the OpenJDK 17 Java Software Development Kit. -The ```java-1.8.0-openjdk packages```, which provide the OpenJDK 8 Java Runtime -Environment and the OpenJDK 8 Java Software Development Kit. - -## Containers - -Notable changes include: - -- Podman now supports events for auditing. -- Clients for sigstore signatures with Fulcio and Rekor are now available. -- Podman Quadlet is now available as a Technology Preview. -- Skopeo now supports generating sigstore key pairs. -- The Container Tools packages have been updated. -- Toolbox is now available. -- The CNI network stack has been deprecated. -- The Aardvark and Netavark networks stack now supports custom DNS server selection. - -## Known issues - -Due to changes in the build process, some java packages (```java-1.8.0-openjdk```, -```java-11-openjdk```, ```java-17-openjdk```) are not updated jet (TODO). - -## Batteries repositories - -The battery repository is available for customers with Golden Key and Gaia -subscriptions. There are about 330 packages that are not part of any build (so -they are not included in EuroLinux Open Build roots) but are required to -rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources. - -## EuroLinux 9 for ARM - -EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this -is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It -also allowed us to create x86_64, open build roots for i686 and x86_64 and -batteries repos faster. Because creating EuroLinux 9 took us about four -weeks, ARM should take about two weeks, after updating Gaia Stack, as we have -all the necessary batteries and build orders figured out. - -## Gaia updates - -New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed. - -There are new commands in Gaia: -- new automodule-update Gaia subcommand, that well - automatically updates - modules. No more manual config changes for modules -- new automodule-merge Gaia subcommand. This command uses multiple input files - (RH/EuroLinux modules files + result build + custom files) to create an updated - module definition - -Other notable changes: -- Striga now creates `automodule-*` commands -- Striga can create `--partial` commands for module rebuild -- Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs -- A lot of new configs for EuroLinux 9 - -We will also update hardware requirements for rebuild, including reference -build servers for ARM and PowerPC. The rebuilds will start with the release of -EuroLinux 9. It will also require updated infrastructure. - -## Container and cloud images - -You can use the following publicly available images for EuroLinux 9 -- [EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)](https://app.vagrantup.com/eurolinux-vagrant/boxes/eurolinux-9) -- [EuroLinux 9 Container on the Docker Hub](https://hub.docker.com/r/eurolinux/eurolinux-9) -- [EuroLinux 9 Container on the Quay.io](https://quay.io/repository/eurolinux/eurolinux-9) - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/) -- [Download EuroLinux ISO secondary download](https://fbi2.cdn.euro-linux.com/isos/) -- [EuroLinux universal migration scripts](https://github.com/EuroLinux/eurolinux-migration-scripts) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 9.2 Release Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.2_release_notes/index) parts of our release notes are loosely based on this document. diff --git a/docs/release-notes/9.3.md b/docs/release-notes/9.3.md deleted file mode 100644 index 03a0a12..0000000 --- a/docs/release-notes/9.3.md +++ /dev/null @@ -1,97 +0,0 @@ -# EuroLinux 9.3 Release Notes - -This version's code name is Riga - the capital of Latvia. - -## Major changes in EuroLinux 9.3. - -## Security - -Key security-related highlights: - -- **Keylime** was rebased to version 7.3.0. -- OpenSSH was further migrated from the less secure SHA-1 message digest. -- The **pcsc-lite-ccid** USB Chip/Smart Card Interface Device(CCID)) and Integrated Circuit Card Device (ICCD) driver was rebased to version 1.5.2. -- **SEtools**, the collection of graphical tools, command-line tools, and libraries for SELinux policy analysis, was rebased to version 4.4.3. -- **OpenSCAP** was rebased to version 1.3.8. - -## Programming languages, web and database servers - -Later versions of the following application are now available: - -- **Redis 7** -- **Node.js 20** - -Furthermore, the **Apache HTTP Server** has been updated to version 2.4.57. - -The following components have been upgraded: - -- **Git LFS** to version 3.2.0 -- **Git** to version 2.39.1 - -## Compilers and development tools - -The following system toolchain components have been updated: - -- **GCC** 11.4.1 - -# Updated performance tools and debuggers - -The following performance tools and debuggers have been updated: - -- **Valgrind 3.21** -- **SystemTap 4.9** -- **elfutils 0.189** - -## Updated performance monitoring tools - -The following performance monitoring tools have been updated: - -- **PCP** 6.0.5 -- **Grafana** 9.2.10 - -## Updated compiler toolsets - -The following compiler toolsets have been updated in: - -- **GCC Toolset** 13 -- **LLVM Toolset** 16.0.6 -- **Rust Toolset** 1.71.1 -- **Go Toolset** 1.20.10 - -## Java implementations in EuroLinux 9 - -The EuroLinux 9 AppStream repository includes: - -- The `java-21-openjdk` packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit. -- The `java-11-openjdk` packages, which provide the OpenJDK 11 Java Runtime -- Environment and the OpenJDK 11 Java Software Development Kit. -- The `java-17-openjdk` packages, which provide the OpenJDK 17 Java Runtime -- Environment and the OpenJDK 17 Java Software Development Kit. -- The `java-1.8.0-openjdk packages`, which provide the OpenJDK 8 Java Runtime -- Environment and the OpenJDK 8 Java Software Development Kit. - -## Known issues - -Due to evolution of build process updates for **Java 21 OpenJDK** and **SCAP Security Guide** are delayed now. They are going to be delivered soon. - -## Batteries repositories - -The battery repository is available for customers with Golden Key and Gaia -subscriptions. There are about 330 packages that are not part of any build (so -they are not included in EuroLinux Open Build roots) but are required to -rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources. - -## Container and cloud images - -You can use the following publicly available images for EuroLinux 9 -- [EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)](https://app.vagrantup.com/eurolinux-vagrant/boxes/eurolinux-9) -- [EuroLinux 9 Container on the Docker Hub](https://hub.docker.com/r/eurolinux/eurolinux-9) -- [EuroLinux 9 Container on the Quay.io](https://quay.io/repository/eurolinux/eurolinux-9) - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/) -- [Download EuroLinux ISO secondary download](https://fbi2.cdn.euro-linux.com/isos/) -- [EuroLinux universal migration scripts](https://github.com/EuroLinux/eurolinux-migration-scripts) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 9.3 Release Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/9.3_release_notes/index) parts of our release notes are loosely based on this document. diff --git a/docs/release-notes/9.4.md b/docs/release-notes/9.4.md deleted file mode 100644 index 33035ad..0000000 --- a/docs/release-notes/9.4.md +++ /dev/null @@ -1,92 +0,0 @@ -# EuroLinux 9.4 Release Notes - -This version's code name is San Marino - the capital of San Marino, the world's oldest republic. - -## Major changes in EuroLinux 9.4. - -## Security - -Key security-related highlights: - -- **Rsyslog** log processing system introduces customizable TLS/SSL encryption settings and additional capability dropping options. -- The **OpenSSL** TLS toolkit adds a provider-specific configuration directory. -- The Linux kernel cryptographic API (**libkcapi**) 1.4.0 introduces new tools and options. You can now specify target file names for hash calculations using the -T option. -- The **stunnel** TLS/SSL tunneling service 5.71 provides many new features such as support for modern PostgreSQL clients. - -## Programming languages, web and database servers - -Later versions of the following application are now available: - -- **MariaDB 10.11** -- **nginx 1.24** -- **PHP 8.2** -- **PostgreSQL 16** -- **Python 3.12** - -The following components have been upgraded: - -- **Git LFS** to version 3.4.1 -- **Git** to version 2.43.0 - -## Compilers and development tools -## Updated performance tools and debuggers - -The following performance tools and debuggers have been updated: - -- **elfutils 0.190** -- **SystemTap 5.0** -- **Valgrind 3.22** - -## Updated performance monitoring tools - -The following performance monitoring tools have been updated: - -- **PCP** 6.2.0 - -## Updated compiler toolsets - -The following compiler toolsets have been updated: - -- **GCC Toolset** 13 -- **Go Toolset** 1.21.7 -- **LLVM Toolset** 17.0.6 -- **Rust Toolset** 1.75.1 - -## Java implementations in EuroLinux 9 - -The EuroLinux 9 AppStream repository includes: - -- The `java-21-openjdk` packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit. -- The `java-11-openjdk` packages, which provide the OpenJDK 11 Java Runtime -- Environment and the OpenJDK 11 Java Software Development Kit. -- The `java-17-openjdk` packages, which provide the OpenJDK 17 Java Runtime -- Environment and the OpenJDK 17 Java Software Development Kit. -- The `java-1.8.0-openjdk packages`, which provide the OpenJDK 8 Java Runtime -- Environment and the OpenJDK 8 Java Software Development Kit. - -## Known issues - -Due to evolution of build process update for **SCAP Security Guide** are delayed now. They are going to be delivered soon. - -## Batteries repositories - -The battery repository is available for customers with Golden Key and Gaia -subscriptions. There are about 330 packages that are not part of any build (so -they are not included in EuroLinux Open Build roots) but are required to -rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources. - -## Container and cloud images - -You can use the following publicly available images for EuroLinux 9: - -- [EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)](https://app.vagrantup.com/eurolinux-vagrant/boxes/eurolinux-9) -- [EuroLinux 9 Container on the Docker Hub](https://hub.docker.com/r/eurolinux/eurolinux-9) -- [EuroLinux 9 Container on the Quay.io](https://quay.io/repository/eurolinux/eurolinux-9) - -## Additional resources - -- [Download EuroLinux ISO](https://fbi.cdn.euro-linux.com/isos/) -- [Download EuroLinux ISO secondary download](https://fbi2.cdn.euro-linux.com/isos/) -- [EuroLinux universal migration scripts](https://github.com/EuroLinux/eurolinux-migration-scripts) -- [EuroLinux Public Request for Change and Bug Tracker](https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc) -- [Red Hat 9.4 Release Notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/9.4_release_notes/index) parts of our release notes are loosely based on this document. diff --git a/docs/release-notes/ELD.md b/docs/release-notes/ELD.md deleted file mode 100644 index c85180e..0000000 --- a/docs/release-notes/ELD.md +++ /dev/null @@ -1,26 +0,0 @@ -# EuroLinux 9 Desktop - -**EuroLinux Desktop is a novelty in the operating system market. It combines the look and functionality of Windows® and macOS® with the reliability and security of a server-based Enterprise Linux distribution.** - -## Overview - -EuroLinux Desktop is built upon the source code of Red Hat® Enterprise Linux® 9. However, it includes a number of changes to the user interface. These primarily concern the system's appearance and usability. GNOME extensions have been used for this purpose. In EuroLinux Desktop, they are pre-configured and available immediately after installation - "out of the box." In addition, the Polish language version of EuroLinux Desktop fills in the gaps in the Polish translations of the extensions and GNOME. - -## Appearance & Features - -In EuroLinux Desktop, there is a translucent dock (taskbar) at the bottom of the screen. It stores icons for favorite applications, notifications and running programs, a button that displays icons for all applications in high magnification, as well as date and time information. It is possible to change the position of the bar to the right, left or top of the desktop, as well as to customize it extensively. The user can customize its height, length, transparency, color, icon spacing and size. The system allows icons to be placed on the desktop as standard, and provides a window maximization and minimization function. - -EuroLinux Desktop disables the overview mode and the hotcorner function, which displays the preview mode when you hover the mouse over the top left corner of the screen. When you right-click on the wallpaper, additional menu items appear (including New Text Document). Notification icons from instant messaging or email programs have also been added. EuroLinux Desktop lets you switch day/night themes with a single click on the moon icon in the dock, and allows you to set a schedule for automatic theme switching based on the time of day. - -## Multimedia - -EuroLinux Desktop supports many media file formats (mp3, mpg, wma, ts, opus, ogg, mp4, flac, aiff, acc, ac3, avi), as well as the open codecs used for the popular mkv (Matroska) video files. Each of these formats can be run in the default Totem/Videos system player. - -## Office Suite - -EuroLinux Desktop includes the LibreOffice suite of office applications. It includes a word processor, spreadsheet, presentation editor, vector graphics editor, mathematical formula editor and relational database management system. - -## Software - -EuroLinux Desktop has been integrated with the Flathub repository, providing easy access to more than 2,000 free applications. They can be downloaded from the Software application and installed with a single click. The system also supports applications in AppImage format, the use of which is similar to programs with .exe or .msi extensions. However, in the case of EuroLinux Desktop, the AppImage application is always run from a non-privileged user. The system also allows the use of applications designed for Windows®, thanks to Steam®, Lutris or Wine. - diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css deleted file mode 100644 index ff798e2..0000000 --- a/docs/stylesheets/extra.css +++ /dev/null @@ -1,10 +0,0 @@ -/*general styling*/ -.md-header {position: static!important;} -.md-header, .md-tabs {background-color: #005aa5!important;} .md-tabs {box-shadow: 1px 1px 5px #999} -.md-tabs__link, .md-tabs[data-md-state=hidden] .md-tabs__link {transition: none!important;} -.md-typeset h1, .md-typeset h2 {color: #222; font-weight: bold} -/*info boxes*/ -.md-typeset .info>.admonition-title, .md-typeset .info>summary, .md-typeset .todo>.admonition-title, .md-typeset .todo>summary {background-color: #f3f2fd;} -.md-typeset .admonition.info {border-color: #4051b5;} -.md-typeset .info>.admonition-title:before, .md-typeset .info>summary:before, .md-typeset .todo>.admonition-title:before, .md-typeset .todo>summary:before {background-color: #4051b5;} -.md-typeset p {margin-top: 4px} diff --git a/mkdocs.yml b/mkdocs.yml deleted file mode 100644 index 1e8fd64..0000000 --- a/mkdocs.yml +++ /dev/null @@ -1,43 +0,0 @@ -site_name: EuroLinux Documentation -site_author: EuroLinux Community -site_url: https://docs.euro-linux.com/ -repo_name: eurolinux-open-docs -repo_url: https://github.com/EuroLinux/eurolinux-open-docs - -# EuroLinux theme settings -theme: - name: material - custom_dir: overrides - logo: assets/favicon-white.png - favicon: assets/favicon.png - palette: - primary: indigo - font: - text: Ubuntu - code: Ubuntu Mono - language: en - features: - - navigation.tabs - - toc.integrate - - navigation.footer - icon: - repo: fontawesome/brands/github - -extra: - social: - - icon: fontawesome/solid/blog - link: https://euro-linux.com/blog - - icon: fontawesome/brands/github - link: https://github.com/EuroLinux/ - - icon: fontawesome/brands/linkedin - link: https://www.linkedin.com/company/eurolinux - - icon: fontawesome/brands/twitter - link: https://twitter.com/Euro_Linux -extra_css: - - stylesheets/extra.css - -markdown_extensions: - - admonition - - pymdownx.highlight - - pymdownx.superfences - - pymdownx.keys diff --git a/overrides/main.html b/overrides/main.html deleted file mode 100644 index 156aae3..0000000 --- a/overrides/main.html +++ /dev/null @@ -1,22 +0,0 @@ -{% extends "base.html" %} -{% block extrahead %} - - -{% endblock %} -{% block scripts %} - - - -{% endblock %} diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 63f9fab..0000000 --- a/requirements.txt +++ /dev/null @@ -1,36 +0,0 @@ -Babel==2.13.0 -certifi==2023.7.22 -charset-normalizer==3.3.0 -click==8.1.7 -colorama==0.4.6 -ghp-import==2.1.0 -gitdb==4.0.10 -GitPython==3.1.41 -idna==3.7 -importlib-metadata==6.8.0 -Jinja2==3.1.4 -Markdown==3.5 -MarkupSafe==2.1.3 -mergedeep==1.3.4 -mkdocs==1.5.3 -mkdocs-git-revision-date-plugin==0.3.2 -mkdocs-material==9.4.4 -mkdocs-material-extensions==1.2 -packaging==23.2 -paginate==0.5.6 -pathspec==0.11.2 -platformdirs==3.11.0 -Pygments==2.16.1 -pymdown-extensions==10.3 -pyparsing==3.1.1 -python-dateutil==2.8.2 -PyYAML==6.0.1 -pyyaml_env_tag==0.1 -regex==2023.10.3 -requests==2.31.0 -six==1.16.0 -smmap==5.0.1 -typing-extensions==3.10.0.0 -urllib3==2.0.7 -watchdog==3.0.0 -zipp==3.17.0 diff --git a/search/search_index.json b/search/search_index.json index 185cbc5..aafd2bd 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"EuroLinux","text":""},{"location":"#about-documentation","title":"About Documentation","text":"

This is EuroLinux community-driven documentation.

We welcome your contributions to EuroLinux!

You can:

  • star the repository to show your support
  • contribute via a Pull Request - see How to contribute
  • create requests for a particular topic via Issue Creation on GitHub

Info

As EuroLinux is in Open Core model there are also additional documentation for our customer that are available at EuroLinux Support Portal.

Info

You can find our online Enterprise Linux Man pages server here https://man.docs.euro-linux.com.

"},{"location":"#how-documentation-is-organized","title":"How documentation is organized?","text":"

Documentation is organized in the following manner:

  • JumpStarts - Installation guides with extras
  • HowTo - How To guides on various topics
  • Release Notes
"},{"location":"#how-to-contribute","title":"How to contribute","text":"

We love your input! We value transparent and easy to contribute projects, that's why we choose GitHub. You can contribute to this project with:

  • Proposing a new topic that should be described
  • Discussing the current state of the docs
  • Reporting a bug
  • Submitting a fix

We Use GitHub with GitHub Flow. All changes are made through pull requests.

Pull requests are the best and well-established way to propose changes. The GitHub Flow that allows us to provide reviews and discussion about documentation/code is described in detail here.

Use our specially crafted issue templates: EuroLinux Open Docs issue from a template to contribute a topic you would like to see.

If you want to contribute with code (we keep documentation as code), do the following:

  1. Fork the repository and create your own branch from master.
  2. It would be great if you could test your changes with mkdocs (described in detail in Setup environment locally)
  3. Write/Apply your changes and commit to your branch.
  4. Create a pull request!
"},{"location":"#github-labs","title":"GitHub Labs","text":"

If you are new to Git VCS (Version Control System) or GitHub, you can visit GitHub Learning Lab, especially First Day on GitHub course. GitHub courses are free, interactive and put stress on practical aspects.

"},{"location":"#tools","title":"Tools","text":"

We are using mkdocs with mkdocs-material to build and style our documentation.

  • MkDocs site
  • Material for MkDocs site
"},{"location":"#setup-environment-locally","title":"Setup environment locally","text":"

Because MkDocs is Python based, you need at least these installed to run this documentation locally:

  • python3 (3.6+)
  • pip
  • virtualenv

First, let's create a virtualenv, so you don't bloat your system-wide python environment:

virtualenv -p /usr/bin/python3 venv\n

Then activate virtualenv

Bash:

. venv/bin/activate\n

Fish:

. venv/bin/activate.fish\n

Now you are ready to install MkDocs and other Python packages:

pip install -r requirements.txt\n

After it serving documentation on your host is as easy as running:

mkdocs serve\n

To build documentation invoke:

mkdocs build\n

It will build documentation and save it into site directory

Please don't include site directory in pull requests

Because we deploy this documentation with GitHub Pages, the site directory is not gitignored

"},{"location":"#markdown-cheat-sheet-for-this-project","title":"Markdown cheat sheet for this project","text":"

We created simple cheat sheet for MkDocs markdown syntax with extensions enabled in this project. It can be found here.

"},{"location":"HowTo/centos8-eol-solution/","title":"CentOS 8 End of Life - solution","text":""},{"location":"HowTo/centos8-eol-solution/#introduction","title":"Introduction","text":"

This how-to provides a solution to the problem of CentOS 8 running out of support. With the end of 2021, CentOS ended its life in its stable form and started functioning as CentOS Stream, a development branch for Red Hat\u00ae Enterprise Linux\u00ae. As a result, it stopped receiving proven, stable updates and its use, especially in production environments, became risky. This is a very serious problem for many companies and individuals around the world. So there was an urgent need to find a new source of updates for CentOS in order to keep it in the infrastructure. A complete solution to this problem is support switching, that is, pointing to a new repository from which CentOS will be downloading stable updates. Such a solution is offered by EuroLinux. It is worth mentioning that both CentOS and RHEL and EuroLinux are systems built on the same source code, so they provide the same functionality. They differ mainly in branding.

The operation of switching support is simple, reasonably safe and completely reversible. What is very important, it requires neither reinstallation of the system nor the applications installed on it. The process consists of switching the repository, installing the el-release package, updating the system and reinstalling the system packages in-place. After the in-place migration, CentOS will still be usable, even in production environments.

All resources used in this tutorial can be found in the additional resources section.

"},{"location":"HowTo/centos8-eol-solution/#the-solution","title":"The solution","text":"

A project named eurolinux-migration-scripts has been created. It contains among others a script that will take care of the migration automatically. Here we describe, how to perform the switch successfully.

"},{"location":"HowTo/centos8-eol-solution/#preparations","title":"Preparations","text":"

It's vital that the system be updated to the newest release. Use the following command:

sudo yum update -y\n
"},{"location":"HowTo/centos8-eol-solution/#running-the-migration-script","title":"Running the migration script","text":"

Then download the latest production-ready release of the project containing the script. Unpack the release, visit the unpacked directory and run the script - usually this will require right-clicking in the current directory, using the 'Open in Terminal' option and running this command:

sudo bash migrate2eurolinux.sh\n

Refer to the project's README for additional commands.

"},{"location":"HowTo/centos8-eol-solution/#after-the-switch","title":"After the switch","text":"

Once the migration has finished, it's recommended to reboot your system:

sudo reboot\n

Once the system has rebooted, the migration process can be considered complete. In order to quickly verify that it was carried out successfully, we can check the distribution description:

cat /etc/el-release\n

As a result we should get a response about the distribution and latest EuroLinux version.

"},{"location":"HowTo/centos8-eol-solution/#conclusion","title":"Conclusion","text":"

As you can see, the process is quick and seamless. You can switch the repository for RHEL, Oracle Linux, AlmaLinux, and Rocky Linux the same way. In each case, the process will look almost identical.

If you have any questions or concerns, please submit them to the repository linked in the additional resources section. Thank you.

"},{"location":"HowTo/centos8-eol-solution/#additional-resources","title":"Additional resources","text":"
  • EuroLinux support switching script GitHub repository
  • Latest production-ready release of the project
"},{"location":"HowTo/create-iso-with-repositories/","title":"How to create ISO file with EuroLinux repositories","text":"

Creating ISO that contains RPM repositories is a straightforward process. First you have to mirror repositories locally - mirroring is described in Mirror EuroLinux Locally How To.

To create an ISO file, you need mkiso command that is part of genisoimage package. You can install it with the following command:

sudo yum install -y genisoimage\n
"},{"location":"HowTo/create-iso-with-repositories/#creating-iso-with-repositories","title":"Creating ISO with repositories","text":"

In the example below, we create ISO from the repositories saved in /repos directory the output is saved to /var/eurolinux-repos.iso.

sudo mkisofs -R -J -o /var/eurolinux-repos.iso /repos/\n

This file could be:

  • locally copied to the machine that will be using it
  • added to ISOs pool of Virtual Machine manager/orchestrator or cloud computing platform of your choice
"},{"location":"HowTo/create-iso-with-repositories/#mounting-iso-from-local-file","title":"Mounting ISO from local file","text":"

Mounting local ISO file is as simple as:

sudo mount -o loop /PATH/TO/ISO /MOUNT/PATH\n

example:

sudo mount -o loop /var/eurolinux-repos.iso /mnt/mirror\n
"},{"location":"HowTo/create-iso-with-repositories/#mounting-iso-from-virtual-cd-rom-device","title":"Mounting ISO from virtual cd-rom device","text":"

Mounting CD-ROM device is as simple as:

sudo mount /dev/DEVICE /MOUNT/PATH\n

The following example has ISO mounted as CD-ROM device /dev/sr0:

sudo mount /dev/sr0 /mnt/mirror\n
"},{"location":"HowTo/create-iso-with-repositories/#using-locally-mounted-iso-with-rpm-repositories","title":"Using locally mounted ISO with RPM repositories","text":"

To use the repositories, that the ISO file provides, create a proper .repo file that resides inside /etc/yum.repos.d/ directory.

Here is an example /etc/yum.repos.d/local-iso.repo file for EuroLinux 7 and the ISO image attached to /mnt/mirror directory.

[base]\nname = EuroLinux 7 x86_64 Base\nbaseurl=file:///mnt/mirror/eurolinux-os-7/\nenabled=1\n# Disabled gpgcheck, enable if el-release is already installed on your system\ngpgcheck=0\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n\n[updates]\nname = EuroLinux 7 x86_64 Updates\nbaseurl=file:///mnt/mirror/eurolinux-updates-7/\nenabled=1\n# Disabled gpgcheck, enable if el-release is already installed on your system\ngpgcheck=0\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n
"},{"location":"HowTo/docker/","title":"Docker","text":"

How to set up your Docker Community Edition installation.

"},{"location":"HowTo/docker/#introduction","title":"Introduction","text":""},{"location":"HowTo/docker/#use-cases","title":"Use cases","text":"

Consider the following examples:

  • You want a standardized runtime environment across production, QA and developer scenarios.
  • You want all the runtime environment's specification in a single file, what is easy to manage through version control systems.
  • You want the environment to be reproducible. After all, it's just a matter of building an image from the specification and once it's done it is already self-documented on what steps were taken to cook the final image.
  • You prefer a layered architecture and the ability to cache artifacts across several images and backup & restore the images easily.
"},{"location":"HowTo/docker/#why-use-docker-containers-over-virtual-machines","title":"Why use Docker containers over virtual machines?","text":"

In short: Docker containers utilize Linux's capabilities such as cgroups and namespaces to create an isolated environment and do not virtualize hardware. Therefore, they are way more lightweight than virtual machines and can be brought up in a large scale in a blink of an eye rather than waiting for a single virtual machine to boot.

For more information, take a look at our blog entry on the basics of containerization.

"},{"location":"HowTo/docker/#system-requirements","title":"System requirements","text":"

The following operating systems and architectures are covered by this guide:

  • EuroLinux 8 on the x86_64 and aarch64 architecture.
  • EuroLinux 7 on the x86_64 architecture.

Make sure the containers you want to run are of the same architecture as your machine.

If you need support with installation on the EuroLinux releases this guide does not cover, please create an appropriate ticket.

"},{"location":"HowTo/docker/#installation","title":"Installation","text":""},{"location":"HowTo/docker/#eurolinux-8","title":"EuroLinux 8","text":"

The following steps are based on Docker, Inc. official guide as of 2022.02.01. We will just use the commands provided as snippets for a quick way of copying & pasting one snippet for a successful installation.

The following snippet installs Docker on EuroLinux 8.6. Other releases may work as well, but have not been tested. Once a new EuroLinux release is out, this guide will be updated.

Docker installation removes podman and buildah

Please note that this operation will replace runc with containerd.io and remove both podman and buildah.

sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine\nwhich yum-config-manager || sudo yum install -y yum-utils\nsudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo\nsudo yum install -y docker-ce docker-ce-cli containerd.io --allowerasing\nsudo systemctl enable docker --now\n
"},{"location":"HowTo/docker/#eurolinux-7","title":"EuroLinux 7","text":"

EuroLinux provides their own builds of Docker for EuroLinux 7.

Please prepare your EuroMan credentials and enable the el-server-7-extras-x86_64 channel first, like so:

sudo rhn-channel -u \"$el_euroman_user\" -p \"$el_euroman_password\" -c el-server-7-extras-x86_64 -a\n

Then you are ready to install Docker:

sudo yum install -y docker\nsudo systemctl enable docker --now\n
"},{"location":"HowTo/docker/#whats-next","title":"What's next?","text":"

EuroLinux provides several Docker images for you to use. They are publicly available and free of charge. Take a look at our entry EuroLinux docker images are now available for more information. Additionally, we provide a quick guide for having the images up and running in no time.

"},{"location":"HowTo/els/","title":"Migrate to EuroELS","text":"

This guide is about how to switch your repositories to the ones provided by EuroLinux Extended Life Support.

"},{"location":"HowTo/els/#introduction","title":"Introduction","text":"

Enterprise Linuxes 6 ended their life a few years ago. Still, security updates can be provided by several vendors for a fee. That's where EuroELS comes in. You can extend the lifecycle of your Enterprise Linux up to the half of 2024.

"},{"location":"HowTo/els/#how-to-migrate","title":"How to migrate","text":"

First, make sure that your system is up to date. It should be CentOS 6.10 (minor version 10).

su\nyum update -y\n

Second, in accordance with good practice, we recommend backing up your machine.

Please download the migration script available at this location:

https://github.com/EuroLinux/eurolinux-migration-scripts.git

wget https://github.com/EuroLinux/eurolinux-migration-scripts/archive/refs/heads/el6-only-switch-repos.zip\n

Please unpack the downloaded file:

unzip el6-only-switch-repos.zip\n

and navigate to the script's directory:

cd eurolinux-migration-scripts-el6-only-switch-repos\n

To start the switching process, just run the script with administrator privileges:

./migrate2eurolinux.sh\n

Once the command is executed, we'll get a recommendation to make a backup. Type YES to make the script continue.

The script will ask us about our EuroMan credentials. We provide our login and password when asked.

The repository switch has completed successfully. We can now update our Enterprise Linux 6 with the command:

yum update -y\n
"},{"location":"HowTo/ha-rs-enable-repository/","title":"How to install High Availability and Resilient Storage in EuroLinux 8","text":"

For EuroLinux 8.4, you should update the el-release package. The newer version has resilient-storage and high-availability repositories saved in the /etc/yum.repos.d/certify.repo file.

sudo yum update -y el-release\n

'certify-' prefix

Since EuroLinux 8.6 the 'certify-' prefixes in repo URLs and names are no longer used. These URLs are and will be kept as the symbolic link for backward compatibility. The certify.repo file will be used for the whole EuroLinux 8 lifecycle.

If you cannot update the release package because the new el-release package errata is not security-related, you might manually add the following to the /etc/yum.repos.d/certify.repo

[high-availability]\nname = EuroLinux High Availability\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/HighAvailability/os\nenabled=0\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\n\n[resilient-storage]\nname = EuroLinux Resilient Storage\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os\nenabled=0\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\n
"},{"location":"HowTo/ha-rs-enable-repository/#enabling-repositories-permanently","title":"Enabling repositories permanently","text":""},{"location":"HowTo/ha-rs-enable-repository/#enabling-high-availability-and-resilient-storage-repository-manually","title":"Enabling High Availability and Resilient Storage repository manually","text":"

Use your favourite text editor and change enabled=0 to enabled=1 for high-availability and resilient-storage repositories.

Before edit:

[resilient-storage]\nname = EuroLinux Resilient Storage\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os\nenabled=0\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\n

After Edit:

[resilient-storage]\nname = EuroLinux Resilient Storage\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\n

You should do the identical changes for high-availability repositories.

"},{"location":"HowTo/ha-rs-enable-repository/#enabling-high-availability-and-resilient-storage-repository-with-yum-config-manager","title":"Enabling High Availability and Resilient Storage repository with yum-config-manager","text":"

The yum-config-manager command is part of the yum-utils package. Firstly let's install that package:

sudo yum install -y yum-utils\n

Then enable Resilient Storage and High Availability repository with the following command:

sudo yum-config-manager --enable high-availability\nsudo yum-config-manager --enable resilient-storage\n
"},{"location":"HowTo/ha-rs-enable-repository/#installing-ha-andor-resilient-storage","title":"Installing HA and/or Resilient Storage","text":"

Both High Availability and Resilient Storage have rpm groups, so installing them is trivial.

To install the High Availability add-on, invoke the following command:

sudo yum install -y @ha\n

To install the Resilient Storage add-on, invoke the following command:

sudo yum install -y @resilient-storage\n
"},{"location":"HowTo/ha-rs-enable-repository/#basic-ha-configuration","title":"Basic HA configuration","text":""},{"location":"HowTo/ha-rs-enable-repository/#configuring-firewalld","title":"Configuring firewalld","text":"

Before configuring a firewall, it's appropriate to check if firewalld is actually running. The standard systemctl is-active command is one of the options.

systemctl is-active firewalld\n

For a system that has firewalld started and enabled, you might use good enough configuration with:

sudo firewall-cmd --permanent --add-service=high-availability\nsudo firewall-cmd --reload\n
"},{"location":"HowTo/ha-rs-enable-repository/#starting-pcsd","title":"Starting pcsd","text":"

After configuring a firewall, you can start and enable pcsd (PCS GUI and remote configuration interface) with the following commands:

sudo systemctl start pcsd.service\nsudo systemctl enable pcsd.service\n

To make a very basic test of the pcsd installation, we recommend setting hacluster user password. As root user, you can, for example invoke:

# echo \"secret-pass\" | passwd hacluster --stdin\n

Then login into Pacemaker/Corosync configuration. Use the machine address on port 2224 (example: https://MACHINE_IP:2224) in your browser. The username is hacluster with password you set in previous step.

HTTPS Required

Web browser like Firefox and other programs like cURL will report \"Connection reset by peer\" or \"The connection was reset\" when connecting with cleartext HTTP.

[root@test1 pcsd]# curl localhost:2224\ncurl: (56) Recv failure: Connection reset by peer\n

From this point you can freely configure High Availability and Resilient Storage. We recommend using upstream documentation provided in Additional Links below.

"},{"location":"HowTo/ha-rs-enable-repository/#additional-links","title":"Additional links","text":"
  • Red Hat Documentation - Configuring and Managing High Availability Clusters
  • Red Hat Documentation - Configuring GFS2 File System
"},{"location":"HowTo/install-epel-on-eurolinux/","title":"How to Install and Enable EPEL repository on EuroLinux 8","text":"

EPEL (Extra Packages for Enterprise Linux) repository is one of the most popular third-party repositories for the Enterprise Linux family. From the 4th November EuroLinux team included the original epel-release package from EPEL in the BaseOS repo. It was the most voted small quality of life change during our first community meeting. The package is re-signed with a EuroLinux GPG key, so there is no need to accept an external key to install this particular package.

The package version will be checked and updated if necessary during minor releases.

EPEL is an external repository that is community supported

As a company, we cannot provide proper care in terms of security, quality, support and lifecycle standards on a third-party repository. Nevertheless, the EPEL repository has a great history of community support.

"},{"location":"HowTo/install-epel-on-eurolinux/#installing-epel-on-eurolinux","title":"Installing EPEL on EuroLinux","text":"

Installing EPEL on EuroLinux 8 and EuroLinux 7 is as simple as:

sudo yum install -y epel-release\n

EPEL is enabled by default

The base EPEL repository is enabled by default for modular (EuroLinux 8) and non-modular packages. You can enable debuginfo and source packages in respective /etc/yum.repos.d/epel*.repo file.

From this moment, you can install and then use all EPEL goodies like htop, wine or createrepo.

"},{"location":"HowTo/migrate_to_rocky_linux/","title":"Procedure for migrating EuroLinux to RockyLinux","text":"
  1. Preparation:
  2. Ensure a stable and reliable internet connection throughout the entire migration process. This is critical for downloading scripts and packages.
  3. Create a full backup of the system to be migrated.
  4. Test the recovery procedure to ensure you can restore the system in case of interruption or errors during migration.
  5. It is recommended to run the migration in a session manager, e.g., tmux.

  6. Download migration scripts:

  7. For EL8:
    curl -O https://raw.githubusercontent.com/EuroLinux/rocky-tools/feature/vaulted_migration/migrate2rocky/migrate2rocky.sh\n
  8. For EL9:

    curl -O https://raw.githubusercontent.com/EuroLinux/rocky-tools/feature/vaulted_migration/migrate2rocky/migrate2rocky9.sh\n

  9. Migration:

  10. Migrating EuroLinux 8 to RockyLinux 8:

    sudo bash migrate2rocky.sh -r\n

  11. Migrating EuroLinux 9.4 to RockyLinux 9.4:

    • If RockyLinux has not yet released version 9.5:
      sudo bash migrate2rocky9.sh -r\n
    • If RockyLinux has already released version 9.5 or higher:
      sudo bash migrate2rocky9.sh -rv 9.4\n
"},{"location":"HowTo/mirror-eurolinux-locally/","title":"How to set up internal EuroLinux RPM mirror","text":"

This short how-to instructs how to set up your own internal EuroLinux mirror. External (publicly available) mirrors should not be set up this way.

"},{"location":"HowTo/mirror-eurolinux-locally/#system-requirements","title":"System requirements","text":"
  • Internet connection for sync server is required
  • The firewall must allow connection to EuroLinux servers
  • For each version of EuroLinux, you need about 80 GB of storage
  • You have to install utilities like reposync and createrepo. The following command will work on an Enterprise Linux 7 and 8:
    # --skip-broken because depending on the version not all packages might be present\nsudo yum install -y createrepo_c createrepo yum-utils dnf-utils --skip-broken\n
"},{"location":"HowTo/mirror-eurolinux-locally/#mirroring-eurolinux-9","title":"Mirroring EuroLinux 9","text":"

Making a local mirrors for EuroLinux 8 and EuroLinux 9 is simple because:

  • repositories are open
  • reposync can pull repository metadata, erratas, and modules files automatically.

Use Enterprise Linux 9

These instructions have been tested to work properly on Enterprise Linux 9 and Enterprise Linux 8.

First, let's create the directory where mirroring configuration will reside:

sudo mkdir -p /etc/yum-mirror-config\n

Then, let's create configuration file for EuroLinux 9 mirroring /etc/yum-mirror-config/mirror_yum_el9.conf with the contents:

[main]\ncachedir=/var/cache/yum/mirror/$basearch/$releasever\nkeepcache=0\ndebuglevel=2\nlogfile=/var/log/mirror-yum-el9.log\nplugins=1\nexactarch=0\nobsoletes=0\nreposdir=/dev/null\n\n[baseos]\nname = EuroLinux BaseOS\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/BaseOS/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9\nskip_if_unavailable=1\n\n[appstream]\nname = EuroLinux AppStream\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/AppStream/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9\nskip_if_unavailable=1\n\n[crb]\nname = EuroLinux CRB\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/CRB/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9\nskip_if_unavailable=1\n

Then invoke the command reposync with the following arguments:

reposync --downloadcomps --download-metadata -c /etc/yum-mirror-config/mirror_yum_el9.conf -p /repos\n
"},{"location":"HowTo/mirror-eurolinux-locally/#mirroring-eurolinux-8","title":"Mirroring EuroLinux 8","text":"

Making a local mirror for EuroLinux 8 and EuroLinux 9 is simple because:

  • repositories are open
  • reposync can pull repository metadata, erratas, and modules files automatically.

Use Enterprise Linux 8

These instructions have been tested to work properly on Enterprise Linux 8. While everything may work well, it's not recommended to use other versions.

First, let's create the file /etc/yum-mirror-config/mirror_yum.conf with the contents:

[main]\ncachedir=/var/cache/yum/mirror/$basearch/$releasever\nkeepcache=0\ndebuglevel=2\nlogfile=/var/log/mirror-yum.log\nplugins=1\nexactarch=0\nobsoletes=0\nreposdir=/dev/null\n\n[baseos]\nname = EuroLinux BaseOS\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/BaseOS/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\nskip_if_unavailable=1\n\n[appstream]\nname = EuroLinux AppStream\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/AppStream/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\nskip_if_unavailable=1\n\n[powertools]\nname = EuroLinux PowerTools\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/PowerTools/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\nskip_if_unavailable=1\n

Then invoke the command reposync with the following arguments:

reposync --downloadcomps --download-metadata -c /etc/yum-mirror-config/mirror_yum.conf -p /repos\n
"},{"location":"HowTo/mirror-eurolinux-locally/#mirroring-eurolinux-7","title":"Mirroring EuroLinux 7","text":"

Use Enterprise Linux 7

These instructions have been tested to work properly on Enterprise Linux 7. While everything may work well, it's not recommended to use other versions.

"},{"location":"HowTo/mirror-eurolinux-locally/#the-official-way","title":"The official way","text":"

EuroLinux 7 is not open-core; therefore, only organizations with a proper license (EuroMan or Golden Key) can mirror it freely.

We know

We are well aware that it is possible to mirror repos even with a single license. You can read about that below.

The official way to mirror EuroLinux repositories is the following:

  • You need a proper subscription, like EuroMan or Golden Key
  • EuroLinux engineer will provide you with SSL certificates that we will name repo.key and repo.crt and CA that we will name ca.crt

Create the directory /etc/yum-mirror-config/. With the repokeys residing in that directory, create the file /etc/yum-mirror-config/mirror_yum.conf with the contents:

[main]\ncachedir=/var/cache/yum/mirror/$basearch/$releasever\nkeepcache=0\ndebuglevel=2\nlogfile=/var/log/mirror-yum.log\nexactarch=0\nobsoletes=0\ngpgcheck=0\nplugins=0\nreposdir=/dev/null\n\n[eurolinux-os-7]\nname=el7_x86_64_os\nbaseurl=https://cdn.euro-linux.com/dist/eurolinux/server/7/x86_64/os/\nsslclientkey=/etc/yum-mirror-config/repo.key\nsslclientcrt=/etc/yum-mirror-config/repo.crt\nsslcacert=/etc/yum-mirror-config/ca.crt\n\n[eurolinux-updates-7]\nname=el7_x86_64_updates\nbaseurl=https://cdn.euro-linux.com/dist/eurolinux/server/7/x86_64/updates/\nsslclientkey=/etc/yum-mirror-config/repo.key\nsslclientcrt=/etc/yum-mirror-config/repo.crt\nsslcacert=/etc/yum-mirror-config/ca.crt\n

Then invoke the command reposync with the following arguments:

reposync -d -m --download-metadata -c /etc/yum-mirror-config/mirror_yum.conf -p /repos\n

When the download finishes, the next step is to create repodata and enable groups.

cd /repos/eurolinux-os-7/; createrepo . -g comps.xml\ncd /repos/eurolinux-updates-7/; createrepo . -g comps.xml\n

Info

Enabling updateinfo (erratas information) is a little bit tricky, because firstly you have to find the newest updateinfo, unpack it, then invoke modifyrepo script. It can be automated with the script below.

REPO_DIR=/repos/eurolinux-os-7/\nunset -v LAST_UI\n# finding the newest file\nfor file in \"$REPO_DIR\"/*updateinfo.xml.gz; do\n  [[ \"$file\" -nt \"$LAST_UI\" ]] && LAST_UI=$file\ndone\n# unpacking to updateinfo.xml file\nsudo gunzip -c \"$LAST_UI\"  > \"$REPO_DIR/updateinfo.xml\"\n# Depending on the system - some has modifrepo.py script some has \"normal\" command\n/usr/share/createrepo/modifyrepo.py \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\" || modifyrepo \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\"\n\nREPO_DIR=/repos/eurolinux-updates-7/\nunset -v LAST_UI\nfor file in \"$REPO_DIR\"/*updateinfo.xml.gz; do\n  [[ $file -nt $LAST_UI ]] && LAST_UI=$file\ndone\nsudo gunzip -c \"$LAST_UI\"  > \"$REPO_DIR/updateinfo.xml\"\n# Depending on the system - some has modifrepo.py script some has \"normal\" command\n/usr/share/createrepo/modifyrepo.py \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\" || modifyrepo \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\"\n
"},{"location":"HowTo/mirror-eurolinux-locally/#the-unsupported-way","title":"The unsupported way","text":"

There is also the possibility to mirror EuroLinux repositories even with a single or even test subscription.

True Product \u2013 Real Support \u2013 Fair Price

We are faithful to our values. We also know that it's always possible to cheat and not play fair. Please be aware that during support inqury, we might check if your system is registered and supported. To this day, we always had pleasure to work with honest companies - please don't ruin that.

Mirroring other distros

The instruction allows cloning other distros, including paid ones. If you want to mirror paid Linux distribution, note that this might breach the license/license agreement.

You can mirror EuroLinux or other Enterprise Linux repositories with the following step:

  • Register your system with rhn_register command for EuroLinux or another way to mirror another system repositories.

Then run the following snippet as root:

reposync -d -m --download-metadata --plugins -r el-server-7-x86_64 -p /repos/\n# recreating repodata and updateinfo\nREPO_DIR=/repos/el-server-7-x86_64/\ncd /repos/el-server-7-x86_64/; createrepo . -g comps.xml\nunset -v LAST_UI\nfor file in \"$REPO_DIR\"/*updateinfo.xml.gz; do\n  [[ $file -nt $LAST_UI ]] && LAST_UI=$file\ndone\nsudo gunzip -c \"$LAST_UI\"  > \"$REPO_DIR/updateinfo.xml\"\n# Depending on the system - some has modifrepo.py script some has \"normal\" command\n/usr/share/createrepo/modifyrepo.py \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\" || modifyrepo \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\"\n
"},{"location":"HowTo/mirror-eurolinux-locally/#mirroring-eurolinux-6-els","title":"Mirroring EuroLinux 6 ELS","text":"

First, register your system to EuroLinux EuroMan with the migration scripts - use the el6-only-switch-repos branch for this.

Once the system has been registered and is receiving EL6 ELS updates, you can mirror the ELS packages with the following commands. Run them as root:

reposync -d -m --download-metadata --plugins -r els-6-x86_64 -p /repos/\n# recreating repodata and updateinfo\nREPO_DIR=/repos/els-6-x86_64/\ncd /repos/els-6-x86_64/; createrepo . -g comps.xml\nunset -v LAST_UI\nfor file in \"$REPO_DIR\"/*updateinfo.xml.gz; do\n  [[ $file -nt $LAST_UI ]] && LAST_UI=$file\ndone\nsudo gunzip -c \"$LAST_UI\"  > \"$REPO_DIR/updateinfo.xml\"\n# Depending on the system - some has modifrepo.py script some has \"normal\" command\n/usr/share/createrepo/modifyrepo.py \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\" || modifyrepo \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\"\n
"},{"location":"HowTo/vagrant-with-libvirt/","title":"Vagrant with vagrant-libvirt plugin on Enterprise Linux 8","text":""},{"location":"HowTo/vagrant-with-libvirt/#introduction","title":"Introduction","text":"

This guide covers the installation of libvirt and related tools along with the Vagrant plugin that allows using libvirt as a provider. This has been tested on a clean installation of EuroLinux 8.5 - only Vagrant has been installed already as described in Vagrant jumpstart.

"},{"location":"HowTo/vagrant-with-libvirt/#terminology","title":"Terminology","text":"
  • QEMU - a generic machine emulator
  • KVM - a virtualisation solution that is native to Linux. Used by QEMU to achieve near-native performances by executing the guest code directly on the host CPU
  • libvirt - a management suite for several hypervisors

While libvirt can manage many virtualisation solutions, in the context of this document libvirt refers to: QEMU with KVM managed by libvirt.

"},{"location":"HowTo/vagrant-with-libvirt/#why-prefer-libvirt-over-providers-such-as-virtualbox","title":"Why prefer libvirt over providers such as VirtualBox?","text":"

As mentioned, KVM is a native virtualisation solution to Linux. This means a significant performance boost when compared to other providers at the slight cost of portability - if you run Linux only, then this is your solution of choice!

If you have never used libvirt before and just heard about it in this how-to, there are several goodies worth mentioning. As an example unrelated to Vagrant: Virt-Manager allows you to get a similar GUI experience out of KVM as that of e.g. VirtualBox, it is fully Free Software (no worrying about licensing shenanigans) and is more modular - in fact, there is a libvirt VirtualBox driver out there.

"},{"location":"HowTo/vagrant-with-libvirt/#install-the-plugin","title":"Install the plugin","text":"

Normally one would invoke a single command: vagrant plugin install vagrant-libvirt and the plugin would work well out-of-the-box. This is not the case for Linux distributions from the Enterprise Linux family and Upstream is aware of that, but as of today (2021.12.21) it doesn't appear to be resolved.

Because of that, you'll need to build additional components and use them with your Vagrant installation. The following procedure covers all of this and has been tested to work well with EuroLinux 8.5.

Use these commands:

[ \"$(command -v vagrant)\" ] || \\\n( read -p \"Install Vagrant first before running the following commands\" \\\n  && exit 1 )\n\nsudo dnf groupinstall \"Development Tools\" \"Virtualization Host\" -y\nsudo dnf install cmake libvirt-devel ruby-devel -y\n\nmkdir krb5\ncd krb5\nwget https://vault.cdn.euro-linux.com/sources/eurolinux/8/baseos/x86_64/Packages/k/krb5-1.18.2-8.el8.src.rpm\nrpm2cpio krb5*.src.rpm | cpio -idmv\ntar xf krb5*.tar.gz\ncd krb5*/src\n./configure\nmake\nsudo cp -P lib/crypto/libk5crypto.* /opt/vagrant/embedded/lib64/\ncd\n\nmkdir libssh\ncd libssh\nwget https://vault.cdn.euro-linux.com/sources/eurolinux/8/baseos/x86_64/Packages/l/libssh-0.9.4-3.el8.src.rpm\nrpm2cpio libssh*.src.rpm | cpio -idmv\ntar xf libssh*.tar.xz\nmkdir build\ncd build\ncmake ../libssh-*/ -DOPENSSL_ROOT_DIR=/opt/vagrant/embedded/\nmake\nsudo cp lib/libssh* /opt/vagrant/embedded/lib64\ncd\n\nvagrant plugin install vagrant-libvirt && rm -rf krb5 libssh\nsudo usermod -a -G libvirt $USER\n

Next, log out from all of your sessions (graphical and text) and log in again. From now on you should be able to run Vagrant boxes with libvirt if all requirements have been satisfied, e.g. you don't have any other providers enabled (an equivalent of deploying this guide on a clean installation).

"},{"location":"HowTo/vagrant-with-libvirt/#additional-resources","title":"Additional resources","text":"
  • The plugin's repository
  • Websites of provider-related projects: KVM, libvirt, QEMU, Virt-Manager
"},{"location":"HowTo/virtualbox/","title":"VirtualBox","text":"

How to set up your VirtualBox installation.

"},{"location":"HowTo/virtualbox/#introduction","title":"Introduction","text":""},{"location":"HowTo/virtualbox/#use-cases","title":"Use cases","text":"

Consider the following examples:

  • You use software that doesn't work on your EuroLinux 8 installation.
  • You want to try out some potentially dangerous actions and don't want to endanger your machine.
  • You develop some awesome software and want to test it on several systems for compatibility
  • You want an easily reproducible environment that works the same way on every person's machine
  • You need a multi-machine laboratory, maybe with several different systems and don't have the resources for a physical equipment
"},{"location":"HowTo/virtualbox/#why-use-it-over-other-virtualisation-providers","title":"Why use it over other virtualisation providers?","text":"

VirtualBox is the provider with a copyleft license and a focus on interoperability when it comes to supporting different platforms. This allows you to cooperate with someone running a different operating system and when exchanging documentation - once written it's applicable to anyone that can run the software. New VirtualBox versions usually support older operating systems too. One can enjoy the new features on a system, which has recently reached its End of Life, which can be indispensable for a company that can't migrate yet.

"},{"location":"HowTo/virtualbox/#system-requirements","title":"System requirements","text":"

A brief documentation is available at Upstream's.

Your machine shall support hardware virtualisation. If it doesn't, you either need to perform additional troubleshooting - e.g. enable virtualisation in your machine's BIOS settings.

[ $(grep -cE 'vmx|svm' /proc/cpuinfo) -gt 0 ] && echo \"OK\"\n

Make sure you're running EuroLinux 8 on x86_64 architecture rather than ARM.

[ \"$(arch)\" == \"x86_64\" ] && echo \"OK\"\n
"},{"location":"HowTo/virtualbox/#installation-on-eurolinux-8","title":"Installation on EuroLinux 8","text":"

As of today (2 September 2021), 6.1 is the main VirtualBox branch and this is the one we install in this guide. Assuming your account has been made an administrator during the system installation process, simply run these commands for an installation:

sudo dnf groupinstall \"Development Tools\" -y\nsudo dnf config-manager \\\n  --add-repo=https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo\nsudo dnf install VirtualBox-6.1 -y\n

VirtualBox should be ready to use!

"},{"location":"HowTo/virtualbox/#usb-devices","title":"USB devices","text":"

If you want VirtualBox to support USB devices for your system account, run this command as well:

sudo usermod -a -G vboxusers $USER\n

then log out of your graphical session and log in again.

"},{"location":"HowTo/virtualbox/#extension-pack","title":"Extension Pack","text":"

VirtualBox doesn't support certain technologies out-of-the-box, e.g. USB 2.0/3.0 or builtin disk encryption, among others. If you want them to be supported, you will need VirtualBox Extension Pack. Make sure you have read its license and understand its implications - you're responsible for compliance. You may want to read Upstream's FAQ for a quick start.

Once you're sure you'll be able to comply with the licensing terms, run these commands to install the Extension Pack:

export vbox_version=\"$(VBoxManage --version | cut -d'r' -f 1)\"\nwget \"https://download.virtualbox.org/virtualbox/$vbox_version/Oracle_VM_VirtualBox_Extension_Pack-$vbox_version.vbox-extpack\"\nyes | sudo VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-$vbox_version.vbox-extpack\n
"},{"location":"HowTo/virtualbox/#troubleshooting","title":"Troubleshooting","text":""},{"location":"HowTo/virtualbox/#i-cant-enable-hardware-virtualisation-and-prefer-software-emulation","title":"I can't enable hardware virtualisation and prefer software emulation","text":"

As Upstream says, for software mode you'll need VirtualBox branch 6.0 or older.

Please also use version 6.0 if you need to run VMs with software virtualization, as this has been discontinued in 6.1.

"},{"location":"HowTo/virtualbox/#additional-resources","title":"Additional resources","text":""},{"location":"HowTo/virtualbox/#upstreams-release-pages","title":"Upstream's release pages","text":"

If you prefer a manual download, check out Upstream's Linux release pages and use the one they provide for RHEL 8.

"},{"location":"HowTo/virtualbox/#rpm-fusion","title":"RPM Fusion","text":"

Alternatively you can use RPM Fusion repository for installation. The software might differ in branding a bit and only the latest release is provided. Use these commands:

sudo dnf localinstall \\\n  https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y\nsudo dnf localinstall --nogpgcheck \\\n  https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm -y\nsudo dnf install VirtualBox -y\nsudo akmods --kernels $(uname -r) && sudo systemctl restart vboxdrv.service\n
"},{"location":"HowTo/z-documentation-markdown/","title":"Quick markdown and extensions guide","text":"

The first part of this guide is loosely based on Adam Pritchard markdown-here cheatsheet. We include it here for contributors as reference and show how different pieces will be styled. If you are familiar with markdown, and want to skip to this project specific extensions they start with Admonition:

"},{"location":"HowTo/z-documentation-markdown/#headers","title":"Headers","text":"

Headers are created with #.

# H1 This is is reserved for page title/name\n## H2 [Contribution guide] is h2\n### H3 [Headers] is h3\n...\n###### H6\n

"},{"location":"HowTo/z-documentation-markdown/#this-is-fourth-header","title":"This is fourth header","text":""},{"location":"HowTo/z-documentation-markdown/#this-is-fifth-header","title":"This is fifth header","text":""},{"location":"HowTo/z-documentation-markdown/#this-is-sixth-header","title":"This is sixth header","text":"

Headers are essentials, because table of content is based on them.

"},{"location":"HowTo/z-documentation-markdown/#emphasis","title":"Emphasis","text":"

Emphasis, aka italics, with *asterisks* or _underscores_. \n\nStrong emphasis, aka bold, with **asterisks** or __underscores__.\n\nCombined emphasis with **asterisks and _underscores_**.\n\nStrikethrough uses two tildes. ~~Scratch this.~~\n
Emphasis, aka italics, with asterisks or underscores.

Strong emphasis, aka bold, with asterisks or underscores.

Combined emphasis with asterisks and underscores.

Strikethrough uses two tildes. ~~Scratch this.~~

"},{"location":"HowTo/z-documentation-markdown/#list","title":"List","text":"

Proper markdown required

MK-Docs has proper markdown list ordering that is 1 to 1 with markdown standard.

See: Python Markdown Issue 3

TLDR: You have indent sub-list and paragraps with 4 spaces

(In this example, leading and trailing spaces are shown with with dots: \u22c5)

1. First ordered list item\n2. Another item\n\u22c5\u22c5\u22c5\u22c5* Unordered sub-list. \n1. Actual numbers don't matter, just that it's a number\n\u22c5\u22c5\u22c5\u22c51. Ordered sub-list\n4. And another item.\n\n\u22c5\u22c5\u22c5\u22c5To create paragraph within list item you need newline and four leading spaces. To have a line\u22c5\u22c5\n\u22c5\u22c5\u22c5\u22c5break without a paragraph, you will need to use two trailing spaces.\n\n!!! info Python markdown quirk\n    Python-Markdown won't reset list without paragraph. Even if list types are\n    not compatybile (ordered vs unordered)\n\n* Unordered list can use asterisks\n- Or minuses\n+ Or pluses\n

  1. First ordered list item
  2. Another item
    • Unordered sub-list.
  3. Actual numbers don't matter, just that it's a number
    1. Ordered sub-list
  4. And another item.

    To create paragraph within list item you need newline and four leading spaces. To have a line break without a paragraph, you use two trailing spaces.

Python markdown quirk

Python-Markdown won't reset list without paragraph. Even if list types are not compatybile (ordered vs unordered)

  • Unordered list can use asterisks
  • Or minuses
  • Or pluses
"},{"location":"HowTo/z-documentation-markdown/#code-blocks","title":"Code blocks","text":"

To add code block use (without leading space)

 ```python\n # nice\n for i in range(69, 420):\n   print(i)\n ```\n

Example:

# nice\nfor i in range(69, 420):\n  print(i)\n

"},{"location":"HowTo/z-documentation-markdown/#admonition","title":"Admonition","text":"

Info

This is admontion extension for markdown. It support things like (info,todo), (warning,caution,attention), (danger,error) and more.

Code in markdown:

!!! info\n    This is admontion extension for markdown. It support things like\n    (info,todo), (warning,caution,attention), (danger,error) and more.\n

For more information check documentation

Check mkdocs-material docs

Code in markdown:

!!! warning \"For more information check documentation\"\n    Check [mkdocs-material docs](https://squidfunk.github.io/mkdocs-material/reference/admonitions/)\n

"},{"location":"HowTo/z-documentation-markdown/#keyboard-keys","title":"Keyboard Keys","text":"

Sometimes you might add keys combinations. For example:

To use second TY terminal use following key combination Ctrl+Alt+F2

To make them visible in nice way you should use following syntax:

To use second TY terminal use following key combination ++ctrl+alt+f2++\n

"},{"location":"jumpstarts/8-jumpstart/","title":"EuroLinux 8 Jump Start","text":"

This document contains the necessary information to set up your first EuroLinux 8 installation.

"},{"location":"jumpstarts/8-jumpstart/#system-requirements","title":"System Requirements","text":""},{"location":"jumpstarts/8-jumpstart/#x86_64-64-bit-amdintel-architecture","title":"x86_64 (64 bit AMD/Intel architecture)","text":"

Minimal and recommended requirements are following:

Resource Absolute minimal requirements for cloud deployment Minimal Recommended Logical CPU 1 1 1 RAM 768MB or 512MB with swap space 1 GB 1.5 GB per logical CPU Storage 5 GB (excluding swap) 10GB 20GB

Logical CPU means Physical CPU (including Hyper-Threading) or vCPU (virtual CPU).

Warning

It might be impossible to install EuroLinux on a system that does not meet recommended requirements.

"},{"location":"jumpstarts/8-jumpstart/#aarch64-64-bit-arm-architecture","title":"aarch64 (64 bit ARM architecture)","text":"

Minimal and recommended requirements are following:

Resource Absolute minimal requirements for cloud deployment Minimal Recommended Logical CPU 1 1 1 RAM 1 GB or 512MB with swap space 2 GB 2 GB per logical CPU Storage 5GB 10GB 20GB"},{"location":"jumpstarts/8-jumpstart/#about-absolute-minimums-for-cloud-deployment","title":"About absolute minimums for cloud deployment","text":"

During our internal testing, we were able to boot and use very basic and already installed services on Virtual Machine with only 256 MB of RAM. However, without additional memory or at least swap space available, things like updating the system will result in actions of Kernel Out of Memory (OOM) Killer.

You can try it yourself with EuroLinux Vagrant boxes and following Vagrantfile:

Vagrant.configure(\"2\") do |config|\n  config.vm.box = \"eurolinux-vagrant/eurolinux-8\"\n\n  # Explicitly disable vbguest because we are using rsync\n  if Vagrant.has_plugin?(\"vagrant-vbguest\")\n      config.vbguest.auto_update = false\n  end\n\n  config.vm.provider \"virtualbox\" do |vb|\n    vb.memory = \"256\"\n    vb.cpus = 1\n  end\n  config.vm.provider \"libvirt\" do |vb|\n    vb.memory = \"256\"\n    vb.cpus = 1\n  end\nend\n

It's also possible to install EuroLinux on less than 5 GB of space, but it also requires extra attention.

All absolute minimums for cloud deployments described above are not officially supported by EuroLinux.

"},{"location":"jumpstarts/8-jumpstart/#secure-boot","title":"Secure boot","text":"

At the moment, EuroLinux does not support secure boot. The full secure boot support is planned at the end of Q1/beginning of Q2 2022.

"},{"location":"jumpstarts/8-jumpstart/#how-to-install-eurolinux-8-from-iso","title":"How to install EuroLinux 8 from ISO","text":""},{"location":"jumpstarts/8-jumpstart/#where-can-you-obtain-iso","title":"Where can you obtain ISO?","text":"

We distribute EuroLinux in a responsible open core model. Because of that, you might download EuroLinux from different sources. The two primary sources are:

  • https://fbi.cdn.euro-linux.com/isos/ open for everyone
  • https://customerportal.euro-linux.com for EuroLinux customers

The only difference is that Customer Portal keeps older versions, when CDN, that is used for mirroring, keeps only two of the latest ISOs for each version to save space (single EuroLinux AppStream ISO might take up to 10 GB).

If you are running a huge deployment, you might consider setting up your own mirror and download ISOs from Intranet.

"},{"location":"jumpstarts/8-jumpstart/#how-to-check-iso-integrity","title":"How to check ISO integrity","text":"

During download, many things can happen - from a network or sending host failure to single-bit error. To check if ISO is undamaged, there are two mechanisms in place.

  • For each EuroLinux ISO there's a file with its checksums and appropriate digest algorithms. Its name says, which algorithm was used to calculate the cryptographic digest. For example, you can browse https://fbi.cdn.euro-linux.com/isos/ and read the sha1sums.txt file.

When the ISO download is completed, you can invoke the sha1sum command on the ISO file and check if checksums match.

[Alex@SpaceShipEL8 Downloads]$ sha1sum EL-8.3-x86_64-20210624-appstream.iso \n6a8abaaebe288553ec8568bd9de3f5fda5f1ddb5  EL-8.3-x86_64-20210624-appstream.iso\n
  • The second mechanism for checking ISO integrity is built-in inside the installer itself. When you start the installation, use the Test this media & install EuroLinux 8 entry:

After booting up, the ISO checking process will start.

"},{"location":"jumpstarts/8-jumpstart/#installation-with-gui","title":"Installation with GUI","text":"

Because even a minimal installation uses a GUI the whole process is simple and straightforward. EuroLinux 8, as well as previous versions, uses Anaconda installer that clearly informs the user what needs to be done in order to install the system.

First, you have to choose the language that will be used during installation:

After configuring the installer language you should see a menu similar to:

"},{"location":"jumpstarts/8-jumpstart/#anaconda-installer-localization-section","title":"Anaconda installer LOCALIZATION section:","text":"
  • Keyboard - this section allows you to setup keyboard layouts, including the default keyboard layout, additional layouts and key combination to switch between them.
  • Language support - additional languages packages that should be installed.
  • Time & Date - configure the date, time zone, enable NTP and NTP servers.
"},{"location":"jumpstarts/8-jumpstart/#anaconda-installer-software-section","title":"Anaconda installer SOFTWARE section:","text":""},{"location":"jumpstarts/8-jumpstart/#configuring-source-of-the-installation","title":"Configuring source of the installation","text":"

Here you might configure the source of your installation. By default, the system installs from the ISO image itself. This is one of the officially supported ways to install EuroLinux.

If you enable a NIC (Network Interface Card) in the Network installer section, you might add additional EuroLinux repositories and/or other repositories. If you add EuroLinux repositories, the installer will automatically download newer version of the packages.

'certify-' prefix

Since EuroLinux 8.6 the 'certify-' prefixes in repo URLs and names are no longer used. These names and URLs were used before we started distributing our system in the open core model. These URLs are and will be kept as the symbolic link for backward compatibility. They can be used in some older parts of the documentation.

EuroLinux 8 repositories:

  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/BaseOS/os Name: BaseOSProd
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/AppStream/os Name: AppStreamProd
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/PowerTools/os Name: PowerToolsProd

For EuroLinux 8 beta:

  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/beta-BaseOS/os Name: BaseOSBeta
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/beta-AppStream/os Name: AppStreamBeta
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/beta-PowerTools/os Name: PowerToolsBeta

Limited support.

Hybrid network installation from both ISO and public repositories is not our primary goal in the QA process. Packages in EuroLinux repositories are regularly updated, and it might be impossible to install a system from an external source. Depending on the state of the upstream, we might not fix a potential issue.

Below you can see an example configuration that was used to install a system:

After changing the installation source, you will have to confirm Software Selection.

"},{"location":"jumpstarts/8-jumpstart/#software-selection","title":"Software Selection","text":"

Software Selection allows you to customize which packages will be installed. You might choose from base environment groups like Server with GUI, Workstation or Minimal. You can also install additional package groups.

"},{"location":"jumpstarts/8-jumpstart/#anaconda-installer-system-section","title":"Anaconda installer SYSTEM section:","text":"
  • Installation selection allows choosing on which disk the system will be installed. If you want to have a fully encrypted system, you should enable encryption in this step.
  • KDUMP allows choosing if KDUMP (Kernel crash dump collection mechanism) should be enabled.
  • Network & Hostname - you can configure your system networking here
  • Security policy - you can setup an additional openscap policy here
"},{"location":"jumpstarts/8-jumpstart/#anaconda-installer-user-settings-section","title":"Anaconda installer USER SETTINGS section:","text":"
  • Root Password - by default, the root user is disabled. If a user is created in User Creation section, the root account can stay disabled
  • User Creation section allows creating a regular user in the system. If the Make this user administrator option is checked, the root account can be disabled.

After applying all the necessary changes, the installation can be started with the \"Begin Installation\" button.

"},{"location":"jumpstarts/8-jumpstart/#disk-partition-recommended-minimums","title":"Disk partition recommended minimums","text":"

You need at least the following partitions.

  • /boot for Linux kernel and init ramdisks - 1GB
  • / (root partition) - at least 10 GB (a very minimal system might use as little as 2GB - but it requires extra attention and is not officially supported by EuroLinux)

For UEFI, an EFI system partition is also required.

  • /boot/efi - at least 100MB

If your storage allows it, the following partitions are also highly recommended:

  • swap - 1GB or more depending on the system RAM and workload. Swap is also required for hibernation. Depending on the workload of the system, it should be at least as spacious as system RAM.
  • /home - at least 1GB - but in most cases, if / can be as big as 80GB, then /home/ usually takes the rest of the free space
"},{"location":"jumpstarts/8-jumpstart/#installing-eurolinux-in-basic-graphic-mode","title":"Installing EuroLinux in basic graphic mode","text":"

Suppose there is a problem loading/running your graphics card driver (it might results in a black screen/error message or graphical artifacts). It's possible to install EuroLinux in basic graphics mode.

To do so, choose Troubleshooting on the welcome menu, and then Install EuroLinux 8 in basic graphics mode.

From this point the process is identical to a standard installation with GUI.

"},{"location":"jumpstarts/8-jumpstart/#installing-eurolinux-in-text-mode","title":"Installing EuroLinux in text mode","text":"

To install EuroLinux in text mode:

  • Boot EuroLinux ISO
  • Press Esc to stop installation options selection timeout
  • Press Tab
  • Add inst.text to the end of the kernel boot command line
  • Press Enter

Before running the installation you have to provide all the necessary information (represented as ! in selection). It's a good idea to refresh the menu with R+Enter command shortly after the installer started.

After customization you are ready to start your installation.

"},{"location":"jumpstarts/8-jumpstart/#other-possibilities","title":"Other possibilities","text":"

EuroLinux can also be installed in the following manner:

  • Automated installation with a kickstart file.
  • Installation with PXE
  • Installation via VNC

Please consult upstream documentation about these topics.

"},{"location":"jumpstarts/8-jumpstart/#using-eurolinux","title":"Using EuroLinux","text":"

From this point, you can use EuroLinux as any other RHEL\u2122 based distribution.

"},{"location":"jumpstarts/8-jumpstart/#submitting-a-request-for-change","title":"Submitting a Request for Change","text":"

We truly care. If there is something that you believe could/should be changed/improved in the EuroLinux distribution and does not break compatibility with the upstream project, then drop us the issue on GitHub! All contributors are extremely welcome.

EuroLinux Distro Bugs and RFC

"},{"location":"jumpstarts/8-jumpstart/#submitting-a-bug-report","title":"Submitting a Bug report","text":"

We decided that submitting bug reports should not involve registration into some nasty miserable software. At the very same time, we know that most open-source developers have GitHub profiles. This choice makes the decision making and work as transparent as possible. That's why we decided to use it as the primary way to submit bugs.

EuroLinux Distro Bugs and RFC

This repository allows you to stay in direct contact with EuroLinux developers.

"},{"location":"jumpstarts/8-jumpstart/#other-ways-to-submit-a-bug-report","title":"Other ways to submit a bug report","text":"
  • support AT euro-linux dot com
  • EuroLinux Support Portal (subscription required)
"},{"location":"jumpstarts/8-jumpstart/#securityconfidential-bug-report","title":"Security/confidential bug report","text":"

Please use the e-mail provided above.

"},{"location":"jumpstarts/9-beta-jumpstart/","title":"EuroLinux 9 Beta Jump Start","text":"

This document contains the necessary information to set up your first EuroLinux 9 Beta installation.

"},{"location":"jumpstarts/9-beta-jumpstart/#system-requirements","title":"System Requirements","text":""},{"location":"jumpstarts/9-beta-jumpstart/#x86_64-64-bit-amdintel-architecture","title":"x86_64 (64 bit AMD/Intel architecture)","text":"

Minimal and recommended requirements are following:

Resource Absolute minimal requirements for cloud deployment Minimal Recommended Logical CPU 1 1 1 RAM 1 GiB or 768 MiB with swap space 2 GiB 1.5 GiB per logical CPU Storage 5 GB (excluding swap) 10GB 20GB

Logical CPU means Physical CPU (including Hyper-Threading) or vCPU (virtual CPU).

Warning

It might be impossible to install EuroLinux on a system that does not meet recommended requirements.

"},{"location":"jumpstarts/9-beta-jumpstart/#about-absolute-minimums-for-cloud-deployment","title":"About absolute minimums for cloud deployment","text":"

During our internal testing, we were able to boot and use very basic and already installed services on Virtual Machine with only 340 MiB of RAM. However, without additional memory or at least swap space available, things like updating the system will result in actions of Kernel Out of Memory (OOM) Killer.

You can try it yourself with EuroLinux Vagrant boxes and the following Vagrantfile:

Vagrant.configure(\"2\") do |config|\n  config.vm.box = \"eurolinux-vagrant/eurolinux-9\"\n\n  # Explicitly disable vbguest because we are using rsync\n  if Vagrant.has_plugin?(\"vagrant-vbguest\")\n      config.vbguest.auto_update = false\n  end\n\n  config.vm.provider \"virtualbox\" do |vb|\n    vb.memory = \"340\"\n    vb.cpus = 1\n  end\n  config.vm.provider \"libvirt\" do |vb|\n    vb.memory = \"340\"\n    vb.cpus = 1\n  end\nend\n

It's also possible to install EuroLinux on less than 5 GB of space, but it also requires extra attention.

All absolute minimums for cloud deployments described above are not officially supported by EuroLinux.

"},{"location":"jumpstarts/9-beta-jumpstart/#secure-boot","title":"Secure boot","text":"

Since EuroLinux 9 Beta is a pre-release version and not ready for production use, Secure Boot support has not been implemented.

"},{"location":"jumpstarts/9-beta-jumpstart/#how-to-install-eurolinux-9-beta-from-iso","title":"How to install EuroLinux 9 Beta from ISO","text":""},{"location":"jumpstarts/9-beta-jumpstart/#where-can-you-obtain-iso","title":"Where can you obtain ISO?","text":"

We distribute EuroLinux in a responsible open core model. Because of that, you might download EuroLinux from different sources. The two primary sources are:

  • https://fbi.cdn.euro-linux.com/isos/ open for everyone
  • https://customerportal.euro-linux.com for EuroLinux customers

The only difference is that Customer Portal keeps older versions, when CDN, that is used for mirroring, keeps only two of the latest ISOs for each version to save space (single EuroLinux BaseOS ISO might take up to 8 GB).

If you are running a huge deployment, you might consider setting up your own mirror and download ISOs from Intranet.

"},{"location":"jumpstarts/9-beta-jumpstart/#how-to-check-iso-integrity","title":"How to check ISO integrity","text":"

During download, many things can happen - from a network or sending host failure to single-bit error. To check if ISO is undamaged, there are two mechanisms in place.

  • For each EuroLinux ISO there's a file with its checksums and appropriate digest algorithms. Its name says, which algorithm was used to calculate the cryptographic digest. For example, you can browse https://fbi.cdn.euro-linux.com/isos/ and read the sha1sums.txt file.

When the ISO download is completed, you can invoke the sha1sum command on the ISO file and check if checksums match.

$ sha1sum EL-9.0-x86_64-20220225-minimal.iso\n73d39d443e27414085f7107fa21dd214d28b8730  EL-9.0-x86_64-20220225-minimal.iso\n
  • The second mechanism for checking ISO integrity is built-in inside the installer itself. When you start the installation, use the Test this media & install EuroLinux 9 entry:

After booting up, the ISO checking process will start.

"},{"location":"jumpstarts/9-beta-jumpstart/#installation-with-gui","title":"Installation with GUI","text":"

Because even a minimal installation uses a GUI the whole process is simple and straightforward. EuroLinux 9, as well as previous versions, uses Anaconda installer that clearly informs the user what needs to be done in order to install the system.

First, you have to choose the language that will be used during installation: Hint: since the Anaconda installer on EuroLinux 9 activates a network connection automatically if applicable, it also determines the default language by the automatic location detection feature - in this case you can see that Polish has been automatically chosen.

Since this is a Beta release, we might need to confirm that we are aware of this fact and that this release should not be used in production.

After configuring the installer language you should see a menu similar to:

"},{"location":"jumpstarts/9-beta-jumpstart/#anaconda-installer-localization-section","title":"Anaconda installer LOCALIZATION section:","text":"
  • Keyboard - this section allows you to setup keyboard layouts, including the default keyboard layout, additional layouts and key combination to switch between them.
  • Language support - additional languages packages that should be installed.
  • Time & Date - configure the date, time zone, enable NTP and NTP servers.
"},{"location":"jumpstarts/9-beta-jumpstart/#anaconda-installer-software-section","title":"Anaconda installer SOFTWARE section:","text":""},{"location":"jumpstarts/9-beta-jumpstart/#configuring-source-of-the-installation","title":"Configuring source of the installation","text":"

Here you might configure the source of your installation. By default, the system installs from the ISO image itself. This is one of the officially supported ways to install EuroLinux.

If a NIC (Network Interface Card) has been enabled in the Network & Host Name installer section, you might add additional EuroLinux repositories and/or other repositories. If you add EuroLinux repositories, the installer will automatically download newer version of the packages.

EuroLinux 9 Beta repositories:

  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/certify-beta-BaseOS/os Name: BaseOS
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/certify-beta-AppStream/os Name: AppStream
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/certify-beta-PowerTools/os Name: PowerTools

Limited support.

Hybrid network installation from both ISO and public repositories is not our primary goal in the QA process. Packages in EuroLinux repositories are regularly updated, and it might be impossible to install a system from an external source. Depending on the state of the upstream, we might not fix a potential issue.

Below you can see an example configuration that was used to install a system - in this case the default 'Minimal' repository has been provided as the only one:

After changing the installation source, you will have to confirm Software Selection.

"},{"location":"jumpstarts/9-beta-jumpstart/#software-selection","title":"Software Selection","text":"

Software Selection allows you to customize which packages will be installed. You might choose from base environment groups like Server with GUI, Workstation or Minimal Install - since we are demonstrating with the minimal ISO image, only the last option is available. You can also install additional package groups.

"},{"location":"jumpstarts/9-beta-jumpstart/#anaconda-installer-system-section","title":"Anaconda installer SYSTEM section:","text":"
  • Installation selection allows choosing on which disk the system will be installed. If you want to have a fully encrypted system, you should enable encryption in this step.
  • KDUMP allows choosing if KDUMP (Kernel crash dump collection mechanism) should be enabled.
  • Network & Host Name - you can configure your system networking here
  • Security Profile - you can setup an additional openscap policy here
"},{"location":"jumpstarts/9-beta-jumpstart/#anaconda-installer-user-settings-section","title":"Anaconda installer USER SETTINGS section:","text":"
  • Root Password - by default, the root user is disabled. If a user is created in User Creation section, the root account can stay disabled
  • User Creation section allows creating a regular user in the system. If the Make this user administrator option is checked, the root account can be disabled.

After applying all the necessary changes, the installation can be started with the \"Begin Installation\" button.

"},{"location":"jumpstarts/9-beta-jumpstart/#disk-partition-recommended-minimums","title":"Disk partition recommended minimums","text":"

You need at least the following partitions.

  • /boot for Linux kernel and init ramdisks - 1GB
  • / (root partition) - at least 10 GB (a very minimal system might use as little as 2GB - but it requires extra attention and is not officially supported by EuroLinux)

For UEFI, an EFI system partition is also required.

  • /boot/efi - at least 100MB

If your storage allows it, the following partitions are also highly recommended:

  • swap - 1GB or more depending on the system RAM and workload. Swap is also required for hibernation. Depending on the workload of the system, it should be at least as spacious as system RAM.
  • /home - at least 1GB - but in most cases, if / can be as big as 80GB, then /home/ usually takes the rest of the free space
"},{"location":"jumpstarts/9-beta-jumpstart/#installing-eurolinux-in-basic-graphic-mode","title":"Installing EuroLinux in basic graphic mode","text":"

Suppose there is a problem loading/running your graphics card driver (it might results in a black screen/error message or graphical artifacts). It's possible to install EuroLinux in basic graphics mode.

To do so, choose Troubleshooting on the welcome menu, and then Install EuroLinux 9 in basic graphics mode.

From this point the process is identical to a standard installation with GUI.

"},{"location":"jumpstarts/9-beta-jumpstart/#installing-eurolinux-in-text-mode","title":"Installing EuroLinux in text mode","text":"

To install EuroLinux in text mode:

  • Boot EuroLinux ISO
  • Press Esc to stop installation options selection timeout
  • Press Tab
  • Add inst.text to the end of the kernel boot command line
  • Press Enter

Since the Anaconda installer on EuroLinux 9 activates a network connection automatically if applicable, it also determines that we can start VNC or use text mode entirely. Since we are demonstrating the text mode installation, we choose the latter option.

Before running the installation you have to provide all the necessary information (represented as ! in selection). It's a good idea to refresh the menu with R+Enter command shortly after the installer started.

After customization you are ready to start your installation.

"},{"location":"jumpstarts/9-beta-jumpstart/#other-possibilities","title":"Other possibilities","text":"

EuroLinux can also be installed in the following manner:

  • Automated installation with a kickstart file.
  • Installation with PXE
  • Installation via VNC (as mentioned above)

Please consult upstream documentation about these topics.

"},{"location":"jumpstarts/9-beta-jumpstart/#using-eurolinux","title":"Using EuroLinux","text":"

From this point, you can use EuroLinux as any other RHEL\u2122 based distribution.

"},{"location":"jumpstarts/9-beta-jumpstart/#submitting-a-request-for-change","title":"Submitting a Request for Change","text":"

We truly care. If there is something that you believe could/should be changed/improved in the EuroLinux distribution and does not break compatibility with the upstream project, then drop us the issue on GitHub! All contributors are extremely welcome.

EuroLinux Distro Bugs and RFC

"},{"location":"jumpstarts/9-beta-jumpstart/#submitting-a-bug-report","title":"Submitting a Bug report","text":"

We decided that submitting bug reports should not involve registration into some nasty miserable software. At the very same time, we know that most open-source developers have GitHub profiles. This choice makes the decision making and work as transparent as possible. That's why we decided to use it as the primary way to submit bugs.

EuroLinux Distro Bugs and RFC

This repository allows you to stay in direct contact with EuroLinux developers.

"},{"location":"jumpstarts/9-beta-jumpstart/#other-ways-to-submit-a-bug-report","title":"Other ways to submit a bug report","text":"
  • support AT euro-linux dot com
  • EuroLinux Support Portal (subscription required)
"},{"location":"jumpstarts/9-beta-jumpstart/#securityconfidential-bug-report","title":"Security/confidential bug report","text":"

Please use the e-mail provided above.

"},{"location":"jumpstarts/9-jumpstart/","title":"EuroLinux 9 Jump Start","text":"

This document contains the necessary information to set up your first EuroLinux 9 installation.

"},{"location":"jumpstarts/9-jumpstart/#system-requirements","title":"System Requirements","text":""},{"location":"jumpstarts/9-jumpstart/#x86_64-64-bit-amdintel-architecture","title":"x86_64 (64 bit AMD/Intel architecture)","text":"

Minimal and recommended requirements are following:

Resource Absolute minimal requirements for cloud deployment Minimal Recommended Logical CPU 1 1 1 RAM 1 GiB or 768 MiB with swap space 2 GiB 1.5 GiB per logical CPU Storage 5 GB (excluding swap) 10GB 20GB

Logical CPU means Physical CPU (including Hyper-Threading) or vCPU (virtual CPU).

Warning

It might be impossible to install EuroLinux on a system that does not meet recommended requirements.

"},{"location":"jumpstarts/9-jumpstart/#about-absolute-minimums-for-cloud-deployment","title":"About absolute minimums for cloud deployment","text":"

During our internal testing, we were able to boot and use very basic and already installed services on Virtual Machine with only 340 MiB of RAM. However, without additional memory or at least swap space available, things like updating the system will result in actions of Kernel Out of Memory (OOM) Killer.

You can try it yourself with EuroLinux Vagrant boxes and the following Vagrantfile:

Vagrant.configure(\"2\") do |config|\n  config.vm.box = \"eurolinux-vagrant/eurolinux-9\"\n\n  # Explicitly disable vbguest because we are using rsync\n  if Vagrant.has_plugin?(\"vagrant-vbguest\")\n      config.vbguest.auto_update = false\n  end\n\n  config.vm.provider \"virtualbox\" do |vb|\n    vb.memory = \"340\"\n    vb.cpus = 1\n  end\n  config.vm.provider \"libvirt\" do |vb|\n    vb.memory = \"340\"\n    vb.cpus = 1\n  end\nend\n

It's also possible to install EuroLinux on less than 5 GB of space, but it also requires extra attention.

All absolute minimums for cloud deployments described above are not officially supported by EuroLinux.

"},{"location":"jumpstarts/9-jumpstart/#how-to-install-eurolinux-9-from-iso","title":"How to install EuroLinux 9 from ISO","text":""},{"location":"jumpstarts/9-jumpstart/#where-can-you-obtain-iso","title":"Where can you obtain ISO?","text":"

We distribute EuroLinux in a responsible open core model. Because of that, you might download EuroLinux from different sources. The two primary sources are:

  • https://fbi.cdn.euro-linux.com/isos/ open for everyone
  • https://customerportal.euro-linux.com for EuroLinux customers

The only difference is that Customer Portal keeps older versions, when CDN, that is used for mirroring, keeps only two of the latest ISOs for each version to save space (single EuroLinux BaseOS ISO might take up to 8 GB).

If you are running a huge deployment, you might consider setting up your own mirror and download ISOs from Intranet.

"},{"location":"jumpstarts/9-jumpstart/#how-to-check-iso-integrity","title":"How to check ISO integrity","text":"

During download, many things can happen - from a network or sending host failure to single-bit error. To check if ISO is undamaged, there are two mechanisms in place.

  • For each EuroLinux ISO there's a file with its checksums and appropriate digest algorithms. Its name says, which algorithm was used to calculate the cryptographic digest. For example, you can browse https://fbi.cdn.euro-linux.com/isos/ and read the sha1sums.txt file.

When the ISO download is completed, you can invoke the sha1sum command on the ISO file and check if checksums match.

$ sha1sum EL-9.0-x86_64-20220613-appstream.iso \nd78eebb3472ddff2dcaf110907e42ccee0367f70  EL-9.0-x86_64-20220613-appstream.iso\n
  • The second mechanism for checking ISO integrity is built-in inside the installer itself. When you start the installation, use the Test this media & install EuroLinux 9 entry:

After booting up, the ISO checking process will start.

"},{"location":"jumpstarts/9-jumpstart/#installation-with-gui","title":"Installation with GUI","text":"

Because even a minimal installation uses a GUI the whole process is simple and straightforward. EuroLinux 9, as well as previous versions, uses Anaconda installer that clearly informs the user what needs to be done in order to install the system.

First, you have to choose the language that will be used during installation: Hint: since the Anaconda installer on EuroLinux 9 activates a network connection automatically if applicable, it also determines the default language by the automatic location detection feature - in this case you can see that Polish has been automatically chosen.

After configuring the installer language you should see a menu similar to:

"},{"location":"jumpstarts/9-jumpstart/#anaconda-installer-localization-section","title":"Anaconda installer LOCALIZATION section:","text":"
  • Keyboard - this section allows you to setup keyboard layouts, including the default keyboard layout, additional layouts and key combination to switch between them.
  • Language support - additional languages packages that should be installed.
  • Time & Date - configure the date, time zone, enable NTP and NTP servers.
"},{"location":"jumpstarts/9-jumpstart/#anaconda-installer-software-section","title":"Anaconda installer SOFTWARE section:","text":""},{"location":"jumpstarts/9-jumpstart/#configuring-source-of-the-installation","title":"Configuring source of the installation","text":"

Here you might configure the source of your installation. By default, the system installs from the ISO image itself. This is one of the officially supported ways to install EuroLinux.

If a NIC (Network Interface Card) has been enabled in the Network & Host Name installer section, you might add additional EuroLinux repositories and/or other repositories. If you add EuroLinux repositories, the installer will automatically download newer version of the packages.

EuroLinux 9 repositories:

  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/BaseOS/os Name: BaseOS
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/AppStream/os Name: AppStream
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/CRB/os Name: CRB

Limited support.

Hybrid network installation from both ISO and public repositories is not our primary goal in the QA process. Packages in EuroLinux repositories are regularly updated, and it might be impossible to install a system from an external source. Depending on the state of the upstream, we might not fix a potential issue.

Below you can see an example configuration that was used to install a system - in this case the default 'Minimal' repository has been provided as the only one:

After changing the installation source, you will have to confirm Software Selection.

"},{"location":"jumpstarts/9-jumpstart/#software-selection","title":"Software Selection","text":"

Software Selection allows you to customize which packages will be installed. You might choose from base environment groups like Server with GUI, Workstation or Minimal Install - since we are demonstrating with the minimal ISO image, only the last option is available. You can also install additional package groups.

"},{"location":"jumpstarts/9-jumpstart/#anaconda-installer-system-section","title":"Anaconda installer SYSTEM section:","text":"
  • Installation selection allows choosing on which disk the system will be installed. If you want to have a fully encrypted system, you should enable encryption in this step.
  • KDUMP allows choosing if KDUMP (Kernel crash dump collection mechanism) should be enabled.
  • Network & Host Name - you can configure your system networking here
  • Security Profile - you can setup an additional openscap policy here
"},{"location":"jumpstarts/9-jumpstart/#anaconda-installer-user-settings-section","title":"Anaconda installer USER SETTINGS section:","text":"
  • Root Password - by default, the root user is disabled. If a user is created in User Creation section, the root account can stay disabled
  • User Creation section allows creating a regular user in the system. If the Make this user administrator option is checked, the root account can be disabled.

After applying all the necessary changes, the installation can be started with the \"Begin Installation\" button.

"},{"location":"jumpstarts/9-jumpstart/#disk-partition-recommended-minimums","title":"Disk partition recommended minimums","text":"

You need at least the following partitions.

  • /boot for Linux kernel and init ramdisks - 1GB
  • / (root partition) - at least 10 GB (a very minimal system might use as little as 2GB - but it requires extra attention and is not officially supported by EuroLinux)

For UEFI, an EFI system partition is also required.

  • /boot/efi - at least 100MB

If your storage allows it, the following partitions are also highly recommended:

  • swap - 1GB or more depending on the system RAM and workload. Swap is also required for hibernation. Depending on the workload of the system, it should be at least as spacious as system RAM.
  • /home - at least 1GB - but in most cases, if / can be as big as 80GB, then /home/ usually takes the rest of the free space
"},{"location":"jumpstarts/9-jumpstart/#installing-eurolinux-in-basic-graphic-mode","title":"Installing EuroLinux in basic graphic mode","text":"

Suppose there is a problem loading/running your graphics card driver (it might results in a black screen/error message or graphical artifacts). It's possible to install EuroLinux in basic graphics mode.

To do so, choose Troubleshooting on the welcome menu, and then Install EuroLinux 9 in basic graphics mode.

From this point the process is identical to a standard installation with GUI.

"},{"location":"jumpstarts/9-jumpstart/#installing-eurolinux-in-text-mode","title":"Installing EuroLinux in text mode","text":"

To install EuroLinux in text mode:

  • Boot EuroLinux ISO
  • Press Esc to stop installation options selection timeout
  • Press Tab
  • Add inst.text to the end of the kernel boot command line
  • Press Enter

Since the Anaconda installer on EuroLinux 9 activates a network connection automatically if applicable, it also determines that we can start VNC or use text mode entirely. Since we are demonstrating the text mode installation, we choose the latter option.

Before running the installation you have to provide all the necessary information (represented as ! in selection). It's a good idea to refresh the menu with R+Enter command shortly after the installer started.

After customization you are ready to start your installation.

"},{"location":"jumpstarts/9-jumpstart/#other-possibilities","title":"Other possibilities","text":"

EuroLinux can also be installed in the following manner:

  • Automated installation with a kickstart file.
  • Installation with PXE
  • Installation via VNC (as mentioned above)

Please consult upstream documentation about these topics.

"},{"location":"jumpstarts/9-jumpstart/#using-eurolinux","title":"Using EuroLinux","text":"

From this point, you can use EuroLinux as any other RHEL\u2122 based distribution.

"},{"location":"jumpstarts/9-jumpstart/#submitting-a-request-for-change","title":"Submitting a Request for Change","text":"

We truly care. If there is something that you believe could/should be changed/improved in the EuroLinux distribution and does not break compatibility with the upstream project, then drop us the issue on GitHub! All contributors are extremely welcome.

EuroLinux Distro Bugs and RFC

"},{"location":"jumpstarts/9-jumpstart/#submitting-a-bug-report","title":"Submitting a Bug report","text":"

We decided that submitting bug reports should not involve registration into some nasty miserable software. At the very same time, we know that most open-source developers have GitHub profiles. This choice makes the decision making and work as transparent as possible. That's why we decided to use it as the primary way to submit bugs.

EuroLinux Distro Bugs and RFC

This repository allows you to stay in direct contact with EuroLinux developers.

"},{"location":"jumpstarts/9-jumpstart/#other-ways-to-submit-a-bug-report","title":"Other ways to submit a bug report","text":"
  • support AT euro-linux dot com
  • EuroLinux Support Portal (subscription required)
"},{"location":"jumpstarts/9-jumpstart/#securityconfidential-bug-report","title":"Security/confidential bug report","text":"

Please use the e-mail provided above.

"},{"location":"jumpstarts/cloud-jump-start/","title":"Eurolinux on clouds Jump Start","text":"

This document contains the necessary information to create Your own EuroLinux instance on cloud You prefer.

"},{"location":"jumpstarts/cloud-jump-start/#amazon-web-services-aws","title":"Amazon Web Services (AWS)","text":"

AWS was launched in 2006 and has since grown to become one of the largest cloud computing platforms in the world, with millions of customers and clients ranging from startups to enterprises.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-aws","title":"How to create EuroLinux instance on AWS","text":"
  1. Check our products on AWS Marketplace and select Your favourite.
  2. Click \"Continue to Subscribe\" and then \"Continue to Configuration\"
  3. Select version, region and click \"Continue to Launch\"
  4. Configure the instance as You prefer. Remember to select or create new key pair - it's necessary to create secure connection with instance.
  5. Click \"Launch\"
  6. To get the ip of this instance, go to the EC2 console and select \"Instances\"
  7. Click on Instance ID of the newly created instance and copy ip address
  8. You can log into instance using the ssh comand with -i key-file.pem option
"},{"location":"jumpstarts/cloud-jump-start/#microsoft-azure","title":"Microsoft Azure","text":"

With its strong focus on security and compliance, Azure has become a popular choice for organizations in regulated industries such as healthcare and finance, as well as for government agencies.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-microsoft-azure","title":"How to create EuroLinux instance on Microsoft Azure","text":"
  1. On the Azure Marketplace page, click \"Get It Now\" and accept the service terms.
  2. You will be redirected to the Azure portal, where you will see a \"Create\" button after logging in.
  3. In the \"Basics\" section of the virtual machine settings menu, pay special attention to the \"Administrator account\" section, where you will choose the type of authentication and enter a username that you will use to log in to the machine.
  4. Completing the creation of a typical virtual machine requires simply filling in the required fields in the \"Basics\" section. Then move on to \"Review + create\" and click the \"Create\" button.
  5. Your virtual machine will be created along with all the resources needed for it to function properly. To connect to it, simply select it and use one of the connection options (SSH, RDP, or Bastion) offered by Azure.
"},{"location":"jumpstarts/cloud-jump-start/#google-cloud-platform-gcp","title":"Google Cloud Platform (GCP)","text":"

GCP is designed to allow developers and businesses to build, deploy, and run applications and services on Google's infrastructure.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-gcp","title":"How to create EuroLinux instance on GCP","text":"
  1. Make sure you have gcloud tool and all its components installed.
  2. Log into your GCP account via gcloud tool
  3. Choose or create a new project.
  4. Run the following command in the console:

    gcloud beta compute instances create [instance-name] --zone=[zone-name] --machine-type=[machine-type] --subnet=default --image=[image-url] --boot-disk-size=[disk-size]\n

    Where: * [instance-name] is the desired name for the virtual machine. * [zone-name] is the zone where the virtual machine will be created. * [machine-type] is the type of machine to be created. * [image-url] is the URL of the image. * [disk-size] is the size of the boot disk.

    For example to create EuroLinux 8.6 instance in a us-central1-a region, type:

    gcloud beta compute instances create eurolinux-server1 --zone=us-central1-a --machine-type=n1-standard-1 --subnet=default --image=https://www.googleapis.com/compute/v1/projects/eurolinux-cloud/global/images/eurolinux-8-6 --boot-disk-size=10GB\n

"},{"location":"jumpstarts/cloud-jump-start/#alibaba-cloud","title":"Alibaba Cloud","text":"

Alibaba Cloud, also known as Aliyun aims to provide reliable and secure cloud computing solutions for businesses and organizations around the world, with a focus on serving the Asia-Pacific market.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-alibaba-cloud","title":"How to create EuroLinux instance on Alibaba Cloud","text":"
  1. Go to Alibaba Cloud Marketplace and select your favorite EuroLinux operating system image.
  2. Review the product description and then click the \"Choose Your Plan\" button. You will now be redirected to the Aliyun console page where you will continue creating the instance.
  3. Configure the instance to meet your needs. At this point, you can also change the payment type to subscription.
  4. In the System Configurations tab, select or create a \"Key Pair\" that will allow you to access the machine.
  5. Finally, accept the terms and create the instance by clicking \"Create Instance\". After a few minutes, your instance should be ready to use.
"},{"location":"jumpstarts/cloud-jump-start/#openstack","title":"OpenStack","text":"

OpenStack provides a flexible and customizable platform that can be used for a variety of cloud computing needs, from web hosting to big data processing to scientific computing.

Important: It is a cloud-generic images.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-openstack","title":"How to create EuroLinux instance on OpenStack","text":"
  1. Download Your favourite EuroLinux image in qcow2 or raw format. For example: https://fbi.cdn.euro-linux.com/images/EL-9-cloudgeneric-2023-03-19.qcow2
  2. Login to the OpenStack dashboard.
  3. Click on the \"Create Image\" button in \"Compute\" -> \"Images\" section.
  4. Fill in the required information and upload this image to OpenStack.
  5. To Launch Your instance with image You have just created simply click \"Launch Instance\" in \"Compute\" -> \"Instances\" section and fill the required informations.
  6. Make sure You create Your own key-pair and attach it to this instance.
  7. To log into Your EuroLinux instance copy the IP address and using the ssh comand with -i key-file.pem option, login as root to newly created machine.

Important: EuroLinux 9 have the root login without-password enabled by default, which means You have to assign the key-pair to Your instance to login.

"},{"location":"jumpstarts/container-jumpstart/","title":"EuroLinux Containers JumpStart","text":""},{"location":"jumpstarts/container-jumpstart/#basics","title":"Basics","text":"

Using EuroLinux container images is easy. We provide multiple containers and their versions. The most important are base images for EuroLinux 7 (with FBI [Free Base Image] repository) and EuroLinux 8 (with complete repositories - EuroLinux 8 is freely available). All EuroLinux container images are OCI standard container images. You can download them from two primary sources:

  • Docker Hub - EuroLinux 8
  • Docker Hub - EuroLinux 7
  • Quay - EuroLinux 8
  • Quay - EuroLinux 7

EuroLinux images can be run with any OCI standardized container runtimes such as runC (Docker/Moby project) or crun (Podman/Buildah/CRI-O).

To download the image:

Docker Hub:

docker pull eurolinux/eurolinux-8\n

Quay.IO:

podman pull quay.io/eurolinux/eurolinux-8\n

To run a container that will be removed after process exit. You might use:

docker run -rm -ti eurolinux/eurolinux-8\n

Inside the container, you can check the system version

bash-4.4# cat /etc/el-release\nEuroLinux release 8.5 (Tirana)\n

To detach the container from the console, add -d flag to docker/podman run command.

docker run -rm -ti -d --name eurolinux eurolinux/eurolinux-8\n
then run:
docker exec -it eurolinux bash\n
to enter the console of a container.

"},{"location":"jumpstarts/container-jumpstart/#other-containers","title":"Other containers","text":"

As a company, we create and support multiple containers, including other Enterprise Linux distributions. For example, we provide:

  • Docker Hub - AlmaLinux
  • Docker Hub - Rocky
  • Quay - AlmaLinux
  • Quay - Rocky

Other containers that we build are:

  • Oracle Linux
  • Scientific Linux
  • CentOS and CentOS stream

You can visit our organization page on the Docker Hub to find all containers that we officially support.

"},{"location":"jumpstarts/container-jumpstart/#older-versions","title":"Older Versions","text":"

If you want to use the previous version of the EuroLinux container, you must find the desired tag. Example for EuroLinux 8:

  • Docker Hub - EuroLinux 8 - tags
  • Quay - EuroLinux - tags
"},{"location":"jumpstarts/container-jumpstart/#request-for-changecomment-and-bug-report-repository","title":"Request for Change/Comment and Bug report repository","text":"

You can request a change, leave a comment or report a bug in this EuroLinux containers RFC repository.

"},{"location":"jumpstarts/rpi/","title":"EuroLinux for Raspberry Pi Jump Start","text":""},{"location":"jumpstarts/rpi/#about-images","title":"About images","text":"

EuroLinux Raspberry images are made for Raspberry Pi 4 model B. The system is EuroLinux 9. The minimal images could work with older Raspberry Pi 3. But we won't support it even with 'best effort' as Raspberry Pi 3 does not meet the minimum hardware requirements for Enterprise Linux 9 or Enterprise Linux 8.

The basic credentials are the following:

  • user: root
  • password: raspberry

SSH Root login disabled

SSH root login is disabled by default on EuroLinux 9.

Raspberry only

The Raspberry Pi images also won't work with other ARM-64 computers as RPI images are specially tailored for this particular hardware.

"},{"location":"jumpstarts/rpi/#downloading-and-checking-the-images","title":"Downloading and checking the images","text":"

Firstly choose the image from https://fbi.cdn.euro-linux.com/images. The Raspberry Pi images have the rpi-TYPE(where TYPE can be minimal or gnome) in their names. You can download the image with wget, curl or with your browser.

It's advised to check the image integrity by comparing checksums. The SHA256 checksums can be found at https://fbi.cdn.euro-linux.com/images/sha256sum.txt

Example download and checksum comparison:

wget https://fbi.cdn.euro-linux.com/images/EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz\nsha256sum EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz\ncurl -s https://fbi.cdn.euro-linux.com/images/sha256sum.txt | grep EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz\n

"},{"location":"jumpstarts/rpi/#flashing-the-microsd-card","title":"Flashing the MicroSD card","text":"

With the image downloaded now, it's time to flash your MicroSD card. There are multiple options, you can use:

  • Raspberry Pi Imager, which requires manual compilation for the most platforms
  • Balena Etcher comes as AppImage so works with nearly every Linux distribution
  • dd program, which is the most CLI-friendly way, but is also recommended for experienced users

We recommend Balena Etcher as dd might destroy the system partition or other important data if used without proper experience.

"},{"location":"jumpstarts/rpi/#balena-etcher","title":"Balena Etcher","text":"

Balena Etcher is one of the most popular and easy-to-use programs that allow flashing the SD cards for Raspberry Pi. It can also create other bootable media like USB sticks and more. Firstly download the AppImage from the official Balena Etcher website - https://www.balena.io/etcher/ (Download for Linux x64).

Most file managers will run AppImage when chosen and clicked. To run it from the command line firstly change the permissions then run.

chmod 755 balenaEtcher-1.13.1-x64.AppImage\n./balenaEtcher-1.13.1-x64.AppImage\n

The process itself is straightforward. There is plenty of documentation/videos about the Balena Etcher, so we trust that in case of any troubles you will be able to find a solution on your own.

"},{"location":"jumpstarts/rpi/#dd","title":"dd","text":"

dd is a program that is older than Linux Kernel itself :). It is one of these little tool that makes Linux/Unix powerful. It can be used to flash the memory card by writing output to the memory card device.

Firstly insert the memory card into the slot. Then check with the dmesg device file that is corresponding.

The dmesg will inform about partition:

[ TIME] scsi 0:0:0:0: Direct-Access     Generic  Mass-Storage     1.11 PQ: 0 ANSI: 2\n[ TIME] scsi 0:0:0:0: Attached scsi generic sg0 type 0\n[ TIME] sd 0:0:0:0: [sdX] 250347520 512-byte logical blocks: (128 GB/119 GiB)\n[ TIME] sd 0:0:0:0: [sdX] Write Protect is off\n[ TIME] sd 0:0:0:0: [sdX] Mode Sense: 03 00 00 00\n[ TIME] sd 0:0:0:0: [sdX] No Caching mode page found\n[ TIME] sd 0:0:0:0: [sdX] Assuming drive cache: write through\n

Where sdX is your SD card. To write you first need to decompress the image with the xzcat command and then pipe output to the dd (writing to the device requires root privileges, that's why there is sudo).

xzcat /path/to/image/image.raw.xz | sudo dd status=progress oflag=sync bs=4k of=/dev/sdX\n

For example:

xzcat ~/Downloads/EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz | sudo dd status=progress oflag=sync bs=4k of=/dev/sda\n

"},{"location":"jumpstarts/rpi/#booting-from-usb","title":"Booting from USB.","text":"

EuroLinux 9.1 can be natively booted from USB on Raspberry Pi 4. You should flash your USB stick/disk in the same manner that you flash a micro SD card.

Early-produced RPI 4 might require firmware update.

Early-produced Raspberry Pi 4 might require a firmware update before booting the system from the USB.

"},{"location":"jumpstarts/rpi/#wifi-setup","title":"Wifi setup","text":"

Wifi adapter works out-of-box. It's trivial to configure it from a desktop (Gnome). To configure the WIFI from the console you can use the following commands.

Firstly find the SSID (WIFI name) that you want to use:

nmcli d wifi list\n

Then you can provide a password on the command line (note password will be saved in bash command history)

nmcli d wifi connect WIFI_NAME password PASSWORD\n

or if You want to be prompted for the password

nmcli d wifi connect WIFI_NAME --ask\n

Note that your RPI will automatically connect to the WIFI after reboot.

"},{"location":"jumpstarts/rpi/#disable-the-powersave-mode-on-the-raspberry-pi-wifi-card","title":"Disable the powersave mode on the Raspberry Pi WIFI card","text":"

The Raspberry Pi WIFI card by default enters powersave mode when there is not much going on. Some users reported a problem with broken SSH sessions and other closed connections due to this feature. To disable power save mode use the following command

iw wlan0 set power_save off\n

The problem with this solution is that this state won't survive system reboot. To fix that issue during startup you can add a network manager dispatcher script that will disable power_save on boot. Put the following script:

#!/usr/bin/env bash\n\ninterface=$1\nevent=$2\n\nif [[ $interface != \"wlan0\" ]] || [[ $event != \"up\" ]]\nthen\n  return 0\nfi\niw wlan0 set power_save off\n

into the /etc/NetworkManager/dispatcher.d/iw-wlan0-disable-powersave.sh, then add the execution permission

chmod +x /etc/NetworkManager/dispatcher.d/iw-wlan0-disable-powersave.sh\n
"},{"location":"jumpstarts/rpi/#enabling-the-i2c-i2c-inter-integrated-circuit","title":"Enabling the I2C (I\u00b2C - Inter-Integrated Circuit)","text":"

To enable i2c you have to add the i2c_arm with flag on as dtparam to the /boot/config.txt

dtparam=i2c_arm=on\n

The following script can be used:

echo 'dtparam=i2c_arm=on'  | sudo tee -a /boot/config.txt\n

We also recommend installing i2c-tools.

sudo dnf install -y i2c-tools\n

After this changes, you have to reboot the system to start i2c.

"},{"location":"jumpstarts/rpi/#enabling-spi-serial-peripheral-interface","title":"Enabling SPI (Serial Peripheral Interface).","text":"

To enable SPI you have to add spi with flag on as dtparam to the /boot/config.txt

dtparam=spi=on\n
The following script can be used:
echo 'dtparam=spi=on'  | sudo tee -a /boot/config.txt\n
After this changes you have to reboot the system to start SPI.

"},{"location":"jumpstarts/rpi/#feedback","title":"Feedback","text":"

If You want to leave feedback/request for change/bug report on EuroLinux Raspberry Pi images please use the https://github.com/EuroLinux/raspberry-pi-build repository.

If believe that something important from the documentation is missing don't hesitate to create issue in this documentation repository.

"},{"location":"jumpstarts/vagrant-jumpstart/","title":"Vagrant Jumpstart","text":""},{"location":"jumpstarts/vagrant-jumpstart/#introduction","title":"Introduction","text":"

Ever wanted to create a development environment that is guaranteed to work flawlessly on several developers' workstations without the It works on my machine! excuses? Well, now you can! Just get Vagrant, write your specification and share it with coworkers!

"},{"location":"jumpstarts/vagrant-jumpstart/#requirements","title":"Requirements","text":"

Vagrant will be managing the virtual machines of the backend provider of your choice. If you find out it's not listed, consider checking if there's a plugin-based implementation. Make sure you have a supported provider installed - we'll be using VirtualBox in this guide. You can use our VirtualBox installation guide as a reference.

"},{"location":"jumpstarts/vagrant-jumpstart/#installation-on-eurolinux-8","title":"Installation on EuroLinux 8","text":"

Simply run these commands and you're ready to go:

sudo dnf config-manager \\\n  --add-repo=https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo\nsudo dnf install vagrant -y\n
"},{"location":"jumpstarts/vagrant-jumpstart/#eurolinux-boxes","title":"EuroLinux Boxes","text":"

A box is a format that defines: an image of an operating system with preinstalled software, a provider for that image and its version - it's a ready-made appliance for that provider to run. This appliance works the same across people's workstations, which most likely will have differences in configuration and potentially different providers or even operating systems. That is as long as they use a provider, which the box is built for.

EuroLinux Vagrant boxes are available at: https://app.vagrantup.com/eurolinux-vagrant Let's use the box eurolinux-vagrant/eurolinux-8 as an example.

"},{"location":"jumpstarts/vagrant-jumpstart/#box-details","title":"Box details","text":"

See the details of the box - multiple providers, that the box has been built for, are listed along with the box versions and build dates. When writing your specification, you'll be able to choose from them as you wish.

"},{"location":"jumpstarts/vagrant-jumpstart/#run-the-box","title":"Run the box","text":"

Here's a basic procedure for running a Vagrant environment (a virtual machine, which uses our box) in a separate directory:

mkdir el8-vagrant\ncd el8-vagrant/\nvagrant init eurolinux-vagrant/eurolinux-8\nvagrant up\nvagrant ssh\n

You should now be connected to the machine and able to perform your desired operations inside it. Go ahead, play around, install your favourite developer tools, build an awesome, advanced, multi-component application and be sure everyone's able to deploy it on their workstations without any hassle!

"},{"location":"jumpstarts/vagrant-jumpstart/#what-about-the-specification-mentioned-earlier-vagrantfile","title":"What about the specification mentioned earlier? - Vagrantfile","text":"

Once you've ran the commands above, you'll have a Vagrantfile in the el8-vagrant directory. Take a look, what's inside. You'll be greeted with an introduction, references and lots of common options along with comments explaining them:

  # The most common configuration options are documented and commented below.\n  # For a complete reference, please see the online documentation at\n  # https://docs.vagrantup.com.\n

As you've already ran the box as explained in the previous section, you can see that there's no necessity to tweak anything inside Vagrantfile. The parameters that you can tweak, e.g. the virtual machine's memory or the amount of CPUs you should adapt to your work - e.g. if you need additional resources for developing/running your application, go ahead and increase them. Once that's done, check out if they can be reduced once you know your software resource requirements.

Depending on the task you want to achieve, whether it be a ready-made appliance or a base virtual system that gets provisioned with your application and its dependencies or something else, that's when changes to the specification must be made - e.g. the additional provisioning procedure shall be written.

As the comment quoted above says, refer to the comments the Vagrantfile provided for common options explanation. Once you know their purpose, try them out! Get comfortable with them and read Upstream's documentation for additional info, tips and more advanced, cool possibilities - such as a multi-machine infrastructure defined in a single Vagrantfile.

"},{"location":"jumpstarts/vagrant-jumpstart/#additional-resources","title":"Additional resources","text":"
  • Upstream's official website
  • Discover Vagrant Boxes - using EuroLinux as an example
  • Upstream's online documentation, worth mentioning once more
"},{"location":"jumpstarts/wsl/","title":"EuroLinux on WSL Jumpstart","text":"

This guide provides a quick overview of setting up EuroLinux on Windows Subsystem for Linux (WSL).

"},{"location":"jumpstarts/wsl/#prerequisites","title":"Prerequisites:","text":"
  • Windows 10 (Windows 10 version 1709 or newer for \"legacy\" WSL. Version 2004 or newer for WSL 2) or Windows 11
  • WSL/WSL 2 installed (we strongly recommended WSL 2 for better compatibility and performance)
  • Administrative privileges on your Windows system
"},{"location":"jumpstarts/wsl/#enabling-wsl","title":"Enabling WSL","text":"

Follow the official Microsoft documentation to enable WSL: https://learn.microsoft.com/en-us/windows/wsl/

"},{"location":"jumpstarts/wsl/#about-eurolinux-on-wsl","title":"About EuroLinux on WSL","text":"

EuroLinux company provides EuroLinux version 9 for WSL. The system is based on Red Hat Enterprise Linux 9 and is compatible with it. We used our base container image. The official repository is located https://github.com/EuroLinux/wsl it also contains the build scripts and latest documentation/releases.

"},{"location":"jumpstarts/wsl/#import-and-install-eurolinux-for-wsl","title":"Import and install EuroLinux for WSL","text":"
  • x86_64

    wget https://github.com/EuroLinux/WSL/releases/latest/download/el9-x86_64.tar -o el9-x86_64.tar\nwsl --import EuroLinux-9 \"$env:USERPROFILE/EuroLinux-9\" .\\el9-x86_64.tar --version 2\nwsl -d EuroLinux-9\n

  • aarch64

    wget https://github.com/EuroLinux/WSL/releases/latest/download/el9-aarch64.tar -o el9-aarch64.tar\nwsl --import EuroLinux-9 \"$env:USERPROFILE/EuroLinux-9\" .\\el9-aarcch64.tar --version 2\nwsl -d EuroLinux-9\n

"},{"location":"jumpstarts/wsl/#feedback","title":"Feedback","text":"

To provide feedback, request changes, or report bugs, please visit our official RFC/Bug repository at https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc. Your input is highly appreciated!

"},{"location":"knowledge-base/el6-jdk-install-failure/","title":"Unable to install java-1.7.0-openjdk on EuroLinux 6","text":""},{"location":"knowledge-base/el6-jdk-install-failure/#scenario","title":"Scenario","text":"

An attempt to install the latest version of java-1.7.0-openjdk.x86_64 as part of the EuroELS subscription fails with a message like:

Error in PRETRANS scriptlet in rpm package 1:java-1.7.0-openjdk-1.7.0.261-2.6.22.1.el6_10.x86_64\nerror: lua script failed: /usr/libexec/copy_jdk_configs.lua:272: attempt to index global 'file' (a nil value)\n
"},{"location":"knowledge-base/el6-jdk-install-failure/#solution","title":"Solution","text":"

The package java-1.7.0-openjdk.x86_64 expects that the directory /var/lib/rpm-state/ exists. Still, this might not be the case on every installation.

Please create this directory manually:

# mkdir /var/lib/rpm-state/\n
"},{"location":"knowledge-base/eurolinux-6-vault/","title":"Accessing EuroLinux 6.10 Vaulted Repositories","text":""},{"location":"knowledge-base/eurolinux-6-vault/#eurolinux-6-els-eol-2024-06-30","title":"EuroLinux 6 ELS EOL 2024-06-30","text":"

EuroLinux 6 reached its end of life on 2020-11-30; EuroLinux 6 ELS reached EOL on 2024-06-30 and is no longer supported. This means critical security updated are no longer provided, making your system highly vulnerable to security threats.

Upgrading might not always be possible due to reasons like replicating a specific production environment in development, supporting legacy systems, or strict software compatibility requirements. In such cases, while accessing the vaulted repositories is an option, be aware of the inherent security risks.

"},{"location":"knowledge-base/eurolinux-6-vault/#eurolinux-6-vault","title":"EuroLinux 6 vault","text":"

Using the following gist is a straightforward way to access the EuroLinux 6 vault:

Or manually add the following to /etc/yum.repos.d/eurolinux-6-vault-repos.repo:

[eurolinux6-base]\nname=Eurolinux 6 Base Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/6/6.10/BaseOS/x86_64/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux\n\n[eurolinux6-extras]\nname=Eurolinux 6 Updates Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/6/6.10/Extras/x86_64/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux\n

If the GPG key is not present on your system, you can add it with the following command:

curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux https://fbi.cdn.euro-linux.com/security/RPM-GPG-KEY-eurolinux\n
"},{"location":"knowledge-base/eurolinux-6-vault/#removing-subscription-packages","title":"Removing subscription packages","text":"

Previously, due to EuroLinux 6 repositories being paywalled, a subscription was required. This involved tools like rhn_register or el_register alongside the EuroMan service or a local mirror. With EuroMan's sunsetting alongside EuroLinux 6 ELS EOL, these subscription-related packages are no longer necessary (unless using custom Spacewalk/EuroMan Forman/EuroMan). You can safely remove them using the following command:

sudo yum remove -y rhn* subscription*\n
"},{"location":"knowledge-base/eurolinux-7-vault/","title":"Using EuroLinux 7 from vaulted repositories","text":""},{"location":"knowledge-base/eurolinux-7-vault/#eurolinux-7-eol-2024-06-30","title":"EuroLinux 7 EOL 2024-06-30","text":"

EuroLinux 7 reached its end of life on 2024-06-30. It means no further updates, including security updates, will be available. We strongly recommend upgrading to EuroLinux 8 or later as soon as possible. However, you may still need to use the older version for development, legacy, and compatibility reasons.

"},{"location":"knowledge-base/eurolinux-7-vault/#eurolinux-7-vault","title":"EuroLinux 7 vault","text":"

Using the following gist is a straightforward way to access the EuroLinux 7 vault:

Or manually add the following to /etc/yum.repos.d/eurolinux-7-vault-repos.repo:

[eurolinux7-base]\nname=Eurolinux 7 Base Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.9/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n\n[eurolinux7-updates]\nname=Eurolinux 7 Updates Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.9/updates/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n

The GPG key should be available in the system, but if it is not, you can add it with the following:

curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7 https://fbi.cdn.euro-linux.com/security/RPM-GPG-KEY-eurolinux7\n
"},{"location":"knowledge-base/eurolinux-7-vault/#eurolinux-78-and-77","title":"EuroLinux 7.8 and 7.7","text":"

As a bonus, you could also use even older versions of EuroLinux 7.8 and 7.7, which contain only updates up to the last minor release of the given version. Sample content of the .repo files are below:

For EuroLinux 7.8:

[eurolinux7-base]\nname=Eurolinux 7.8 Base Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.8/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n\n[eurolinux7-updates]\nname=Eurolinux 7.8 Updates Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.8/updates/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n

For EuroLinux 7.7:

[eurolinux7-base]\nname=Eurolinux 7.8 Base Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.7/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n\n[eurolinux7-updates]\nname=Eurolinux 7.8 Updates Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.7/updates/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n

"},{"location":"knowledge-base/eurolinux-7-vault/#removing-subscription-packages","title":"Removing subscription packages","text":"

Since the EuroLinux 7 repositories were behind the paywall, you used to need the subscription that used rhn_register or el_register commands and ancient EuroMan service or local mirror of the system. EuroMan was sunsetted with EuroLinux 7 EOL.

You can confidently remove the subscription-related packages (as long as you are not using custom Spacewalk/EuroMan Forman/EuroMan) with the following command:

sudo yum remove -y rhn* subscription*\n
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/","title":"Black Screen After update to EuroLinux 8.10 - EFI problem","text":""},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#background","title":"Background","text":"

We are deeply sorry to inform you that one of the packages in EuroLinux 8.10 created a severe mistake in the boot configuration. The package grub2-efi-x64 was copied from a never-released beta repository, and it was not supposed to be there in that version.

If you updated your system:

  • before May 28th, 13 CET
  • and you are using EFI

The following error might appear after booting your system.

error: file `/EFI/eurolinux/grubx64.efi` Not Found.\n

and other similar errors, like:

StartImage failed\n

Generally speaking, the system won't boot into the bootloader (GRUB). Depending on your UEFI software, you might see different error messages.

Depending on your UEFI software you might be able to boot system normally. If you can boot system you can fix the problem by reinstalling the grub2-efi-x64 package.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#when-this-problem-does-not-occur","title":"When this problem does not occur","text":"
  • If you are using a VM that does not use EFI you won't have this problem
  • If you are using legacy BIOS and the system was installed as legacy BIOS
  • Container images and other images
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#update-after-may-28th-12-cet","title":"Update after May 28th, 12 CET","text":"

If you are updating your system with a repository synced after May 28, 13 CET, you should not have this problem. The package was removed and overwritten from the repository, and the proper package was added.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#updated-but-not-rebooted-system","title":"Updated but not rebooted system","text":"

If you updated but have not rebooted the system -> please reinstall the grub2-efi-x64 package and kernel packages:

sudo yum clean all\nsudo yum reinstall -y `kernel*` `grub2*`\n
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#iso-files","title":"ISO files","text":"

The ISO files were updated, and the previous ISO was removed. The new ISO is supposed to be released today (May 28th).

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#revert-from-backupsnapshot","title":"Revert from backup/snapshot","text":"

If you can, please revert from the backup or snapshot to version 8.9. The update process now contains overwritten, updated and proper packages, and this problem will not occur.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#rescue-system-with-wrong-efi-from-a-live-cd","title":"Rescue system with wrong EFI from a live CD.","text":"
  1. Download LiveISO CD
  2. Change boot order (if necessary)
  3. Mount ISO/Create ISO on the pendrive
  4. Start system from ISO
  5. Mount the EFI partition
  6. Copy the EFI files
  7. Run system normally
  8. Reinstall kernel-core and grub2-efi-x86
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#download-liveiso-cd","title":"Download LiveISO CD","text":"

One of the smallest ISO and well-known projects is Rescatux. You can download it from: https://sourceforge.net/projects/rescatux/files/rescatux-0.74/rescatux-0.74.iso/download

You can use different ISOs, such as our Desktop Live or Ubuntu.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#change-the-boot-order-if-necessary","title":"Change the boot order (if necessary)","text":"

Changing the boot order might be necessary for both VM and Physical Machines.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#mount-isocreate-iso-on-pendrive","title":"Mount ISO/Create ISO on pendrive","text":"

Mount rescue ISO to a VM. For physical machines, create a bootable pendrive with the ISO. The process is similar to creating a bootable pendrive for installation.

After mounting or inserting the pen drive, start the rescue/live CD system.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#starting-rescuetux-or-other-livecd","title":"Starting rescuetux or other livecd","text":"

You can safely start Rescuetux or another live CD. The process is similar to getting a standard desktop. You can safely skip any questions and programs and get straight to the terminal.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#find-and-mount-the-efi-partition","title":"Find and mount the EFI partition","text":"

Finding an EFI partition is quite straightforward use one of the following commands:

sudo lsblk\n

Example efi partition output

/dev/nvme0n1p5: UUID=\"2A1E-AC26\" TYPE=\"vfat\" PARTLABEL=\"EFI System Partition\" PARTUUID=\"6b15bd77-bb2e-4393-9fbb-445625660679\"\n

or

lsblk -f\n
Example EFI partition output

vda1 vfat               776-93D0\n

After finding the EFI partition, mount it to a temporary location. In the example bellow, we are using /mnt as a temporary location, and partition is the /dev/vda1

sudo mount /dev/vda1 /mnt\n

Confirm the EFI partition is mounted correctly and contains EFI directory

cd /mnt/\nls\n

The output should contains at least an EFI directory

EFI\n
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#copy-the-efi-files","title":"Copy the EFI files","text":"
sudo cp -r /mnt/EFI/redhat/* /mnt/EFI/eurolinux/.\n
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#reboot-system","title":"Reboot system","text":"

Depending on the live CD/ISO you used, you might need to reboot the system or exit the live CD.

sudo reboot\n
in most cases, is enough. You can also shut down the system with shutdown -h now.

Before starting the EuroLinux system, remember to remove the rescue/LiveCD ISO ISO or pendrive.

The whole process is as simple as the one on the screenshot:

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#running-the-system-and-reinstalling-the-packages","title":"Running the system and reinstalling the packages","text":"

After rebooting the system you should be able to boot into the system in normall state. You can now reinstal the kernel and grub packages.

sudo yum clean all\nsudo yum reinstall -y `kernel*` `grub2*`\n

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#summary","title":"Summary","text":"

Once more, we are deeply sorry for the inconvenience. The bug skipped our testing and escaped into the public as we were changing the test structure to support new features, including Secure Boot for EuroLinux 9.

We are working on improving our testing process to avoid such mistakes in the future.

If you have any questions or need help, please contact us at support at euro-linux.com. We will dispatch an engineer for a one-on-one session to assist you.

"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/","title":"EuroLinux Linux distribution capabilities and limits","text":"

This document describes the technology capabilities and limits for EuroLinux 6, 7, 8 and 9. Some are theoretical, as they are connected with source code/projects used in the system. Minimal limits represent limits for the systems for which support is generally available by the EuroLinux company. Our dedicated solutions like:

  • system rebuilds with Gaia build stack
  • EuroLinux container images
  • EuroLinux cloud images
  • EuroLinux for edge computing
  • EuroLinux ARM 64 for IoT
  • containers running on the EuroLinux container platform or any other Kubernetes-based platform

might run and be supported on the less resources than described in this document.

The theoretical limit (connected with a version of the software used) is marked as (LIMIT), when limit supported and tested by upstream is provided as default for EuroLinux. TBA means - To Be Announced.

"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#minimum-logical-cpu","title":"Minimum logical CPU","text":"

All systems, physical or virtual, require at minimum 1 logical (physical or virtual) CPU core.

"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#maximum-logical-cpu","title":"Maximum logical CPU","text":"Architecture EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 x86_64 448 (4096) 768 (5120) 768 (8192) 1792 (8192) ARM64 X X 256 512 (4096)"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#minimum-memory","title":"Minimum memory","text":"

These requirements are only for systems supported as VMs or Physical hosts. In most cases, it's possible to run a system without complications on less memory. The minimum requirements have been provided below because it might not be possible to support systems with less memory.

Architecture EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 x86_64 Minimum 1 GiB, 1 GiB per logical core is recommended Minimum 1 GiB, 1 GiB per logical core is recommended Minimum 1 GiB, 1.5 GiB per logical core is recommended Minimum 1.5 GiB, 1.5 GiB per logical core is recommended ARM64 X X 2GiB 2GiB"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#maximum-memory","title":"Maximum memory","text":"Architecture EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 x86_64 12TB (64TB) 12TB (64TB) 24TB (64TB) 48TB (64TB) ARM64 X X 1.5TB (256TB) 1.5TB (256TB)"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#minimum-required-disk-space","title":"Minimum required disk space","text":"EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 1Gib Minimum, 5GiB recommended 5 GiB Minimum, 20 GiB recommended 10 GiB Minimum, 20 GiB recommended 10 GiB Minimum, 20 GiB recommended"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#file-systems-and-storage-limits","title":"File systems and storage limits","text":"

All filesystems in this document support ACL (Access Control List).

"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#ext3","title":"Ext3","text":"

Ext3 is mostly a legacy filesystem. Please use Ext4 or XFS.

Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Maximum File Size 2TiB 2TiB 2TiB 2TiB Maximum Filesystem Size 16TiB 16TiB 16TiB 16TiB Maximum Subdirectories or files in directory 32000 32000 32000 32000 Maximum symlink depth 8 8 8 8"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#ext4","title":"Ext4","text":"

Ext4 is the default filesystem for EuroLinux 6.

Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Maximum File Size 16TiB 16TiB 16TiB 16TiB Maximum Filesystem Size 1EiB 1EiB 1EiB 1EiB Maximum Subdirectories or files in directory 65000/unlimited with dir_nlink option 65000/unlimited with dir_nlink option 65000/unlimited with dir_nlink option 65000/unlimited with dir_nlink option Maximum symlink depth 8 8 8 8"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#xfs","title":"XFS","text":"

XFS is the default filesystem for in EuroLinux 7, 8 and 9.

Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Maximum File Size 8EiB 8EiB 8EiB 8EiB Maximum Filesystem Size 16EiB 16EiB 1PiB 1PiB Maximum Subdirectories or files in directory unlimited unlimited unlimited unlimited Maximum symlink depth 8 8 8 8"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#gfs2","title":"GFS2","text":"

Global Filesystem 2 is part of EuroLinux Resilient Storage and High Availability add-ons that are freely available with subscription or free available in the Open Core model.

Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Maximum File Size 8EiB 8EiB 8EiB 8EiB Maximum Filesystem Size 8EiB 8EiB 8EiB 8EiB Maximum Subdirectories or files in directory unlimited unlimited unlimited unlimited Maximum symlink depth unlimited unlimited unlimited unlimited"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#kernel-and-the-most-important-components-versions","title":"Kernel and the most important components versions","text":"Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Base Linux Kernel version 2.6.34 3.10 4.18 5.14 Package Management RPM/Yum RPM/Yum RPM/Dnf, Flatpak RPM/Dnf, Flatpak System Init Upstart systemd systemd systemd Base GNU C Library (glibc) Version 2.12 2.17 2.28 2.34 Base (First) GCC version 4.4.7 4.8.5 8.2.1 (updated in newer versions) 11.2.1 (might be updated in the future) Base (First) LLVM version X X 7.0.1 (updated in newer versions) 13.0.0 (might be updated in the future) Default Desktop Gnome 2 Gnome 3 Gnome 3 Gnome 40 Office Suite LibreOffice LibreOffice LibreOffice LibreOffice Default Web Browser Firefox Firefox Firefox Firefox Default Mail Client Thunderbird Evolution or Thunderbird Evolution or Thunderbird Evolution or Thunderbird"},{"location":"knowledge-base/eurolinux-vault-policy/","title":"EuroLinux Vault and Archiving Policy","text":""},{"location":"knowledge-base/eurolinux-vault-policy/#vault-vaultcdneuro-linuxcom","title":"Vault - vault.cdn.euro-linux.com","text":"

The idea of the vault is simple - it stores older or archived versions of the software packages (mostly RPMs) and allow to create and maintain the environment that requires old versions of the packages, specific libraries or cannot or even must not be updated.

Warning! Security considerations

Due to their nature, the old versions of the software contain security vulnerabilities. Many of them have ready and easy to use exploits. Using unsupported versions of software is a dangerous practice, especially when system is running in the public networks.

"},{"location":"knowledge-base/eurolinux-vault-policy/#vaults-initial-and-last-version-for-minor-releases","title":"Vault's initial and last version for minor releases","text":"

From version 8.6 and 9.0 we decided that we will provide three versions for each minor release (minor release is for example EuroLinux 8.6 -> 8.7 -> 8.8), of the vault. The first one is the initial state of the release, then there is current state (for living release), the third one has '-last' and it's the last snapshot before a new minor release. This idea originated from community feedback. For example in case of EuroLinux 8.7 (that in time of writing this documentation is the latest minor release):

  • https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7-init/ contains the initial state for 8.7
  • https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7/ contains the current state of EuroLinux 8.7
  • https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7-last/ Will contain the last snapshot for 8.7 before general availability of the EuroLinux 8.8. It will be just a symbolic link to 8.7 that will mark the EOL of this minor release.

If there is no version with -last suffix it means that this version is a newest minor release or the -last was not created.

"},{"location":"knowledge-base/eurolinux-vault-policy/#vault-for-the-current-version","title":"Vault for the current version","text":"

For your convince EuroLinux Vault also keeps the track of the current version of the EuroLinux as a symbolic link to the newest minor release. The symlinks are 8 for version 8 and 9 for version 9.

  • https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8/
  • https://vault.cdn.euro-linux.com/legacy/eurolinux/9/9/

These repositories are updated regularly in the same manner as main/mirrors repositories.

"},{"location":"knowledge-base/eurolinux-vault-policy/#eurolinux-sources-on-vaultcdneuro-linuxcom","title":"EuroLinux sources on vault.cdn.euro-linux.com","text":"

We used to provide sources for EuroLinux on GitHub. Unfortunately, due to GitHub's limitations, it wasn't as feasible in long run. Each source needed to be repacked on the client system and source wasn't signed.

We decided to go with a friendlier and more standarized direction after receiving feedback from the community and clients. Since version 8 we deliver the sources as .src.rpms. It's a better solution in many ways, and the advantages include:

  • All source packages (sources used to build EuroLinux and other Enterprise Linux distributions) are securely signed cryptographically
  • The src.rpm is native format for distributions that leverage RPMs. It allows to use common toolchains like mock, rpmbuild, EuroLinux Gaia, Open Build Service, Koji and much more
  • It's easier to mirror repositories
  • It's also easier to maintain

The source can be found at https://vault.cdn.euro-linux.com/sources/eurolinux/.

"},{"location":"knowledge-base/eurolinux-vault-policy/#bug-tracker","title":"Bug tracker","text":"

If you encounter any missing sources or problem with vault, please don't hesitate to contact as via e-mail (support[at]euro-linux.com) or fill bug in our distro bug tracker. If you are our client you can contact us on the support site or with sale representative.

"},{"location":"knowledge-base/unable-to-find-requested-software/","title":"Unable to Find Requested Software","text":""},{"location":"knowledge-base/unable-to-find-requested-software/#environment","title":"Environment","text":"
  • EuroLinux 7
  • EuroLinux 8
"},{"location":"knowledge-base/unable-to-find-requested-software/#issue","title":"Issue","text":"

An error occurs during a search for missing components. A similar message is shown by GNOME Software:

Unfortunately, the [...] you were searching for could not be found. Please see [...] for more information.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-package","title":"Missing Package","text":"

The package you are searching for is not available in EuroLinux base repositories.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-codec","title":"Missing Codec","text":"

The codec you are searching for is not available in EuroLinux base repositories due to licensing reasons or patent encumbrance.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-hardware-support","title":"Missing Hardware Support","text":"

A kernel module or a driver is not available in EuroLinux base repositories due to licensing reasons that prohibit redistribution or is not yet in the upstream Linux kernel.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-font","title":"Missing Font","text":"

The font you are searching for is not available in EuroLinux base repositories.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-mime-support","title":"Missing MIME Support","text":"

An application that supports operations on your file with its MIME type is not available in EuroLinux base repositories due to them being supported exclusively by a third party application or an application that runs only on a platform different than EuroLinux.

"},{"location":"knowledge-base/unable-to-find-requested-software/#resolution","title":"Resolution","text":"

If you would like to request for a certain component availability, please contact us.

"},{"location":"release-notes/8.10/","title":"EuroLinux 8.10 Release Notes","text":"

This version\u2019s code name is Bucharest - the capital of Romania, also known as \u201cParis of the East\u201d.

"},{"location":"release-notes/8.10/#major-changes-in-eurolinux-810","title":"Major changes in EuroLinux 8.10.","text":""},{"location":"release-notes/8.10/#security","title":"Security","text":"

Key security-related highlights:

  • OpenSSL adds API-level protection for RSA PKCS #1 v1.5 decryption process.
  • libkcapi delivers new functions and tools.
  • stunnel provides many new SSL-related features.
"},{"location":"release-notes/8.10/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following application are now available:

  • MariaDB 10.11
  • nginx 1.24
  • PHP 8.2
  • PostgreSQL 16
  • Python 3.12

The following components have been upgraded:

  • Git LFS to version 3.4.1
  • Git to version 2.43.0
"},{"location":"release-notes/8.10/#compilers-and-development-tools","title":"Compilers and development tools","text":""},{"location":"release-notes/8.10/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated:

  • elfutils 0.190
  • Valgrind 3.22
"},{"location":"release-notes/8.10/#updated-compiler-toolsets","title":"Updated compiler toolsets","text":"

The following compiler toolsets have been updated:

  • GCC Toolset 13
  • Go Toolset 1.21.0
  • LLVM Toolset 17.0.6
  • Rust Toolset 1.75.0
"},{"location":"release-notes/8.10/#java-implementations-in-eurolinux-8","title":"Java implementations in EuroLinux 8","text":"

The EuroLinux 8 AppStream repository includes:

  • The java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit.
  • The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime Environment and the OpenJDK 11 Java Software Development Kit.
  • The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime Environment and the OpenJDK 17 Java Software Development Kit.
  • The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime Environment and the OpenJDK 8 Java Software Development Kit.
"},{"location":"release-notes/8.10/#batteries-repositories","title":"Batteries repositories","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

"},{"location":"release-notes/8.10/#known-issues","title":"Known issues","text":"
  • The AppStream is is about 15GiB. After long discussion and feedback we decided to keep it RHEL like way, where AppStream ISO is so full because it can be used to mount repositories used for mirroring and system. We are sorry but current state (mostly modularity) make things extremely hard to manage without breaking user experience.
  • Due to evolution of build process update for SCAP Security Guide are delayed now. They are going to be delivered soon.
"},{"location":"release-notes/8.10/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 and preparing 4.0 with branding kit.

"},{"location":"release-notes/8.10/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 8:

  • EuroLinux 8 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)
  • EuroLinux 8 Container on the Docker Hub
  • EuroLinux 8 Container on the Quay.io
"},{"location":"release-notes/8.10/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.10 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.3/","title":"EuroLinux 8.3 Release Notes","text":""},{"location":"release-notes/8.3/#dynamic-programming-languages","title":"Dynamic programming languages","text":"

Later versions of the following components are now available:

  • Node.js 14 - module nodejs stream 14
  • Perl 5.30 - module perl stream 5.30
  • PHP 7.4 - module php stream 7.4
  • Ruby 2.7 - module ruby stream 2.7
  • Java 11 with OpenJDK - new version of Open Java Development Kit (OpenJDK) is now available as standalone rpms packages.
"},{"location":"release-notes/8.3/#web-and-database-servers","title":"Web and Database servers","text":"

Later versions of the following components are now available

  • nginx 1.18 - module nginx stream 1.18
"},{"location":"release-notes/8.3/#compiler-toolsets","title":"Compiler toolsets","text":"

The following compiler toolsets have been updated in EL 8.3:

  • GCC Toolset 10 - software collection gcc-toolset-10
  • LLVM Toolset 10.0.1 - module llvm-toolset
  • Rust Toolset 1.45.2 - module rust-toolset
  • Go Toolset 1.14.7 - module go-toolset
"},{"location":"release-notes/8.3/#security","title":"Security","text":"
  • EuroLinux 8.3 provides Ansible roles for automated deployments of Policy-Based Decryption (PBD) solutions using Clevis and Tang. New version of the package rhel-system-roles adds an Ansible role for EuroLinux logging through Rsyslog.

  • The USBGuard framework now provides:

    • its own SELinux policy
    • notification for user in GUI
    • multiple enhancement and bug fixes
"},{"location":"release-notes/8.3/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Git was updated to version 2.27
  • Squid was updated to version 4.11
  • The Tuned system tuning tool has been rebased to version 2.13. This version adds support for architecture-dependent tuning and ability to use multiple include directives.
"},{"location":"release-notes/8.3/#identity-management","title":"Identity Management","text":"

The Rivest Cipher 4 (RC4) cipher suite, the default encryption type for users, services, and trusts between Active Directory domains in an Active Directory forest, has been deprecated in EuroLinux 8. For compatibility, this release introduces cryptographic subpolicy named AD-SUPPORT to enable support for this deprecated encryption type. The new subpolicy allows you to use RC4 with EuroLinux IPA and SSSD Active Directory.

"},{"location":"release-notes/8.3/#the-web-console","title":"The web console","text":"

The cockpit web console provides an option to switch between superuser access and limited access from inside of a user session.

"},{"location":"release-notes/8.3/#desktop-and-graphics","title":"Desktop and graphics","text":"

The Direct Rendering Manager (DRM) kernel graphics subsystem has been rebased to upstream Linux kernel version 5.6. It provides a number of enhancements over the previous versions, including support for new GPUs and APUs.

"},{"location":"release-notes/8.4-beta/","title":"EuroLinux Beta 8.4 Release Notes","text":""},{"location":"release-notes/8.4-beta/#dynamic-programming-languages","title":"Dynamic programming languages","text":"

Later versions of the following components are now available:

  • Python 3.9 - module python39 stream 39.
  • SWIG 4.0 - module swig stream 4.0
"},{"location":"release-notes/8.4-beta/#web-and-database-servers","title":"Web and Database servers","text":"

Later versions of the following components are now available:

  • Redis 6 - module redis stream 6
  • PostgreSQL 13 - module postgresql stream 13
  • MariaDB 10.5 - module mariadb stream 10.5
"},{"location":"release-notes/8.4-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.4:

  • GCC Toolset 10 - software collection gcc-toolset-10
  • LLVM Toolset 11.0.0 - module llvm-toolset stream rhel
  • Rust Toolset 1.49.0 - module rust-toolset stream rhel
  • Go Toolset 1.15.7 - module go-toolset stream rhel

There is new a module containing Persistent Memory Development Kit (PMDK):

  • PMDK - module pmkd stream 1_fileformat_v6
"},{"location":"release-notes/8.4-beta/#security","title":"Security","text":"
  • IPsec VPN provided by Libreswan now supports TCP encapsulation and security labels for IKEv2.
  • The OpenSCAP packages have been rebased to version 1.3.4, scap-security-guide has been rebased to version 0.1.54.
  • The fapolicyd framework now provides integrity checking, and the RPM plugin now registers any system update handled by either the YUM package manager or the RPM Package Manager.
"},{"location":"release-notes/8.4-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • EuroLinux 8.4 offers now Subversion 1.14. It's packed as the module subversion with stream 1.14. The 1.10 stream remain the default module that contains this package.
  • New module eclipse. This module has Eclipse IDE but is commonly used to build Java related packages.
  • The nmstate packages provide a library and the nmstatectl command-line utility to manage host network settings declaratively. Nmstate is a network API for hosts and is fully supported in EuroLinux 8.4. The Multi-protocol Label Switching (MPLS) is an in-kernel data-forwarding mechanism to route traffic flow across enterprise networks.

  • The iproute2 utility introduces three new traffic control actions.

  • EuroLinux 8 kernel now uses proactive compaction that regularly initiates memory compaction work before a request for an allocation is made. Therefore, latency for specific memory allocation requests is lowered.
  • EuroLinux 8 kernel has now a new implementation of a slab memory controller for control groups.
  • EuroLinux kernel now supports the time namespace feature. It allows changing date and time inside the Linux containers.
  • EuroLinux 8 kernel now supports the Error Detection and Correction (EDAC) in 8th and 9th generation Intel Core Processors.
  • There are changes in the pacemaker resource agent - it now can detect failures asynchronously and inject a failure into Pacemaker immediately without waiting for the following monitor interval.
"},{"location":"release-notes/8.4-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild distribution but are not included in upstream repositories. Right now, this repository includes more than 2000 packages for each buildroot.

Multiple batteries were updated for this release there including:

  • mdds
  • meson
  • spirv-headers
  • fontforge
  • multiple python packages
  • modules for bootstrapping python39
"},{"location":"release-notes/8.4-beta/#additional-resources","title":"Additional resources","text":"
  • Red Hat 8.4 Release-Notes part of our release notes, are loosely based on this document.
"},{"location":"release-notes/8.4/","title":"EuroLinux 8.4 Release Notes","text":""},{"location":"release-notes/8.4/#dynamic-programming-languages","title":"Dynamic programming languages","text":"

Later versions of the following components are now available:

  • Python 3.9 - module python39 stream 39.
  • SWIG 4.0 - module swig stream 4.0
"},{"location":"release-notes/8.4/#web-and-database-servers","title":"Web and Database servers","text":"

Later versions of the following components are now available:

  • Redis 6 - module redis stream 6
  • PostgreSQL 13 - module postgresql stream 13
  • MariaDB 10.5 - module mariadb stream 10.5
"},{"location":"release-notes/8.4/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.4:

  • GCC Toolset 10 - software collection gcc-toolset-10
  • LLVM Toolset 11.0.0 - module llvm-toolset stream rhel
  • Rust Toolset 1.49.0 - module rust-toolset stream rhel
  • Go Toolset 1.15.7 - module go-toolset stream rhel

There is new a module containing Persistent Memory Development Kit (PMDK):

  • PMDK - module pmkd stream 1_fileformat_v6
"},{"location":"release-notes/8.4/#security","title":"Security","text":"
  • IPsec VPN provided by Libreswan now supports TCP encapsulation and security labels for IKEv2.
  • The OpenSCAP packages have been rebased to version 1.3.4, scap-security-guide has been rebased to version 0.1.54.
  • The fapolicyd framework now provides integrity checking, and the RPM plugin now registers any system update handled by either the YUM package manager or the RPM Package Manager.
"},{"location":"release-notes/8.4/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • EuroLinux 8.4 offers now Subversion 1.14. It's packed as the module subversion with stream 1.14. The 1.10 stream remain the default module that contains this package.
  • New module eclipse. This module has Eclipse IDE but is commonly used to build Java related packages.
  • The nmstate packages provide a library and the nmstatectl command-line utility to manage host network settings declaratively. Nmstate is a network API for hosts and is fully supported in EuroLinux 8.4. The Multi-protocol Label Switching (MPLS) is an in-kernel data-forwarding mechanism to route traffic flow across enterprise networks.
  • The iproute2 utility introduces three new traffic control actions.
  • EuroLinux 8 kernel now uses proactive compaction that regularly initiates memory compaction work before a request for an allocation is made. Therefore, latency for specific memory allocation requests is lowered.
  • EuroLinux 8 kernel has now a new implementation of a slab memory controller for control groups.
  • EuroLinux kernel now supports the time namespace feature. It allows changing date and time inside the Linux containers.
  • EuroLinux 8 kernel now supports the Error Detection and Correction (EDAC) in 8th and 9th generation Intel Core Processors.
  • There are changes in the pacemaker resource agent - it now can detect failures asynchronously and inject a failure into Pacemaker immediately without waiting for the following monitor interval.
"},{"location":"release-notes/8.4/#how-to-update-from-beta","title":"How to update from beta","text":"

The beta repository has an updated package el-release, that contains production repositories. Upgrading from EuroLinux 8.4 beta to 8.4 is as simple as running:

sudo yum update -y el-release\nsudo yum update -y\n
"},{"location":"release-notes/8.4/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • anacondafirefox
  • cloud-init
  • crash
  • httpd
  • httpd
  • initial-setup
  • ipa
  • liberport
  • libguestfs
  • libreoffice
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.4/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild distribution but are not included in upstream repositories. Right now, this repository contains more than 2000 packages for each buildroot.

Multiple batteries were updated for this release there including:

  • mdds
  • meson
  • spirv-headers
  • fontforge
  • multiple python packages
  • modules for bootstrapping python39
"},{"location":"release-notes/8.4/#other-notable-changes","title":"Other notable changes","text":"
  • Because we changed the business model to open core, there is no longer a need to use FBI (free base image) repositories as they are a subset of entire repositories. FBI repos are removed from the el-release package.
  • EuroLinux 8.4 is first version that can use BaseOS-all, AppStream-all and PowerTools-all repositories that contain all packages produced during build process. However, these packages are not supported by upstream or EuroLinux.
  • EuroLinux by default uses Docker Hub instead of Quay.
"},{"location":"release-notes/8.4/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Roadmap for the project can be found in press notes available on our company blog. Press Notes.
  • Red Hat 8.4 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.5-arm64/","title":"EuroLinux 8.5 Release Notes for ARM 64 (aarch64)","text":"

EuroLinux 8.5 is the first version of EuroLinux that provides ARM 64 General Availability. We have to update the Gaia build system in the customers' sites for this release. This version code name is Tirana - the capital city of Albania.

Below you can find the essential changes in EuroLinux 8.5 GA release for aarch64 architecture from EuroLinux 8.4 Beta for ARM64.

"},{"location":"release-notes/8.5-arm64/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • Ruby 3.0 - module ruby stream 3.0.
  • nginx 1.20 - module nginx stream 1.20
  • Nodejs 16 - module nodejs stream 16
"},{"location":"release-notes/8.5-arm64/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.5:

  • GCC Toolset 11 - software collection gcc-toolset-11
  • LLVM Toolset 12.0.1 - module llvm-toolset stream rhel
  • Rust Toolset 1.54.0 - module rust-toolset stream rhel
  • Go Toolset 1.16.7 - module go-toolset stream rhel
"},{"location":"release-notes/8.5-arm64/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • rsyslog - now support OpenSSL
  • OpenSCAP framework - added new profiles and multiple changes and enhancements
  • cryptopolicies were updated - these system-wide cryptographic policies from this version support different policies for different backends (scoped policies)
"},{"location":"release-notes/8.5-arm64/#high-availability-and-resilient-storage","title":"High Availability and Resilient Storage","text":"
  • High Availability and Resilient Storage modules are not supported on ARM64 architecture. This is in line with upstream policy.
"},{"location":"release-notes/8.5-arm64/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • NetworkManager was updated to 1.32.10 from 1.30
  • OpenIMP was updated to 2.0.31 from 2.0.29
  • acel was updated to 3.1 from 2.8
  • bluez was updated to 5.56 from 5.52
  • chrony was updated to 4.1 from 3.5
  • cockpit was updated to version 251.1 from 238.2
  • crypto-policies was updated to 20210617 from 20210209
  • dnf was updated to 4.7.0 from 4.4.2
  • elfutils were updated to 0.185 from 0.182
  • freeipmi was updated to 1.6.8 from 1.6.6
  • gnutls was updated to 3.6.16 from 3.6.14
  • ibacm was updated to 35.0 from 32.0
  • libmodulemd updated to version 2.13.0 from 2.9.4
  • libreswan was updated to version 4.4 from 4.3
  • main GCC was updated to 8.5.0 from 8.4.1
  • opencryptoki updated to version 3.16.0 from 3.15.1
  • rsyslog was updated to version 8.2102.0 from 8.1911.0
  • sssd was updated to version 2.5.2 from 2.4.0
"},{"location":"release-notes/8.5-arm64/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to this release:

  • adwaita-qt5
  • ansible-collection-microsoft-sql
  • ansible-collection-redhat-rhel_mgmt
  • ansible-freeipa-tests
  • ansible-pcp
  • compact-hwloc1
  • coreos-installer
  • dotnet6.0
  • eth-tools
  • java-17-openjdk*
  • libadwaita-qt5
  • libcap-ng-python3
  • libcomps-devel is now included in PowerTools
  • libvoikko-devel - is now included in PowerTools
  • mobile-broadband-provider-info-devel is now included in PowerTools
  • modulemd-tools
  • pcm
  • python3-cloud-what
  • python3-libstoragemgmt
  • python3-pyghmi
  • qt5-qtserialbus-devel is now included in PowerTools
  • resource-agents-paf (resilient storage)
  • rsyslog-openssl
  • samba-vfs-iouring
  • sblim-gather
  • sblim-gather-provider is now included in PowerTools
  • sevctl
  • stratisd-dracut
  • tesseract
  • tss2
  • udftools
  • unicode-ucd-unihan
  • xapian-core and its development packages are now included
"},{"location":"release-notes/8.5-arm64/#how-to-update-from-beta","title":"How to update from beta","text":"

The beta repository has an updated package el-release, that contains production repositories. Upgrading from EuroLinux 8.4 beta for ARM64 to 8.5 GA is as simple as running:

sudo yum update -y el-release\nsudo yum update -y\n
"},{"location":"release-notes/8.5-arm64/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • anacondafirefox
  • cloud-init
  • crash
  • httpd
  • initial-setup
  • ipa
  • libreport
  • libguestfs
  • libreoffice
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.5-arm64/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in upstream repositories. Right now, this repository includes more than 2100 packages for each buildroot.

Multiple batteries were updated for this release there, including:

  • Bootstraps for rust-toolset
  • Bootstraps for go-toolset
"},{"location":"release-notes/8.5-arm64/#gaia-build-system","title":"Gaia build system","text":"

Gaia build system was updated in all interested parties' environments. We had to select/order (with current long delivery times)/install hardware for aarch64. We also changed the rebuild policy. None of our customers was interested in using RHEL as a buildroot for their own Enterprise Linux forks. It means that EuroLinux must be released faster, but at the very same time, we can exclusively focus on providing EuroLinux in the early stages and thus release it faster. We also decided that the next version will be released asynchronously with more batch compilation. Batch compilation is scheduled for EuroLinux 9.0 and 8.6.

"},{"location":"release-notes/8.5-arm64/#other-notable-changes","title":"Other notable changes","text":"
  • EuroLinux 8.5 is the first version that can use baseos-all, appstream-all and powertools-all repositories that contain all packages produced during the build process. However, these packages are not supported by upstream or EuroLinux. They are intended for developers to build their own solutions.
  • EuroLinux reverted the previous changes that made DockerHub the default container image registry. We observed other RHEL clones and decided that keeping default might be more suitable for users.
"},{"location":"release-notes/8.5-arm64/#currently-missing-features","title":"Currently missing features","text":""},{"location":"release-notes/8.5-arm64/#container-and-cloud-images","title":"Container and cloud images","text":"

We will work on broader support for cloud/container images based on EuroLinux 8.5 for arm including:

  • New container images on DockerHub and Quay.io
  • AWS images for Graviton processors
  • New Vagrant Boxes - note that HashiCorp does not provide an aarch64 build for Vagrant. Still, Linux distributions like Fedora delivers it so, it's achievable and usable.
"},{"location":"release-notes/8.5-arm64/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.5 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.5/","title":"EuroLinux 8.5 Release Notes","text":"

EuroLinux 8.5 is the first minor release created in a continuous way. It was also the first version when we deployed our engineer to remote sites (in most cases virtual) to provide support for organisations that rebuild RHEL/EuroLinux from sources with Gaia build system. This version code name is Tirana - the capital city of Albania.

Below you can find the essential changes in EuroLinux 8.5 release for x86_64 architecture. The aarch64 GA release is slightly delayed. Release notes for aarch64 will be provided in a separate document.

"},{"location":"release-notes/8.5/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • Ruby 3.0 - module ruby stream 3.0.
  • nginx 1.20 - module nginx stream 1.20
  • Nodejs 16 - module nodejs stream 16
"},{"location":"release-notes/8.5/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.5:

  • GCC Toolset 11 - software collection gcc-toolset-11
  • LLVM Toolset 12.0.1 - module llvm-toolset stream rhel
  • Rust Toolset 1.54.0 - module rust-toolset stream rhel
  • Go Toolset 1.16.7 - module go-toolset stream rhel
"},{"location":"release-notes/8.5/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • rsyslog - now support OpenSSL
  • OpenSCAP framework - added new profiles and multiple changes and enhancements
  • cryptopolicies were updated - these system-wide cryptographic policies from this version support different policies for different backends (scoped policies)
"},{"location":"release-notes/8.5/#high-availability-and-resilient-storage","title":"High Availability and Resilient Storage","text":"
  • cmirror was updated to version 2.03.12
  • corosync was updated to version 3.1.5
  • pacemaker was updated to version 2.1.0
  • resource-agents-paf package was added to HA an RS repositories
"},{"location":"release-notes/8.5/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • NetworkManager was updated to 1.32.10 from 1.30
  • OpenIMP was updated to 2.0.31 from 2.0.29
  • acel was updated to 3.1 from 2.8
  • bluez was updated to 5.56 from 5.52
  • chrony was updated to 4.1 from 3.5
  • cockpit was updated to version 251.1 from 238.2
  • crypto-policies was updated to 20210617 from 20210209
  • dnf was updated to 4.7.0 from 4.4.2
  • elfutils were updated to 0.185 from 0.182
  • freeipmi was updated to 1.6.8 from 1.6.6
  • gnutls was updated to 3.6.16 from 3.6.14
  • ibacm was updated to 35.0 from 32.0
  • libmodulemd updated to version 2.13.0 from 2.9.4
  • libreswan was updated to version 4.4 from 4.3
  • main GCC was updated to 8.5.0 from 8.4.1
  • opencryptoki updated to version 3.16.0 from 3.15.1
  • rsyslog was updated to version 8.2102.0 from 8.1911.0
  • sssd was updated to version 2.5.2 from 2.4.0
"},{"location":"release-notes/8.5/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to this release:

  • adwaita-qt5
  • ansible-collection-microsoft-sql
  • ansible-collection-redhat-rhel_mgmt
  • ansible-freeipa-tests
  • ansible-pcp
  • compact-hwloc1
  • coreos-installer
  • dotnet-build-reference-packages
  • dotnet-sdk-3.1-source-built-artifacts
  • dotnet-sdk-5.0-source-built-artifacts
  • dotnet5.0-build-reference-packages
  • eth-tools
  • flatpak (i686) included in PowerTools
  • java-17-openjdk*
  • libadwaita-qt5
  • libcap-ng-python3
  • libcomps-devel is now included in PowerTools
  • libvoikko-devel - is now included in PowerTools
  • lpsolve (i686) is now included in PowerTools
  • mobile-broadband-provider-info-devel is now included in PowerTools
  • modulemd-tools
  • pcm
  • python3-cloud-what
  • python3-libstoragemgmt
  • python3-pillow (i686) is now included in PowerTools
  • python3-pyghmi
  • qt5-qtserialbus-devel is now included in PowerTools
  • resource-agents-paf (resilient storage)
  • rsyslog-openssl
  • samba-vfs-iouring
  • sblim-gather
  • sblim-gather-provider is now included in PowerTools
  • sevctl
  • stratisd-dracut
  • tesseract
  • tss2
  • udftools
  • unicode-ucd-unihan
  • xapian-core and its development packages are now included
"},{"location":"release-notes/8.5/#how-to-update-from-beta","title":"How to update from beta","text":"

The beta repository has an updated package el-release, that contains production repositories. Upgrading from EuroLinux 8.5 beta to 8.5 is as simple as running:

sudo yum update -y el-release\nsudo yum update -y\n
"},{"location":"release-notes/8.5/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • anacondafirefox
  • cloud-init
  • crash
  • httpd
  • initial-setup
  • ipa
  • libreport
  • libguestfs
  • libreoffice
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.5/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in upstream repositories. Right now, this repository includes more than 2100 packages for each buildroot.

Multiple batteries were updated for this release there including:

  • Bootstraps for rust-toolset
  • Bootstraps for go-toolset
"},{"location":"release-notes/8.5/#gaia-build-system","title":"Gaia build system","text":"

Gaia build system was updated in all interested parties' environments. We also changed the rebuild policy. None of our customers was interested in using RHEL as a buildroot for their own Enterprise Linux forks. It means that EuroLinux must be released faster, but at the very same time, we can exclusively focus on providing EuroLinux in the early stages and thus release it faster. We also decided that the next version will be released asynchronously with more batch compilation. Synchronization was especially problematic in this release as there was a lot of holidays in Poland.

"},{"location":"release-notes/8.5/#other-notable-changes","title":"Other notable changes","text":"
  • EuroLinux 8.5 is the first version that can use baseos-all, appstream-all and powertools-all,high-availability-all, resilient-storage-all repositories that contain all packages produced during the build process. However, these packages are not supported by upstream or EuroLinux. They are intended for developers to build they own solutions.
  • EuroLinux reverted the previous changes that made DockerHub the default container image registry. We observed other RHEL clones and decided that keeping default might be more suitable for users.
"},{"location":"release-notes/8.5/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • A roadmap for the project can be found in press notes available on our company blog. EuroLinux Roadmap For Q4 2021.
  • Red Hat 8.5 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.6-beta/","title":"EuroLinux 8.6 Beta Release Notes","text":"

EuroLinux 8.6 is the first minor release with a full-fledged beta available before the General Availability of the upstream version (RHEL 8.6). The Beta version will allow releasing EuroLinux 8.6 GA faster. We decided to publish x86_64 and corresponding x86_64, i686 open buildroots for this beta. The GA version will release all supported arches simultaneously.

This version\u2019s code name is Kyiv - the capital city of Ukraine.

"},{"location":"release-notes/8.6-beta/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: PHP 8.0 - module php stream 8.0
  • New: Perl 5.32 - module perl stream 5.32
  • New: Maven 3.5 - module maven stream 3.5
  • New: Log4j:2 - module log4j stream 2
  • PostgreSQL 10 - module postgresql stream 10 was rebased to PostgreSQL 10.19 from 10.17
  • PMDK 1_fileformat_v6 - module pmdk stream 1_fileformat_v6 was rebased to version 1.11.1 from 1.9.2
"},{"location":"release-notes/8.6-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.6:

  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.58.1 from 1.54.0
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 13.0.1 from 12.0.1
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.17.7 from 1.16.12
  • GCC-Toolset-11 - toolset gcc-toolset-11 has multiple updates and was rebased to version 11.2
"},{"location":"release-notes/8.6-beta/#containers","title":"Containers","text":"
  • New Containers Tools module containers-tools stream 4.0
  • Containers tools module containers-tools stream rhel was heavily updated
"},{"location":"release-notes/8.6-beta/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • semodule now supports the --checksum option for verifying SELinux policy modules versions
  • OpenSSL 3.0 support in opencryptoki, among others
  • OpenSCAP supports OSBuild Blueprint as a remediation type and several command-line option improvements
  • SCAP Security Guide - authselect for rules that harden PAM stack and more precise xccdf_org.ssgproject.content_enable_fips_mode rule implementation among others
"},{"location":"release-notes/8.6-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • Git was updated to version 2.31 from 2.27
  • 389-ds-base (Directory Server) was updated to 1.4.3.28
  • Libreswan was updated to 4.5
  • PCP was rebased to version 5.3.5-8
  • OpenSCAP was updated to 1.3.6
  • grafana and grafana containers were rebased to the newer versions
  • SCAP Security Guide was updated to 0.1.60
  • authselect was updated to 1.2.2
  • bind was updated to 9.16.23
  • fapolicyd was updated to 1.1
  • libcap was updated to 2.48
  • lsvpd was updated to 1.7.13
  • opencryptoki was updated to 3.17.0
  • pcsc-lite was updated to 1.9.5
  • powerpc-utils was updated to 1.3.9
  • samba was updated to 4.15.5
"},{"location":"release-notes/8.6-beta/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • aardvark-dns
  • adwaita-icon-theme-devel
  • ansible-core
  • ansible-test
  • bind9.16
  • bind9.16-chroot
  • bind9.16-devel
  • bind9.16-dnssec-utils
  • bind9.16-doc
  • bind9.16-libs
  • bind9.16-license
  • bind9.16-utils
  • coreos-installer-dracut
  • fdo-admin-cli
  • fdo-client
  • fdo-init
  • fdo-manufacturing-server
  • fdo-owner-cli
  • fdo-owner-onboarding-server
  • fdo-rendezvous-server
  • fence-virtd-cpg
  • fwupd-devel
  • gdm-devel
  • gdm-pam-extensions-devel
  • glibc-gconv-extra
  • gnome-shell-extension-classification-banner
  • gnome-shell-extension-dash-to-panel
  • greenboot-default-health-checks
  • hostapd
  • libgcab1-devel
  • libguestfs-appliance
  • libnbd-bash-completion
  • libpinyin-devel
  • libqrtr-glib
  • libselinux-static
  • libss-devel
  • libtpms
  • libtpms-devel
  • libuser-devel
  • libvirt-wireshark
  • libxmlb-devel
  • lmdb-devel
  • maven-openjdk17
  • nbdkit-gzip-filter
  • nbdkit-nbd-plugin
  • nbdkit-tar-filter
  • nbdkit-tar-plugin
  • nbdkit-tmpdisk-plugin
  • netavark
  • NetworkManager-initscripts-updown
  • nftables-devel
  • nginx-mod-devel
  • nmstate-devel
  • nmstate-libs
  • osbuild-composer-dnf-json
  • osbuild-luks2
  • osbuild-lvm2
  • pcp-pmda-denki
  • pcp-pmda-mongodb
  • php-pecl-xdebug3
  • multiple perl-* that are in perl 5.32 modules
  • prometheus-jmx-exporter-openjdk11
  • python38-resolvelib
  • python3-bind9.16
  • python3-dnf-plugin-modulesync
  • qatlib-tests
  • qatzip
  • qatzip-devel
  • qatzip-libs
  • qemu-kvm-docs
  • qemu-kvm-hw-usbredir
  • qemu-kvm-ui-opengl
  • qemu-kvm-ui-spice
  • rig
  • rsyslog-mmfields
  • rust-std-static-wasm32-wasi
  • shadow-utils-subid
  • shadow-utils-subid-devel
  • sshpass
  • stress-ng
  • swtpm
  • swtpm-devel
  • swtpm-libs
  • swtpm-tools
  • swtpm-tools-pkcs11
  • virt-v2v-bash-completion
  • virt-v2v-man-pages-ja
  • virt-v2v-man-pages-uk
  • webrtc-audio-processing-devel
  • weldr-client
"},{"location":"release-notes/8.6-beta/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.6-beta/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.6-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 2500 packages for each buildroot.

Multiple batteries were updated for this release including:

  • Bootstraps for Perl 5.32
  • Updated mesa batteries
  • Smaller packages that broke buildroot

About 420 packages were updated for x86_64 buildroot alone.

"},{"location":"release-notes/8.6-beta/#gaia-build-system","title":"Gaia build system","text":"

We are still working on Gaia 3.0.

"},{"location":"release-notes/8.6-beta/#known-bugs","title":"Known bugs","text":"
  • This is a Beta release!
  • openscap will probably not work
  • There is ambiguity when it comes to SCAP profiles naming that will be resolved for 8.6 GA GitHub Bug Report
  • After installation, the first kernel might report EuroLinux 8.5 -> updated kernel should report 8.6 beta.
  • evolution-mapi was wrongly linked against older samba. The solution is yum reinstall -y evolution-mapi as we updated the package in-place
  • dhcp-client was wrongly linked against older bind-export-libs. The solution is yum reinstall -y dhcp-client as we updated the package in-place
"},{"location":"release-notes/8.6-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.6 Beta Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.6/","title":"EuroLinux 8.6 Release Notes","text":"

Since EuroLinux 8.6 was first minor release with a full-fledged beta available before the General Availability of the upstream version (RHEL 8.6), the Beta version allowed us to release EuroLinux 8.6 faster.

This version\u2019s code name is Kyiv - the capital city of Ukraine.

"},{"location":"release-notes/8.6/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: PHP 8.0 - module php stream 8.0
  • New: Perl 5.32 - module perl stream 5.32
  • New: Maven 3.5 - module maven stream 3.5
  • New: Log4j:2 - module log4j stream 2
  • PostgreSQL 10 - module postgresql stream 10 was rebased to PostgreSQL 10.19 from 10.17
  • PMDK 1_fileformat_v6 - module pmdk stream 1_fileformat_v6 was rebased to version 1.11.1 from 1.9.2
"},{"location":"release-notes/8.6/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.6:

  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.58.1 from 1.54.0
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 13.0.1 from 12.0.1
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.17.7 from 1.16.12
  • GCC-Toolset-11 - toolset gcc-toolset-11 has multiple updates and was rebased to version 11.2
"},{"location":"release-notes/8.6/#containers","title":"Containers","text":"
  • New Containers Tools module containers-tools stream 4.0
  • Containers tools module containers-tools stream rhel was heavily updated
"},{"location":"release-notes/8.6/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • semodule now supports the --checksum option for verifying SELinux policy modules versions
  • OpenSSL 3.0 support in opencryptoki, among others
  • OpenSCAP supports OSBuild Blueprint as a remediation type and several command-line option improvements
  • SCAP Security Guide - authselect for rules that harden PAM stack and more precise xccdf_org.ssgproject.content_enable_fips_mode rule implementation among others
"},{"location":"release-notes/8.6/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • Git was updated to version 2.31 from 2.27
  • 389-ds-base (Directory Server) was updated to 1.4.3.28
  • Libreswan was updated to 4.5
  • PCP was rebased to version 5.3.5-8
  • OpenSCAP was updated to 1.3.6
  • grafana and grafana containers were rebased to the newer versions
  • SCAP Security Guide was updated to 0.1.60
  • authselect was updated to 1.2.2
  • bind was updated to 9.16.23
  • fapolicyd was updated to 1.1
  • libcap was updated to 2.48
  • lsvpd was updated to 1.7.13
  • opencryptoki was updated to 3.17.0
  • pcsc-lite was updated to 1.9.5
  • powerpc-utils was updated to 1.3.9
  • samba was updated to 4.15.5
"},{"location":"release-notes/8.6/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • aardvark-dns
  • adwaita-icon-theme-devel
  • ansible-core
  • ansible-test
  • bind9.16
  • bind9.16-chroot
  • bind9.16-devel
  • bind9.16-dnssec-utils
  • bind9.16-doc
  • bind9.16-libs
  • bind9.16-license
  • bind9.16-utils
  • coreos-installer-dracut
  • fdo-admin-cli
  • fdo-client
  • fdo-init
  • fdo-manufacturing-server
  • fdo-owner-cli
  • fdo-owner-onboarding-server
  • fdo-rendezvous-server
  • fence-virtd-cpg
  • fwupd-devel
  • gdm-devel
  • gdm-pam-extensions-devel
  • glibc-gconv-extra
  • gnome-shell-extension-classification-banner
  • gnome-shell-extension-dash-to-panel
  • greenboot-default-health-checks
  • hostapd
  • libgcab1-devel
  • libguestfs-appliance
  • libnbd-bash-completion
  • libpinyin-devel
  • libqrtr-glib
  • libselinux-static
  • libss-devel
  • libtpms
  • libtpms-devel
  • libuser-devel
  • libvirt-wireshark
  • libxmlb-devel
  • lmdb-devel
  • maven-openjdk17
  • nbdkit-gzip-filter
  • nbdkit-nbd-plugin
  • nbdkit-tar-filter
  • nbdkit-tar-plugin
  • nbdkit-tmpdisk-plugin
  • netavark
  • NetworkManager-initscripts-updown
  • nftables-devel
  • nginx-mod-devel
  • nmstate-devel
  • nmstate-libs
  • osbuild-composer-dnf-json
  • osbuild-luks2
  • osbuild-lvm2
  • pcp-pmda-denki
  • pcp-pmda-mongodb
  • php-pecl-xdebug3
  • multiple perl-* that are in perl 5.32 modules
  • prometheus-jmx-exporter-openjdk11
  • python38-resolvelib
  • python3-bind9.16
  • python3-dnf-plugin-modulesync
  • qatlib-tests
  • qatzip
  • qatzip-devel
  • qatzip-libs
  • qemu-kvm-docs
  • qemu-kvm-hw-usbredir
  • qemu-kvm-ui-opengl
  • qemu-kvm-ui-spice
  • rig
  • rsyslog-mmfields
  • rust-std-static-wasm32-wasi
  • shadow-utils-subid
  • shadow-utils-subid-devel
  • sshpass
  • stress-ng
  • swtpm
  • swtpm-devel
  • swtpm-libs
  • swtpm-tools
  • swtpm-tools-pkcs11
  • virt-v2v-bash-completion
  • virt-v2v-man-pages-ja
  • virt-v2v-man-pages-uk
  • webrtc-audio-processing-devel
  • weldr-client
"},{"location":"release-notes/8.6/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.6/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.6/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 2500 packages for each buildroot.

Multiple batteries were updated for this release including:

  • Bootstraps for Perl 5.32
  • Updated mesa batteries
  • Smaller packages that broke buildroot

About 420 packages were updated for x86_64 buildroot alone.

"},{"location":"release-notes/8.6/#gaia-build-system","title":"Gaia build system","text":"

We are still working on Gaia 3.0.

"},{"location":"release-notes/8.6/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO, (secondary download link)
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.6 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.7-beta/","title":"EuroLinux 8.7 Beta Release Notes","text":"

EuroLinux 8.7 is the first beta release for x86_64 and aarch64 beta published concurrently. The Beta version will allow us to provide EuroLinux 8.7 faster.

This version\u2019s code name is Brussels - the capital city of Belgium and the heart of European Union.

Older modules removed

In this beta we noticed that a lot of modules were obsoleted or removed, we are waiting for GA version to confirm that there will be a mechanism that should allow smoother migration between modules or that these modules will be available.

"},{"location":"release-notes/8.7-beta/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: Ruby 3.1 - module ruby stream 3.1
  • New: Mercurial 6.2 - module mercurial stream 6.2
  • New: Node.js 18 - module nodejs stream 18
  • Redis 6 - module redis:6 was updated from version 6.0 to 6.2.7
"},{"location":"release-notes/8.7-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.7:

  • New: GCC-Toolset-12 - toolset gcc-toolset-12
  • New: Dotnet 7.0 - Dotnet 7.0 packages
  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.62.1 from 1.58.1
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 14.0.0 from 13.0.1
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.18.4 from 1.17.7
"},{"location":"release-notes/8.7-beta/#containers","title":"Containers","text":"
  • Containers tools module containers-tools stream rhel was heavily updated
  • Containers tools module containers-tools stream 4.0 was heavily updated
  • Containers tools module containers-tools stream 3.0 was mostly removed
  • Containers tools module containers-tools stream 2.0 was mostly removed
"},{"location":"release-notes/8.7-beta/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • NSS no longer support RSA keys shorter than 1023 bits and won't work with such keys.
  • Updated SCAP security guilde with new sysctl, pampwquality, grub2 rules.
  • fapolicyd rebased to 1.1.3
"},{"location":"release-notes/8.7-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • QT5 toolchain and utilities were updated from 5.15.2 to 5.15.3
  • Opencryptoki was updated to version 3.18.0 from 3.17.0
  • Libva was updated to version 2.13.0 from 2.5.0
  • Chrony was updated to version 4.2 from 4.1
  • Unbound was updated to version 1.16.2 from 1.7.3
  • Fapolicyd rebased to 1.1.3 from 1.1
  • Mariadb-java-client rebased to version 2.7.1 from 2.2.5
  • open-vm-tools rebased to 12.0.5 from 11.3.5
"},{"location":"release-notes/8.7-beta/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • Multiple qt5-docs packages
  • aardvark-dns
  • anaconda-widgets-devel
  • aspnetcore-runtime-7.0
  • aspnetcore-targeting-pack-7.0
  • dotnet-apphost-pack-7.0
  • dotnet-hostfxr-7.0
  • dotnet-sdk-7.0-source-built-artifacts
  • egl-utils
  • frr-selinux
  • fstrm-utils
  • gcc-plugin-annobin
  • gcc-toolset-12
  • gcc-toolset-12-annobin-annocheck
  • gcc-toolset-12-annobin-docs
  • gcc-toolset-12-annobin-plugin-gcc
  • gcc-toolset-12-binutils
  • gcc-toolset-12-binutils-devel
  • gcc-toolset-12-binutils-gold
  • gcc-toolset-12-build
  • gcc-toolset-12-dwz
  • gcc-toolset-12-gcc
  • gcc-toolset-12-gcc-c++
  • gcc-toolset-12-gcc-gfortran
  • gcc-toolset-12-gcc-plugin-devel
  • gcc-toolset-12-gdb
  • gcc-toolset-12-libasan-devel
  • gcc-toolset-12-libatomic-devel
  • gcc-toolset-12-libgccjit
  • gcc-toolset-12-libgccjit-devel
  • gcc-toolset-12-libgccjit-docs
  • gcc-toolset-12-libitm-devel
  • gcc-toolset-12-liblsan-devel
  • gcc-toolset-12-libstdc++-devel
  • gcc-toolset-12-libstdc++-docs
  • gcc-toolset-12-libtsan-devel
  • gcc-toolset-12-libubsan-devel
  • gcc-toolset-12-runtime
  • gtk3-devel-docs
  • idm-pki-acme
  • idm-pki-base
  • idm-pki-base-java
  • idm-pki-ca
  • idm-pki-kra
  • idm-pki-symkey
  • libasan8
  • libdhash-devel
  • libestr-devel
  • liblockfile
  • libstoragemgmt-nfs-plugin
  • libverto-libev
  • make-latest (currently make43)
  • make43
  • make43-devel
  • open-vm-tools-salt-minion
  • openslp-devel
  • pam_wrapper
  • poppler-qt5
  • python-ldb-devel-common
  • python-sphinx-latex
  • python3-babeltrace
  • python3-cairo-devel
  • python3-idm-pki
  • python3-lasso
  • python3-ldb-devel
  • python3-talloc-devel
  • redhat-cloud-client-configuration
  • ssd-idp
  • systemd-resolved (technology preview)
  • tuned-profiles-postgresql
  • xmlstarlet
  • xxhash
  • yara
"},{"location":"release-notes/8.7-beta/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.7-beta/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.7-beta/#maven-38","title":"Maven 3.8","text":"

Maven 3.8 - module maven stream 3.8 was not introduced in this beta. Currently upstream didn't provide modules metadata for javapackages-tools:202201 and javapackages-bootstrap:202201 that are required to build Maven 3.8. The default profile for javapackages-tools:202201 is available in the Red Hat CodeReady-Builder repository but there is no modular metadata or RPMs.

We manage to create this module in not reproducible way and in worst case scenario we will provide specially crafted VM to build it for orgs that are using Gaia Build System. We decided not to put this module as we are rebuilding EuroLinux multiple times and not reproducible rebuilds are next to impossible to maintain.

"},{"location":"release-notes/8.7-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 2500 packages for each buildroot.

About 30 packages were updated for x86_64 buildroot.

"},{"location":"release-notes/8.7-beta/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 alpha.

"},{"location":"release-notes/8.7-beta/#eurolinux-91-beta","title":"EuroLinux 9.1 beta","text":"

As we released a brand new EuroLinux Desktop we are working on better test integrations with EuroLinux 9. This process takes time. We should deliver EuroLinux 9.1 beta before EuroLinux 9.1 GA.

"},{"location":"release-notes/8.7-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO, (secondary download link)
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.7 beta Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.7/","title":"EuroLinux 8.7 Release Notes","text":"

This version\u2019s code name is Brussels - the capital city of Belgium and the heart of European Union.

"},{"location":"release-notes/8.7/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: Ruby 3.1 - module ruby stream 3.1
  • New: Mercurial 6.2 - module mercurial stream 6.2
  • New: Node.js 18 - module nodejs stream 18
  • Redis 6 - module redis:6 was updated from version 6.0 to 6.2.7
"},{"location":"release-notes/8.7/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.6:

  • New: GCC-Toolset-12 - toolset gcc-toolset-12
  • New: Dotnet 7.0 - Dotnet 7.0 packages
  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.62.1 from 1.58.1
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 14.0.0 from 13.0.1
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.18.4 from 1.17.7
"},{"location":"release-notes/8.7/#containers","title":"Containers","text":"
  • Containers tools module containers-tools stream rhel was heavily updated
  • Containers tools module containers-tools stream 4.0 was heavily updated
"},{"location":"release-notes/8.7/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • NSS no longer support RSA keys shorter than 1023 bits and won't work with such keys.
  • Updated SCAP security guilde with new sysctl, pampwquality, grub2 rules.
  • fapolicyd rebased to 1.1.3
"},{"location":"release-notes/8.7/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • QT5 toolchain and utilities were updated from 5.15.2 to 5.15.3
  • Opencryptoki was updated to version 3.18.0 from 3.17.0
  • Libva was updated to version 2.13.0 from 2.5.0
  • Chrony was updated to version 4.2 from 4.1
  • Unbound was updated to version 1.16.2 from 1.7.3
  • Fapolicyd rebased to 1.1.3 from 1.1
  • Mariadb-java-client rebased to version 2.7.1 from 2.2.5
  • open-vm-tools rebased to 12.0.5 from 11.3.5
"},{"location":"release-notes/8.7/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • Multiple qt5-docs packages
  • aardvark-dns
  • anaconda-widgets-devel
  • aspnetcore-runtime-7.0
  • aspnetcore-targeting-pack-7.0
  • dotnet-apphost-pack-7.0
  • dotnet-hostfxr-7.0
  • dotnet-sdk-7.0-source-built-artifacts
  • egl-utils
  • frr-selinux
  • fstrm-utils
  • gcc-plugin-annobin
  • gcc-toolset-12
  • gcc-toolset-12-annobin-annocheck
  • gcc-toolset-12-annobin-docs
  • gcc-toolset-12-annobin-plugin-gcc
  • gcc-toolset-12-binutils
  • gcc-toolset-12-binutils-devel
  • gcc-toolset-12-binutils-gold
  • gcc-toolset-12-build
  • gcc-toolset-12-dwz
  • gcc-toolset-12-gcc
  • gcc-toolset-12-gcc-c++
  • gcc-toolset-12-gcc-gfortran
  • gcc-toolset-12-gcc-plugin-devel
  • gcc-toolset-12-gdb
  • gcc-toolset-12-libasan-devel
  • gcc-toolset-12-libatomic-devel
  • gcc-toolset-12-libgccjit
  • gcc-toolset-12-libgccjit-devel
  • gcc-toolset-12-libgccjit-docs
  • gcc-toolset-12-libitm-devel
  • gcc-toolset-12-liblsan-devel
  • gcc-toolset-12-libstdc++-devel
  • gcc-toolset-12-libstdc++-docs
  • gcc-toolset-12-libtsan-devel
  • gcc-toolset-12-libubsan-devel
  • gcc-toolset-12-runtime
  • gtk3-devel-docs
  • idm-pki-acme
  • idm-pki-base
  • idm-pki-base-java
  • idm-pki-ca
  • idm-pki-kra
  • idm-pki-symkey
  • libasan8
  • libdhash-devel
  • libestr-devel
  • liblockfile
  • libstoragemgmt-nfs-plugin
  • libverto-libev
  • make-latest (currently make43)
  • make43
  • make43-devel
  • open-vm-tools-salt-minion
  • openslp-devel
  • pam_wrapper
  • poppler-qt5
  • python-ldb-devel-common
  • python-sphinx-latex
  • python3-babeltrace
  • python3-cairo-devel
  • python3-idm-pki
  • python3-lasso
  • python3-ldb-devel
  • python3-talloc-devel
  • redhat-cloud-client-configuration
  • ssd-idp
  • systemd-resolved (technology preview)
  • tuned-profiles-postgresql
  • xmlstarlet
  • xxhash
  • yara
"},{"location":"release-notes/8.7/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.7/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.7/#new-vault-policy","title":"New vault policy","text":"

With feedback from community we decided to add the -last to the EuroLinux 8.6 vaulted versions that represents the last snapshot of the EuroLinux 8.6. More about vault policy here.

"},{"location":"release-notes/8.7/#smaller-base-repositories","title":"Smaller base repositories","text":"

Until now we keeped all produced versions of the same package in base repositories. Upstream policy is to keep only selected versions and the rest in the vaults. It is reasonable as saves a internet bandwith, and put much less stress on the mirroring sites. From EuroLinux 8.7 we will aim to use upstream schema for packages.

Older packages are still available at EuroLinux Vault.

"},{"location":"release-notes/8.7/#installation-from-baseurl-with-treeinfo","title":"Installation from baseurl with .treeinfo","text":"

EuroLinux 8.7 is first release that officially supports the installation from URL leveraging .treeinfo files.

"},{"location":"release-notes/8.7/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 2500 packages for each buildroot.

About 30 packages were updated for x86_64 buildroot.

"},{"location":"release-notes/8.7/#gaia-build-system","title":"Gaia build system","text":"

Gaia build system is still in the 3.0 alpha.

"},{"location":"release-notes/8.7/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO, (secondary download link)
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.7 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.8-beta/","title":"EuroLinux 8.8 Beta Release Notes","text":"

This version\u2019s code name is Sofia - the capital city of Bulgaria. The Beta version will allow us to provide EuroLinux 8.8 faster.

Major changes in EuroLinux 8.8 Beta:

"},{"location":"release-notes/8.8-beta/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: Python 3.11 - available as regular RPM packages
  • New: Nginx 1.22 - available as a module
  • New: PostgreSQL 15 - available as a module
  • New: Swig 4.1 - available as a module
  • New: jaxb 4 - available as a module

The following components have been upgraded:

  • Git 2.39.1
  • Git LFS 3.2.0
"},{"location":"release-notes/8.8-beta/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 8.8:

  • PCP 5.3.7
  • Grafana 7.5.15
"},{"location":"release-notes/8.8-beta/#kernel-version","title":"Kernel version","text":"

EuroLinux 8.8 Beta is distributed with the kernel version 4.18.0-477.

"},{"location":"release-notes/8.8-beta/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following performance tools and debuggers have been updated in EuroLinux 8.8:

  • Valgrind 3.19
  • SystemTap 4.8
  • Dyninst 12.1.0
  • elfutils 0.188
"},{"location":"release-notes/8.8-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.8:

  • GCC Toolset 12
  • LLVM Toolset 15.0.7
  • Rust Toolset 1.66
  • Go Toolset 1.19.4
"},{"location":"release-notes/8.8-beta/#security","title":"Security","text":"

The most crucial security changes include:

  • The Libreswan IPsec implementation was rebased to version 4.9.
  • Rsyslog TLS-encrypted logging now supports multiple CA files.
  • The systemd-socket-proxyd service now runs in its own SELinux domain due to an update to the SELinux policy.
  • The OpenSCAP security compliance utility was rebased to version 1.3.7.
  • With the fapolicyd software framework, you can now filter the RPM database.
"},{"location":"release-notes/8.8-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Podman now supports events for auditing.
  • The Container Tools packages have been updated.
  • The Aardvark and Netavark network stack now supports custom DNS server selection.
  • Podman Quadlet is now available as a Technology Preview.
  • The container-tools:3.0 module stream has been deprecated.
  • The CNI network stack has been deprecated.
"},{"location":"release-notes/8.8-beta/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • bind9.16-dnssec-utils
  • cifs-utils-devel
  • ecj
  • ipxe-bootimgs-aarch64
  • libnetapi
  • libsndfile-utils
  • libtraceevent
  • libtraceevent-devel
  • libtracefs
  • libtracefs-devel
  • libwpe
  • libwpe-devel
  • libxdp-devel
  • libxdp-static
  • lmdb
  • mpdecimal
  • mpdecimal++
  • mpdecimal-devel
  • mpdecimal-doc
  • nss_wrapper-libs
  • perl-Mail-AuthenticationResults
  • procps-ng-devel
  • python3-bind9.16
  • python3-scour
  • python3.11
  • python3.11-Cython
  • python3.11-PyMySQL
  • python3.11-attrs
  • python3.11-cffi
  • python3.11-charset-normalizer
  • python3.11-cryptography
  • python3.11-debug
  • python3.11-devel
  • python3.11-idle
  • python3.11-idna
  • python3.11-iniconfig
  • python3.11-libs
  • python3.11-lxml
  • python3.11-mod_wsgi
  • python3.11-numpy
  • python3.11-numpy-f2py
  • python3.11-packaging
  • python3.11-pip
  • python3.11-pip-wheel
  • python3.11-pluggy
  • python3.11-ply
  • python3.11-psycopg2
  • python3.11-psycopg2-debug
  • python3.11-psycopg2-tests
  • python3.11-pybind11
  • python3.11-pybind11-devel
  • python3.11-pycparser
  • python3.11-pyparsing
  • python3.11-pysocks
  • python3.11-pytest
  • python3.11-pyyaml
  • python3.11-requests
  • python3.11-rpm-macros
  • python3.11-scipy
  • python3.11-semantic_version
  • python3.11-setuptools
  • python3.11-setuptools-rust
  • python3.11-setuptools-wheel
  • python3.11-six
  • python3.11-test
  • python3.11-tkinter
  • python3.11-urllib3
  • python3.11-wheel
  • python3.11-wheel-wheel
  • rtla
  • samba-dc-libs
  • samba-dcerpc
  • texlive-translator
  • tomcat
  • tomcat-admin-webapps
  • tomcat-docs-webapp
  • tomcat-el-3.0-api
  • tomcat-jsp-2.3-api
  • tomcat-lib
  • tomcat-servlet-4.0-api
  • tomcat-webapps
  • tpm2-pkcs11
  • tpm2-pkcs11-tools
  • wpebackend-fdo
  • wpebackend-fdo-devel
"},{"location":"release-notes/8.8-beta/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.8-beta/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.8-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

About 150 packages were updated for x86_64 buildroot alone. We also added some of the packages (like python3.11 for i686) to the publicly available open buildroots.

"},{"location":"release-notes/8.8-beta/#known-issues","title":"Known issues","text":"
  • Due to compose error LibreOffice is available in the older version than one available in the RHEL 8.8 beta. The new version will land in main repos shortly.
"},{"location":"release-notes/8.8-beta/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 beta.

"},{"location":"release-notes/8.8-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.8 beta Release Notes (parts of our release notes are loosely based on this document).
"},{"location":"release-notes/8.8/","title":"EuroLinux 8.8 Release Notes","text":"

This version\u2019s code name is Sofia - the capital city of Bulgaria.

Major changes in EuroLinux 8.8:

"},{"location":"release-notes/8.8/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: Python 3.11 - available as regular RPM packages
  • New: Nginx 1.22 - available as a module
  • New: PostgreSQL 15 - available as a module
  • New: Swig 4.1 - available as a module
  • New: jaxb 4 - available as a module

The following components have been upgraded:

  • Git 2.39.1
  • Git LFS 3.2.0
"},{"location":"release-notes/8.8/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 8.8:

  • PCP 5.3.7
  • Grafana 7.5.15
"},{"location":"release-notes/8.8/#kernel-version","title":"Kernel version","text":"

EuroLinux 8.8 is distributed with the kernel version 4.18.0-477.

"},{"location":"release-notes/8.8/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following performance tools and debuggers have been updated in EuroLinux 8.8:

  • Valgrind 3.19
  • SystemTap 4.8
  • Dyninst 12.1.0
  • elfutils 0.188
"},{"location":"release-notes/8.8/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.8:

  • GCC Toolset 12
  • LLVM Toolset 15.0.7
  • Rust Toolset 1.66
  • Go Toolset 1.19.4
"},{"location":"release-notes/8.8/#security","title":"Security","text":"

The most crucial security changes include:

  • The Libreswan IPsec implementation was rebased to version 4.9.
  • Rsyslog TLS-encrypted logging now supports multiple CA files.
  • The systemd-socket-proxyd service now runs in its own SELinux domain due to an update to the SELinux policy.
  • The OpenSCAP security compliance utility was rebased to version 1.3.7.
  • With the fapolicyd software framework, you can now filter the RPM database.
"},{"location":"release-notes/8.8/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Podman now supports events for auditing.
  • The Container Tools packages have been updated.
  • The Aardvark and Netavark network stack now supports custom DNS server selection.
  • Podman Quadlet is now available as a Technology Preview.
  • The container-tools:3.0 module stream has been deprecated.
  • The CNI network stack has been deprecated.
"},{"location":"release-notes/8.8/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • bind9.16-dnssec-utils
  • cifs-utils-devel
  • ecj
  • ipxe-bootimgs-aarch64
  • libnetapi
  • libsndfile-utils
  • libtraceevent
  • libtraceevent-devel
  • libtracefs
  • libtracefs-devel
  • libwpe
  • libwpe-devel
  • libxdp-devel
  • libxdp-static
  • lmdb
  • mpdecimal
  • mpdecimal++
  • mpdecimal-devel
  • mpdecimal-doc
  • nss_wrapper-libs
  • perl-Mail-AuthenticationResults
  • procps-ng-devel
  • python3-bind9.16
  • python3-scour
  • python3.11
  • python3.11-Cython
  • python3.11-PyMySQL
  • python3.11-attrs
  • python3.11-cffi
  • python3.11-charset-normalizer
  • python3.11-cryptography
  • python3.11-debug
  • python3.11-devel
  • python3.11-idle
  • python3.11-idna
  • python3.11-iniconfig
  • python3.11-libs
  • python3.11-lxml
  • python3.11-mod_wsgi
  • python3.11-numpy
  • python3.11-numpy-f2py
  • python3.11-packaging
  • python3.11-pip
  • python3.11-pip-wheel
  • python3.11-pluggy
  • python3.11-ply
  • python3.11-psycopg2
  • python3.11-psycopg2-debug
  • python3.11-psycopg2-tests
  • python3.11-pybind11
  • python3.11-pybind11-devel
  • python3.11-pycparser
  • python3.11-pyparsing
  • python3.11-pysocks
  • python3.11-pytest
  • python3.11-pyyaml
  • python3.11-requests
  • python3.11-rpm-macros
  • python3.11-scipy
  • python3.11-semantic_version
  • python3.11-setuptools
  • python3.11-setuptools-rust
  • python3.11-setuptools-wheel
  • python3.11-six
  • python3.11-test
  • python3.11-tkinter
  • python3.11-urllib3
  • python3.11-wheel
  • python3.11-wheel-wheel
  • rtla
  • samba-dc-libs
  • samba-dcerpc
  • texlive-translator
  • tomcat
  • tomcat-admin-webapps
  • tomcat-docs-webapp
  • tomcat-el-3.0-api
  • tomcat-jsp-2.3-api
  • tomcat-lib
  • tomcat-servlet-4.0-api
  • tomcat-webapps
  • tpm2-pkcs11
  • tpm2-pkcs11-tools
  • wpebackend-fdo
  • wpebackend-fdo-devel
"},{"location":"release-notes/8.8/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.8/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.8/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

About 150 packages were updated for x86_64 buildroot alone. We also added some of the packages (like python3.11 for i686) to the publicly available open buildroots.

"},{"location":"release-notes/8.8/#known-issues","title":"Known issues","text":"
  • Java packages requires build with portable java version. We need a little bit more time to compile it in reproducible manner.
"},{"location":"release-notes/8.8/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 beta.

"},{"location":"release-notes/8.8/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.8 Release Notes this is expected link to final Red Hat release notes. As we release our notes before Red Hat this link in moment of publication might be dead.
"},{"location":"release-notes/8.9-beta/","title":"EuroLinux 8.9 Beta Release Notes","text":"

This version\u2019s code name is Monako - a sovereign city-state in France. The Beta version will allow us to provide EuroLinux 8.9 safer and faster.

Major changes in EuroLinux 8.9 Beta:

"},{"location":"release-notes/8.9-beta/#kernel-version","title":"Kernel version","text":"

EuroLinux 8.9 Beta is distributed with the kernel version 4.18.0-513.

"},{"location":"release-notes/8.9-beta/#new-versions-programming-languages-web-and-database-servers","title":"New versions - Programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: NodeJS 20 - available as a module
  • New: GCC Toolset 13 - availabile as a software collection
  • New: Java-21-OpenJDK - available as rpms
"},{"location":"release-notes/8.9-beta/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following performance tools and debuggers have been updated in EuroLinux 8.9 beta:

  • Valgrind 3.21 from 3.19
  • SystemTap 4.9 from 4.8
  • elfutils 0.189 from 0.188
"},{"location":"release-notes/8.9-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.9 beta:

  • LLVM Toolset 16.0.6 - from 15.0.7
  • Rust Toolset 1.71.1 from 1.66
  • Go Toolset 1.20.6 from 1.19.4
"},{"location":"release-notes/8.9-beta/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 8.9:

  • Grafana 9.2.10
"},{"location":"release-notes/8.9-beta/#security","title":"Security","text":"

The most crucial security changes include:

  • Kernel 4.18.0-513.1.1 support AutoIRBS.
  • OpenSCAP rebased to 1.3.8
  • SCAP ANSSI-BP-028 security profiles updated to version 2.0
  • Perl module HTTP::Tiny verifies SSL/TLS certificate by default.
"},{"location":"release-notes/8.9-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Postfix now supports SRV DNS records.
  • iproute updated to version 6.2.0
  • sos updated to version 4.6
"},{"location":"release-notes/8.9-beta/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repositories for this release:

  • avahi-tools
  • gcc-toolset-13
  • gcc-toolset-13-annobin-annocheck
  • gcc-toolset-13-annobin-docs
  • gcc-toolset-13-annobin-plugin-gcc
  • gcc-toolset-13-binutils
  • gcc-toolset-13-binutils-devel
  • gcc-toolset-13-binutils-gold
  • gcc-toolset-13-dwz
  • gcc-toolset-13-gcc
  • gcc-toolset-13-gcc-c++
  • gcc-toolset-13-gcc-gfortran
  • gcc-toolset-13-gcc-plugin-annobin
  • gcc-toolset-13-gcc-plugin-devel
  • gcc-toolset-13-gdb
  • gcc-toolset-13-libasan-devel
  • gcc-toolset-13-libatomic-devel
  • gcc-toolset-13-libgccjit
  • gcc-toolset-13-libgccjit-devel
  • gcc-toolset-13-libitm-devel
  • gcc-toolset-13-liblsan-devel
  • gcc-toolset-13-libquadmath-devel
  • gcc-toolset-13-libstdc++-devel
  • gcc-toolset-13-libstdc++-docs
  • gcc-toolset-13-libtsan-devel
  • gcc-toolset-13-libubsan-devel
  • gcc-toolset-13-offload-nvptx
  • gcc-toolset-13-runtime
  • gtk-vnc2-devel
  • gvnc-devel
  • java-21-openjdk
  • java-21-openjdk-demo
  • java-21-openjdk-demo-fastdebug
  • java-21-openjdk-demo-slowdebug
  • java-21-openjdk-devel
  • java-21-openjdk-devel-fastdebug
  • java-21-openjdk-devel-slowdebug
  • java-21-openjdk-fastdebug
  • java-21-openjdk-headless
  • java-21-openjdk-headless-fastdebug
  • java-21-openjdk-headless-slowdebug
  • java-21-openjdk-javadoc
  • java-21-openjdk-javadoc-zip
  • java-21-openjdk-jmods
  • java-21-openjdk-jmods-fastdebug
  • java-21-openjdk-jmods-slowdebug
  • java-21-openjdk-slowdebug
  • java-21-openjdk-src
  • java-21-openjdk-src-fastdebug
  • java-21-openjdk-src-slowdebug
  • java-21-openjdk-static-libs
  • java-21-openjdk-static-libs-fastdebug
  • java-21-openjdk-static-libs-slowdebug
  • libvma-utils
  • marisa-devel
  • python3-tomli
  • unifdef
"},{"location":"release-notes/8.9-beta/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.9-beta/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.9-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

About 50 packages were updated for x86_64 buildroot alone. We also added some of the packages (like python3.11 for i686) to the publicly available open buildroots.

"},{"location":"release-notes/8.9-beta/#known-issues","title":"Known issues","text":"
  • No known issues.
"},{"location":"release-notes/8.9-beta/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 and preparing 4.0 with branding kit.

"},{"location":"release-notes/8.9-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.9 beta Release Notes (parts of our release notes are loosely based on this document).
"},{"location":"release-notes/8.9/","title":"EuroLinux 8.9 Release Notes","text":"

This version\u2019s code name is Monako - a sovereign city-state in France.

Major changes in EuroLinux 8.9:

"},{"location":"release-notes/8.9/#kernel-version","title":"Kernel version","text":"

EuroLinux 8.9 is distributed with the kernel version 4.18.0-513.

"},{"location":"release-notes/8.9/#new-versions-programming-languages-web-and-database-servers","title":"New versions - Programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: NodeJS 20 - available as a module
  • New: GCC Toolset 13 - availabile as a software collection
  • New: Java-21-OpenJDK - available as rpms
"},{"location":"release-notes/8.9/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following performance tools and debuggers have been updated in EuroLinux 8.9:

  • Valgrind 3.21 from 3.19
  • SystemTap 4.9 from 4.8
  • elfutils 0.189 from 0.188
"},{"location":"release-notes/8.9/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.9:

  • LLVM Toolset 16.0.6 - from 15.0.7
  • Rust Toolset 1.71.1 from 1.66
  • Go Toolset 1.20.6 from 1.19.4
"},{"location":"release-notes/8.9/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 8.9:

  • Grafana 9.2.10
"},{"location":"release-notes/8.9/#security","title":"Security","text":"

The most crucial security changes include:

  • Kernel 4.18.0-513.1.1 support AutoIRBS.
  • OpenSCAP rebased to 1.3.8
  • SCAP ANSSI-BP-028 security profiles updated to version 2.0
  • Perl module HTTP::Tiny verifies SSL/TLS certificate by default.
"},{"location":"release-notes/8.9/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Postfix now supports SRV DNS records.
  • iproute updated to version 6.2.0
  • sos updated to version 4.6
"},{"location":"release-notes/8.9/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repositories for this release:

  • avahi-tools
  • gcc-toolset-13
  • gcc-toolset-13-annobin-annocheck
  • gcc-toolset-13-annobin-docs
  • gcc-toolset-13-annobin-plugin-gcc
  • gcc-toolset-13-binutils
  • gcc-toolset-13-binutils-devel
  • gcc-toolset-13-binutils-gold
  • gcc-toolset-13-dwz
  • gcc-toolset-13-gcc
  • gcc-toolset-13-gcc-c++
  • gcc-toolset-13-gcc-gfortran
  • gcc-toolset-13-gcc-plugin-annobin
  • gcc-toolset-13-gcc-plugin-devel
  • gcc-toolset-13-gdb
  • gcc-toolset-13-libasan-devel
  • gcc-toolset-13-libatomic-devel
  • gcc-toolset-13-libgccjit
  • gcc-toolset-13-libgccjit-devel
  • gcc-toolset-13-libitm-devel
  • gcc-toolset-13-liblsan-devel
  • gcc-toolset-13-libquadmath-devel
  • gcc-toolset-13-libstdc++-devel
  • gcc-toolset-13-libstdc++-docs
  • gcc-toolset-13-libtsan-devel
  • gcc-toolset-13-libubsan-devel
  • gcc-toolset-13-offload-nvptx
  • gcc-toolset-13-runtime
  • gtk-vnc2-devel
  • gvnc-devel
  • java-21-openjdk
  • java-21-openjdk-demo
  • java-21-openjdk-demo-fastdebug
  • java-21-openjdk-demo-slowdebug
  • java-21-openjdk-devel
  • java-21-openjdk-devel-fastdebug
  • java-21-openjdk-devel-slowdebug
  • java-21-openjdk-fastdebug
  • java-21-openjdk-headless
  • java-21-openjdk-headless-fastdebug
  • java-21-openjdk-headless-slowdebug
  • java-21-openjdk-javadoc
  • java-21-openjdk-javadoc-zip
  • java-21-openjdk-jmods
  • java-21-openjdk-jmods-fastdebug
  • java-21-openjdk-jmods-slowdebug
  • java-21-openjdk-slowdebug
  • java-21-openjdk-src
  • java-21-openjdk-src-fastdebug
  • java-21-openjdk-src-slowdebug
  • java-21-openjdk-static-libs
  • java-21-openjdk-static-libs-fastdebug
  • java-21-openjdk-static-libs-slowdebug
  • kmod-redhat-ahci
  • libvma-utils
  • marisa-devel
  • python3-tomli
  • unifdef
"},{"location":"release-notes/8.9/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.9/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.9/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

About 50 packages were updated for x86_64 buildroot alone. We also added some of the packages (like python3.11 for i686) to the publicly available open buildroots.

"},{"location":"release-notes/8.9/#known-issues","title":"Known issues","text":"
  • The AppStream is is about 15GiB. After long discussion and feedback we decided to keep it RHEL like way, where AppStream ISO is so full because it can be used to mount repositories used for mirroring and system. We are sorry but current state (mostly modularity) make things extremely hard to manage without breaking user experience.
  • There is huge problem with packages of java-21 not being reproducible.
"},{"location":"release-notes/8.9/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 and preparing 4.0 with branding kit.

"},{"location":"release-notes/8.9/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.9 Release Notes (parts of our release notes are loosely based on this document).
"},{"location":"release-notes/9.0-beta/","title":"EuroLinux 9 Beta Release Notes","text":""},{"location":"release-notes/9.0-beta/#technical-changes-between-eurolinux-9-and-8","title":"Technical changes between EuroLinux 9 and 8","text":""},{"location":"release-notes/9.0-beta/#installer-and-image-creation","title":"Installer and image creation","text":"

In EuroLinux 9.0 you can now use a standalone smart card to both authenticate yourself and gain additional privileges via sudo.

For the typical cases of installing EuroLinux with a medium such as a disk interactively a Quality of Life tweak has been implemented: the Anaconda installer will now automatically activate a network connection if applicable (will try to obtain an address via DHCP).

You can now optionally permit a password-based root login via SSH or completely lock the root account in any case. (While the former is not recommended due to security and disabled in EuroLinux 9 by default, there are valid use cases which we support with this single easy switch)

"},{"location":"release-notes/9.0-beta/#administrative-tools","title":"Administrative tools","text":"

If you want to rename a network interface, it is recommended that you use systemd link files. Check man 5 systemd.link for more information.

Alternatively udev rules may be used. If you need to use the ifcfg tool, please install the initscripts package first since it is not installed by default.

"},{"location":"release-notes/9.0-beta/#security","title":"Security","text":"

EuroLinux 9 provides OpenSSL version 3.0.0. Among other things, the concept of providers has been added, which means that different programs can use different security algorithms depending on their needs. You can imagine a situation where you have implemented solutions where one needs to use FIPS mode, while others need to maintain compliance with less secure policies.

This new version comes with a few security-related implications. The TLS-1.3 protocol requires that a PKCS#11 token supports raw RSA or RSA-PSS signatures.

If this is applicable to your scenario, please configure your software to use TLS up to TLS-1.2. Additionally please edit the file /etc/pki/tls/openssl.cnf and add this snippet at the very end of the [ crypto_policy ] section:

SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384\nMaxProtocol = TLSv1.2\n
"},{"location":"release-notes/9.0-beta/#developer-tools","title":"Developer tools","text":"

Some of the newest and most reliable technology stacks for developers are available in the repositories. These include:

  • Ant 1.10
  • GCC 11.2
  • Git 2.31
  • Go 1.17.5
  • LLVM 13
  • Maven 3.6.3
  • NodeJS 16
  • OpenJDK 17.0.1
  • PHP 8.0
  • Perl 5.32
  • Python 3.9
  • Ruby 3.0
  • Rust 1.56
  • SVN 1.14

The EuroLinux 9 platform ships glibc 2.34, which will provide 10 years of business-class stability support and the same amount of software binary interface compatibility time. As a result, programs written today will work the same way 10 years from now.

"},{"location":"release-notes/9.0-beta/#web-servers-and-database-engines","title":"Web servers and database engines","text":"

The following software is now available in our repositories:

HTTP servers:

  • Apache HTTPD 2.4
  • nginx 1.20

Proxy servers:

  • Squid 5.1
  • Varnish Cache 6.5

Database engines:

  • MariaDB 10.5.12
  • MySQL 8.0
  • PostgreSQL 13
  • Redis 6.2.6
"},{"location":"release-notes/9.0-beta/#security-policies-scap-security-guide","title":"Security Policies - SCAP Security Guide","text":"

The SCAP Security Guide has been updated to version 0.1.57 and made a number of changes from the counterpart we provide in EuroLinux 8:

  • Removed deprecated SCAP 1.2 source data streams.
  • Removed Bash profile remediation scripts to encourage more secure practices.
  • Although references for EuroLinux 8 have been left in place, the current package is designed for EuroLinux 9 - please kindly use packages for older releases if you need to check them for security policies.
"},{"location":"release-notes/9.0-beta/#gnome-40","title":"GNOME 40","text":"

GNOME has been updated to GNOME 40, a major step forward from EuroLinux 8's GNOME 3.32.2 , which includes many new features.

GNOME 40 includes a new and improved style, including the user interface, icons and desktop, The Activities look and feel provides a better experience when working, launching applications and arranging your personal workspace - workspaces are now arranged horizontally and the window overview and application grid are available vertically.

Many Quality of Life improvements have also been added, including:

  • running the software using a separate graphics card by right-clicking and selecting the appropriate option
  • The ability to mute notifications by selecting Do not disturb, which will appear as a separate button in the notification
  • Each screen can use a different refresh rate
  • The Activities program allows you to group application icons into folders using a drag-and-drop method
  • provide the ability to fractionally scale the display
"},{"location":"release-notes/9.0-beta/#notable-changes","title":"Notable changes","text":"

EuroLinux 9 provides refreshed and updated versions of the following packages:

  • m4 was updated from version 1.4.18 to 1.4.19
  • xdp-tools was updated from version 1.1.1 to 1.2.1
  • openchange was updated from 2.3 (version) 37 (release) to 2.3 (version) 38 (release)
  • tigervnc was updated from 1.11.0 (version) 20 (release) to 1.11.0 (version) 21 (release)

We expect updated versions of these packages to be available in the GA version of RHEL.

"},{"location":"release-notes/9.0-beta/#known-issues","title":"Known issues","text":"
  • Dotnet is not available at the moment. ~~Fix will arrive next week (the first week of march)~~ Update: It's planned for release with ARM Beta
  • We are waiting for Secure Boot; as you can see here https://github.com/rhboot/shim-review/issues, it is a long process
  • ~~There is only minimal ISO. AppStream complete ISO be published next week (the first week of April)~~ Update: AppStream ISO is available.
  • SCAP is not usable. A fix will arrive with EuroLinux 9 beta for ARM64
  • Until GA we will not rebuild other Enterprise Linuxes as it is pointless
  • There might be branding issues. If you find one, please create an issue in our public bug tracker
  • Migration scripts worked well in our tests. We were able to migrate from CentOS Stream 9 and Red Hat Enterprise Linux 9 beta. Because EuroLinux 9 and Red Hat Enterprise Linux 9 are in the beta stage, in the meantime, CentOS Stream 9 is heavily developed. We won't provide assistance and support for migration until the GA of EuroLinux 9.
  • EuroLinux 9 beta is not officially supported for production uses
  • We will update this section when fixes arrive, or new issues arise..
"},{"location":"release-notes/9.0-beta/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 1000 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.0-beta/#eurolinux-9-for-arm","title":"EuroLinux 9 for ARM","text":"

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It also allowed us to create x86_64, open build roots for i686 and x86_64 and batteries repos faster. Because creating EuroLinux 9 beta took us about four weeks, ARM should take about two weeks, after updating Gaia Stack, as we have all the necessary batteries and build orders figured out.

"},{"location":"release-notes/9.0-beta/#gaia-updates","title":"Gaia updates","text":"

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

There are new commands in Gaia:

  • new automodule-update Gaia subcommand, that well - automatically updates modules. No more manual config changes for modules
  • new automodule-merge Gaia subcommand. This command uses multiple input files (RH/EuroLinux modules files + result build + custom files) to create an updated module definition

Other notable changes:

  • Striga now creates automodule-* commands
  • Striga can create --partial commands for module rebuild
  • Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs
  • A lot of new configs for EuroLinux 9

We will also update hardware requirements for rebuild, including reference build servers for ARM and PowerPC. The rebuilds will start with the release of EuroLinux 9. It will also require updated infrastructure.

"},{"location":"release-notes/9.0-beta/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9 beta

  • EuroLinux 9 Beta Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)
  • EuroLinux 9 Beta Container on the Docker Hub
  • EuroLinux 9 Beta Container on the Quay.io
"},{"location":"release-notes/9.0-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.0 beta Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.0/","title":"EuroLinux 9 Release Notes","text":""},{"location":"release-notes/9.0/#technical-changes-between-eurolinux-9-and-8","title":"Technical changes between EuroLinux 9 and 8","text":""},{"location":"release-notes/9.0/#installer-and-image-creation","title":"Installer and image creation","text":"

In EuroLinux 9.0 you can now use a standalone smart card to both authenticate yourself and gain additional privileges via sudo.

For the typical cases of installing EuroLinux with a medium such as a disk interactively a Quality of Life tweak has been implemented: the Anaconda installer will now automatically activate a network connection if applicable (will try to obtain an address via DHCP).

You can now optionally permit a password-based root login via SSH or completely lock the root account in any case. (While the former is not recommended due to security and disabled in EuroLinux 9 by default, there are valid use cases which we support with this single easy switch)

"},{"location":"release-notes/9.0/#administrative-tools","title":"Administrative tools","text":"

If you want to rename a network interface, it is recommended that you use systemd link files. Check man 5 systemd.link for more information.

Alternatively udev rules may be used. If you need to use the ifcfg tool, please install the initscripts package first since it is not installed by default.

"},{"location":"release-notes/9.0/#security","title":"Security","text":"

EuroLinux 9 provides OpenSSL version 3.0.0. Among other things, the concept of providers has been added, which means that different programs can use different security algorithms depending on their needs. You can imagine a situation where you have implemented solutions where one needs to use FIPS mode, while others need to maintain compliance with less secure policies.

This new version comes with a few security-related implications. The TLS-1.3 protocol requires that a PKCS#11 token supports raw RSA or RSA-PSS signatures.

If this is applicable to your scenario, please configure your software to use TLS up to TLS-1.2. Additionally please edit the file /etc/pki/tls/openssl.cnf and add this snippet at the very end of the [ crypto_policy ] section:

SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384\nMaxProtocol = TLSv1.2\n
"},{"location":"release-notes/9.0/#developer-tools","title":"Developer tools","text":"

Some of the newest and most reliable technology stacks for developers are available in the repositories. These include:

  • Ant 1.10
  • GCC 11.2
  • Git 2.31
  • Go 1.17.5
  • LLVM 13
  • Maven 3.6.3
  • NodeJS 16
  • OpenJDK 17.0.1
  • PHP 8.0
  • Perl 5.32
  • Python 3.9
  • Ruby 3.0
  • Rust 1.56
  • SVN 1.14

The EuroLinux 9 platform ships glibc 2.34, which will provide 10 years of business-class stability support and the same amount of software binary interface compatibility time. As a result, programs written today will work the same way 10 years from now.

"},{"location":"release-notes/9.0/#web-servers-and-database-engines","title":"Web servers and database engines","text":"

The following software is now available in our repositories:

HTTP servers:

  • Apache HTTPD 2.4
  • nginx 1.20

Proxy servers:

  • Squid 5.1
  • Varnish Cache 6.5

Database engines:

  • MariaDB 10.5.12
  • MySQL 8.0
  • PostgreSQL 13
  • Redis 6.2.6
"},{"location":"release-notes/9.0/#security-policies-scap-security-guide","title":"Security Policies - SCAP Security Guide","text":"

The SCAP Security Guide has been updated to version 0.1.57 and made a number of changes from the counterpart we provide in EuroLinux 8:

  • Removed deprecated SCAP 1.2 source data streams.
  • Removed Bash profile remediation scripts to encourage more secure practices.
  • Although references for EuroLinux 8 have been left in place, the current package is designed for EuroLinux 9 - please kindly use packages for older releases if you need to check them for security policies.
"},{"location":"release-notes/9.0/#gnome-40","title":"GNOME 40","text":"

GNOME has been updated to GNOME 40, a major step forward from EuroLinux 8's GNOME 3.32.2 , which includes many new features.

GNOME 40 includes a new and improved style, including the user interface, icons and desktop, The Activities look and feel provides a better experience when working, launching applications and arranging your personal workspace - workspaces are now arranged horizontally and the window overview and application grid are available vertically.

Many Quality of Life improvements have also been added, including:

  • running the software using a separate graphics card by right-clicking and selecting the appropriate option
  • The ability to mute notifications by selecting Do not disturb, which will appear as a separate button in the notification
  • Each screen can use a different refresh rate
  • The Activities program allows you to group application icons into folders using a drag-and-drop method
  • provide the ability to fractionally scale the display
"},{"location":"release-notes/9.0/#notable-changes","title":"Notable changes","text":"

EuroLinux 9 provides refreshed and updated versions of the following packages:

  • m4 was updated from version 1.4.18 to 1.4.19
  • xdp-tools was updated from version 1.1.1 to 1.2.1
  • openchange was updated from 2.3 (version) 37 (release) to 2.3 (version) 38 (release)
  • tigervnc was updated from 1.11.0 (version) 20 (release) to 1.11.0 (version) 21 (release)

We expect updated versions of these packages to be available in the GA version of RHEL.

"},{"location":"release-notes/9.0/#known-issues","title":"Known issues","text":"
  • We are waiting for Secure Boot; as you can see here https://github.com/rhboot/shim-review/issues, it is a long process
"},{"location":"release-notes/9.0/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 1000 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.0/#eurolinux-9-for-arm","title":"EuroLinux 9 for ARM","text":"

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It also allowed us to create x86_64, open build roots for i686 and x86_64 and batteries repos faster.

"},{"location":"release-notes/9.0/#gaia-updates","title":"Gaia updates","text":"

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

There are new commands in Gaia:

  • new automodule-update Gaia subcommand, that well - automatically updates modules. No more manual config changes for modules
  • new automodule-merge Gaia subcommand. This command uses multiple input files (RH/EuroLinux modules files + result build + custom files) to create an updated module definition

Other notable changes:

  • Striga now creates automodule-* commands
  • Striga can create --partial commands for module rebuild
  • Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs
  • A lot of new configs for EuroLinux 9

We will also update hardware requirements for rebuild, including reference build servers for ARM and PowerPC. The rebuilds will start with the release of EuroLinux 9. It will also require updated infrastructure.

"},{"location":"release-notes/9.0/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9

  • EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)
  • EuroLinux 9 Container on the Docker Hub
  • EuroLinux 9 Container on the Quay.io
"},{"location":"release-notes/9.0/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.0 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.1/","title":"EuroLinux 9.1 Release Notes","text":""},{"location":"release-notes/9.1/#major-changes-in-eurolinux-91","title":"Major changes in EuroLinux 9.1.","text":""},{"location":"release-notes/9.1/#installer-and-image-creation","title":"Installer and image creation","text":"

Image builder on-premise now supports:

  • Uploading images to GCP.
  • Customizing the /boot partition.
  • Pushing a container image directly to a registry.
  • Users can now customize their blueprints during the image creation process.

Installer support customization size of the /boot partition. -allow-ssh kickstart option allows ssh login as root user.

GRUB bootloader menu is hidden by default.

"},{"location":"release-notes/9.1/#security","title":"Security","text":"

EuroLinux 9.1 introduces Keylime, a remote machine attestation tool using the trusted platform module (TPM) technology. With Keylime, you can verify and continuously monitor the integrity of remote machines.

OpenSSH now supports setting minimum RSA key length. The option to be set is named RequiredRSASize. crypto-policies enforce minimum 2048-bit RSA key length for OpenSSH by default.

NSS no longer support RSA keys shorter than 1023bit.

SELinux user-space packages have been upgraded to version 3.4. Changes: - Improved relabeling performance through parallel relabeling - Support for SHA-256 in the semodule tool - New policy utilities in the libsepol-utils package

"},{"location":"release-notes/9.1/#command-line-tools","title":"Command-line tools","text":"

The following command-line tools have been updated in EuroLinux 9.1: - cronie, now supports a randomized time within range ~ - ReaR, now utilises new variables for executing commands before and after recovery - opencryptoki to version 3.18.0 - lsvpd to version 1.7.14 - libvpd to version 2.2.9 - sysctl supports same syntax for arguments as systemd-sysctl

EuroLinux 9.1 introduces a new package xmlstarlet with which you can parse, query, validate, transform and edit XML files.

"},{"location":"release-notes/9.1/#infrastructure-services","title":"Infrastructure services","text":"

The following infrastructure services tools have been updated in EuroLinux 9.1: - chrony to version 4.2 - unbound to version 1.16.2 - frr to version 8.2.2 - whois package now provides the /usr/bin/mkpasswd binary, which can be used to encrypt a password with the crypt C library interface.

"},{"location":"release-notes/9.1/#networking","title":"Networking","text":"

NetworkManager supports migrating connection profiles from the deprecated ifcfg format to keyfile format.

The MultiPath TCP (MPTCP) code in the kernel has been updated and upstream Linux 5.19.

NetworkManager now clearly indicates that WEP support is not available in EuroLinux 9.

"},{"location":"release-notes/9.1/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following components are now available as new module streams: - PHP 8.1 - Ruby 3.1 - Node.js 18

The Apache HTTP Server has been updated to version 2.4.53.

"},{"location":"release-notes/9.1/#compilers-and-development-tools","title":"Compilers and development tools","text":""},{"location":"release-notes/9.1/#updated-system-toolchain","title":"Updated system toolchain","text":"

The following system toolchain components have been updated in EuroLinux 9.1: - binutils 2.35.2 - GCC 11.2.1 - glibc 2.34

"},{"location":"release-notes/9.1/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated in EuroLinux 9.1: - GDB 10.2 - Valgrind 3.19 - SystemTap 4.7 - Dyninst 12.1.0 - elfutils 0.187

"},{"location":"release-notes/9.1/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 9.1: - Grafana 7.5.13 - PCP 5.3.7

"},{"location":"release-notes/9.1/#updated-compiler-toolsets","title":"Updated compiler toolsets","text":"

The following compiler toolsets have been updated in EuroLinux 9.1: - GCC Toolset 12 - Go Toolset 1.18 - Rust Toolset 1.62 - LLVM Toolset 14.0.6

"},{"location":"release-notes/9.1/#java-implementations-in-eurolinx-91","title":"Java implementations in EuroLinx 9.1","text":"

EuroLinux 9 AppStream repository includes: - java-11-openjdk - OpenJDK 11 Java Runtime Environment and the OpenJDK 11 Java Software Development Kit. - java-17-openjdk - OpenJDK 17 Java Runtime Environment and the OpenJDK 17 Java Software Development Kit. - java-1.8.0-openjdk - OpenJDK 8 Java Runtime Environment and the OpenJDK 8 Java Software Development Kit. - Maven 3.8 has been added as a module stream

"},{"location":"release-notes/9.1/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 1000 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.1/#eurolinux-9-for-arm","title":"EuroLinux 9 for ARM","text":"

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It also allowed us to create x86_64, open build roots for i686 and x86_64 and batteries repos faster. Because creating EuroLinux 9 beta took us about four weeks, ARM should take about two weeks, after updating Gaia Stack, as we have all the necessary batteries and build orders figured out.

"},{"location":"release-notes/9.1/#gaia-updates","title":"Gaia updates","text":"

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

There are new commands in Gaia: - new automodule-update Gaia subcommand, that well - automatically updates modules. No more manual config changes for modules - new automodule-merge Gaia subcommand. This command uses multiple input files (RH/EuroLinux modules files + result build + custom files) to create an updated module definition

Other notable changes: - Striga now creates automodule-* commands - Striga can create --partial commands for module rebuild - Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs - A lot of new configs for EuroLinux 9

We will also update hardware requirements for rebuild, including reference build servers for ARM and PowerPC. The rebuilds will start with the release of EuroLinux 9. It will also require updated infrastructure.

"},{"location":"release-notes/9.1/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9 beta - EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) - EuroLinux 9 Container on the Docker Hub - EuroLinux 9 Container on the Quay.io

"},{"location":"release-notes/9.1/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.1 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.2/","title":"EuroLinux 9.2 Release Notes","text":""},{"location":"release-notes/9.2/#major-changes-in-eurolinux-92","title":"Major changes in EuroLinux 9.2.","text":""},{"location":"release-notes/9.2/#security","title":"Security","text":"

Key security-related highlights:

  • The OpenSSL secure communications library was rebased to version 3.0.7.
  • SELinux user-space packages were updated to version 3.5.
  • Keylime was rebased to version 6.5.2
  • OpenSCAP was rebased to version 1.3.7.
  • SCAP Security Guide was rebased to version 0.1.66.
  • A new rule for idle session termination was added to SCAP.
  • Clevis now accepts external tokens.
  • Rsyslog TLS-encrypted logging now supports multiple CA files.
  • Rsyslog privileges are limited to minimize security exposure.
"},{"location":"release-notes/9.2/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following application are now available:

  • Python 3.11
  • PostgreSQL 15
  • nginx 1.22

The following components have been upgraded:

  • Git LFS to version 3.2.0
  • Git to version 2.39.1
"},{"location":"release-notes/9.2/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following system toolchain components have been updated in EuroLinux 9.2:

  • GCC 11.3.1
  • glibc 2.34
  • binutils 2.35.2
"},{"location":"release-notes/9.2/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated in EuroLinux 9.2:

  • elfutils 0.188
  • GDB 10.2
  • Valgrind 3.19
  • SystemTap 4.8
  • Dyninst 12.1.0
"},{"location":"release-notes/9.2/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 9.2:

  • PCP 6.0.1
  • Grafana 9.0.9
  • Updated compiler toolsets

The following compiler toolsets have been updated in EuroLinux 9.2:

  • GCC Toolset 12
  • Go Toolset 1.19.6
  • LLVM Toolset 15.0.7
  • Rust Toolset 1.66
"},{"location":"release-notes/9.2/#installer-and-image-creation","title":"Installer and image creation","text":"

Key highlights for image builder:

  • Image builder on-prem now offers a new and improved way to create blueprints and images in the image builder web console.
  • Creating customized files and directories in the /etc directory is now supported.
"},{"location":"release-notes/9.2/#java-implementations-in-eurolinux-9","title":"Java implementations in EuroLinux 9","text":"

The EuroLinux 9 AppStream repository includes:

The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime Environment and the OpenJDK 11 Java Software Development Kit. The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime Environment and the OpenJDK 17 Java Software Development Kit. The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime Environment and the OpenJDK 8 Java Software Development Kit.

"},{"location":"release-notes/9.2/#containers","title":"Containers","text":"

Notable changes include:

  • Podman now supports events for auditing.
  • Clients for sigstore signatures with Fulcio and Rekor are now available.
  • Podman Quadlet is now available as a Technology Preview.
  • Skopeo now supports generating sigstore key pairs.
  • The Container Tools packages have been updated.
  • Toolbox is now available.
  • The CNI network stack has been deprecated.
  • The Aardvark and Netavark networks stack now supports custom DNS server selection.
"},{"location":"release-notes/9.2/#known-issues","title":"Known issues","text":"

Due to changes in the build process, some java packages (java-1.8.0-openjdk, java-11-openjdk, java-17-openjdk) are not updated jet (TODO).

"},{"location":"release-notes/9.2/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 330 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.2/#eurolinux-9-for-arm","title":"EuroLinux 9 for ARM","text":"

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It also allowed us to create x86_64, open build roots for i686 and x86_64 and batteries repos faster. Because creating EuroLinux 9 took us about four weeks, ARM should take about two weeks, after updating Gaia Stack, as we have all the necessary batteries and build orders figured out.

"},{"location":"release-notes/9.2/#gaia-updates","title":"Gaia updates","text":"

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

There are new commands in Gaia: - new automodule-update Gaia subcommand, that well - automatically updates modules. No more manual config changes for modules - new automodule-merge Gaia subcommand. This command uses multiple input files (RH/EuroLinux modules files + result build + custom files) to create an updated module definition

Other notable changes: - Striga now creates automodule-* commands - Striga can create --partial commands for module rebuild - Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs - A lot of new configs for EuroLinux 9

We will also update hardware requirements for rebuild, including reference build servers for ARM and PowerPC. The rebuilds will start with the release of EuroLinux 9. It will also require updated infrastructure.

"},{"location":"release-notes/9.2/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9 - EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) - EuroLinux 9 Container on the Docker Hub - EuroLinux 9 Container on the Quay.io

"},{"location":"release-notes/9.2/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.2 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.3/","title":"EuroLinux 9.3 Release Notes","text":"

This version's code name is Riga - the capital of Latvia.

"},{"location":"release-notes/9.3/#major-changes-in-eurolinux-93","title":"Major changes in EuroLinux 9.3.","text":""},{"location":"release-notes/9.3/#security","title":"Security","text":"

Key security-related highlights:

  • Keylime was rebased to version 7.3.0.
  • OpenSSH was further migrated from the less secure SHA-1 message digest.
  • The pcsc-lite-ccid USB Chip/Smart Card Interface Device(CCID)) and Integrated Circuit Card Device (ICCD) driver was rebased to version 1.5.2.
  • SEtools, the collection of graphical tools, command-line tools, and libraries for SELinux policy analysis, was rebased to version 4.4.3.
  • OpenSCAP was rebased to version 1.3.8.
"},{"location":"release-notes/9.3/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following application are now available:

  • Redis 7
  • Node.js 20

Furthermore, the Apache HTTP Server has been updated to version 2.4.57.

The following components have been upgraded:

  • Git LFS to version 3.2.0
  • Git to version 2.39.1
"},{"location":"release-notes/9.3/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following system toolchain components have been updated:

  • GCC 11.4.1
"},{"location":"release-notes/9.3/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated:

  • Valgrind 3.21
  • SystemTap 4.9
  • elfutils 0.189
"},{"location":"release-notes/9.3/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated:

  • PCP 6.0.5
  • Grafana 9.2.10
"},{"location":"release-notes/9.3/#updated-compiler-toolsets","title":"Updated compiler toolsets","text":"

The following compiler toolsets have been updated in:

  • GCC Toolset 13
  • LLVM Toolset 16.0.6
  • Rust Toolset 1.71.1
  • Go Toolset 1.20.10
"},{"location":"release-notes/9.3/#java-implementations-in-eurolinux-9","title":"Java implementations in EuroLinux 9","text":"

The EuroLinux 9 AppStream repository includes:

  • The java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit.
  • The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime
  • Environment and the OpenJDK 11 Java Software Development Kit.
  • The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime
  • Environment and the OpenJDK 17 Java Software Development Kit.
  • The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime
  • Environment and the OpenJDK 8 Java Software Development Kit.
"},{"location":"release-notes/9.3/#known-issues","title":"Known issues","text":"

Due to evolution of build process updates for Java 21 OpenJDK and SCAP Security Guide are delayed now. They are going to be delivered soon.

"},{"location":"release-notes/9.3/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 330 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.3/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9 - EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) - EuroLinux 9 Container on the Docker Hub - EuroLinux 9 Container on the Quay.io

"},{"location":"release-notes/9.3/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.3 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.4/","title":"EuroLinux 9.4 Release Notes","text":"

This version's code name is San Marino - the capital of San Marino, the world's oldest republic.

"},{"location":"release-notes/9.4/#major-changes-in-eurolinux-94","title":"Major changes in EuroLinux 9.4.","text":""},{"location":"release-notes/9.4/#security","title":"Security","text":"

Key security-related highlights:

  • Rsyslog log processing system introduces customizable TLS/SSL encryption settings and additional capability dropping options.
  • The OpenSSL TLS toolkit adds a provider-specific configuration directory.
  • The Linux kernel cryptographic API (libkcapi) 1.4.0 introduces new tools and options. You can now specify target file names for hash calculations using the -T option.
  • The stunnel TLS/SSL tunneling service 5.71 provides many new features such as support for modern PostgreSQL clients.
"},{"location":"release-notes/9.4/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following application are now available:

  • MariaDB 10.11
  • nginx 1.24
  • PHP 8.2
  • PostgreSQL 16
  • Python 3.12

The following components have been upgraded:

  • Git LFS to version 3.4.1
  • Git to version 2.43.0
"},{"location":"release-notes/9.4/#compilers-and-development-tools","title":"Compilers and development tools","text":""},{"location":"release-notes/9.4/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated:

  • elfutils 0.190
  • SystemTap 5.0
  • Valgrind 3.22
"},{"location":"release-notes/9.4/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated:

  • PCP 6.2.0
"},{"location":"release-notes/9.4/#updated-compiler-toolsets","title":"Updated compiler toolsets","text":"

The following compiler toolsets have been updated:

  • GCC Toolset 13
  • Go Toolset 1.21.7
  • LLVM Toolset 17.0.6
  • Rust Toolset 1.75.1
"},{"location":"release-notes/9.4/#java-implementations-in-eurolinux-9","title":"Java implementations in EuroLinux 9","text":"

The EuroLinux 9 AppStream repository includes:

  • The java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit.
  • The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime
  • Environment and the OpenJDK 11 Java Software Development Kit.
  • The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime
  • Environment and the OpenJDK 17 Java Software Development Kit.
  • The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime
  • Environment and the OpenJDK 8 Java Software Development Kit.
"},{"location":"release-notes/9.4/#known-issues","title":"Known issues","text":"

Due to evolution of build process update for SCAP Security Guide are delayed now. They are going to be delivered soon.

"},{"location":"release-notes/9.4/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 330 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.4/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9:

  • EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)
  • EuroLinux 9 Container on the Docker Hub
  • EuroLinux 9 Container on the Quay.io
"},{"location":"release-notes/9.4/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.4 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/ELD/","title":"EuroLinux 9 Desktop","text":"

EuroLinux Desktop is a novelty in the operating system market. It combines the look and functionality of Windows\u00ae and macOS\u00ae with the reliability and security of a server-based Enterprise Linux distribution.

"},{"location":"release-notes/ELD/#overview","title":"Overview","text":"

EuroLinux Desktop is built upon the source code of Red Hat\u00ae Enterprise Linux\u00ae 9. However, it includes a number of changes to the user interface. These primarily concern the system's appearance and usability. GNOME extensions have been used for this purpose. In EuroLinux Desktop, they are pre-configured and available immediately after installation - \"out of the box.\" In addition, the Polish language version of EuroLinux Desktop fills in the gaps in the Polish translations of the extensions and GNOME.

"},{"location":"release-notes/ELD/#appearance-features","title":"Appearance & Features","text":"

In EuroLinux Desktop, there is a translucent dock (taskbar) at the bottom of the screen. It stores icons for favorite applications, notifications and running programs, a button that displays icons for all applications in high magnification, as well as date and time information. It is possible to change the position of the bar to the right, left or top of the desktop, as well as to customize it extensively. The user can customize its height, length, transparency, color, icon spacing and size. The system allows icons to be placed on the desktop as standard, and provides a window maximization and minimization function.

EuroLinux Desktop disables the overview mode and the hotcorner function, which displays the preview mode when you hover the mouse over the top left corner of the screen. When you right-click on the wallpaper, additional menu items appear (including New Text Document). Notification icons from instant messaging or email programs have also been added. EuroLinux Desktop lets you switch day/night themes with a single click on the moon icon in the dock, and allows you to set a schedule for automatic theme switching based on the time of day.

"},{"location":"release-notes/ELD/#multimedia","title":"Multimedia","text":"

EuroLinux Desktop supports many media file formats (mp3, mpg, wma, ts, opus, ogg, mp4, flac, aiff, acc, ac3, avi), as well as the open codecs used for the popular mkv (Matroska) video files. Each of these formats can be run in the default Totem/Videos system player.

"},{"location":"release-notes/ELD/#office-suite","title":"Office Suite","text":"

EuroLinux Desktop includes the LibreOffice suite of office applications. It includes a word processor, spreadsheet, presentation editor, vector graphics editor, mathematical formula editor and relational database management system.

"},{"location":"release-notes/ELD/#software","title":"Software","text":"

EuroLinux Desktop has been integrated with the Flathub repository, providing easy access to more than 2,000 free applications. They can be downloaded from the Software application and installed with a single click. The system also supports applications in AppImage format, the use of which is similar to programs with .exe or .msi extensions. However, in the case of EuroLinux Desktop, the AppImage application is always run from a non-privileged user. The system also allows the use of applications designed for Windows\u00ae, thanks to Steam\u00ae, Lutris or Wine.

"}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"EuroLinux","text":""},{"location":"#about-documentation","title":"About Documentation","text":"

This is EuroLinux community-driven documentation.

We welcome your contributions to EuroLinux!

You can:

  • star the repository to show your support
  • contribute via a Pull Request - see How to contribute
  • create requests for a particular topic via Issue Creation on GitHub

Info

As EuroLinux is in Open Core model there are also additional documentation for our customer that are available at EuroLinux Support Portal.

Info

You can find our online Enterprise Linux Man pages server here https://man.docs.euro-linux.com.

"},{"location":"#how-documentation-is-organized","title":"How documentation is organized?","text":"

Documentation is organized in the following manner:

  • JumpStarts - Installation guides with extras
  • HowTo - How To guides on various topics
  • Release Notes
"},{"location":"#how-to-contribute","title":"How to contribute","text":"

We love your input! We value transparent and easy to contribute projects, that's why we choose GitHub. You can contribute to this project with:

  • Proposing a new topic that should be described
  • Discussing the current state of the docs
  • Reporting a bug
  • Submitting a fix

We Use GitHub with GitHub Flow. All changes are made through pull requests.

Pull requests are the best and well-established way to propose changes. The GitHub Flow that allows us to provide reviews and discussion about documentation/code is described in detail here.

Use our specially crafted issue templates: EuroLinux Open Docs issue from a template to contribute a topic you would like to see.

If you want to contribute with code (we keep documentation as code), do the following:

  1. Fork the repository and create your own branch from master.
  2. It would be great if you could test your changes with mkdocs (described in detail in Setup environment locally)
  3. Write/Apply your changes and commit to your branch.
  4. Create a pull request!
"},{"location":"#github-labs","title":"GitHub Labs","text":"

If you are new to Git VCS (Version Control System) or GitHub, you can visit GitHub Learning Lab, especially First Day on GitHub course. GitHub courses are free, interactive and put stress on practical aspects.

"},{"location":"#tools","title":"Tools","text":"

We are using mkdocs with mkdocs-material to build and style our documentation.

  • MkDocs site
  • Material for MkDocs site
"},{"location":"#setup-environment-locally","title":"Setup environment locally","text":"

Because MkDocs is Python based, you need at least these installed to run this documentation locally:

  • python3 (3.6+)
  • pip
  • virtualenv

First, let's create a virtualenv, so you don't bloat your system-wide python environment:

virtualenv -p /usr/bin/python3 venv\n

Then activate virtualenv

Bash:

. venv/bin/activate\n

Fish:

. venv/bin/activate.fish\n

Now you are ready to install MkDocs and other Python packages:

pip install -r requirements.txt\n

After it serving documentation on your host is as easy as running:

mkdocs serve\n

To build documentation invoke:

mkdocs build\n

It will build documentation and save it into site directory

Please don't include site directory in pull requests

Because we deploy this documentation with GitHub Pages, the site directory is not gitignored

"},{"location":"#markdown-cheat-sheet-for-this-project","title":"Markdown cheat sheet for this project","text":"

We created simple cheat sheet for MkDocs markdown syntax with extensions enabled in this project. It can be found here.

"},{"location":"HowTo/centos8-eol-solution/","title":"CentOS 8 End of Life - solution","text":""},{"location":"HowTo/centos8-eol-solution/#introduction","title":"Introduction","text":"

This how-to provides a solution to the problem of CentOS 8 running out of support. With the end of 2021, CentOS ended its life in its stable form and started functioning as CentOS Stream, a development branch for Red Hat\u00ae Enterprise Linux\u00ae. As a result, it stopped receiving proven, stable updates and its use, especially in production environments, became risky. This is a very serious problem for many companies and individuals around the world. So there was an urgent need to find a new source of updates for CentOS in order to keep it in the infrastructure. A complete solution to this problem is support switching, that is, pointing to a new repository from which CentOS will be downloading stable updates. Such a solution is offered by EuroLinux. It is worth mentioning that both CentOS and RHEL and EuroLinux are systems built on the same source code, so they provide the same functionality. They differ mainly in branding.

The operation of switching support is simple, reasonably safe and completely reversible. What is very important, it requires neither reinstallation of the system nor the applications installed on it. The process consists of switching the repository, installing the el-release package, updating the system and reinstalling the system packages in-place. After the in-place migration, CentOS will still be usable, even in production environments.

All resources used in this tutorial can be found in the additional resources section.

"},{"location":"HowTo/centos8-eol-solution/#the-solution","title":"The solution","text":"

A project named eurolinux-migration-scripts has been created. It contains among others a script that will take care of the migration automatically. Here we describe, how to perform the switch successfully.

"},{"location":"HowTo/centos8-eol-solution/#preparations","title":"Preparations","text":"

It's vital that the system be updated to the newest release. Use the following command:

sudo yum update -y\n
"},{"location":"HowTo/centos8-eol-solution/#running-the-migration-script","title":"Running the migration script","text":"

Then download the latest production-ready release of the project containing the script. Unpack the release, visit the unpacked directory and run the script - usually this will require right-clicking in the current directory, using the 'Open in Terminal' option and running this command:

sudo bash migrate2eurolinux.sh\n

Refer to the project's README for additional commands.

"},{"location":"HowTo/centos8-eol-solution/#after-the-switch","title":"After the switch","text":"

Once the migration has finished, it's recommended to reboot your system:

sudo reboot\n

Once the system has rebooted, the migration process can be considered complete. In order to quickly verify that it was carried out successfully, we can check the distribution description:

cat /etc/el-release\n

As a result we should get a response about the distribution and latest EuroLinux version.

"},{"location":"HowTo/centos8-eol-solution/#conclusion","title":"Conclusion","text":"

As you can see, the process is quick and seamless. You can switch the repository for RHEL, Oracle Linux, AlmaLinux, and Rocky Linux the same way. In each case, the process will look almost identical.

If you have any questions or concerns, please submit them to the repository linked in the additional resources section. Thank you.

"},{"location":"HowTo/centos8-eol-solution/#additional-resources","title":"Additional resources","text":"
  • EuroLinux support switching script GitHub repository
  • Latest production-ready release of the project
"},{"location":"HowTo/create-iso-with-repositories/","title":"How to create ISO file with EuroLinux repositories","text":"

Creating ISO that contains RPM repositories is a straightforward process. First you have to mirror repositories locally - mirroring is described in Mirror EuroLinux Locally How To.

To create an ISO file, you need mkiso command that is part of genisoimage package. You can install it with the following command:

sudo yum install -y genisoimage\n
"},{"location":"HowTo/create-iso-with-repositories/#creating-iso-with-repositories","title":"Creating ISO with repositories","text":"

In the example below, we create ISO from the repositories saved in /repos directory the output is saved to /var/eurolinux-repos.iso.

sudo mkisofs -R -J -o /var/eurolinux-repos.iso /repos/\n

This file could be:

  • locally copied to the machine that will be using it
  • added to ISOs pool of Virtual Machine manager/orchestrator or cloud computing platform of your choice
"},{"location":"HowTo/create-iso-with-repositories/#mounting-iso-from-local-file","title":"Mounting ISO from local file","text":"

Mounting local ISO file is as simple as:

sudo mount -o loop /PATH/TO/ISO /MOUNT/PATH\n

example:

sudo mount -o loop /var/eurolinux-repos.iso /mnt/mirror\n
"},{"location":"HowTo/create-iso-with-repositories/#mounting-iso-from-virtual-cd-rom-device","title":"Mounting ISO from virtual cd-rom device","text":"

Mounting CD-ROM device is as simple as:

sudo mount /dev/DEVICE /MOUNT/PATH\n

The following example has ISO mounted as CD-ROM device /dev/sr0:

sudo mount /dev/sr0 /mnt/mirror\n
"},{"location":"HowTo/create-iso-with-repositories/#using-locally-mounted-iso-with-rpm-repositories","title":"Using locally mounted ISO with RPM repositories","text":"

To use the repositories, that the ISO file provides, create a proper .repo file that resides inside /etc/yum.repos.d/ directory.

Here is an example /etc/yum.repos.d/local-iso.repo file for EuroLinux 7 and the ISO image attached to /mnt/mirror directory.

[base]\nname = EuroLinux 7 x86_64 Base\nbaseurl=file:///mnt/mirror/eurolinux-os-7/\nenabled=1\n# Disabled gpgcheck, enable if el-release is already installed on your system\ngpgcheck=0\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n\n[updates]\nname = EuroLinux 7 x86_64 Updates\nbaseurl=file:///mnt/mirror/eurolinux-updates-7/\nenabled=1\n# Disabled gpgcheck, enable if el-release is already installed on your system\ngpgcheck=0\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n
"},{"location":"HowTo/docker/","title":"Docker","text":"

How to set up your Docker Community Edition installation.

"},{"location":"HowTo/docker/#introduction","title":"Introduction","text":""},{"location":"HowTo/docker/#use-cases","title":"Use cases","text":"

Consider the following examples:

  • You want a standardized runtime environment across production, QA and developer scenarios.
  • You want all the runtime environment's specification in a single file, what is easy to manage through version control systems.
  • You want the environment to be reproducible. After all, it's just a matter of building an image from the specification and once it's done it is already self-documented on what steps were taken to cook the final image.
  • You prefer a layered architecture and the ability to cache artifacts across several images and backup & restore the images easily.
"},{"location":"HowTo/docker/#why-use-docker-containers-over-virtual-machines","title":"Why use Docker containers over virtual machines?","text":"

In short: Docker containers utilize Linux's capabilities such as cgroups and namespaces to create an isolated environment and do not virtualize hardware. Therefore, they are way more lightweight than virtual machines and can be brought up in a large scale in a blink of an eye rather than waiting for a single virtual machine to boot.

For more information, take a look at our blog entry on the basics of containerization.

"},{"location":"HowTo/docker/#system-requirements","title":"System requirements","text":"

The following operating systems and architectures are covered by this guide:

  • EuroLinux 8 on the x86_64 and aarch64 architecture.
  • EuroLinux 7 on the x86_64 architecture.

Make sure the containers you want to run are of the same architecture as your machine.

If you need support with installation on the EuroLinux releases this guide does not cover, please create an appropriate ticket.

"},{"location":"HowTo/docker/#installation","title":"Installation","text":""},{"location":"HowTo/docker/#eurolinux-8","title":"EuroLinux 8","text":"

The following steps are based on Docker, Inc. official guide as of 2022.02.01. We will just use the commands provided as snippets for a quick way of copying & pasting one snippet for a successful installation.

The following snippet installs Docker on EuroLinux 8.6. Other releases may work as well, but have not been tested. Once a new EuroLinux release is out, this guide will be updated.

Docker installation removes podman and buildah

Please note that this operation will replace runc with containerd.io and remove both podman and buildah.

sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine\nwhich yum-config-manager || sudo yum install -y yum-utils\nsudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo\nsudo yum install -y docker-ce docker-ce-cli containerd.io --allowerasing\nsudo systemctl enable docker --now\n
"},{"location":"HowTo/docker/#eurolinux-7","title":"EuroLinux 7","text":"

EuroLinux provides their own builds of Docker for EuroLinux 7.

Please prepare your EuroMan credentials and enable the el-server-7-extras-x86_64 channel first, like so:

sudo rhn-channel -u \"$el_euroman_user\" -p \"$el_euroman_password\" -c el-server-7-extras-x86_64 -a\n

Then you are ready to install Docker:

sudo yum install -y docker\nsudo systemctl enable docker --now\n
"},{"location":"HowTo/docker/#whats-next","title":"What's next?","text":"

EuroLinux provides several Docker images for you to use. They are publicly available and free of charge. Take a look at our entry EuroLinux docker images are now available for more information. Additionally, we provide a quick guide for having the images up and running in no time.

"},{"location":"HowTo/els/","title":"Migrate to EuroELS","text":"

This guide is about how to switch your repositories to the ones provided by EuroLinux Extended Life Support.

"},{"location":"HowTo/els/#introduction","title":"Introduction","text":"

Enterprise Linuxes 6 ended their life a few years ago. Still, security updates can be provided by several vendors for a fee. That's where EuroELS comes in. You can extend the lifecycle of your Enterprise Linux up to the half of 2024.

"},{"location":"HowTo/els/#how-to-migrate","title":"How to migrate","text":"

First, make sure that your system is up to date. It should be CentOS 6.10 (minor version 10).

su\nyum update -y\n

Second, in accordance with good practice, we recommend backing up your machine.

Please download the migration script available at this location:

https://github.com/EuroLinux/eurolinux-migration-scripts.git

wget https://github.com/EuroLinux/eurolinux-migration-scripts/archive/refs/heads/el6-only-switch-repos.zip\n

Please unpack the downloaded file:

unzip el6-only-switch-repos.zip\n

and navigate to the script's directory:

cd eurolinux-migration-scripts-el6-only-switch-repos\n

To start the switching process, just run the script with administrator privileges:

./migrate2eurolinux.sh\n

Once the command is executed, we'll get a recommendation to make a backup. Type YES to make the script continue.

The script will ask us about our EuroMan credentials. We provide our login and password when asked.

The repository switch has completed successfully. We can now update our Enterprise Linux 6 with the command:

yum update -y\n
"},{"location":"HowTo/ha-rs-enable-repository/","title":"How to install High Availability and Resilient Storage in EuroLinux 8","text":"

For EuroLinux 8.4, you should update the el-release package. The newer version has resilient-storage and high-availability repositories saved in the /etc/yum.repos.d/certify.repo file.

sudo yum update -y el-release\n

'certify-' prefix

Since EuroLinux 8.6 the 'certify-' prefixes in repo URLs and names are no longer used. These URLs are and will be kept as the symbolic link for backward compatibility. The certify.repo file will be used for the whole EuroLinux 8 lifecycle.

If you cannot update the release package because the new el-release package errata is not security-related, you might manually add the following to the /etc/yum.repos.d/certify.repo

[high-availability]\nname = EuroLinux High Availability\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/HighAvailability/os\nenabled=0\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\n\n[resilient-storage]\nname = EuroLinux Resilient Storage\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os\nenabled=0\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\n
"},{"location":"HowTo/ha-rs-enable-repository/#enabling-repositories-permanently","title":"Enabling repositories permanently","text":""},{"location":"HowTo/ha-rs-enable-repository/#enabling-high-availability-and-resilient-storage-repository-manually","title":"Enabling High Availability and Resilient Storage repository manually","text":"

Use your favourite text editor and change enabled=0 to enabled=1 for high-availability and resilient-storage repositories.

Before edit:

[resilient-storage]\nname = EuroLinux Resilient Storage\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os\nenabled=0\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\n

After Edit:

[resilient-storage]\nname = EuroLinux Resilient Storage\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\n

You should do the identical changes for high-availability repositories.

"},{"location":"HowTo/ha-rs-enable-repository/#enabling-high-availability-and-resilient-storage-repository-with-yum-config-manager","title":"Enabling High Availability and Resilient Storage repository with yum-config-manager","text":"

The yum-config-manager command is part of the yum-utils package. Firstly let's install that package:

sudo yum install -y yum-utils\n

Then enable Resilient Storage and High Availability repository with the following command:

sudo yum-config-manager --enable high-availability\nsudo yum-config-manager --enable resilient-storage\n
"},{"location":"HowTo/ha-rs-enable-repository/#installing-ha-andor-resilient-storage","title":"Installing HA and/or Resilient Storage","text":"

Both High Availability and Resilient Storage have rpm groups, so installing them is trivial.

To install the High Availability add-on, invoke the following command:

sudo yum install -y @ha\n

To install the Resilient Storage add-on, invoke the following command:

sudo yum install -y @resilient-storage\n
"},{"location":"HowTo/ha-rs-enable-repository/#basic-ha-configuration","title":"Basic HA configuration","text":""},{"location":"HowTo/ha-rs-enable-repository/#configuring-firewalld","title":"Configuring firewalld","text":"

Before configuring a firewall, it's appropriate to check if firewalld is actually running. The standard systemctl is-active command is one of the options.

systemctl is-active firewalld\n

For a system that has firewalld started and enabled, you might use good enough configuration with:

sudo firewall-cmd --permanent --add-service=high-availability\nsudo firewall-cmd --reload\n
"},{"location":"HowTo/ha-rs-enable-repository/#starting-pcsd","title":"Starting pcsd","text":"

After configuring a firewall, you can start and enable pcsd (PCS GUI and remote configuration interface) with the following commands:

sudo systemctl start pcsd.service\nsudo systemctl enable pcsd.service\n

To make a very basic test of the pcsd installation, we recommend setting hacluster user password. As root user, you can, for example invoke:

# echo \"secret-pass\" | passwd hacluster --stdin\n

Then login into Pacemaker/Corosync configuration. Use the machine address on port 2224 (example: https://MACHINE_IP:2224) in your browser. The username is hacluster with password you set in previous step.

HTTPS Required

Web browser like Firefox and other programs like cURL will report \"Connection reset by peer\" or \"The connection was reset\" when connecting with cleartext HTTP.

[root@test1 pcsd]# curl localhost:2224\ncurl: (56) Recv failure: Connection reset by peer\n

From this point you can freely configure High Availability and Resilient Storage. We recommend using upstream documentation provided in Additional Links below.

"},{"location":"HowTo/ha-rs-enable-repository/#additional-links","title":"Additional links","text":"
  • Red Hat Documentation - Configuring and Managing High Availability Clusters
  • Red Hat Documentation - Configuring GFS2 File System
"},{"location":"HowTo/install-epel-on-eurolinux/","title":"How to Install and Enable EPEL repository on EuroLinux 8","text":"

EPEL (Extra Packages for Enterprise Linux) repository is one of the most popular third-party repositories for the Enterprise Linux family. From the 4th November EuroLinux team included the original epel-release package from EPEL in the BaseOS repo. It was the most voted small quality of life change during our first community meeting. The package is re-signed with a EuroLinux GPG key, so there is no need to accept an external key to install this particular package.

The package version will be checked and updated if necessary during minor releases.

EPEL is an external repository that is community supported

As a company, we cannot provide proper care in terms of security, quality, support and lifecycle standards on a third-party repository. Nevertheless, the EPEL repository has a great history of community support.

"},{"location":"HowTo/install-epel-on-eurolinux/#installing-epel-on-eurolinux","title":"Installing EPEL on EuroLinux","text":"

Installing EPEL on EuroLinux 8 and EuroLinux 7 is as simple as:

sudo yum install -y epel-release\n

EPEL is enabled by default

The base EPEL repository is enabled by default for modular (EuroLinux 8) and non-modular packages. You can enable debuginfo and source packages in respective /etc/yum.repos.d/epel*.repo file.

From this moment, you can install and then use all EPEL goodies like htop, wine or createrepo.

"},{"location":"HowTo/migrate_to_rocky_linux/","title":"Procedure for migrating EuroLinux to RockyLinux","text":"
  1. Preparation:

    • Ensure a stable and reliable internet connection throughout the entire migration process. This is critical for downloading scripts and packages.
    • Create a full backup of the system to be migrated.
    • Test the recovery procedure to ensure you can restore the system in case of interruption or errors during migration.
    • It is recommended to run the migration in a session manager, e.g., tmux.
  2. Download migration scripts:

    • For EL8:
      curl -O https://raw.githubusercontent.com/EuroLinux/rocky-tools/feature/vaulted_migration/migrate2rocky/migrate2rocky.sh\n
    • For EL9:
      curl -O https://raw.githubusercontent.com/EuroLinux/rocky-tools/feature/vaulted_migration/migrate2rocky/migrate2rocky9.sh\n
  3. Migration:

    • Migrating EuroLinux 8 to RockyLinux 8:
      sudo bash migrate2rocky.sh -r\n
    • Migrating EuroLinux 9.4 to RockyLinux 9.4:
      • If RockyLinux has not yet released version 9.5:
        sudo bash migrate2rocky9.sh -r\n
      • If RockyLinux has already released version 9.5 or higher:
        sudo bash migrate2rocky9.sh -rv 9.4\n
"},{"location":"HowTo/mirror-eurolinux-locally/","title":"How to set up internal EuroLinux RPM mirror","text":"

This short how-to instructs how to set up your own internal EuroLinux mirror. External (publicly available) mirrors should not be set up this way.

"},{"location":"HowTo/mirror-eurolinux-locally/#system-requirements","title":"System requirements","text":"
  • Internet connection for sync server is required
  • The firewall must allow connection to EuroLinux servers
  • For each version of EuroLinux, you need about 80 GB of storage
  • You have to install utilities like reposync and createrepo. The following command will work on an Enterprise Linux 7 and 8:
    # --skip-broken because depending on the version not all packages might be present\nsudo yum install -y createrepo_c createrepo yum-utils dnf-utils --skip-broken\n
"},{"location":"HowTo/mirror-eurolinux-locally/#mirroring-eurolinux-9","title":"Mirroring EuroLinux 9","text":"

Making a local mirrors for EuroLinux 8 and EuroLinux 9 is simple because:

  • repositories are open
  • reposync can pull repository metadata, erratas, and modules files automatically.

Use Enterprise Linux 9

These instructions have been tested to work properly on Enterprise Linux 9 and Enterprise Linux 8.

First, let's create the directory where mirroring configuration will reside:

sudo mkdir -p /etc/yum-mirror-config\n

Then, let's create configuration file for EuroLinux 9 mirroring /etc/yum-mirror-config/mirror_yum_el9.conf with the contents:

[main]\ncachedir=/var/cache/yum/mirror/$basearch/$releasever\nkeepcache=0\ndebuglevel=2\nlogfile=/var/log/mirror-yum-el9.log\nplugins=1\nexactarch=0\nobsoletes=0\nreposdir=/dev/null\n\n[baseos]\nname = EuroLinux BaseOS\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/BaseOS/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9\nskip_if_unavailable=1\n\n[appstream]\nname = EuroLinux AppStream\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/AppStream/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9\nskip_if_unavailable=1\n\n[crb]\nname = EuroLinux CRB\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/CRB/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9\nskip_if_unavailable=1\n

Then invoke the command reposync with the following arguments:

reposync --downloadcomps --download-metadata -c /etc/yum-mirror-config/mirror_yum_el9.conf -p /repos\n
"},{"location":"HowTo/mirror-eurolinux-locally/#mirroring-eurolinux-8","title":"Mirroring EuroLinux 8","text":"

Making a local mirror for EuroLinux 8 and EuroLinux 9 is simple because:

  • repositories are open
  • reposync can pull repository metadata, erratas, and modules files automatically.

Use Enterprise Linux 8

These instructions have been tested to work properly on Enterprise Linux 8. While everything may work well, it's not recommended to use other versions.

First, let's create the file /etc/yum-mirror-config/mirror_yum.conf with the contents:

[main]\ncachedir=/var/cache/yum/mirror/$basearch/$releasever\nkeepcache=0\ndebuglevel=2\nlogfile=/var/log/mirror-yum.log\nplugins=1\nexactarch=0\nobsoletes=0\nreposdir=/dev/null\n\n[baseos]\nname = EuroLinux BaseOS\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/BaseOS/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\nskip_if_unavailable=1\n\n[appstream]\nname = EuroLinux AppStream\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/AppStream/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\nskip_if_unavailable=1\n\n[powertools]\nname = EuroLinux PowerTools\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/PowerTools/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\nskip_if_unavailable=1\n

Then invoke the command reposync with the following arguments:

reposync --downloadcomps --download-metadata -c /etc/yum-mirror-config/mirror_yum.conf -p /repos\n
"},{"location":"HowTo/mirror-eurolinux-locally/#mirroring-eurolinux-7","title":"Mirroring EuroLinux 7","text":"

Use Enterprise Linux 7

These instructions have been tested to work properly on Enterprise Linux 7. While everything may work well, it's not recommended to use other versions.

"},{"location":"HowTo/mirror-eurolinux-locally/#the-official-way","title":"The official way","text":"

EuroLinux 7 is not open-core; therefore, only organizations with a proper license (EuroMan or Golden Key) can mirror it freely.

We know

We are well aware that it is possible to mirror repos even with a single license. You can read about that below.

The official way to mirror EuroLinux repositories is the following:

  • You need a proper subscription, like EuroMan or Golden Key
  • EuroLinux engineer will provide you with SSL certificates that we will name repo.key and repo.crt and CA that we will name ca.crt

Create the directory /etc/yum-mirror-config/. With the repokeys residing in that directory, create the file /etc/yum-mirror-config/mirror_yum.conf with the contents:

[main]\ncachedir=/var/cache/yum/mirror/$basearch/$releasever\nkeepcache=0\ndebuglevel=2\nlogfile=/var/log/mirror-yum.log\nexactarch=0\nobsoletes=0\ngpgcheck=0\nplugins=0\nreposdir=/dev/null\n\n[eurolinux-os-7]\nname=el7_x86_64_os\nbaseurl=https://cdn.euro-linux.com/dist/eurolinux/server/7/x86_64/os/\nsslclientkey=/etc/yum-mirror-config/repo.key\nsslclientcrt=/etc/yum-mirror-config/repo.crt\nsslcacert=/etc/yum-mirror-config/ca.crt\n\n[eurolinux-updates-7]\nname=el7_x86_64_updates\nbaseurl=https://cdn.euro-linux.com/dist/eurolinux/server/7/x86_64/updates/\nsslclientkey=/etc/yum-mirror-config/repo.key\nsslclientcrt=/etc/yum-mirror-config/repo.crt\nsslcacert=/etc/yum-mirror-config/ca.crt\n

Then invoke the command reposync with the following arguments:

reposync -d -m --download-metadata -c /etc/yum-mirror-config/mirror_yum.conf -p /repos\n

When the download finishes, the next step is to create repodata and enable groups.

cd /repos/eurolinux-os-7/; createrepo . -g comps.xml\ncd /repos/eurolinux-updates-7/; createrepo . -g comps.xml\n

Info

Enabling updateinfo (erratas information) is a little bit tricky, because firstly you have to find the newest updateinfo, unpack it, then invoke modifyrepo script. It can be automated with the script below.

REPO_DIR=/repos/eurolinux-os-7/\nunset -v LAST_UI\n# finding the newest file\nfor file in \"$REPO_DIR\"/*updateinfo.xml.gz; do\n  [[ \"$file\" -nt \"$LAST_UI\" ]] && LAST_UI=$file\ndone\n# unpacking to updateinfo.xml file\nsudo gunzip -c \"$LAST_UI\"  > \"$REPO_DIR/updateinfo.xml\"\n# Depending on the system - some has modifrepo.py script some has \"normal\" command\n/usr/share/createrepo/modifyrepo.py \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\" || modifyrepo \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\"\n\nREPO_DIR=/repos/eurolinux-updates-7/\nunset -v LAST_UI\nfor file in \"$REPO_DIR\"/*updateinfo.xml.gz; do\n  [[ $file -nt $LAST_UI ]] && LAST_UI=$file\ndone\nsudo gunzip -c \"$LAST_UI\"  > \"$REPO_DIR/updateinfo.xml\"\n# Depending on the system - some has modifrepo.py script some has \"normal\" command\n/usr/share/createrepo/modifyrepo.py \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\" || modifyrepo \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\"\n
"},{"location":"HowTo/mirror-eurolinux-locally/#the-unsupported-way","title":"The unsupported way","text":"

There is also the possibility to mirror EuroLinux repositories even with a single or even test subscription.

True Product \u2013 Real Support \u2013 Fair Price

We are faithful to our values. We also know that it's always possible to cheat and not play fair. Please be aware that during support inqury, we might check if your system is registered and supported. To this day, we always had pleasure to work with honest companies - please don't ruin that.

Mirroring other distros

The instruction allows cloning other distros, including paid ones. If you want to mirror paid Linux distribution, note that this might breach the license/license agreement.

You can mirror EuroLinux or other Enterprise Linux repositories with the following step:

  • Register your system with rhn_register command for EuroLinux or another way to mirror another system repositories.

Then run the following snippet as root:

reposync -d -m --download-metadata --plugins -r el-server-7-x86_64 -p /repos/\n# recreating repodata and updateinfo\nREPO_DIR=/repos/el-server-7-x86_64/\ncd /repos/el-server-7-x86_64/; createrepo . -g comps.xml\nunset -v LAST_UI\nfor file in \"$REPO_DIR\"/*updateinfo.xml.gz; do\n  [[ $file -nt $LAST_UI ]] && LAST_UI=$file\ndone\nsudo gunzip -c \"$LAST_UI\"  > \"$REPO_DIR/updateinfo.xml\"\n# Depending on the system - some has modifrepo.py script some has \"normal\" command\n/usr/share/createrepo/modifyrepo.py \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\" || modifyrepo \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\"\n
"},{"location":"HowTo/mirror-eurolinux-locally/#mirroring-eurolinux-6-els","title":"Mirroring EuroLinux 6 ELS","text":"

First, register your system to EuroLinux EuroMan with the migration scripts - use the el6-only-switch-repos branch for this.

Once the system has been registered and is receiving EL6 ELS updates, you can mirror the ELS packages with the following commands. Run them as root:

reposync -d -m --download-metadata --plugins -r els-6-x86_64 -p /repos/\n# recreating repodata and updateinfo\nREPO_DIR=/repos/els-6-x86_64/\ncd /repos/els-6-x86_64/; createrepo . -g comps.xml\nunset -v LAST_UI\nfor file in \"$REPO_DIR\"/*updateinfo.xml.gz; do\n  [[ $file -nt $LAST_UI ]] && LAST_UI=$file\ndone\nsudo gunzip -c \"$LAST_UI\"  > \"$REPO_DIR/updateinfo.xml\"\n# Depending on the system - some has modifrepo.py script some has \"normal\" command\n/usr/share/createrepo/modifyrepo.py \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\" || modifyrepo \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\"\n
"},{"location":"HowTo/vagrant-with-libvirt/","title":"Vagrant with vagrant-libvirt plugin on Enterprise Linux 8","text":""},{"location":"HowTo/vagrant-with-libvirt/#introduction","title":"Introduction","text":"

This guide covers the installation of libvirt and related tools along with the Vagrant plugin that allows using libvirt as a provider. This has been tested on a clean installation of EuroLinux 8.5 - only Vagrant has been installed already as described in Vagrant jumpstart.

"},{"location":"HowTo/vagrant-with-libvirt/#terminology","title":"Terminology","text":"
  • QEMU - a generic machine emulator
  • KVM - a virtualisation solution that is native to Linux. Used by QEMU to achieve near-native performances by executing the guest code directly on the host CPU
  • libvirt - a management suite for several hypervisors

While libvirt can manage many virtualisation solutions, in the context of this document libvirt refers to: QEMU with KVM managed by libvirt.

"},{"location":"HowTo/vagrant-with-libvirt/#why-prefer-libvirt-over-providers-such-as-virtualbox","title":"Why prefer libvirt over providers such as VirtualBox?","text":"

As mentioned, KVM is a native virtualisation solution to Linux. This means a significant performance boost when compared to other providers at the slight cost of portability - if you run Linux only, then this is your solution of choice!

If you have never used libvirt before and just heard about it in this how-to, there are several goodies worth mentioning. As an example unrelated to Vagrant: Virt-Manager allows you to get a similar GUI experience out of KVM as that of e.g. VirtualBox, it is fully Free Software (no worrying about licensing shenanigans) and is more modular - in fact, there is a libvirt VirtualBox driver out there.

"},{"location":"HowTo/vagrant-with-libvirt/#install-the-plugin","title":"Install the plugin","text":"

Normally one would invoke a single command: vagrant plugin install vagrant-libvirt and the plugin would work well out-of-the-box. This is not the case for Linux distributions from the Enterprise Linux family and Upstream is aware of that, but as of today (2021.12.21) it doesn't appear to be resolved.

Because of that, you'll need to build additional components and use them with your Vagrant installation. The following procedure covers all of this and has been tested to work well with EuroLinux 8.5.

Use these commands:

[ \"$(command -v vagrant)\" ] || \\\n( read -p \"Install Vagrant first before running the following commands\" \\\n  && exit 1 )\n\nsudo dnf groupinstall \"Development Tools\" \"Virtualization Host\" -y\nsudo dnf install cmake libvirt-devel ruby-devel -y\n\nmkdir krb5\ncd krb5\nwget https://vault.cdn.euro-linux.com/sources/eurolinux/8/baseos/x86_64/Packages/k/krb5-1.18.2-8.el8.src.rpm\nrpm2cpio krb5*.src.rpm | cpio -idmv\ntar xf krb5*.tar.gz\ncd krb5*/src\n./configure\nmake\nsudo cp -P lib/crypto/libk5crypto.* /opt/vagrant/embedded/lib64/\ncd\n\nmkdir libssh\ncd libssh\nwget https://vault.cdn.euro-linux.com/sources/eurolinux/8/baseos/x86_64/Packages/l/libssh-0.9.4-3.el8.src.rpm\nrpm2cpio libssh*.src.rpm | cpio -idmv\ntar xf libssh*.tar.xz\nmkdir build\ncd build\ncmake ../libssh-*/ -DOPENSSL_ROOT_DIR=/opt/vagrant/embedded/\nmake\nsudo cp lib/libssh* /opt/vagrant/embedded/lib64\ncd\n\nvagrant plugin install vagrant-libvirt && rm -rf krb5 libssh\nsudo usermod -a -G libvirt $USER\n

Next, log out from all of your sessions (graphical and text) and log in again. From now on you should be able to run Vagrant boxes with libvirt if all requirements have been satisfied, e.g. you don't have any other providers enabled (an equivalent of deploying this guide on a clean installation).

"},{"location":"HowTo/vagrant-with-libvirt/#additional-resources","title":"Additional resources","text":"
  • The plugin's repository
  • Websites of provider-related projects: KVM, libvirt, QEMU, Virt-Manager
"},{"location":"HowTo/virtualbox/","title":"VirtualBox","text":"

How to set up your VirtualBox installation.

"},{"location":"HowTo/virtualbox/#introduction","title":"Introduction","text":""},{"location":"HowTo/virtualbox/#use-cases","title":"Use cases","text":"

Consider the following examples:

  • You use software that doesn't work on your EuroLinux 8 installation.
  • You want to try out some potentially dangerous actions and don't want to endanger your machine.
  • You develop some awesome software and want to test it on several systems for compatibility
  • You want an easily reproducible environment that works the same way on every person's machine
  • You need a multi-machine laboratory, maybe with several different systems and don't have the resources for a physical equipment
"},{"location":"HowTo/virtualbox/#why-use-it-over-other-virtualisation-providers","title":"Why use it over other virtualisation providers?","text":"

VirtualBox is the provider with a copyleft license and a focus on interoperability when it comes to supporting different platforms. This allows you to cooperate with someone running a different operating system and when exchanging documentation - once written it's applicable to anyone that can run the software. New VirtualBox versions usually support older operating systems too. One can enjoy the new features on a system, which has recently reached its End of Life, which can be indispensable for a company that can't migrate yet.

"},{"location":"HowTo/virtualbox/#system-requirements","title":"System requirements","text":"

A brief documentation is available at Upstream's.

Your machine shall support hardware virtualisation. If it doesn't, you either need to perform additional troubleshooting - e.g. enable virtualisation in your machine's BIOS settings.

[ $(grep -cE 'vmx|svm' /proc/cpuinfo) -gt 0 ] && echo \"OK\"\n

Make sure you're running EuroLinux 8 on x86_64 architecture rather than ARM.

[ \"$(arch)\" == \"x86_64\" ] && echo \"OK\"\n
"},{"location":"HowTo/virtualbox/#installation-on-eurolinux-8","title":"Installation on EuroLinux 8","text":"

As of today (2 September 2021), 6.1 is the main VirtualBox branch and this is the one we install in this guide. Assuming your account has been made an administrator during the system installation process, simply run these commands for an installation:

sudo dnf groupinstall \"Development Tools\" -y\nsudo dnf config-manager \\\n  --add-repo=https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo\nsudo dnf install VirtualBox-6.1 -y\n

VirtualBox should be ready to use!

"},{"location":"HowTo/virtualbox/#usb-devices","title":"USB devices","text":"

If you want VirtualBox to support USB devices for your system account, run this command as well:

sudo usermod -a -G vboxusers $USER\n

then log out of your graphical session and log in again.

"},{"location":"HowTo/virtualbox/#extension-pack","title":"Extension Pack","text":"

VirtualBox doesn't support certain technologies out-of-the-box, e.g. USB 2.0/3.0 or builtin disk encryption, among others. If you want them to be supported, you will need VirtualBox Extension Pack. Make sure you have read its license and understand its implications - you're responsible for compliance. You may want to read Upstream's FAQ for a quick start.

Once you're sure you'll be able to comply with the licensing terms, run these commands to install the Extension Pack:

export vbox_version=\"$(VBoxManage --version | cut -d'r' -f 1)\"\nwget \"https://download.virtualbox.org/virtualbox/$vbox_version/Oracle_VM_VirtualBox_Extension_Pack-$vbox_version.vbox-extpack\"\nyes | sudo VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-$vbox_version.vbox-extpack\n
"},{"location":"HowTo/virtualbox/#troubleshooting","title":"Troubleshooting","text":""},{"location":"HowTo/virtualbox/#i-cant-enable-hardware-virtualisation-and-prefer-software-emulation","title":"I can't enable hardware virtualisation and prefer software emulation","text":"

As Upstream says, for software mode you'll need VirtualBox branch 6.0 or older.

Please also use version 6.0 if you need to run VMs with software virtualization, as this has been discontinued in 6.1.

"},{"location":"HowTo/virtualbox/#additional-resources","title":"Additional resources","text":""},{"location":"HowTo/virtualbox/#upstreams-release-pages","title":"Upstream's release pages","text":"

If you prefer a manual download, check out Upstream's Linux release pages and use the one they provide for RHEL 8.

"},{"location":"HowTo/virtualbox/#rpm-fusion","title":"RPM Fusion","text":"

Alternatively you can use RPM Fusion repository for installation. The software might differ in branding a bit and only the latest release is provided. Use these commands:

sudo dnf localinstall \\\n  https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y\nsudo dnf localinstall --nogpgcheck \\\n  https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm -y\nsudo dnf install VirtualBox -y\nsudo akmods --kernels $(uname -r) && sudo systemctl restart vboxdrv.service\n
"},{"location":"HowTo/z-documentation-markdown/","title":"Quick markdown and extensions guide","text":"

The first part of this guide is loosely based on Adam Pritchard markdown-here cheatsheet. We include it here for contributors as reference and show how different pieces will be styled. If you are familiar with markdown, and want to skip to this project specific extensions they start with Admonition:

"},{"location":"HowTo/z-documentation-markdown/#headers","title":"Headers","text":"

Headers are created with #.

# H1 This is is reserved for page title/name\n## H2 [Contribution guide] is h2\n### H3 [Headers] is h3\n...\n###### H6\n

"},{"location":"HowTo/z-documentation-markdown/#this-is-fourth-header","title":"This is fourth header","text":""},{"location":"HowTo/z-documentation-markdown/#this-is-fifth-header","title":"This is fifth header","text":""},{"location":"HowTo/z-documentation-markdown/#this-is-sixth-header","title":"This is sixth header","text":"

Headers are essentials, because table of content is based on them.

"},{"location":"HowTo/z-documentation-markdown/#emphasis","title":"Emphasis","text":"

Emphasis, aka italics, with *asterisks* or _underscores_. \n\nStrong emphasis, aka bold, with **asterisks** or __underscores__.\n\nCombined emphasis with **asterisks and _underscores_**.\n\nStrikethrough uses two tildes. ~~Scratch this.~~\n
Emphasis, aka italics, with asterisks or underscores.

Strong emphasis, aka bold, with asterisks or underscores.

Combined emphasis with asterisks and underscores.

Strikethrough uses two tildes. ~~Scratch this.~~

"},{"location":"HowTo/z-documentation-markdown/#list","title":"List","text":"

Proper markdown required

MK-Docs has proper markdown list ordering that is 1 to 1 with markdown standard.

See: Python Markdown Issue 3

TLDR: You have indent sub-list and paragraps with 4 spaces

(In this example, leading and trailing spaces are shown with with dots: \u22c5)

1. First ordered list item\n2. Another item\n\u22c5\u22c5\u22c5\u22c5* Unordered sub-list. \n1. Actual numbers don't matter, just that it's a number\n\u22c5\u22c5\u22c5\u22c51. Ordered sub-list\n4. And another item.\n\n\u22c5\u22c5\u22c5\u22c5To create paragraph within list item you need newline and four leading spaces. To have a line\u22c5\u22c5\n\u22c5\u22c5\u22c5\u22c5break without a paragraph, you will need to use two trailing spaces.\n\n!!! info Python markdown quirk\n    Python-Markdown won't reset list without paragraph. Even if list types are\n    not compatybile (ordered vs unordered)\n\n* Unordered list can use asterisks\n- Or minuses\n+ Or pluses\n

  1. First ordered list item
  2. Another item
    • Unordered sub-list.
  3. Actual numbers don't matter, just that it's a number
    1. Ordered sub-list
  4. And another item.

    To create paragraph within list item you need newline and four leading spaces. To have a line break without a paragraph, you use two trailing spaces.

Python markdown quirk

Python-Markdown won't reset list without paragraph. Even if list types are not compatybile (ordered vs unordered)

  • Unordered list can use asterisks
  • Or minuses
  • Or pluses
"},{"location":"HowTo/z-documentation-markdown/#code-blocks","title":"Code blocks","text":"

To add code block use (without leading space)

 ```python\n # nice\n for i in range(69, 420):\n   print(i)\n ```\n

Example:

# nice\nfor i in range(69, 420):\n  print(i)\n

"},{"location":"HowTo/z-documentation-markdown/#admonition","title":"Admonition","text":"

Info

This is admontion extension for markdown. It support things like (info,todo), (warning,caution,attention), (danger,error) and more.

Code in markdown:

!!! info\n    This is admontion extension for markdown. It support things like\n    (info,todo), (warning,caution,attention), (danger,error) and more.\n

For more information check documentation

Check mkdocs-material docs

Code in markdown:

!!! warning \"For more information check documentation\"\n    Check [mkdocs-material docs](https://squidfunk.github.io/mkdocs-material/reference/admonitions/)\n

"},{"location":"HowTo/z-documentation-markdown/#keyboard-keys","title":"Keyboard Keys","text":"

Sometimes you might add keys combinations. For example:

To use second TY terminal use following key combination Ctrl+Alt+F2

To make them visible in nice way you should use following syntax:

To use second TY terminal use following key combination ++ctrl+alt+f2++\n

"},{"location":"jumpstarts/8-jumpstart/","title":"EuroLinux 8 Jump Start","text":"

This document contains the necessary information to set up your first EuroLinux 8 installation.

"},{"location":"jumpstarts/8-jumpstart/#system-requirements","title":"System Requirements","text":""},{"location":"jumpstarts/8-jumpstart/#x86_64-64-bit-amdintel-architecture","title":"x86_64 (64 bit AMD/Intel architecture)","text":"

Minimal and recommended requirements are following:

Resource Absolute minimal requirements for cloud deployment Minimal Recommended Logical CPU 1 1 1 RAM 768MB or 512MB with swap space 1 GB 1.5 GB per logical CPU Storage 5 GB (excluding swap) 10GB 20GB

Logical CPU means Physical CPU (including Hyper-Threading) or vCPU (virtual CPU).

Warning

It might be impossible to install EuroLinux on a system that does not meet recommended requirements.

"},{"location":"jumpstarts/8-jumpstart/#aarch64-64-bit-arm-architecture","title":"aarch64 (64 bit ARM architecture)","text":"

Minimal and recommended requirements are following:

Resource Absolute minimal requirements for cloud deployment Minimal Recommended Logical CPU 1 1 1 RAM 1 GB or 512MB with swap space 2 GB 2 GB per logical CPU Storage 5GB 10GB 20GB"},{"location":"jumpstarts/8-jumpstart/#about-absolute-minimums-for-cloud-deployment","title":"About absolute minimums for cloud deployment","text":"

During our internal testing, we were able to boot and use very basic and already installed services on Virtual Machine with only 256 MB of RAM. However, without additional memory or at least swap space available, things like updating the system will result in actions of Kernel Out of Memory (OOM) Killer.

You can try it yourself with EuroLinux Vagrant boxes and following Vagrantfile:

Vagrant.configure(\"2\") do |config|\n  config.vm.box = \"eurolinux-vagrant/eurolinux-8\"\n\n  # Explicitly disable vbguest because we are using rsync\n  if Vagrant.has_plugin?(\"vagrant-vbguest\")\n      config.vbguest.auto_update = false\n  end\n\n  config.vm.provider \"virtualbox\" do |vb|\n    vb.memory = \"256\"\n    vb.cpus = 1\n  end\n  config.vm.provider \"libvirt\" do |vb|\n    vb.memory = \"256\"\n    vb.cpus = 1\n  end\nend\n

It's also possible to install EuroLinux on less than 5 GB of space, but it also requires extra attention.

All absolute minimums for cloud deployments described above are not officially supported by EuroLinux.

"},{"location":"jumpstarts/8-jumpstart/#secure-boot","title":"Secure boot","text":"

At the moment, EuroLinux does not support secure boot. The full secure boot support is planned at the end of Q1/beginning of Q2 2022.

"},{"location":"jumpstarts/8-jumpstart/#how-to-install-eurolinux-8-from-iso","title":"How to install EuroLinux 8 from ISO","text":""},{"location":"jumpstarts/8-jumpstart/#where-can-you-obtain-iso","title":"Where can you obtain ISO?","text":"

We distribute EuroLinux in a responsible open core model. Because of that, you might download EuroLinux from different sources. The two primary sources are:

  • https://fbi.cdn.euro-linux.com/isos/ open for everyone
  • https://customerportal.euro-linux.com for EuroLinux customers

The only difference is that Customer Portal keeps older versions, when CDN, that is used for mirroring, keeps only two of the latest ISOs for each version to save space (single EuroLinux AppStream ISO might take up to 10 GB).

If you are running a huge deployment, you might consider setting up your own mirror and download ISOs from Intranet.

"},{"location":"jumpstarts/8-jumpstart/#how-to-check-iso-integrity","title":"How to check ISO integrity","text":"

During download, many things can happen - from a network or sending host failure to single-bit error. To check if ISO is undamaged, there are two mechanisms in place.

  • For each EuroLinux ISO there's a file with its checksums and appropriate digest algorithms. Its name says, which algorithm was used to calculate the cryptographic digest. For example, you can browse https://fbi.cdn.euro-linux.com/isos/ and read the sha1sums.txt file.

When the ISO download is completed, you can invoke the sha1sum command on the ISO file and check if checksums match.

[Alex@SpaceShipEL8 Downloads]$ sha1sum EL-8.3-x86_64-20210624-appstream.iso \n6a8abaaebe288553ec8568bd9de3f5fda5f1ddb5  EL-8.3-x86_64-20210624-appstream.iso\n
  • The second mechanism for checking ISO integrity is built-in inside the installer itself. When you start the installation, use the Test this media & install EuroLinux 8 entry:

After booting up, the ISO checking process will start.

"},{"location":"jumpstarts/8-jumpstart/#installation-with-gui","title":"Installation with GUI","text":"

Because even a minimal installation uses a GUI the whole process is simple and straightforward. EuroLinux 8, as well as previous versions, uses Anaconda installer that clearly informs the user what needs to be done in order to install the system.

First, you have to choose the language that will be used during installation:

After configuring the installer language you should see a menu similar to:

"},{"location":"jumpstarts/8-jumpstart/#anaconda-installer-localization-section","title":"Anaconda installer LOCALIZATION section:","text":"
  • Keyboard - this section allows you to setup keyboard layouts, including the default keyboard layout, additional layouts and key combination to switch between them.
  • Language support - additional languages packages that should be installed.
  • Time & Date - configure the date, time zone, enable NTP and NTP servers.
"},{"location":"jumpstarts/8-jumpstart/#anaconda-installer-software-section","title":"Anaconda installer SOFTWARE section:","text":""},{"location":"jumpstarts/8-jumpstart/#configuring-source-of-the-installation","title":"Configuring source of the installation","text":"

Here you might configure the source of your installation. By default, the system installs from the ISO image itself. This is one of the officially supported ways to install EuroLinux.

If you enable a NIC (Network Interface Card) in the Network installer section, you might add additional EuroLinux repositories and/or other repositories. If you add EuroLinux repositories, the installer will automatically download newer version of the packages.

'certify-' prefix

Since EuroLinux 8.6 the 'certify-' prefixes in repo URLs and names are no longer used. These names and URLs were used before we started distributing our system in the open core model. These URLs are and will be kept as the symbolic link for backward compatibility. They can be used in some older parts of the documentation.

EuroLinux 8 repositories:

  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/BaseOS/os Name: BaseOSProd
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/AppStream/os Name: AppStreamProd
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/PowerTools/os Name: PowerToolsProd

For EuroLinux 8 beta:

  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/beta-BaseOS/os Name: BaseOSBeta
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/beta-AppStream/os Name: AppStreamBeta
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/beta-PowerTools/os Name: PowerToolsBeta

Limited support.

Hybrid network installation from both ISO and public repositories is not our primary goal in the QA process. Packages in EuroLinux repositories are regularly updated, and it might be impossible to install a system from an external source. Depending on the state of the upstream, we might not fix a potential issue.

Below you can see an example configuration that was used to install a system:

After changing the installation source, you will have to confirm Software Selection.

"},{"location":"jumpstarts/8-jumpstart/#software-selection","title":"Software Selection","text":"

Software Selection allows you to customize which packages will be installed. You might choose from base environment groups like Server with GUI, Workstation or Minimal. You can also install additional package groups.

"},{"location":"jumpstarts/8-jumpstart/#anaconda-installer-system-section","title":"Anaconda installer SYSTEM section:","text":"
  • Installation selection allows choosing on which disk the system will be installed. If you want to have a fully encrypted system, you should enable encryption in this step.
  • KDUMP allows choosing if KDUMP (Kernel crash dump collection mechanism) should be enabled.
  • Network & Hostname - you can configure your system networking here
  • Security policy - you can setup an additional openscap policy here
"},{"location":"jumpstarts/8-jumpstart/#anaconda-installer-user-settings-section","title":"Anaconda installer USER SETTINGS section:","text":"
  • Root Password - by default, the root user is disabled. If a user is created in User Creation section, the root account can stay disabled
  • User Creation section allows creating a regular user in the system. If the Make this user administrator option is checked, the root account can be disabled.

After applying all the necessary changes, the installation can be started with the \"Begin Installation\" button.

"},{"location":"jumpstarts/8-jumpstart/#disk-partition-recommended-minimums","title":"Disk partition recommended minimums","text":"

You need at least the following partitions.

  • /boot for Linux kernel and init ramdisks - 1GB
  • / (root partition) - at least 10 GB (a very minimal system might use as little as 2GB - but it requires extra attention and is not officially supported by EuroLinux)

For UEFI, an EFI system partition is also required.

  • /boot/efi - at least 100MB

If your storage allows it, the following partitions are also highly recommended:

  • swap - 1GB or more depending on the system RAM and workload. Swap is also required for hibernation. Depending on the workload of the system, it should be at least as spacious as system RAM.
  • /home - at least 1GB - but in most cases, if / can be as big as 80GB, then /home/ usually takes the rest of the free space
"},{"location":"jumpstarts/8-jumpstart/#installing-eurolinux-in-basic-graphic-mode","title":"Installing EuroLinux in basic graphic mode","text":"

Suppose there is a problem loading/running your graphics card driver (it might results in a black screen/error message or graphical artifacts). It's possible to install EuroLinux in basic graphics mode.

To do so, choose Troubleshooting on the welcome menu, and then Install EuroLinux 8 in basic graphics mode.

From this point the process is identical to a standard installation with GUI.

"},{"location":"jumpstarts/8-jumpstart/#installing-eurolinux-in-text-mode","title":"Installing EuroLinux in text mode","text":"

To install EuroLinux in text mode:

  • Boot EuroLinux ISO
  • Press Esc to stop installation options selection timeout
  • Press Tab
  • Add inst.text to the end of the kernel boot command line
  • Press Enter

Before running the installation you have to provide all the necessary information (represented as ! in selection). It's a good idea to refresh the menu with R+Enter command shortly after the installer started.

After customization you are ready to start your installation.

"},{"location":"jumpstarts/8-jumpstart/#other-possibilities","title":"Other possibilities","text":"

EuroLinux can also be installed in the following manner:

  • Automated installation with a kickstart file.
  • Installation with PXE
  • Installation via VNC

Please consult upstream documentation about these topics.

"},{"location":"jumpstarts/8-jumpstart/#using-eurolinux","title":"Using EuroLinux","text":"

From this point, you can use EuroLinux as any other RHEL\u2122 based distribution.

"},{"location":"jumpstarts/8-jumpstart/#submitting-a-request-for-change","title":"Submitting a Request for Change","text":"

We truly care. If there is something that you believe could/should be changed/improved in the EuroLinux distribution and does not break compatibility with the upstream project, then drop us the issue on GitHub! All contributors are extremely welcome.

EuroLinux Distro Bugs and RFC

"},{"location":"jumpstarts/8-jumpstart/#submitting-a-bug-report","title":"Submitting a Bug report","text":"

We decided that submitting bug reports should not involve registration into some nasty miserable software. At the very same time, we know that most open-source developers have GitHub profiles. This choice makes the decision making and work as transparent as possible. That's why we decided to use it as the primary way to submit bugs.

EuroLinux Distro Bugs and RFC

This repository allows you to stay in direct contact with EuroLinux developers.

"},{"location":"jumpstarts/8-jumpstart/#other-ways-to-submit-a-bug-report","title":"Other ways to submit a bug report","text":"
  • support AT euro-linux dot com
  • EuroLinux Support Portal (subscription required)
"},{"location":"jumpstarts/8-jumpstart/#securityconfidential-bug-report","title":"Security/confidential bug report","text":"

Please use the e-mail provided above.

"},{"location":"jumpstarts/9-beta-jumpstart/","title":"EuroLinux 9 Beta Jump Start","text":"

This document contains the necessary information to set up your first EuroLinux 9 Beta installation.

"},{"location":"jumpstarts/9-beta-jumpstart/#system-requirements","title":"System Requirements","text":""},{"location":"jumpstarts/9-beta-jumpstart/#x86_64-64-bit-amdintel-architecture","title":"x86_64 (64 bit AMD/Intel architecture)","text":"

Minimal and recommended requirements are following:

Resource Absolute minimal requirements for cloud deployment Minimal Recommended Logical CPU 1 1 1 RAM 1 GiB or 768 MiB with swap space 2 GiB 1.5 GiB per logical CPU Storage 5 GB (excluding swap) 10GB 20GB

Logical CPU means Physical CPU (including Hyper-Threading) or vCPU (virtual CPU).

Warning

It might be impossible to install EuroLinux on a system that does not meet recommended requirements.

"},{"location":"jumpstarts/9-beta-jumpstart/#about-absolute-minimums-for-cloud-deployment","title":"About absolute minimums for cloud deployment","text":"

During our internal testing, we were able to boot and use very basic and already installed services on Virtual Machine with only 340 MiB of RAM. However, without additional memory or at least swap space available, things like updating the system will result in actions of Kernel Out of Memory (OOM) Killer.

You can try it yourself with EuroLinux Vagrant boxes and the following Vagrantfile:

Vagrant.configure(\"2\") do |config|\n  config.vm.box = \"eurolinux-vagrant/eurolinux-9\"\n\n  # Explicitly disable vbguest because we are using rsync\n  if Vagrant.has_plugin?(\"vagrant-vbguest\")\n      config.vbguest.auto_update = false\n  end\n\n  config.vm.provider \"virtualbox\" do |vb|\n    vb.memory = \"340\"\n    vb.cpus = 1\n  end\n  config.vm.provider \"libvirt\" do |vb|\n    vb.memory = \"340\"\n    vb.cpus = 1\n  end\nend\n

It's also possible to install EuroLinux on less than 5 GB of space, but it also requires extra attention.

All absolute minimums for cloud deployments described above are not officially supported by EuroLinux.

"},{"location":"jumpstarts/9-beta-jumpstart/#secure-boot","title":"Secure boot","text":"

Since EuroLinux 9 Beta is a pre-release version and not ready for production use, Secure Boot support has not been implemented.

"},{"location":"jumpstarts/9-beta-jumpstart/#how-to-install-eurolinux-9-beta-from-iso","title":"How to install EuroLinux 9 Beta from ISO","text":""},{"location":"jumpstarts/9-beta-jumpstart/#where-can-you-obtain-iso","title":"Where can you obtain ISO?","text":"

We distribute EuroLinux in a responsible open core model. Because of that, you might download EuroLinux from different sources. The two primary sources are:

  • https://fbi.cdn.euro-linux.com/isos/ open for everyone
  • https://customerportal.euro-linux.com for EuroLinux customers

The only difference is that Customer Portal keeps older versions, when CDN, that is used for mirroring, keeps only two of the latest ISOs for each version to save space (single EuroLinux BaseOS ISO might take up to 8 GB).

If you are running a huge deployment, you might consider setting up your own mirror and download ISOs from Intranet.

"},{"location":"jumpstarts/9-beta-jumpstart/#how-to-check-iso-integrity","title":"How to check ISO integrity","text":"

During download, many things can happen - from a network or sending host failure to single-bit error. To check if ISO is undamaged, there are two mechanisms in place.

  • For each EuroLinux ISO there's a file with its checksums and appropriate digest algorithms. Its name says, which algorithm was used to calculate the cryptographic digest. For example, you can browse https://fbi.cdn.euro-linux.com/isos/ and read the sha1sums.txt file.

When the ISO download is completed, you can invoke the sha1sum command on the ISO file and check if checksums match.

$ sha1sum EL-9.0-x86_64-20220225-minimal.iso\n73d39d443e27414085f7107fa21dd214d28b8730  EL-9.0-x86_64-20220225-minimal.iso\n
  • The second mechanism for checking ISO integrity is built-in inside the installer itself. When you start the installation, use the Test this media & install EuroLinux 9 entry:

After booting up, the ISO checking process will start.

"},{"location":"jumpstarts/9-beta-jumpstart/#installation-with-gui","title":"Installation with GUI","text":"

Because even a minimal installation uses a GUI the whole process is simple and straightforward. EuroLinux 9, as well as previous versions, uses Anaconda installer that clearly informs the user what needs to be done in order to install the system.

First, you have to choose the language that will be used during installation: Hint: since the Anaconda installer on EuroLinux 9 activates a network connection automatically if applicable, it also determines the default language by the automatic location detection feature - in this case you can see that Polish has been automatically chosen.

Since this is a Beta release, we might need to confirm that we are aware of this fact and that this release should not be used in production.

After configuring the installer language you should see a menu similar to:

"},{"location":"jumpstarts/9-beta-jumpstart/#anaconda-installer-localization-section","title":"Anaconda installer LOCALIZATION section:","text":"
  • Keyboard - this section allows you to setup keyboard layouts, including the default keyboard layout, additional layouts and key combination to switch between them.
  • Language support - additional languages packages that should be installed.
  • Time & Date - configure the date, time zone, enable NTP and NTP servers.
"},{"location":"jumpstarts/9-beta-jumpstart/#anaconda-installer-software-section","title":"Anaconda installer SOFTWARE section:","text":""},{"location":"jumpstarts/9-beta-jumpstart/#configuring-source-of-the-installation","title":"Configuring source of the installation","text":"

Here you might configure the source of your installation. By default, the system installs from the ISO image itself. This is one of the officially supported ways to install EuroLinux.

If a NIC (Network Interface Card) has been enabled in the Network & Host Name installer section, you might add additional EuroLinux repositories and/or other repositories. If you add EuroLinux repositories, the installer will automatically download newer version of the packages.

EuroLinux 9 Beta repositories:

  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/certify-beta-BaseOS/os Name: BaseOS
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/certify-beta-AppStream/os Name: AppStream
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/certify-beta-PowerTools/os Name: PowerTools

Limited support.

Hybrid network installation from both ISO and public repositories is not our primary goal in the QA process. Packages in EuroLinux repositories are regularly updated, and it might be impossible to install a system from an external source. Depending on the state of the upstream, we might not fix a potential issue.

Below you can see an example configuration that was used to install a system - in this case the default 'Minimal' repository has been provided as the only one:

After changing the installation source, you will have to confirm Software Selection.

"},{"location":"jumpstarts/9-beta-jumpstart/#software-selection","title":"Software Selection","text":"

Software Selection allows you to customize which packages will be installed. You might choose from base environment groups like Server with GUI, Workstation or Minimal Install - since we are demonstrating with the minimal ISO image, only the last option is available. You can also install additional package groups.

"},{"location":"jumpstarts/9-beta-jumpstart/#anaconda-installer-system-section","title":"Anaconda installer SYSTEM section:","text":"
  • Installation selection allows choosing on which disk the system will be installed. If you want to have a fully encrypted system, you should enable encryption in this step.
  • KDUMP allows choosing if KDUMP (Kernel crash dump collection mechanism) should be enabled.
  • Network & Host Name - you can configure your system networking here
  • Security Profile - you can setup an additional openscap policy here
"},{"location":"jumpstarts/9-beta-jumpstart/#anaconda-installer-user-settings-section","title":"Anaconda installer USER SETTINGS section:","text":"
  • Root Password - by default, the root user is disabled. If a user is created in User Creation section, the root account can stay disabled
  • User Creation section allows creating a regular user in the system. If the Make this user administrator option is checked, the root account can be disabled.

After applying all the necessary changes, the installation can be started with the \"Begin Installation\" button.

"},{"location":"jumpstarts/9-beta-jumpstart/#disk-partition-recommended-minimums","title":"Disk partition recommended minimums","text":"

You need at least the following partitions.

  • /boot for Linux kernel and init ramdisks - 1GB
  • / (root partition) - at least 10 GB (a very minimal system might use as little as 2GB - but it requires extra attention and is not officially supported by EuroLinux)

For UEFI, an EFI system partition is also required.

  • /boot/efi - at least 100MB

If your storage allows it, the following partitions are also highly recommended:

  • swap - 1GB or more depending on the system RAM and workload. Swap is also required for hibernation. Depending on the workload of the system, it should be at least as spacious as system RAM.
  • /home - at least 1GB - but in most cases, if / can be as big as 80GB, then /home/ usually takes the rest of the free space
"},{"location":"jumpstarts/9-beta-jumpstart/#installing-eurolinux-in-basic-graphic-mode","title":"Installing EuroLinux in basic graphic mode","text":"

Suppose there is a problem loading/running your graphics card driver (it might results in a black screen/error message or graphical artifacts). It's possible to install EuroLinux in basic graphics mode.

To do so, choose Troubleshooting on the welcome menu, and then Install EuroLinux 9 in basic graphics mode.

From this point the process is identical to a standard installation with GUI.

"},{"location":"jumpstarts/9-beta-jumpstart/#installing-eurolinux-in-text-mode","title":"Installing EuroLinux in text mode","text":"

To install EuroLinux in text mode:

  • Boot EuroLinux ISO
  • Press Esc to stop installation options selection timeout
  • Press Tab
  • Add inst.text to the end of the kernel boot command line
  • Press Enter

Since the Anaconda installer on EuroLinux 9 activates a network connection automatically if applicable, it also determines that we can start VNC or use text mode entirely. Since we are demonstrating the text mode installation, we choose the latter option.

Before running the installation you have to provide all the necessary information (represented as ! in selection). It's a good idea to refresh the menu with R+Enter command shortly after the installer started.

After customization you are ready to start your installation.

"},{"location":"jumpstarts/9-beta-jumpstart/#other-possibilities","title":"Other possibilities","text":"

EuroLinux can also be installed in the following manner:

  • Automated installation with a kickstart file.
  • Installation with PXE
  • Installation via VNC (as mentioned above)

Please consult upstream documentation about these topics.

"},{"location":"jumpstarts/9-beta-jumpstart/#using-eurolinux","title":"Using EuroLinux","text":"

From this point, you can use EuroLinux as any other RHEL\u2122 based distribution.

"},{"location":"jumpstarts/9-beta-jumpstart/#submitting-a-request-for-change","title":"Submitting a Request for Change","text":"

We truly care. If there is something that you believe could/should be changed/improved in the EuroLinux distribution and does not break compatibility with the upstream project, then drop us the issue on GitHub! All contributors are extremely welcome.

EuroLinux Distro Bugs and RFC

"},{"location":"jumpstarts/9-beta-jumpstart/#submitting-a-bug-report","title":"Submitting a Bug report","text":"

We decided that submitting bug reports should not involve registration into some nasty miserable software. At the very same time, we know that most open-source developers have GitHub profiles. This choice makes the decision making and work as transparent as possible. That's why we decided to use it as the primary way to submit bugs.

EuroLinux Distro Bugs and RFC

This repository allows you to stay in direct contact with EuroLinux developers.

"},{"location":"jumpstarts/9-beta-jumpstart/#other-ways-to-submit-a-bug-report","title":"Other ways to submit a bug report","text":"
  • support AT euro-linux dot com
  • EuroLinux Support Portal (subscription required)
"},{"location":"jumpstarts/9-beta-jumpstart/#securityconfidential-bug-report","title":"Security/confidential bug report","text":"

Please use the e-mail provided above.

"},{"location":"jumpstarts/9-jumpstart/","title":"EuroLinux 9 Jump Start","text":"

This document contains the necessary information to set up your first EuroLinux 9 installation.

"},{"location":"jumpstarts/9-jumpstart/#system-requirements","title":"System Requirements","text":""},{"location":"jumpstarts/9-jumpstart/#x86_64-64-bit-amdintel-architecture","title":"x86_64 (64 bit AMD/Intel architecture)","text":"

Minimal and recommended requirements are following:

Resource Absolute minimal requirements for cloud deployment Minimal Recommended Logical CPU 1 1 1 RAM 1 GiB or 768 MiB with swap space 2 GiB 1.5 GiB per logical CPU Storage 5 GB (excluding swap) 10GB 20GB

Logical CPU means Physical CPU (including Hyper-Threading) or vCPU (virtual CPU).

Warning

It might be impossible to install EuroLinux on a system that does not meet recommended requirements.

"},{"location":"jumpstarts/9-jumpstart/#about-absolute-minimums-for-cloud-deployment","title":"About absolute minimums for cloud deployment","text":"

During our internal testing, we were able to boot and use very basic and already installed services on Virtual Machine with only 340 MiB of RAM. However, without additional memory or at least swap space available, things like updating the system will result in actions of Kernel Out of Memory (OOM) Killer.

You can try it yourself with EuroLinux Vagrant boxes and the following Vagrantfile:

Vagrant.configure(\"2\") do |config|\n  config.vm.box = \"eurolinux-vagrant/eurolinux-9\"\n\n  # Explicitly disable vbguest because we are using rsync\n  if Vagrant.has_plugin?(\"vagrant-vbguest\")\n      config.vbguest.auto_update = false\n  end\n\n  config.vm.provider \"virtualbox\" do |vb|\n    vb.memory = \"340\"\n    vb.cpus = 1\n  end\n  config.vm.provider \"libvirt\" do |vb|\n    vb.memory = \"340\"\n    vb.cpus = 1\n  end\nend\n

It's also possible to install EuroLinux on less than 5 GB of space, but it also requires extra attention.

All absolute minimums for cloud deployments described above are not officially supported by EuroLinux.

"},{"location":"jumpstarts/9-jumpstart/#how-to-install-eurolinux-9-from-iso","title":"How to install EuroLinux 9 from ISO","text":""},{"location":"jumpstarts/9-jumpstart/#where-can-you-obtain-iso","title":"Where can you obtain ISO?","text":"

We distribute EuroLinux in a responsible open core model. Because of that, you might download EuroLinux from different sources. The two primary sources are:

  • https://fbi.cdn.euro-linux.com/isos/ open for everyone
  • https://customerportal.euro-linux.com for EuroLinux customers

The only difference is that Customer Portal keeps older versions, when CDN, that is used for mirroring, keeps only two of the latest ISOs for each version to save space (single EuroLinux BaseOS ISO might take up to 8 GB).

If you are running a huge deployment, you might consider setting up your own mirror and download ISOs from Intranet.

"},{"location":"jumpstarts/9-jumpstart/#how-to-check-iso-integrity","title":"How to check ISO integrity","text":"

During download, many things can happen - from a network or sending host failure to single-bit error. To check if ISO is undamaged, there are two mechanisms in place.

  • For each EuroLinux ISO there's a file with its checksums and appropriate digest algorithms. Its name says, which algorithm was used to calculate the cryptographic digest. For example, you can browse https://fbi.cdn.euro-linux.com/isos/ and read the sha1sums.txt file.

When the ISO download is completed, you can invoke the sha1sum command on the ISO file and check if checksums match.

$ sha1sum EL-9.0-x86_64-20220613-appstream.iso \nd78eebb3472ddff2dcaf110907e42ccee0367f70  EL-9.0-x86_64-20220613-appstream.iso\n
  • The second mechanism for checking ISO integrity is built-in inside the installer itself. When you start the installation, use the Test this media & install EuroLinux 9 entry:

After booting up, the ISO checking process will start.

"},{"location":"jumpstarts/9-jumpstart/#installation-with-gui","title":"Installation with GUI","text":"

Because even a minimal installation uses a GUI the whole process is simple and straightforward. EuroLinux 9, as well as previous versions, uses Anaconda installer that clearly informs the user what needs to be done in order to install the system.

First, you have to choose the language that will be used during installation: Hint: since the Anaconda installer on EuroLinux 9 activates a network connection automatically if applicable, it also determines the default language by the automatic location detection feature - in this case you can see that Polish has been automatically chosen.

After configuring the installer language you should see a menu similar to:

"},{"location":"jumpstarts/9-jumpstart/#anaconda-installer-localization-section","title":"Anaconda installer LOCALIZATION section:","text":"
  • Keyboard - this section allows you to setup keyboard layouts, including the default keyboard layout, additional layouts and key combination to switch between them.
  • Language support - additional languages packages that should be installed.
  • Time & Date - configure the date, time zone, enable NTP and NTP servers.
"},{"location":"jumpstarts/9-jumpstart/#anaconda-installer-software-section","title":"Anaconda installer SOFTWARE section:","text":""},{"location":"jumpstarts/9-jumpstart/#configuring-source-of-the-installation","title":"Configuring source of the installation","text":"

Here you might configure the source of your installation. By default, the system installs from the ISO image itself. This is one of the officially supported ways to install EuroLinux.

If a NIC (Network Interface Card) has been enabled in the Network & Host Name installer section, you might add additional EuroLinux repositories and/or other repositories. If you add EuroLinux repositories, the installer will automatically download newer version of the packages.

EuroLinux 9 repositories:

  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/BaseOS/os Name: BaseOS
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/AppStream/os Name: AppStream
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/CRB/os Name: CRB

Limited support.

Hybrid network installation from both ISO and public repositories is not our primary goal in the QA process. Packages in EuroLinux repositories are regularly updated, and it might be impossible to install a system from an external source. Depending on the state of the upstream, we might not fix a potential issue.

Below you can see an example configuration that was used to install a system - in this case the default 'Minimal' repository has been provided as the only one:

After changing the installation source, you will have to confirm Software Selection.

"},{"location":"jumpstarts/9-jumpstart/#software-selection","title":"Software Selection","text":"

Software Selection allows you to customize which packages will be installed. You might choose from base environment groups like Server with GUI, Workstation or Minimal Install - since we are demonstrating with the minimal ISO image, only the last option is available. You can also install additional package groups.

"},{"location":"jumpstarts/9-jumpstart/#anaconda-installer-system-section","title":"Anaconda installer SYSTEM section:","text":"
  • Installation selection allows choosing on which disk the system will be installed. If you want to have a fully encrypted system, you should enable encryption in this step.
  • KDUMP allows choosing if KDUMP (Kernel crash dump collection mechanism) should be enabled.
  • Network & Host Name - you can configure your system networking here
  • Security Profile - you can setup an additional openscap policy here
"},{"location":"jumpstarts/9-jumpstart/#anaconda-installer-user-settings-section","title":"Anaconda installer USER SETTINGS section:","text":"
  • Root Password - by default, the root user is disabled. If a user is created in User Creation section, the root account can stay disabled
  • User Creation section allows creating a regular user in the system. If the Make this user administrator option is checked, the root account can be disabled.

After applying all the necessary changes, the installation can be started with the \"Begin Installation\" button.

"},{"location":"jumpstarts/9-jumpstart/#disk-partition-recommended-minimums","title":"Disk partition recommended minimums","text":"

You need at least the following partitions.

  • /boot for Linux kernel and init ramdisks - 1GB
  • / (root partition) - at least 10 GB (a very minimal system might use as little as 2GB - but it requires extra attention and is not officially supported by EuroLinux)

For UEFI, an EFI system partition is also required.

  • /boot/efi - at least 100MB

If your storage allows it, the following partitions are also highly recommended:

  • swap - 1GB or more depending on the system RAM and workload. Swap is also required for hibernation. Depending on the workload of the system, it should be at least as spacious as system RAM.
  • /home - at least 1GB - but in most cases, if / can be as big as 80GB, then /home/ usually takes the rest of the free space
"},{"location":"jumpstarts/9-jumpstart/#installing-eurolinux-in-basic-graphic-mode","title":"Installing EuroLinux in basic graphic mode","text":"

Suppose there is a problem loading/running your graphics card driver (it might results in a black screen/error message or graphical artifacts). It's possible to install EuroLinux in basic graphics mode.

To do so, choose Troubleshooting on the welcome menu, and then Install EuroLinux 9 in basic graphics mode.

From this point the process is identical to a standard installation with GUI.

"},{"location":"jumpstarts/9-jumpstart/#installing-eurolinux-in-text-mode","title":"Installing EuroLinux in text mode","text":"

To install EuroLinux in text mode:

  • Boot EuroLinux ISO
  • Press Esc to stop installation options selection timeout
  • Press Tab
  • Add inst.text to the end of the kernel boot command line
  • Press Enter

Since the Anaconda installer on EuroLinux 9 activates a network connection automatically if applicable, it also determines that we can start VNC or use text mode entirely. Since we are demonstrating the text mode installation, we choose the latter option.

Before running the installation you have to provide all the necessary information (represented as ! in selection). It's a good idea to refresh the menu with R+Enter command shortly after the installer started.

After customization you are ready to start your installation.

"},{"location":"jumpstarts/9-jumpstart/#other-possibilities","title":"Other possibilities","text":"

EuroLinux can also be installed in the following manner:

  • Automated installation with a kickstart file.
  • Installation with PXE
  • Installation via VNC (as mentioned above)

Please consult upstream documentation about these topics.

"},{"location":"jumpstarts/9-jumpstart/#using-eurolinux","title":"Using EuroLinux","text":"

From this point, you can use EuroLinux as any other RHEL\u2122 based distribution.

"},{"location":"jumpstarts/9-jumpstart/#submitting-a-request-for-change","title":"Submitting a Request for Change","text":"

We truly care. If there is something that you believe could/should be changed/improved in the EuroLinux distribution and does not break compatibility with the upstream project, then drop us the issue on GitHub! All contributors are extremely welcome.

EuroLinux Distro Bugs and RFC

"},{"location":"jumpstarts/9-jumpstart/#submitting-a-bug-report","title":"Submitting a Bug report","text":"

We decided that submitting bug reports should not involve registration into some nasty miserable software. At the very same time, we know that most open-source developers have GitHub profiles. This choice makes the decision making and work as transparent as possible. That's why we decided to use it as the primary way to submit bugs.

EuroLinux Distro Bugs and RFC

This repository allows you to stay in direct contact with EuroLinux developers.

"},{"location":"jumpstarts/9-jumpstart/#other-ways-to-submit-a-bug-report","title":"Other ways to submit a bug report","text":"
  • support AT euro-linux dot com
  • EuroLinux Support Portal (subscription required)
"},{"location":"jumpstarts/9-jumpstart/#securityconfidential-bug-report","title":"Security/confidential bug report","text":"

Please use the e-mail provided above.

"},{"location":"jumpstarts/cloud-jump-start/","title":"Eurolinux on clouds Jump Start","text":"

This document contains the necessary information to create Your own EuroLinux instance on cloud You prefer.

"},{"location":"jumpstarts/cloud-jump-start/#amazon-web-services-aws","title":"Amazon Web Services (AWS)","text":"

AWS was launched in 2006 and has since grown to become one of the largest cloud computing platforms in the world, with millions of customers and clients ranging from startups to enterprises.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-aws","title":"How to create EuroLinux instance on AWS","text":"
  1. Check our products on AWS Marketplace and select Your favourite.
  2. Click \"Continue to Subscribe\" and then \"Continue to Configuration\"
  3. Select version, region and click \"Continue to Launch\"
  4. Configure the instance as You prefer. Remember to select or create new key pair - it's necessary to create secure connection with instance.
  5. Click \"Launch\"
  6. To get the ip of this instance, go to the EC2 console and select \"Instances\"
  7. Click on Instance ID of the newly created instance and copy ip address
  8. You can log into instance using the ssh comand with -i key-file.pem option
"},{"location":"jumpstarts/cloud-jump-start/#microsoft-azure","title":"Microsoft Azure","text":"

With its strong focus on security and compliance, Azure has become a popular choice for organizations in regulated industries such as healthcare and finance, as well as for government agencies.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-microsoft-azure","title":"How to create EuroLinux instance on Microsoft Azure","text":"
  1. On the Azure Marketplace page, click \"Get It Now\" and accept the service terms.
  2. You will be redirected to the Azure portal, where you will see a \"Create\" button after logging in.
  3. In the \"Basics\" section of the virtual machine settings menu, pay special attention to the \"Administrator account\" section, where you will choose the type of authentication and enter a username that you will use to log in to the machine.
  4. Completing the creation of a typical virtual machine requires simply filling in the required fields in the \"Basics\" section. Then move on to \"Review + create\" and click the \"Create\" button.
  5. Your virtual machine will be created along with all the resources needed for it to function properly. To connect to it, simply select it and use one of the connection options (SSH, RDP, or Bastion) offered by Azure.
"},{"location":"jumpstarts/cloud-jump-start/#google-cloud-platform-gcp","title":"Google Cloud Platform (GCP)","text":"

GCP is designed to allow developers and businesses to build, deploy, and run applications and services on Google's infrastructure.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-gcp","title":"How to create EuroLinux instance on GCP","text":"
  1. Make sure you have gcloud tool and all its components installed.
  2. Log into your GCP account via gcloud tool
  3. Choose or create a new project.
  4. Run the following command in the console:

    gcloud beta compute instances create [instance-name] --zone=[zone-name] --machine-type=[machine-type] --subnet=default --image=[image-url] --boot-disk-size=[disk-size]\n

    Where: * [instance-name] is the desired name for the virtual machine. * [zone-name] is the zone where the virtual machine will be created. * [machine-type] is the type of machine to be created. * [image-url] is the URL of the image. * [disk-size] is the size of the boot disk.

    For example to create EuroLinux 8.6 instance in a us-central1-a region, type:

    gcloud beta compute instances create eurolinux-server1 --zone=us-central1-a --machine-type=n1-standard-1 --subnet=default --image=https://www.googleapis.com/compute/v1/projects/eurolinux-cloud/global/images/eurolinux-8-6 --boot-disk-size=10GB\n

"},{"location":"jumpstarts/cloud-jump-start/#alibaba-cloud","title":"Alibaba Cloud","text":"

Alibaba Cloud, also known as Aliyun aims to provide reliable and secure cloud computing solutions for businesses and organizations around the world, with a focus on serving the Asia-Pacific market.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-alibaba-cloud","title":"How to create EuroLinux instance on Alibaba Cloud","text":"
  1. Go to Alibaba Cloud Marketplace and select your favorite EuroLinux operating system image.
  2. Review the product description and then click the \"Choose Your Plan\" button. You will now be redirected to the Aliyun console page where you will continue creating the instance.
  3. Configure the instance to meet your needs. At this point, you can also change the payment type to subscription.
  4. In the System Configurations tab, select or create a \"Key Pair\" that will allow you to access the machine.
  5. Finally, accept the terms and create the instance by clicking \"Create Instance\". After a few minutes, your instance should be ready to use.
"},{"location":"jumpstarts/cloud-jump-start/#openstack","title":"OpenStack","text":"

OpenStack provides a flexible and customizable platform that can be used for a variety of cloud computing needs, from web hosting to big data processing to scientific computing.

Important: It is a cloud-generic images.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-openstack","title":"How to create EuroLinux instance on OpenStack","text":"
  1. Download Your favourite EuroLinux image in qcow2 or raw format. For example: https://fbi.cdn.euro-linux.com/images/EL-9-cloudgeneric-2023-03-19.qcow2
  2. Login to the OpenStack dashboard.
  3. Click on the \"Create Image\" button in \"Compute\" -> \"Images\" section.
  4. Fill in the required information and upload this image to OpenStack.
  5. To Launch Your instance with image You have just created simply click \"Launch Instance\" in \"Compute\" -> \"Instances\" section and fill the required informations.
  6. Make sure You create Your own key-pair and attach it to this instance.
  7. To log into Your EuroLinux instance copy the IP address and using the ssh comand with -i key-file.pem option, login as root to newly created machine.

Important: EuroLinux 9 have the root login without-password enabled by default, which means You have to assign the key-pair to Your instance to login.

"},{"location":"jumpstarts/container-jumpstart/","title":"EuroLinux Containers JumpStart","text":""},{"location":"jumpstarts/container-jumpstart/#basics","title":"Basics","text":"

Using EuroLinux container images is easy. We provide multiple containers and their versions. The most important are base images for EuroLinux 7 (with FBI [Free Base Image] repository) and EuroLinux 8 (with complete repositories - EuroLinux 8 is freely available). All EuroLinux container images are OCI standard container images. You can download them from two primary sources:

  • Docker Hub - EuroLinux 8
  • Docker Hub - EuroLinux 7
  • Quay - EuroLinux 8
  • Quay - EuroLinux 7

EuroLinux images can be run with any OCI standardized container runtimes such as runC (Docker/Moby project) or crun (Podman/Buildah/CRI-O).

To download the image:

Docker Hub:

docker pull eurolinux/eurolinux-8\n

Quay.IO:

podman pull quay.io/eurolinux/eurolinux-8\n

To run a container that will be removed after process exit. You might use:

docker run -rm -ti eurolinux/eurolinux-8\n

Inside the container, you can check the system version

bash-4.4# cat /etc/el-release\nEuroLinux release 8.5 (Tirana)\n

To detach the container from the console, add -d flag to docker/podman run command.

docker run -rm -ti -d --name eurolinux eurolinux/eurolinux-8\n
then run:
docker exec -it eurolinux bash\n
to enter the console of a container.

"},{"location":"jumpstarts/container-jumpstart/#other-containers","title":"Other containers","text":"

As a company, we create and support multiple containers, including other Enterprise Linux distributions. For example, we provide:

  • Docker Hub - AlmaLinux
  • Docker Hub - Rocky
  • Quay - AlmaLinux
  • Quay - Rocky

Other containers that we build are:

  • Oracle Linux
  • Scientific Linux
  • CentOS and CentOS stream

You can visit our organization page on the Docker Hub to find all containers that we officially support.

"},{"location":"jumpstarts/container-jumpstart/#older-versions","title":"Older Versions","text":"

If you want to use the previous version of the EuroLinux container, you must find the desired tag. Example for EuroLinux 8:

  • Docker Hub - EuroLinux 8 - tags
  • Quay - EuroLinux - tags
"},{"location":"jumpstarts/container-jumpstart/#request-for-changecomment-and-bug-report-repository","title":"Request for Change/Comment and Bug report repository","text":"

You can request a change, leave a comment or report a bug in this EuroLinux containers RFC repository.

"},{"location":"jumpstarts/rpi/","title":"EuroLinux for Raspberry Pi Jump Start","text":""},{"location":"jumpstarts/rpi/#about-images","title":"About images","text":"

EuroLinux Raspberry images are made for Raspberry Pi 4 model B. The system is EuroLinux 9. The minimal images could work with older Raspberry Pi 3. But we won't support it even with 'best effort' as Raspberry Pi 3 does not meet the minimum hardware requirements for Enterprise Linux 9 or Enterprise Linux 8.

The basic credentials are the following:

  • user: root
  • password: raspberry

SSH Root login disabled

SSH root login is disabled by default on EuroLinux 9.

Raspberry only

The Raspberry Pi images also won't work with other ARM-64 computers as RPI images are specially tailored for this particular hardware.

"},{"location":"jumpstarts/rpi/#downloading-and-checking-the-images","title":"Downloading and checking the images","text":"

Firstly choose the image from https://fbi.cdn.euro-linux.com/images. The Raspberry Pi images have the rpi-TYPE(where TYPE can be minimal or gnome) in their names. You can download the image with wget, curl or with your browser.

It's advised to check the image integrity by comparing checksums. The SHA256 checksums can be found at https://fbi.cdn.euro-linux.com/images/sha256sum.txt

Example download and checksum comparison:

wget https://fbi.cdn.euro-linux.com/images/EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz\nsha256sum EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz\ncurl -s https://fbi.cdn.euro-linux.com/images/sha256sum.txt | grep EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz\n

"},{"location":"jumpstarts/rpi/#flashing-the-microsd-card","title":"Flashing the MicroSD card","text":"

With the image downloaded now, it's time to flash your MicroSD card. There are multiple options, you can use:

  • Raspberry Pi Imager, which requires manual compilation for the most platforms
  • Balena Etcher comes as AppImage so works with nearly every Linux distribution
  • dd program, which is the most CLI-friendly way, but is also recommended for experienced users

We recommend Balena Etcher as dd might destroy the system partition or other important data if used without proper experience.

"},{"location":"jumpstarts/rpi/#balena-etcher","title":"Balena Etcher","text":"

Balena Etcher is one of the most popular and easy-to-use programs that allow flashing the SD cards for Raspberry Pi. It can also create other bootable media like USB sticks and more. Firstly download the AppImage from the official Balena Etcher website - https://www.balena.io/etcher/ (Download for Linux x64).

Most file managers will run AppImage when chosen and clicked. To run it from the command line firstly change the permissions then run.

chmod 755 balenaEtcher-1.13.1-x64.AppImage\n./balenaEtcher-1.13.1-x64.AppImage\n

The process itself is straightforward. There is plenty of documentation/videos about the Balena Etcher, so we trust that in case of any troubles you will be able to find a solution on your own.

"},{"location":"jumpstarts/rpi/#dd","title":"dd","text":"

dd is a program that is older than Linux Kernel itself :). It is one of these little tool that makes Linux/Unix powerful. It can be used to flash the memory card by writing output to the memory card device.

Firstly insert the memory card into the slot. Then check with the dmesg device file that is corresponding.

The dmesg will inform about partition:

[ TIME] scsi 0:0:0:0: Direct-Access     Generic  Mass-Storage     1.11 PQ: 0 ANSI: 2\n[ TIME] scsi 0:0:0:0: Attached scsi generic sg0 type 0\n[ TIME] sd 0:0:0:0: [sdX] 250347520 512-byte logical blocks: (128 GB/119 GiB)\n[ TIME] sd 0:0:0:0: [sdX] Write Protect is off\n[ TIME] sd 0:0:0:0: [sdX] Mode Sense: 03 00 00 00\n[ TIME] sd 0:0:0:0: [sdX] No Caching mode page found\n[ TIME] sd 0:0:0:0: [sdX] Assuming drive cache: write through\n

Where sdX is your SD card. To write you first need to decompress the image with the xzcat command and then pipe output to the dd (writing to the device requires root privileges, that's why there is sudo).

xzcat /path/to/image/image.raw.xz | sudo dd status=progress oflag=sync bs=4k of=/dev/sdX\n

For example:

xzcat ~/Downloads/EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz | sudo dd status=progress oflag=sync bs=4k of=/dev/sda\n

"},{"location":"jumpstarts/rpi/#booting-from-usb","title":"Booting from USB.","text":"

EuroLinux 9.1 can be natively booted from USB on Raspberry Pi 4. You should flash your USB stick/disk in the same manner that you flash a micro SD card.

Early-produced RPI 4 might require firmware update.

Early-produced Raspberry Pi 4 might require a firmware update before booting the system from the USB.

"},{"location":"jumpstarts/rpi/#wifi-setup","title":"Wifi setup","text":"

Wifi adapter works out-of-box. It's trivial to configure it from a desktop (Gnome). To configure the WIFI from the console you can use the following commands.

Firstly find the SSID (WIFI name) that you want to use:

nmcli d wifi list\n

Then you can provide a password on the command line (note password will be saved in bash command history)

nmcli d wifi connect WIFI_NAME password PASSWORD\n

or if You want to be prompted for the password

nmcli d wifi connect WIFI_NAME --ask\n

Note that your RPI will automatically connect to the WIFI after reboot.

"},{"location":"jumpstarts/rpi/#disable-the-powersave-mode-on-the-raspberry-pi-wifi-card","title":"Disable the powersave mode on the Raspberry Pi WIFI card","text":"

The Raspberry Pi WIFI card by default enters powersave mode when there is not much going on. Some users reported a problem with broken SSH sessions and other closed connections due to this feature. To disable power save mode use the following command

iw wlan0 set power_save off\n

The problem with this solution is that this state won't survive system reboot. To fix that issue during startup you can add a network manager dispatcher script that will disable power_save on boot. Put the following script:

#!/usr/bin/env bash\n\ninterface=$1\nevent=$2\n\nif [[ $interface != \"wlan0\" ]] || [[ $event != \"up\" ]]\nthen\n  return 0\nfi\niw wlan0 set power_save off\n

into the /etc/NetworkManager/dispatcher.d/iw-wlan0-disable-powersave.sh, then add the execution permission

chmod +x /etc/NetworkManager/dispatcher.d/iw-wlan0-disable-powersave.sh\n
"},{"location":"jumpstarts/rpi/#enabling-the-i2c-i2c-inter-integrated-circuit","title":"Enabling the I2C (I\u00b2C - Inter-Integrated Circuit)","text":"

To enable i2c you have to add the i2c_arm with flag on as dtparam to the /boot/config.txt

dtparam=i2c_arm=on\n

The following script can be used:

echo 'dtparam=i2c_arm=on'  | sudo tee -a /boot/config.txt\n

We also recommend installing i2c-tools.

sudo dnf install -y i2c-tools\n

After this changes, you have to reboot the system to start i2c.

"},{"location":"jumpstarts/rpi/#enabling-spi-serial-peripheral-interface","title":"Enabling SPI (Serial Peripheral Interface).","text":"

To enable SPI you have to add spi with flag on as dtparam to the /boot/config.txt

dtparam=spi=on\n
The following script can be used:
echo 'dtparam=spi=on'  | sudo tee -a /boot/config.txt\n
After this changes you have to reboot the system to start SPI.

"},{"location":"jumpstarts/rpi/#feedback","title":"Feedback","text":"

If You want to leave feedback/request for change/bug report on EuroLinux Raspberry Pi images please use the https://github.com/EuroLinux/raspberry-pi-build repository.

If believe that something important from the documentation is missing don't hesitate to create issue in this documentation repository.

"},{"location":"jumpstarts/vagrant-jumpstart/","title":"Vagrant Jumpstart","text":""},{"location":"jumpstarts/vagrant-jumpstart/#introduction","title":"Introduction","text":"

Ever wanted to create a development environment that is guaranteed to work flawlessly on several developers' workstations without the It works on my machine! excuses? Well, now you can! Just get Vagrant, write your specification and share it with coworkers!

"},{"location":"jumpstarts/vagrant-jumpstart/#requirements","title":"Requirements","text":"

Vagrant will be managing the virtual machines of the backend provider of your choice. If you find out it's not listed, consider checking if there's a plugin-based implementation. Make sure you have a supported provider installed - we'll be using VirtualBox in this guide. You can use our VirtualBox installation guide as a reference.

"},{"location":"jumpstarts/vagrant-jumpstart/#installation-on-eurolinux-8","title":"Installation on EuroLinux 8","text":"

Simply run these commands and you're ready to go:

sudo dnf config-manager \\\n  --add-repo=https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo\nsudo dnf install vagrant -y\n
"},{"location":"jumpstarts/vagrant-jumpstart/#eurolinux-boxes","title":"EuroLinux Boxes","text":"

A box is a format that defines: an image of an operating system with preinstalled software, a provider for that image and its version - it's a ready-made appliance for that provider to run. This appliance works the same across people's workstations, which most likely will have differences in configuration and potentially different providers or even operating systems. That is as long as they use a provider, which the box is built for.

EuroLinux Vagrant boxes are available at: https://app.vagrantup.com/eurolinux-vagrant Let's use the box eurolinux-vagrant/eurolinux-8 as an example.

"},{"location":"jumpstarts/vagrant-jumpstart/#box-details","title":"Box details","text":"

See the details of the box - multiple providers, that the box has been built for, are listed along with the box versions and build dates. When writing your specification, you'll be able to choose from them as you wish.

"},{"location":"jumpstarts/vagrant-jumpstart/#run-the-box","title":"Run the box","text":"

Here's a basic procedure for running a Vagrant environment (a virtual machine, which uses our box) in a separate directory:

mkdir el8-vagrant\ncd el8-vagrant/\nvagrant init eurolinux-vagrant/eurolinux-8\nvagrant up\nvagrant ssh\n

You should now be connected to the machine and able to perform your desired operations inside it. Go ahead, play around, install your favourite developer tools, build an awesome, advanced, multi-component application and be sure everyone's able to deploy it on their workstations without any hassle!

"},{"location":"jumpstarts/vagrant-jumpstart/#what-about-the-specification-mentioned-earlier-vagrantfile","title":"What about the specification mentioned earlier? - Vagrantfile","text":"

Once you've ran the commands above, you'll have a Vagrantfile in the el8-vagrant directory. Take a look, what's inside. You'll be greeted with an introduction, references and lots of common options along with comments explaining them:

  # The most common configuration options are documented and commented below.\n  # For a complete reference, please see the online documentation at\n  # https://docs.vagrantup.com.\n

As you've already ran the box as explained in the previous section, you can see that there's no necessity to tweak anything inside Vagrantfile. The parameters that you can tweak, e.g. the virtual machine's memory or the amount of CPUs you should adapt to your work - e.g. if you need additional resources for developing/running your application, go ahead and increase them. Once that's done, check out if they can be reduced once you know your software resource requirements.

Depending on the task you want to achieve, whether it be a ready-made appliance or a base virtual system that gets provisioned with your application and its dependencies or something else, that's when changes to the specification must be made - e.g. the additional provisioning procedure shall be written.

As the comment quoted above says, refer to the comments the Vagrantfile provided for common options explanation. Once you know their purpose, try them out! Get comfortable with them and read Upstream's documentation for additional info, tips and more advanced, cool possibilities - such as a multi-machine infrastructure defined in a single Vagrantfile.

"},{"location":"jumpstarts/vagrant-jumpstart/#additional-resources","title":"Additional resources","text":"
  • Upstream's official website
  • Discover Vagrant Boxes - using EuroLinux as an example
  • Upstream's online documentation, worth mentioning once more
"},{"location":"jumpstarts/wsl/","title":"EuroLinux on WSL Jumpstart","text":"

This guide provides a quick overview of setting up EuroLinux on Windows Subsystem for Linux (WSL).

"},{"location":"jumpstarts/wsl/#prerequisites","title":"Prerequisites:","text":"
  • Windows 10 (Windows 10 version 1709 or newer for \"legacy\" WSL. Version 2004 or newer for WSL 2) or Windows 11
  • WSL/WSL 2 installed (we strongly recommended WSL 2 for better compatibility and performance)
  • Administrative privileges on your Windows system
"},{"location":"jumpstarts/wsl/#enabling-wsl","title":"Enabling WSL","text":"

Follow the official Microsoft documentation to enable WSL: https://learn.microsoft.com/en-us/windows/wsl/

"},{"location":"jumpstarts/wsl/#about-eurolinux-on-wsl","title":"About EuroLinux on WSL","text":"

EuroLinux company provides EuroLinux version 9 for WSL. The system is based on Red Hat Enterprise Linux 9 and is compatible with it. We used our base container image. The official repository is located https://github.com/EuroLinux/wsl it also contains the build scripts and latest documentation/releases.

"},{"location":"jumpstarts/wsl/#import-and-install-eurolinux-for-wsl","title":"Import and install EuroLinux for WSL","text":"
  • x86_64

    wget https://github.com/EuroLinux/WSL/releases/latest/download/el9-x86_64.tar -o el9-x86_64.tar\nwsl --import EuroLinux-9 \"$env:USERPROFILE/EuroLinux-9\" .\\el9-x86_64.tar --version 2\nwsl -d EuroLinux-9\n

  • aarch64

    wget https://github.com/EuroLinux/WSL/releases/latest/download/el9-aarch64.tar -o el9-aarch64.tar\nwsl --import EuroLinux-9 \"$env:USERPROFILE/EuroLinux-9\" .\\el9-aarcch64.tar --version 2\nwsl -d EuroLinux-9\n

"},{"location":"jumpstarts/wsl/#feedback","title":"Feedback","text":"

To provide feedback, request changes, or report bugs, please visit our official RFC/Bug repository at https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc. Your input is highly appreciated!

"},{"location":"knowledge-base/el6-jdk-install-failure/","title":"Unable to install java-1.7.0-openjdk on EuroLinux 6","text":""},{"location":"knowledge-base/el6-jdk-install-failure/#scenario","title":"Scenario","text":"

An attempt to install the latest version of java-1.7.0-openjdk.x86_64 as part of the EuroELS subscription fails with a message like:

Error in PRETRANS scriptlet in rpm package 1:java-1.7.0-openjdk-1.7.0.261-2.6.22.1.el6_10.x86_64\nerror: lua script failed: /usr/libexec/copy_jdk_configs.lua:272: attempt to index global 'file' (a nil value)\n
"},{"location":"knowledge-base/el6-jdk-install-failure/#solution","title":"Solution","text":"

The package java-1.7.0-openjdk.x86_64 expects that the directory /var/lib/rpm-state/ exists. Still, this might not be the case on every installation.

Please create this directory manually:

# mkdir /var/lib/rpm-state/\n
"},{"location":"knowledge-base/eurolinux-6-vault/","title":"Accessing EuroLinux 6.10 Vaulted Repositories","text":""},{"location":"knowledge-base/eurolinux-6-vault/#eurolinux-6-els-eol-2024-06-30","title":"EuroLinux 6 ELS EOL 2024-06-30","text":"

EuroLinux 6 reached its end of life on 2020-11-30; EuroLinux 6 ELS reached EOL on 2024-06-30 and is no longer supported. This means critical security updated are no longer provided, making your system highly vulnerable to security threats.

Upgrading might not always be possible due to reasons like replicating a specific production environment in development, supporting legacy systems, or strict software compatibility requirements. In such cases, while accessing the vaulted repositories is an option, be aware of the inherent security risks.

"},{"location":"knowledge-base/eurolinux-6-vault/#eurolinux-6-vault","title":"EuroLinux 6 vault","text":"

Using the following gist is a straightforward way to access the EuroLinux 6 vault:

Or manually add the following to /etc/yum.repos.d/eurolinux-6-vault-repos.repo:

[eurolinux6-base]\nname=Eurolinux 6 Base Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/6/6.10/BaseOS/x86_64/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux\n\n[eurolinux6-extras]\nname=Eurolinux 6 Updates Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/6/6.10/Extras/x86_64/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux\n

If the GPG key is not present on your system, you can add it with the following command:

curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux https://fbi.cdn.euro-linux.com/security/RPM-GPG-KEY-eurolinux\n
"},{"location":"knowledge-base/eurolinux-6-vault/#removing-subscription-packages","title":"Removing subscription packages","text":"

Previously, due to EuroLinux 6 repositories being paywalled, a subscription was required. This involved tools like rhn_register or el_register alongside the EuroMan service or a local mirror. With EuroMan's sunsetting alongside EuroLinux 6 ELS EOL, these subscription-related packages are no longer necessary (unless using custom Spacewalk/EuroMan Forman/EuroMan). You can safely remove them using the following command:

sudo yum remove -y rhn* subscription*\n
"},{"location":"knowledge-base/eurolinux-7-vault/","title":"Using EuroLinux 7 from vaulted repositories","text":""},{"location":"knowledge-base/eurolinux-7-vault/#eurolinux-7-eol-2024-06-30","title":"EuroLinux 7 EOL 2024-06-30","text":"

EuroLinux 7 reached its end of life on 2024-06-30. It means no further updates, including security updates, will be available. We strongly recommend upgrading to EuroLinux 8 or later as soon as possible. However, you may still need to use the older version for development, legacy, and compatibility reasons.

"},{"location":"knowledge-base/eurolinux-7-vault/#eurolinux-7-vault","title":"EuroLinux 7 vault","text":"

Using the following gist is a straightforward way to access the EuroLinux 7 vault:

Or manually add the following to /etc/yum.repos.d/eurolinux-7-vault-repos.repo:

[eurolinux7-base]\nname=Eurolinux 7 Base Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.9/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n\n[eurolinux7-updates]\nname=Eurolinux 7 Updates Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.9/updates/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n

The GPG key should be available in the system, but if it is not, you can add it with the following:

curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7 https://fbi.cdn.euro-linux.com/security/RPM-GPG-KEY-eurolinux7\n
"},{"location":"knowledge-base/eurolinux-7-vault/#eurolinux-78-and-77","title":"EuroLinux 7.8 and 7.7","text":"

As a bonus, you could also use even older versions of EuroLinux 7.8 and 7.7, which contain only updates up to the last minor release of the given version. Sample content of the .repo files are below:

For EuroLinux 7.8:

[eurolinux7-base]\nname=Eurolinux 7.8 Base Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.8/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n\n[eurolinux7-updates]\nname=Eurolinux 7.8 Updates Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.8/updates/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n

For EuroLinux 7.7:

[eurolinux7-base]\nname=Eurolinux 7.8 Base Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.7/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n\n[eurolinux7-updates]\nname=Eurolinux 7.8 Updates Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.7/updates/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n

"},{"location":"knowledge-base/eurolinux-7-vault/#removing-subscription-packages","title":"Removing subscription packages","text":"

Since the EuroLinux 7 repositories were behind the paywall, you used to need the subscription that used rhn_register or el_register commands and ancient EuroMan service or local mirror of the system. EuroMan was sunsetted with EuroLinux 7 EOL.

You can confidently remove the subscription-related packages (as long as you are not using custom Spacewalk/EuroMan Forman/EuroMan) with the following command:

sudo yum remove -y rhn* subscription*\n
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/","title":"Black Screen After update to EuroLinux 8.10 - EFI problem","text":""},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#background","title":"Background","text":"

We are deeply sorry to inform you that one of the packages in EuroLinux 8.10 created a severe mistake in the boot configuration. The package grub2-efi-x64 was copied from a never-released beta repository, and it was not supposed to be there in that version.

If you updated your system:

  • before May 28th, 13 CET
  • and you are using EFI

The following error might appear after booting your system.

error: file `/EFI/eurolinux/grubx64.efi` Not Found.\n

and other similar errors, like:

StartImage failed\n

Generally speaking, the system won't boot into the bootloader (GRUB). Depending on your UEFI software, you might see different error messages.

Depending on your UEFI software you might be able to boot system normally. If you can boot system you can fix the problem by reinstalling the grub2-efi-x64 package.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#when-this-problem-does-not-occur","title":"When this problem does not occur","text":"
  • If you are using a VM that does not use EFI you won't have this problem
  • If you are using legacy BIOS and the system was installed as legacy BIOS
  • Container images and other images
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#update-after-may-28th-12-cet","title":"Update after May 28th, 12 CET","text":"

If you are updating your system with a repository synced after May 28, 13 CET, you should not have this problem. The package was removed and overwritten from the repository, and the proper package was added.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#updated-but-not-rebooted-system","title":"Updated but not rebooted system","text":"

If you updated but have not rebooted the system -> please reinstall the grub2-efi-x64 package and kernel packages:

sudo yum clean all\nsudo yum reinstall -y `kernel*` `grub2*`\n
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#iso-files","title":"ISO files","text":"

The ISO files were updated, and the previous ISO was removed. The new ISO is supposed to be released today (May 28th).

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#revert-from-backupsnapshot","title":"Revert from backup/snapshot","text":"

If you can, please revert from the backup or snapshot to version 8.9. The update process now contains overwritten, updated and proper packages, and this problem will not occur.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#rescue-system-with-wrong-efi-from-a-live-cd","title":"Rescue system with wrong EFI from a live CD.","text":"
  1. Download LiveISO CD
  2. Change boot order (if necessary)
  3. Mount ISO/Create ISO on the pendrive
  4. Start system from ISO
  5. Mount the EFI partition
  6. Copy the EFI files
  7. Run system normally
  8. Reinstall kernel-core and grub2-efi-x86
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#download-liveiso-cd","title":"Download LiveISO CD","text":"

One of the smallest ISO and well-known projects is Rescatux. You can download it from: https://sourceforge.net/projects/rescatux/files/rescatux-0.74/rescatux-0.74.iso/download

You can use different ISOs, such as our Desktop Live or Ubuntu.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#change-the-boot-order-if-necessary","title":"Change the boot order (if necessary)","text":"

Changing the boot order might be necessary for both VM and Physical Machines.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#mount-isocreate-iso-on-pendrive","title":"Mount ISO/Create ISO on pendrive","text":"

Mount rescue ISO to a VM. For physical machines, create a bootable pendrive with the ISO. The process is similar to creating a bootable pendrive for installation.

After mounting or inserting the pen drive, start the rescue/live CD system.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#starting-rescuetux-or-other-livecd","title":"Starting rescuetux or other livecd","text":"

You can safely start Rescuetux or another live CD. The process is similar to getting a standard desktop. You can safely skip any questions and programs and get straight to the terminal.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#find-and-mount-the-efi-partition","title":"Find and mount the EFI partition","text":"

Finding an EFI partition is quite straightforward use one of the following commands:

sudo lsblk\n

Example efi partition output

/dev/nvme0n1p5: UUID=\"2A1E-AC26\" TYPE=\"vfat\" PARTLABEL=\"EFI System Partition\" PARTUUID=\"6b15bd77-bb2e-4393-9fbb-445625660679\"\n

or

lsblk -f\n
Example EFI partition output

vda1 vfat               776-93D0\n

After finding the EFI partition, mount it to a temporary location. In the example bellow, we are using /mnt as a temporary location, and partition is the /dev/vda1

sudo mount /dev/vda1 /mnt\n

Confirm the EFI partition is mounted correctly and contains EFI directory

cd /mnt/\nls\n

The output should contains at least an EFI directory

EFI\n
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#copy-the-efi-files","title":"Copy the EFI files","text":"
sudo cp -r /mnt/EFI/redhat/* /mnt/EFI/eurolinux/.\n
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#reboot-system","title":"Reboot system","text":"

Depending on the live CD/ISO you used, you might need to reboot the system or exit the live CD.

sudo reboot\n
in most cases, is enough. You can also shut down the system with shutdown -h now.

Before starting the EuroLinux system, remember to remove the rescue/LiveCD ISO ISO or pendrive.

The whole process is as simple as the one on the screenshot:

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#running-the-system-and-reinstalling-the-packages","title":"Running the system and reinstalling the packages","text":"

After rebooting the system you should be able to boot into the system in normall state. You can now reinstal the kernel and grub packages.

sudo yum clean all\nsudo yum reinstall -y `kernel*` `grub2*`\n

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#summary","title":"Summary","text":"

Once more, we are deeply sorry for the inconvenience. The bug skipped our testing and escaped into the public as we were changing the test structure to support new features, including Secure Boot for EuroLinux 9.

We are working on improving our testing process to avoid such mistakes in the future.

If you have any questions or need help, please contact us at support at euro-linux.com. We will dispatch an engineer for a one-on-one session to assist you.

"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/","title":"EuroLinux Linux distribution capabilities and limits","text":"

This document describes the technology capabilities and limits for EuroLinux 6, 7, 8 and 9. Some are theoretical, as they are connected with source code/projects used in the system. Minimal limits represent limits for the systems for which support is generally available by the EuroLinux company. Our dedicated solutions like:

  • system rebuilds with Gaia build stack
  • EuroLinux container images
  • EuroLinux cloud images
  • EuroLinux for edge computing
  • EuroLinux ARM 64 for IoT
  • containers running on the EuroLinux container platform or any other Kubernetes-based platform

might run and be supported on the less resources than described in this document.

The theoretical limit (connected with a version of the software used) is marked as (LIMIT), when limit supported and tested by upstream is provided as default for EuroLinux. TBA means - To Be Announced.

"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#minimum-logical-cpu","title":"Minimum logical CPU","text":"

All systems, physical or virtual, require at minimum 1 logical (physical or virtual) CPU core.

"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#maximum-logical-cpu","title":"Maximum logical CPU","text":"Architecture EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 x86_64 448 (4096) 768 (5120) 768 (8192) 1792 (8192) ARM64 X X 256 512 (4096)"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#minimum-memory","title":"Minimum memory","text":"

These requirements are only for systems supported as VMs or Physical hosts. In most cases, it's possible to run a system without complications on less memory. The minimum requirements have been provided below because it might not be possible to support systems with less memory.

Architecture EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 x86_64 Minimum 1 GiB, 1 GiB per logical core is recommended Minimum 1 GiB, 1 GiB per logical core is recommended Minimum 1 GiB, 1.5 GiB per logical core is recommended Minimum 1.5 GiB, 1.5 GiB per logical core is recommended ARM64 X X 2GiB 2GiB"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#maximum-memory","title":"Maximum memory","text":"Architecture EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 x86_64 12TB (64TB) 12TB (64TB) 24TB (64TB) 48TB (64TB) ARM64 X X 1.5TB (256TB) 1.5TB (256TB)"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#minimum-required-disk-space","title":"Minimum required disk space","text":"EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 1Gib Minimum, 5GiB recommended 5 GiB Minimum, 20 GiB recommended 10 GiB Minimum, 20 GiB recommended 10 GiB Minimum, 20 GiB recommended"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#file-systems-and-storage-limits","title":"File systems and storage limits","text":"

All filesystems in this document support ACL (Access Control List).

"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#ext3","title":"Ext3","text":"

Ext3 is mostly a legacy filesystem. Please use Ext4 or XFS.

Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Maximum File Size 2TiB 2TiB 2TiB 2TiB Maximum Filesystem Size 16TiB 16TiB 16TiB 16TiB Maximum Subdirectories or files in directory 32000 32000 32000 32000 Maximum symlink depth 8 8 8 8"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#ext4","title":"Ext4","text":"

Ext4 is the default filesystem for EuroLinux 6.

Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Maximum File Size 16TiB 16TiB 16TiB 16TiB Maximum Filesystem Size 1EiB 1EiB 1EiB 1EiB Maximum Subdirectories or files in directory 65000/unlimited with dir_nlink option 65000/unlimited with dir_nlink option 65000/unlimited with dir_nlink option 65000/unlimited with dir_nlink option Maximum symlink depth 8 8 8 8"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#xfs","title":"XFS","text":"

XFS is the default filesystem for in EuroLinux 7, 8 and 9.

Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Maximum File Size 8EiB 8EiB 8EiB 8EiB Maximum Filesystem Size 16EiB 16EiB 1PiB 1PiB Maximum Subdirectories or files in directory unlimited unlimited unlimited unlimited Maximum symlink depth 8 8 8 8"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#gfs2","title":"GFS2","text":"

Global Filesystem 2 is part of EuroLinux Resilient Storage and High Availability add-ons that are freely available with subscription or free available in the Open Core model.

Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Maximum File Size 8EiB 8EiB 8EiB 8EiB Maximum Filesystem Size 8EiB 8EiB 8EiB 8EiB Maximum Subdirectories or files in directory unlimited unlimited unlimited unlimited Maximum symlink depth unlimited unlimited unlimited unlimited"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#kernel-and-the-most-important-components-versions","title":"Kernel and the most important components versions","text":"Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Base Linux Kernel version 2.6.34 3.10 4.18 5.14 Package Management RPM/Yum RPM/Yum RPM/Dnf, Flatpak RPM/Dnf, Flatpak System Init Upstart systemd systemd systemd Base GNU C Library (glibc) Version 2.12 2.17 2.28 2.34 Base (First) GCC version 4.4.7 4.8.5 8.2.1 (updated in newer versions) 11.2.1 (might be updated in the future) Base (First) LLVM version X X 7.0.1 (updated in newer versions) 13.0.0 (might be updated in the future) Default Desktop Gnome 2 Gnome 3 Gnome 3 Gnome 40 Office Suite LibreOffice LibreOffice LibreOffice LibreOffice Default Web Browser Firefox Firefox Firefox Firefox Default Mail Client Thunderbird Evolution or Thunderbird Evolution or Thunderbird Evolution or Thunderbird"},{"location":"knowledge-base/eurolinux-vault-policy/","title":"EuroLinux Vault and Archiving Policy","text":""},{"location":"knowledge-base/eurolinux-vault-policy/#vault-vaultcdneuro-linuxcom","title":"Vault - vault.cdn.euro-linux.com","text":"

The idea of the vault is simple - it stores older or archived versions of the software packages (mostly RPMs) and allow to create and maintain the environment that requires old versions of the packages, specific libraries or cannot or even must not be updated.

Warning! Security considerations

Due to their nature, the old versions of the software contain security vulnerabilities. Many of them have ready and easy to use exploits. Using unsupported versions of software is a dangerous practice, especially when system is running in the public networks.

"},{"location":"knowledge-base/eurolinux-vault-policy/#vaults-initial-and-last-version-for-minor-releases","title":"Vault's initial and last version for minor releases","text":"

From version 8.6 and 9.0 we decided that we will provide three versions for each minor release (minor release is for example EuroLinux 8.6 -> 8.7 -> 8.8), of the vault. The first one is the initial state of the release, then there is current state (for living release), the third one has '-last' and it's the last snapshot before a new minor release. This idea originated from community feedback. For example in case of EuroLinux 8.7 (that in time of writing this documentation is the latest minor release):

  • https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7-init/ contains the initial state for 8.7
  • https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7/ contains the current state of EuroLinux 8.7
  • https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7-last/ Will contain the last snapshot for 8.7 before general availability of the EuroLinux 8.8. It will be just a symbolic link to 8.7 that will mark the EOL of this minor release.

If there is no version with -last suffix it means that this version is a newest minor release or the -last was not created.

"},{"location":"knowledge-base/eurolinux-vault-policy/#vault-for-the-current-version","title":"Vault for the current version","text":"

For your convince EuroLinux Vault also keeps the track of the current version of the EuroLinux as a symbolic link to the newest minor release. The symlinks are 8 for version 8 and 9 for version 9.

  • https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8/
  • https://vault.cdn.euro-linux.com/legacy/eurolinux/9/9/

These repositories are updated regularly in the same manner as main/mirrors repositories.

"},{"location":"knowledge-base/eurolinux-vault-policy/#eurolinux-sources-on-vaultcdneuro-linuxcom","title":"EuroLinux sources on vault.cdn.euro-linux.com","text":"

We used to provide sources for EuroLinux on GitHub. Unfortunately, due to GitHub's limitations, it wasn't as feasible in long run. Each source needed to be repacked on the client system and source wasn't signed.

We decided to go with a friendlier and more standarized direction after receiving feedback from the community and clients. Since version 8 we deliver the sources as .src.rpms. It's a better solution in many ways, and the advantages include:

  • All source packages (sources used to build EuroLinux and other Enterprise Linux distributions) are securely signed cryptographically
  • The src.rpm is native format for distributions that leverage RPMs. It allows to use common toolchains like mock, rpmbuild, EuroLinux Gaia, Open Build Service, Koji and much more
  • It's easier to mirror repositories
  • It's also easier to maintain

The source can be found at https://vault.cdn.euro-linux.com/sources/eurolinux/.

"},{"location":"knowledge-base/eurolinux-vault-policy/#bug-tracker","title":"Bug tracker","text":"

If you encounter any missing sources or problem with vault, please don't hesitate to contact as via e-mail (support[at]euro-linux.com) or fill bug in our distro bug tracker. If you are our client you can contact us on the support site or with sale representative.

"},{"location":"knowledge-base/unable-to-find-requested-software/","title":"Unable to Find Requested Software","text":""},{"location":"knowledge-base/unable-to-find-requested-software/#environment","title":"Environment","text":"
  • EuroLinux 7
  • EuroLinux 8
"},{"location":"knowledge-base/unable-to-find-requested-software/#issue","title":"Issue","text":"

An error occurs during a search for missing components. A similar message is shown by GNOME Software:

Unfortunately, the [...] you were searching for could not be found. Please see [...] for more information.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-package","title":"Missing Package","text":"

The package you are searching for is not available in EuroLinux base repositories.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-codec","title":"Missing Codec","text":"

The codec you are searching for is not available in EuroLinux base repositories due to licensing reasons or patent encumbrance.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-hardware-support","title":"Missing Hardware Support","text":"

A kernel module or a driver is not available in EuroLinux base repositories due to licensing reasons that prohibit redistribution or is not yet in the upstream Linux kernel.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-font","title":"Missing Font","text":"

The font you are searching for is not available in EuroLinux base repositories.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-mime-support","title":"Missing MIME Support","text":"

An application that supports operations on your file with its MIME type is not available in EuroLinux base repositories due to them being supported exclusively by a third party application or an application that runs only on a platform different than EuroLinux.

"},{"location":"knowledge-base/unable-to-find-requested-software/#resolution","title":"Resolution","text":"

If you would like to request for a certain component availability, please contact us.

"},{"location":"release-notes/8.10/","title":"EuroLinux 8.10 Release Notes","text":"

This version\u2019s code name is Bucharest - the capital of Romania, also known as \u201cParis of the East\u201d.

"},{"location":"release-notes/8.10/#major-changes-in-eurolinux-810","title":"Major changes in EuroLinux 8.10.","text":""},{"location":"release-notes/8.10/#security","title":"Security","text":"

Key security-related highlights:

  • OpenSSL adds API-level protection for RSA PKCS #1 v1.5 decryption process.
  • libkcapi delivers new functions and tools.
  • stunnel provides many new SSL-related features.
"},{"location":"release-notes/8.10/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following application are now available:

  • MariaDB 10.11
  • nginx 1.24
  • PHP 8.2
  • PostgreSQL 16
  • Python 3.12

The following components have been upgraded:

  • Git LFS to version 3.4.1
  • Git to version 2.43.0
"},{"location":"release-notes/8.10/#compilers-and-development-tools","title":"Compilers and development tools","text":""},{"location":"release-notes/8.10/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated:

  • elfutils 0.190
  • Valgrind 3.22
"},{"location":"release-notes/8.10/#updated-compiler-toolsets","title":"Updated compiler toolsets","text":"

The following compiler toolsets have been updated:

  • GCC Toolset 13
  • Go Toolset 1.21.0
  • LLVM Toolset 17.0.6
  • Rust Toolset 1.75.0
"},{"location":"release-notes/8.10/#java-implementations-in-eurolinux-8","title":"Java implementations in EuroLinux 8","text":"

The EuroLinux 8 AppStream repository includes:

  • The java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit.
  • The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime Environment and the OpenJDK 11 Java Software Development Kit.
  • The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime Environment and the OpenJDK 17 Java Software Development Kit.
  • The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime Environment and the OpenJDK 8 Java Software Development Kit.
"},{"location":"release-notes/8.10/#batteries-repositories","title":"Batteries repositories","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

"},{"location":"release-notes/8.10/#known-issues","title":"Known issues","text":"
  • The AppStream is is about 15GiB. After long discussion and feedback we decided to keep it RHEL like way, where AppStream ISO is so full because it can be used to mount repositories used for mirroring and system. We are sorry but current state (mostly modularity) make things extremely hard to manage without breaking user experience.
  • Due to evolution of build process update for SCAP Security Guide are delayed now. They are going to be delivered soon.
"},{"location":"release-notes/8.10/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 and preparing 4.0 with branding kit.

"},{"location":"release-notes/8.10/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 8:

  • EuroLinux 8 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)
  • EuroLinux 8 Container on the Docker Hub
  • EuroLinux 8 Container on the Quay.io
"},{"location":"release-notes/8.10/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.10 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.3/","title":"EuroLinux 8.3 Release Notes","text":""},{"location":"release-notes/8.3/#dynamic-programming-languages","title":"Dynamic programming languages","text":"

Later versions of the following components are now available:

  • Node.js 14 - module nodejs stream 14
  • Perl 5.30 - module perl stream 5.30
  • PHP 7.4 - module php stream 7.4
  • Ruby 2.7 - module ruby stream 2.7
  • Java 11 with OpenJDK - new version of Open Java Development Kit (OpenJDK) is now available as standalone rpms packages.
"},{"location":"release-notes/8.3/#web-and-database-servers","title":"Web and Database servers","text":"

Later versions of the following components are now available

  • nginx 1.18 - module nginx stream 1.18
"},{"location":"release-notes/8.3/#compiler-toolsets","title":"Compiler toolsets","text":"

The following compiler toolsets have been updated in EL 8.3:

  • GCC Toolset 10 - software collection gcc-toolset-10
  • LLVM Toolset 10.0.1 - module llvm-toolset
  • Rust Toolset 1.45.2 - module rust-toolset
  • Go Toolset 1.14.7 - module go-toolset
"},{"location":"release-notes/8.3/#security","title":"Security","text":"
  • EuroLinux 8.3 provides Ansible roles for automated deployments of Policy-Based Decryption (PBD) solutions using Clevis and Tang. New version of the package rhel-system-roles adds an Ansible role for EuroLinux logging through Rsyslog.

  • The USBGuard framework now provides:

    • its own SELinux policy
    • notification for user in GUI
    • multiple enhancement and bug fixes
"},{"location":"release-notes/8.3/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Git was updated to version 2.27
  • Squid was updated to version 4.11
  • The Tuned system tuning tool has been rebased to version 2.13. This version adds support for architecture-dependent tuning and ability to use multiple include directives.
"},{"location":"release-notes/8.3/#identity-management","title":"Identity Management","text":"

The Rivest Cipher 4 (RC4) cipher suite, the default encryption type for users, services, and trusts between Active Directory domains in an Active Directory forest, has been deprecated in EuroLinux 8. For compatibility, this release introduces cryptographic subpolicy named AD-SUPPORT to enable support for this deprecated encryption type. The new subpolicy allows you to use RC4 with EuroLinux IPA and SSSD Active Directory.

"},{"location":"release-notes/8.3/#the-web-console","title":"The web console","text":"

The cockpit web console provides an option to switch between superuser access and limited access from inside of a user session.

"},{"location":"release-notes/8.3/#desktop-and-graphics","title":"Desktop and graphics","text":"

The Direct Rendering Manager (DRM) kernel graphics subsystem has been rebased to upstream Linux kernel version 5.6. It provides a number of enhancements over the previous versions, including support for new GPUs and APUs.

"},{"location":"release-notes/8.4-beta/","title":"EuroLinux Beta 8.4 Release Notes","text":""},{"location":"release-notes/8.4-beta/#dynamic-programming-languages","title":"Dynamic programming languages","text":"

Later versions of the following components are now available:

  • Python 3.9 - module python39 stream 39.
  • SWIG 4.0 - module swig stream 4.0
"},{"location":"release-notes/8.4-beta/#web-and-database-servers","title":"Web and Database servers","text":"

Later versions of the following components are now available:

  • Redis 6 - module redis stream 6
  • PostgreSQL 13 - module postgresql stream 13
  • MariaDB 10.5 - module mariadb stream 10.5
"},{"location":"release-notes/8.4-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.4:

  • GCC Toolset 10 - software collection gcc-toolset-10
  • LLVM Toolset 11.0.0 - module llvm-toolset stream rhel
  • Rust Toolset 1.49.0 - module rust-toolset stream rhel
  • Go Toolset 1.15.7 - module go-toolset stream rhel

There is new a module containing Persistent Memory Development Kit (PMDK):

  • PMDK - module pmkd stream 1_fileformat_v6
"},{"location":"release-notes/8.4-beta/#security","title":"Security","text":"
  • IPsec VPN provided by Libreswan now supports TCP encapsulation and security labels for IKEv2.
  • The OpenSCAP packages have been rebased to version 1.3.4, scap-security-guide has been rebased to version 0.1.54.
  • The fapolicyd framework now provides integrity checking, and the RPM plugin now registers any system update handled by either the YUM package manager or the RPM Package Manager.
"},{"location":"release-notes/8.4-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • EuroLinux 8.4 offers now Subversion 1.14. It's packed as the module subversion with stream 1.14. The 1.10 stream remain the default module that contains this package.
  • New module eclipse. This module has Eclipse IDE but is commonly used to build Java related packages.
  • The nmstate packages provide a library and the nmstatectl command-line utility to manage host network settings declaratively. Nmstate is a network API for hosts and is fully supported in EuroLinux 8.4. The Multi-protocol Label Switching (MPLS) is an in-kernel data-forwarding mechanism to route traffic flow across enterprise networks.

  • The iproute2 utility introduces three new traffic control actions.

  • EuroLinux 8 kernel now uses proactive compaction that regularly initiates memory compaction work before a request for an allocation is made. Therefore, latency for specific memory allocation requests is lowered.
  • EuroLinux 8 kernel has now a new implementation of a slab memory controller for control groups.
  • EuroLinux kernel now supports the time namespace feature. It allows changing date and time inside the Linux containers.
  • EuroLinux 8 kernel now supports the Error Detection and Correction (EDAC) in 8th and 9th generation Intel Core Processors.
  • There are changes in the pacemaker resource agent - it now can detect failures asynchronously and inject a failure into Pacemaker immediately without waiting for the following monitor interval.
"},{"location":"release-notes/8.4-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild distribution but are not included in upstream repositories. Right now, this repository includes more than 2000 packages for each buildroot.

Multiple batteries were updated for this release there including:

  • mdds
  • meson
  • spirv-headers
  • fontforge
  • multiple python packages
  • modules for bootstrapping python39
"},{"location":"release-notes/8.4-beta/#additional-resources","title":"Additional resources","text":"
  • Red Hat 8.4 Release-Notes part of our release notes, are loosely based on this document.
"},{"location":"release-notes/8.4/","title":"EuroLinux 8.4 Release Notes","text":""},{"location":"release-notes/8.4/#dynamic-programming-languages","title":"Dynamic programming languages","text":"

Later versions of the following components are now available:

  • Python 3.9 - module python39 stream 39.
  • SWIG 4.0 - module swig stream 4.0
"},{"location":"release-notes/8.4/#web-and-database-servers","title":"Web and Database servers","text":"

Later versions of the following components are now available:

  • Redis 6 - module redis stream 6
  • PostgreSQL 13 - module postgresql stream 13
  • MariaDB 10.5 - module mariadb stream 10.5
"},{"location":"release-notes/8.4/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.4:

  • GCC Toolset 10 - software collection gcc-toolset-10
  • LLVM Toolset 11.0.0 - module llvm-toolset stream rhel
  • Rust Toolset 1.49.0 - module rust-toolset stream rhel
  • Go Toolset 1.15.7 - module go-toolset stream rhel

There is new a module containing Persistent Memory Development Kit (PMDK):

  • PMDK - module pmkd stream 1_fileformat_v6
"},{"location":"release-notes/8.4/#security","title":"Security","text":"
  • IPsec VPN provided by Libreswan now supports TCP encapsulation and security labels for IKEv2.
  • The OpenSCAP packages have been rebased to version 1.3.4, scap-security-guide has been rebased to version 0.1.54.
  • The fapolicyd framework now provides integrity checking, and the RPM plugin now registers any system update handled by either the YUM package manager or the RPM Package Manager.
"},{"location":"release-notes/8.4/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • EuroLinux 8.4 offers now Subversion 1.14. It's packed as the module subversion with stream 1.14. The 1.10 stream remain the default module that contains this package.
  • New module eclipse. This module has Eclipse IDE but is commonly used to build Java related packages.
  • The nmstate packages provide a library and the nmstatectl command-line utility to manage host network settings declaratively. Nmstate is a network API for hosts and is fully supported in EuroLinux 8.4. The Multi-protocol Label Switching (MPLS) is an in-kernel data-forwarding mechanism to route traffic flow across enterprise networks.
  • The iproute2 utility introduces three new traffic control actions.
  • EuroLinux 8 kernel now uses proactive compaction that regularly initiates memory compaction work before a request for an allocation is made. Therefore, latency for specific memory allocation requests is lowered.
  • EuroLinux 8 kernel has now a new implementation of a slab memory controller for control groups.
  • EuroLinux kernel now supports the time namespace feature. It allows changing date and time inside the Linux containers.
  • EuroLinux 8 kernel now supports the Error Detection and Correction (EDAC) in 8th and 9th generation Intel Core Processors.
  • There are changes in the pacemaker resource agent - it now can detect failures asynchronously and inject a failure into Pacemaker immediately without waiting for the following monitor interval.
"},{"location":"release-notes/8.4/#how-to-update-from-beta","title":"How to update from beta","text":"

The beta repository has an updated package el-release, that contains production repositories. Upgrading from EuroLinux 8.4 beta to 8.4 is as simple as running:

sudo yum update -y el-release\nsudo yum update -y\n
"},{"location":"release-notes/8.4/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • anacondafirefox
  • cloud-init
  • crash
  • httpd
  • httpd
  • initial-setup
  • ipa
  • liberport
  • libguestfs
  • libreoffice
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.4/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild distribution but are not included in upstream repositories. Right now, this repository contains more than 2000 packages for each buildroot.

Multiple batteries were updated for this release there including:

  • mdds
  • meson
  • spirv-headers
  • fontforge
  • multiple python packages
  • modules for bootstrapping python39
"},{"location":"release-notes/8.4/#other-notable-changes","title":"Other notable changes","text":"
  • Because we changed the business model to open core, there is no longer a need to use FBI (free base image) repositories as they are a subset of entire repositories. FBI repos are removed from the el-release package.
  • EuroLinux 8.4 is first version that can use BaseOS-all, AppStream-all and PowerTools-all repositories that contain all packages produced during build process. However, these packages are not supported by upstream or EuroLinux.
  • EuroLinux by default uses Docker Hub instead of Quay.
"},{"location":"release-notes/8.4/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Roadmap for the project can be found in press notes available on our company blog. Press Notes.
  • Red Hat 8.4 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.5-arm64/","title":"EuroLinux 8.5 Release Notes for ARM 64 (aarch64)","text":"

EuroLinux 8.5 is the first version of EuroLinux that provides ARM 64 General Availability. We have to update the Gaia build system in the customers' sites for this release. This version code name is Tirana - the capital city of Albania.

Below you can find the essential changes in EuroLinux 8.5 GA release for aarch64 architecture from EuroLinux 8.4 Beta for ARM64.

"},{"location":"release-notes/8.5-arm64/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • Ruby 3.0 - module ruby stream 3.0.
  • nginx 1.20 - module nginx stream 1.20
  • Nodejs 16 - module nodejs stream 16
"},{"location":"release-notes/8.5-arm64/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.5:

  • GCC Toolset 11 - software collection gcc-toolset-11
  • LLVM Toolset 12.0.1 - module llvm-toolset stream rhel
  • Rust Toolset 1.54.0 - module rust-toolset stream rhel
  • Go Toolset 1.16.7 - module go-toolset stream rhel
"},{"location":"release-notes/8.5-arm64/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • rsyslog - now support OpenSSL
  • OpenSCAP framework - added new profiles and multiple changes and enhancements
  • cryptopolicies were updated - these system-wide cryptographic policies from this version support different policies for different backends (scoped policies)
"},{"location":"release-notes/8.5-arm64/#high-availability-and-resilient-storage","title":"High Availability and Resilient Storage","text":"
  • High Availability and Resilient Storage modules are not supported on ARM64 architecture. This is in line with upstream policy.
"},{"location":"release-notes/8.5-arm64/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • NetworkManager was updated to 1.32.10 from 1.30
  • OpenIMP was updated to 2.0.31 from 2.0.29
  • acel was updated to 3.1 from 2.8
  • bluez was updated to 5.56 from 5.52
  • chrony was updated to 4.1 from 3.5
  • cockpit was updated to version 251.1 from 238.2
  • crypto-policies was updated to 20210617 from 20210209
  • dnf was updated to 4.7.0 from 4.4.2
  • elfutils were updated to 0.185 from 0.182
  • freeipmi was updated to 1.6.8 from 1.6.6
  • gnutls was updated to 3.6.16 from 3.6.14
  • ibacm was updated to 35.0 from 32.0
  • libmodulemd updated to version 2.13.0 from 2.9.4
  • libreswan was updated to version 4.4 from 4.3
  • main GCC was updated to 8.5.0 from 8.4.1
  • opencryptoki updated to version 3.16.0 from 3.15.1
  • rsyslog was updated to version 8.2102.0 from 8.1911.0
  • sssd was updated to version 2.5.2 from 2.4.0
"},{"location":"release-notes/8.5-arm64/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to this release:

  • adwaita-qt5
  • ansible-collection-microsoft-sql
  • ansible-collection-redhat-rhel_mgmt
  • ansible-freeipa-tests
  • ansible-pcp
  • compact-hwloc1
  • coreos-installer
  • dotnet6.0
  • eth-tools
  • java-17-openjdk*
  • libadwaita-qt5
  • libcap-ng-python3
  • libcomps-devel is now included in PowerTools
  • libvoikko-devel - is now included in PowerTools
  • mobile-broadband-provider-info-devel is now included in PowerTools
  • modulemd-tools
  • pcm
  • python3-cloud-what
  • python3-libstoragemgmt
  • python3-pyghmi
  • qt5-qtserialbus-devel is now included in PowerTools
  • resource-agents-paf (resilient storage)
  • rsyslog-openssl
  • samba-vfs-iouring
  • sblim-gather
  • sblim-gather-provider is now included in PowerTools
  • sevctl
  • stratisd-dracut
  • tesseract
  • tss2
  • udftools
  • unicode-ucd-unihan
  • xapian-core and its development packages are now included
"},{"location":"release-notes/8.5-arm64/#how-to-update-from-beta","title":"How to update from beta","text":"

The beta repository has an updated package el-release, that contains production repositories. Upgrading from EuroLinux 8.4 beta for ARM64 to 8.5 GA is as simple as running:

sudo yum update -y el-release\nsudo yum update -y\n
"},{"location":"release-notes/8.5-arm64/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • anacondafirefox
  • cloud-init
  • crash
  • httpd
  • initial-setup
  • ipa
  • libreport
  • libguestfs
  • libreoffice
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.5-arm64/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in upstream repositories. Right now, this repository includes more than 2100 packages for each buildroot.

Multiple batteries were updated for this release there, including:

  • Bootstraps for rust-toolset
  • Bootstraps for go-toolset
"},{"location":"release-notes/8.5-arm64/#gaia-build-system","title":"Gaia build system","text":"

Gaia build system was updated in all interested parties' environments. We had to select/order (with current long delivery times)/install hardware for aarch64. We also changed the rebuild policy. None of our customers was interested in using RHEL as a buildroot for their own Enterprise Linux forks. It means that EuroLinux must be released faster, but at the very same time, we can exclusively focus on providing EuroLinux in the early stages and thus release it faster. We also decided that the next version will be released asynchronously with more batch compilation. Batch compilation is scheduled for EuroLinux 9.0 and 8.6.

"},{"location":"release-notes/8.5-arm64/#other-notable-changes","title":"Other notable changes","text":"
  • EuroLinux 8.5 is the first version that can use baseos-all, appstream-all and powertools-all repositories that contain all packages produced during the build process. However, these packages are not supported by upstream or EuroLinux. They are intended for developers to build their own solutions.
  • EuroLinux reverted the previous changes that made DockerHub the default container image registry. We observed other RHEL clones and decided that keeping default might be more suitable for users.
"},{"location":"release-notes/8.5-arm64/#currently-missing-features","title":"Currently missing features","text":""},{"location":"release-notes/8.5-arm64/#container-and-cloud-images","title":"Container and cloud images","text":"

We will work on broader support for cloud/container images based on EuroLinux 8.5 for arm including:

  • New container images on DockerHub and Quay.io
  • AWS images for Graviton processors
  • New Vagrant Boxes - note that HashiCorp does not provide an aarch64 build for Vagrant. Still, Linux distributions like Fedora delivers it so, it's achievable and usable.
"},{"location":"release-notes/8.5-arm64/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.5 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.5/","title":"EuroLinux 8.5 Release Notes","text":"

EuroLinux 8.5 is the first minor release created in a continuous way. It was also the first version when we deployed our engineer to remote sites (in most cases virtual) to provide support for organisations that rebuild RHEL/EuroLinux from sources with Gaia build system. This version code name is Tirana - the capital city of Albania.

Below you can find the essential changes in EuroLinux 8.5 release for x86_64 architecture. The aarch64 GA release is slightly delayed. Release notes for aarch64 will be provided in a separate document.

"},{"location":"release-notes/8.5/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • Ruby 3.0 - module ruby stream 3.0.
  • nginx 1.20 - module nginx stream 1.20
  • Nodejs 16 - module nodejs stream 16
"},{"location":"release-notes/8.5/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.5:

  • GCC Toolset 11 - software collection gcc-toolset-11
  • LLVM Toolset 12.0.1 - module llvm-toolset stream rhel
  • Rust Toolset 1.54.0 - module rust-toolset stream rhel
  • Go Toolset 1.16.7 - module go-toolset stream rhel
"},{"location":"release-notes/8.5/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • rsyslog - now support OpenSSL
  • OpenSCAP framework - added new profiles and multiple changes and enhancements
  • cryptopolicies were updated - these system-wide cryptographic policies from this version support different policies for different backends (scoped policies)
"},{"location":"release-notes/8.5/#high-availability-and-resilient-storage","title":"High Availability and Resilient Storage","text":"
  • cmirror was updated to version 2.03.12
  • corosync was updated to version 3.1.5
  • pacemaker was updated to version 2.1.0
  • resource-agents-paf package was added to HA an RS repositories
"},{"location":"release-notes/8.5/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • NetworkManager was updated to 1.32.10 from 1.30
  • OpenIMP was updated to 2.0.31 from 2.0.29
  • acel was updated to 3.1 from 2.8
  • bluez was updated to 5.56 from 5.52
  • chrony was updated to 4.1 from 3.5
  • cockpit was updated to version 251.1 from 238.2
  • crypto-policies was updated to 20210617 from 20210209
  • dnf was updated to 4.7.0 from 4.4.2
  • elfutils were updated to 0.185 from 0.182
  • freeipmi was updated to 1.6.8 from 1.6.6
  • gnutls was updated to 3.6.16 from 3.6.14
  • ibacm was updated to 35.0 from 32.0
  • libmodulemd updated to version 2.13.0 from 2.9.4
  • libreswan was updated to version 4.4 from 4.3
  • main GCC was updated to 8.5.0 from 8.4.1
  • opencryptoki updated to version 3.16.0 from 3.15.1
  • rsyslog was updated to version 8.2102.0 from 8.1911.0
  • sssd was updated to version 2.5.2 from 2.4.0
"},{"location":"release-notes/8.5/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to this release:

  • adwaita-qt5
  • ansible-collection-microsoft-sql
  • ansible-collection-redhat-rhel_mgmt
  • ansible-freeipa-tests
  • ansible-pcp
  • compact-hwloc1
  • coreos-installer
  • dotnet-build-reference-packages
  • dotnet-sdk-3.1-source-built-artifacts
  • dotnet-sdk-5.0-source-built-artifacts
  • dotnet5.0-build-reference-packages
  • eth-tools
  • flatpak (i686) included in PowerTools
  • java-17-openjdk*
  • libadwaita-qt5
  • libcap-ng-python3
  • libcomps-devel is now included in PowerTools
  • libvoikko-devel - is now included in PowerTools
  • lpsolve (i686) is now included in PowerTools
  • mobile-broadband-provider-info-devel is now included in PowerTools
  • modulemd-tools
  • pcm
  • python3-cloud-what
  • python3-libstoragemgmt
  • python3-pillow (i686) is now included in PowerTools
  • python3-pyghmi
  • qt5-qtserialbus-devel is now included in PowerTools
  • resource-agents-paf (resilient storage)
  • rsyslog-openssl
  • samba-vfs-iouring
  • sblim-gather
  • sblim-gather-provider is now included in PowerTools
  • sevctl
  • stratisd-dracut
  • tesseract
  • tss2
  • udftools
  • unicode-ucd-unihan
  • xapian-core and its development packages are now included
"},{"location":"release-notes/8.5/#how-to-update-from-beta","title":"How to update from beta","text":"

The beta repository has an updated package el-release, that contains production repositories. Upgrading from EuroLinux 8.5 beta to 8.5 is as simple as running:

sudo yum update -y el-release\nsudo yum update -y\n
"},{"location":"release-notes/8.5/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • anacondafirefox
  • cloud-init
  • crash
  • httpd
  • initial-setup
  • ipa
  • libreport
  • libguestfs
  • libreoffice
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.5/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in upstream repositories. Right now, this repository includes more than 2100 packages for each buildroot.

Multiple batteries were updated for this release there including:

  • Bootstraps for rust-toolset
  • Bootstraps for go-toolset
"},{"location":"release-notes/8.5/#gaia-build-system","title":"Gaia build system","text":"

Gaia build system was updated in all interested parties' environments. We also changed the rebuild policy. None of our customers was interested in using RHEL as a buildroot for their own Enterprise Linux forks. It means that EuroLinux must be released faster, but at the very same time, we can exclusively focus on providing EuroLinux in the early stages and thus release it faster. We also decided that the next version will be released asynchronously with more batch compilation. Synchronization was especially problematic in this release as there was a lot of holidays in Poland.

"},{"location":"release-notes/8.5/#other-notable-changes","title":"Other notable changes","text":"
  • EuroLinux 8.5 is the first version that can use baseos-all, appstream-all and powertools-all,high-availability-all, resilient-storage-all repositories that contain all packages produced during the build process. However, these packages are not supported by upstream or EuroLinux. They are intended for developers to build they own solutions.
  • EuroLinux reverted the previous changes that made DockerHub the default container image registry. We observed other RHEL clones and decided that keeping default might be more suitable for users.
"},{"location":"release-notes/8.5/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • A roadmap for the project can be found in press notes available on our company blog. EuroLinux Roadmap For Q4 2021.
  • Red Hat 8.5 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.6-beta/","title":"EuroLinux 8.6 Beta Release Notes","text":"

EuroLinux 8.6 is the first minor release with a full-fledged beta available before the General Availability of the upstream version (RHEL 8.6). The Beta version will allow releasing EuroLinux 8.6 GA faster. We decided to publish x86_64 and corresponding x86_64, i686 open buildroots for this beta. The GA version will release all supported arches simultaneously.

This version\u2019s code name is Kyiv - the capital city of Ukraine.

"},{"location":"release-notes/8.6-beta/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: PHP 8.0 - module php stream 8.0
  • New: Perl 5.32 - module perl stream 5.32
  • New: Maven 3.5 - module maven stream 3.5
  • New: Log4j:2 - module log4j stream 2
  • PostgreSQL 10 - module postgresql stream 10 was rebased to PostgreSQL 10.19 from 10.17
  • PMDK 1_fileformat_v6 - module pmdk stream 1_fileformat_v6 was rebased to version 1.11.1 from 1.9.2
"},{"location":"release-notes/8.6-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.6:

  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.58.1 from 1.54.0
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 13.0.1 from 12.0.1
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.17.7 from 1.16.12
  • GCC-Toolset-11 - toolset gcc-toolset-11 has multiple updates and was rebased to version 11.2
"},{"location":"release-notes/8.6-beta/#containers","title":"Containers","text":"
  • New Containers Tools module containers-tools stream 4.0
  • Containers tools module containers-tools stream rhel was heavily updated
"},{"location":"release-notes/8.6-beta/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • semodule now supports the --checksum option for verifying SELinux policy modules versions
  • OpenSSL 3.0 support in opencryptoki, among others
  • OpenSCAP supports OSBuild Blueprint as a remediation type and several command-line option improvements
  • SCAP Security Guide - authselect for rules that harden PAM stack and more precise xccdf_org.ssgproject.content_enable_fips_mode rule implementation among others
"},{"location":"release-notes/8.6-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • Git was updated to version 2.31 from 2.27
  • 389-ds-base (Directory Server) was updated to 1.4.3.28
  • Libreswan was updated to 4.5
  • PCP was rebased to version 5.3.5-8
  • OpenSCAP was updated to 1.3.6
  • grafana and grafana containers were rebased to the newer versions
  • SCAP Security Guide was updated to 0.1.60
  • authselect was updated to 1.2.2
  • bind was updated to 9.16.23
  • fapolicyd was updated to 1.1
  • libcap was updated to 2.48
  • lsvpd was updated to 1.7.13
  • opencryptoki was updated to 3.17.0
  • pcsc-lite was updated to 1.9.5
  • powerpc-utils was updated to 1.3.9
  • samba was updated to 4.15.5
"},{"location":"release-notes/8.6-beta/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • aardvark-dns
  • adwaita-icon-theme-devel
  • ansible-core
  • ansible-test
  • bind9.16
  • bind9.16-chroot
  • bind9.16-devel
  • bind9.16-dnssec-utils
  • bind9.16-doc
  • bind9.16-libs
  • bind9.16-license
  • bind9.16-utils
  • coreos-installer-dracut
  • fdo-admin-cli
  • fdo-client
  • fdo-init
  • fdo-manufacturing-server
  • fdo-owner-cli
  • fdo-owner-onboarding-server
  • fdo-rendezvous-server
  • fence-virtd-cpg
  • fwupd-devel
  • gdm-devel
  • gdm-pam-extensions-devel
  • glibc-gconv-extra
  • gnome-shell-extension-classification-banner
  • gnome-shell-extension-dash-to-panel
  • greenboot-default-health-checks
  • hostapd
  • libgcab1-devel
  • libguestfs-appliance
  • libnbd-bash-completion
  • libpinyin-devel
  • libqrtr-glib
  • libselinux-static
  • libss-devel
  • libtpms
  • libtpms-devel
  • libuser-devel
  • libvirt-wireshark
  • libxmlb-devel
  • lmdb-devel
  • maven-openjdk17
  • nbdkit-gzip-filter
  • nbdkit-nbd-plugin
  • nbdkit-tar-filter
  • nbdkit-tar-plugin
  • nbdkit-tmpdisk-plugin
  • netavark
  • NetworkManager-initscripts-updown
  • nftables-devel
  • nginx-mod-devel
  • nmstate-devel
  • nmstate-libs
  • osbuild-composer-dnf-json
  • osbuild-luks2
  • osbuild-lvm2
  • pcp-pmda-denki
  • pcp-pmda-mongodb
  • php-pecl-xdebug3
  • multiple perl-* that are in perl 5.32 modules
  • prometheus-jmx-exporter-openjdk11
  • python38-resolvelib
  • python3-bind9.16
  • python3-dnf-plugin-modulesync
  • qatlib-tests
  • qatzip
  • qatzip-devel
  • qatzip-libs
  • qemu-kvm-docs
  • qemu-kvm-hw-usbredir
  • qemu-kvm-ui-opengl
  • qemu-kvm-ui-spice
  • rig
  • rsyslog-mmfields
  • rust-std-static-wasm32-wasi
  • shadow-utils-subid
  • shadow-utils-subid-devel
  • sshpass
  • stress-ng
  • swtpm
  • swtpm-devel
  • swtpm-libs
  • swtpm-tools
  • swtpm-tools-pkcs11
  • virt-v2v-bash-completion
  • virt-v2v-man-pages-ja
  • virt-v2v-man-pages-uk
  • webrtc-audio-processing-devel
  • weldr-client
"},{"location":"release-notes/8.6-beta/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.6-beta/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.6-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 2500 packages for each buildroot.

Multiple batteries were updated for this release including:

  • Bootstraps for Perl 5.32
  • Updated mesa batteries
  • Smaller packages that broke buildroot

About 420 packages were updated for x86_64 buildroot alone.

"},{"location":"release-notes/8.6-beta/#gaia-build-system","title":"Gaia build system","text":"

We are still working on Gaia 3.0.

"},{"location":"release-notes/8.6-beta/#known-bugs","title":"Known bugs","text":"
  • This is a Beta release!
  • openscap will probably not work
  • There is ambiguity when it comes to SCAP profiles naming that will be resolved for 8.6 GA GitHub Bug Report
  • After installation, the first kernel might report EuroLinux 8.5 -> updated kernel should report 8.6 beta.
  • evolution-mapi was wrongly linked against older samba. The solution is yum reinstall -y evolution-mapi as we updated the package in-place
  • dhcp-client was wrongly linked against older bind-export-libs. The solution is yum reinstall -y dhcp-client as we updated the package in-place
"},{"location":"release-notes/8.6-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.6 Beta Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.6/","title":"EuroLinux 8.6 Release Notes","text":"

Since EuroLinux 8.6 was first minor release with a full-fledged beta available before the General Availability of the upstream version (RHEL 8.6), the Beta version allowed us to release EuroLinux 8.6 faster.

This version\u2019s code name is Kyiv - the capital city of Ukraine.

"},{"location":"release-notes/8.6/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: PHP 8.0 - module php stream 8.0
  • New: Perl 5.32 - module perl stream 5.32
  • New: Maven 3.5 - module maven stream 3.5
  • New: Log4j:2 - module log4j stream 2
  • PostgreSQL 10 - module postgresql stream 10 was rebased to PostgreSQL 10.19 from 10.17
  • PMDK 1_fileformat_v6 - module pmdk stream 1_fileformat_v6 was rebased to version 1.11.1 from 1.9.2
"},{"location":"release-notes/8.6/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.6:

  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.58.1 from 1.54.0
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 13.0.1 from 12.0.1
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.17.7 from 1.16.12
  • GCC-Toolset-11 - toolset gcc-toolset-11 has multiple updates and was rebased to version 11.2
"},{"location":"release-notes/8.6/#containers","title":"Containers","text":"
  • New Containers Tools module containers-tools stream 4.0
  • Containers tools module containers-tools stream rhel was heavily updated
"},{"location":"release-notes/8.6/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • semodule now supports the --checksum option for verifying SELinux policy modules versions
  • OpenSSL 3.0 support in opencryptoki, among others
  • OpenSCAP supports OSBuild Blueprint as a remediation type and several command-line option improvements
  • SCAP Security Guide - authselect for rules that harden PAM stack and more precise xccdf_org.ssgproject.content_enable_fips_mode rule implementation among others
"},{"location":"release-notes/8.6/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • Git was updated to version 2.31 from 2.27
  • 389-ds-base (Directory Server) was updated to 1.4.3.28
  • Libreswan was updated to 4.5
  • PCP was rebased to version 5.3.5-8
  • OpenSCAP was updated to 1.3.6
  • grafana and grafana containers were rebased to the newer versions
  • SCAP Security Guide was updated to 0.1.60
  • authselect was updated to 1.2.2
  • bind was updated to 9.16.23
  • fapolicyd was updated to 1.1
  • libcap was updated to 2.48
  • lsvpd was updated to 1.7.13
  • opencryptoki was updated to 3.17.0
  • pcsc-lite was updated to 1.9.5
  • powerpc-utils was updated to 1.3.9
  • samba was updated to 4.15.5
"},{"location":"release-notes/8.6/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • aardvark-dns
  • adwaita-icon-theme-devel
  • ansible-core
  • ansible-test
  • bind9.16
  • bind9.16-chroot
  • bind9.16-devel
  • bind9.16-dnssec-utils
  • bind9.16-doc
  • bind9.16-libs
  • bind9.16-license
  • bind9.16-utils
  • coreos-installer-dracut
  • fdo-admin-cli
  • fdo-client
  • fdo-init
  • fdo-manufacturing-server
  • fdo-owner-cli
  • fdo-owner-onboarding-server
  • fdo-rendezvous-server
  • fence-virtd-cpg
  • fwupd-devel
  • gdm-devel
  • gdm-pam-extensions-devel
  • glibc-gconv-extra
  • gnome-shell-extension-classification-banner
  • gnome-shell-extension-dash-to-panel
  • greenboot-default-health-checks
  • hostapd
  • libgcab1-devel
  • libguestfs-appliance
  • libnbd-bash-completion
  • libpinyin-devel
  • libqrtr-glib
  • libselinux-static
  • libss-devel
  • libtpms
  • libtpms-devel
  • libuser-devel
  • libvirt-wireshark
  • libxmlb-devel
  • lmdb-devel
  • maven-openjdk17
  • nbdkit-gzip-filter
  • nbdkit-nbd-plugin
  • nbdkit-tar-filter
  • nbdkit-tar-plugin
  • nbdkit-tmpdisk-plugin
  • netavark
  • NetworkManager-initscripts-updown
  • nftables-devel
  • nginx-mod-devel
  • nmstate-devel
  • nmstate-libs
  • osbuild-composer-dnf-json
  • osbuild-luks2
  • osbuild-lvm2
  • pcp-pmda-denki
  • pcp-pmda-mongodb
  • php-pecl-xdebug3
  • multiple perl-* that are in perl 5.32 modules
  • prometheus-jmx-exporter-openjdk11
  • python38-resolvelib
  • python3-bind9.16
  • python3-dnf-plugin-modulesync
  • qatlib-tests
  • qatzip
  • qatzip-devel
  • qatzip-libs
  • qemu-kvm-docs
  • qemu-kvm-hw-usbredir
  • qemu-kvm-ui-opengl
  • qemu-kvm-ui-spice
  • rig
  • rsyslog-mmfields
  • rust-std-static-wasm32-wasi
  • shadow-utils-subid
  • shadow-utils-subid-devel
  • sshpass
  • stress-ng
  • swtpm
  • swtpm-devel
  • swtpm-libs
  • swtpm-tools
  • swtpm-tools-pkcs11
  • virt-v2v-bash-completion
  • virt-v2v-man-pages-ja
  • virt-v2v-man-pages-uk
  • webrtc-audio-processing-devel
  • weldr-client
"},{"location":"release-notes/8.6/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.6/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.6/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 2500 packages for each buildroot.

Multiple batteries were updated for this release including:

  • Bootstraps for Perl 5.32
  • Updated mesa batteries
  • Smaller packages that broke buildroot

About 420 packages were updated for x86_64 buildroot alone.

"},{"location":"release-notes/8.6/#gaia-build-system","title":"Gaia build system","text":"

We are still working on Gaia 3.0.

"},{"location":"release-notes/8.6/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO, (secondary download link)
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.6 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.7-beta/","title":"EuroLinux 8.7 Beta Release Notes","text":"

EuroLinux 8.7 is the first beta release for x86_64 and aarch64 beta published concurrently. The Beta version will allow us to provide EuroLinux 8.7 faster.

This version\u2019s code name is Brussels - the capital city of Belgium and the heart of European Union.

Older modules removed

In this beta we noticed that a lot of modules were obsoleted or removed, we are waiting for GA version to confirm that there will be a mechanism that should allow smoother migration between modules or that these modules will be available.

"},{"location":"release-notes/8.7-beta/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: Ruby 3.1 - module ruby stream 3.1
  • New: Mercurial 6.2 - module mercurial stream 6.2
  • New: Node.js 18 - module nodejs stream 18
  • Redis 6 - module redis:6 was updated from version 6.0 to 6.2.7
"},{"location":"release-notes/8.7-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.7:

  • New: GCC-Toolset-12 - toolset gcc-toolset-12
  • New: Dotnet 7.0 - Dotnet 7.0 packages
  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.62.1 from 1.58.1
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 14.0.0 from 13.0.1
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.18.4 from 1.17.7
"},{"location":"release-notes/8.7-beta/#containers","title":"Containers","text":"
  • Containers tools module containers-tools stream rhel was heavily updated
  • Containers tools module containers-tools stream 4.0 was heavily updated
  • Containers tools module containers-tools stream 3.0 was mostly removed
  • Containers tools module containers-tools stream 2.0 was mostly removed
"},{"location":"release-notes/8.7-beta/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • NSS no longer support RSA keys shorter than 1023 bits and won't work with such keys.
  • Updated SCAP security guilde with new sysctl, pampwquality, grub2 rules.
  • fapolicyd rebased to 1.1.3
"},{"location":"release-notes/8.7-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • QT5 toolchain and utilities were updated from 5.15.2 to 5.15.3
  • Opencryptoki was updated to version 3.18.0 from 3.17.0
  • Libva was updated to version 2.13.0 from 2.5.0
  • Chrony was updated to version 4.2 from 4.1
  • Unbound was updated to version 1.16.2 from 1.7.3
  • Fapolicyd rebased to 1.1.3 from 1.1
  • Mariadb-java-client rebased to version 2.7.1 from 2.2.5
  • open-vm-tools rebased to 12.0.5 from 11.3.5
"},{"location":"release-notes/8.7-beta/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • Multiple qt5-docs packages
  • aardvark-dns
  • anaconda-widgets-devel
  • aspnetcore-runtime-7.0
  • aspnetcore-targeting-pack-7.0
  • dotnet-apphost-pack-7.0
  • dotnet-hostfxr-7.0
  • dotnet-sdk-7.0-source-built-artifacts
  • egl-utils
  • frr-selinux
  • fstrm-utils
  • gcc-plugin-annobin
  • gcc-toolset-12
  • gcc-toolset-12-annobin-annocheck
  • gcc-toolset-12-annobin-docs
  • gcc-toolset-12-annobin-plugin-gcc
  • gcc-toolset-12-binutils
  • gcc-toolset-12-binutils-devel
  • gcc-toolset-12-binutils-gold
  • gcc-toolset-12-build
  • gcc-toolset-12-dwz
  • gcc-toolset-12-gcc
  • gcc-toolset-12-gcc-c++
  • gcc-toolset-12-gcc-gfortran
  • gcc-toolset-12-gcc-plugin-devel
  • gcc-toolset-12-gdb
  • gcc-toolset-12-libasan-devel
  • gcc-toolset-12-libatomic-devel
  • gcc-toolset-12-libgccjit
  • gcc-toolset-12-libgccjit-devel
  • gcc-toolset-12-libgccjit-docs
  • gcc-toolset-12-libitm-devel
  • gcc-toolset-12-liblsan-devel
  • gcc-toolset-12-libstdc++-devel
  • gcc-toolset-12-libstdc++-docs
  • gcc-toolset-12-libtsan-devel
  • gcc-toolset-12-libubsan-devel
  • gcc-toolset-12-runtime
  • gtk3-devel-docs
  • idm-pki-acme
  • idm-pki-base
  • idm-pki-base-java
  • idm-pki-ca
  • idm-pki-kra
  • idm-pki-symkey
  • libasan8
  • libdhash-devel
  • libestr-devel
  • liblockfile
  • libstoragemgmt-nfs-plugin
  • libverto-libev
  • make-latest (currently make43)
  • make43
  • make43-devel
  • open-vm-tools-salt-minion
  • openslp-devel
  • pam_wrapper
  • poppler-qt5
  • python-ldb-devel-common
  • python-sphinx-latex
  • python3-babeltrace
  • python3-cairo-devel
  • python3-idm-pki
  • python3-lasso
  • python3-ldb-devel
  • python3-talloc-devel
  • redhat-cloud-client-configuration
  • ssd-idp
  • systemd-resolved (technology preview)
  • tuned-profiles-postgresql
  • xmlstarlet
  • xxhash
  • yara
"},{"location":"release-notes/8.7-beta/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.7-beta/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.7-beta/#maven-38","title":"Maven 3.8","text":"

Maven 3.8 - module maven stream 3.8 was not introduced in this beta. Currently upstream didn't provide modules metadata for javapackages-tools:202201 and javapackages-bootstrap:202201 that are required to build Maven 3.8. The default profile for javapackages-tools:202201 is available in the Red Hat CodeReady-Builder repository but there is no modular metadata or RPMs.

We manage to create this module in not reproducible way and in worst case scenario we will provide specially crafted VM to build it for orgs that are using Gaia Build System. We decided not to put this module as we are rebuilding EuroLinux multiple times and not reproducible rebuilds are next to impossible to maintain.

"},{"location":"release-notes/8.7-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 2500 packages for each buildroot.

About 30 packages were updated for x86_64 buildroot.

"},{"location":"release-notes/8.7-beta/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 alpha.

"},{"location":"release-notes/8.7-beta/#eurolinux-91-beta","title":"EuroLinux 9.1 beta","text":"

As we released a brand new EuroLinux Desktop we are working on better test integrations with EuroLinux 9. This process takes time. We should deliver EuroLinux 9.1 beta before EuroLinux 9.1 GA.

"},{"location":"release-notes/8.7-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO, (secondary download link)
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.7 beta Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.7/","title":"EuroLinux 8.7 Release Notes","text":"

This version\u2019s code name is Brussels - the capital city of Belgium and the heart of European Union.

"},{"location":"release-notes/8.7/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: Ruby 3.1 - module ruby stream 3.1
  • New: Mercurial 6.2 - module mercurial stream 6.2
  • New: Node.js 18 - module nodejs stream 18
  • Redis 6 - module redis:6 was updated from version 6.0 to 6.2.7
"},{"location":"release-notes/8.7/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.6:

  • New: GCC-Toolset-12 - toolset gcc-toolset-12
  • New: Dotnet 7.0 - Dotnet 7.0 packages
  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.62.1 from 1.58.1
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 14.0.0 from 13.0.1
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.18.4 from 1.17.7
"},{"location":"release-notes/8.7/#containers","title":"Containers","text":"
  • Containers tools module containers-tools stream rhel was heavily updated
  • Containers tools module containers-tools stream 4.0 was heavily updated
"},{"location":"release-notes/8.7/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • NSS no longer support RSA keys shorter than 1023 bits and won't work with such keys.
  • Updated SCAP security guilde with new sysctl, pampwquality, grub2 rules.
  • fapolicyd rebased to 1.1.3
"},{"location":"release-notes/8.7/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • QT5 toolchain and utilities were updated from 5.15.2 to 5.15.3
  • Opencryptoki was updated to version 3.18.0 from 3.17.0
  • Libva was updated to version 2.13.0 from 2.5.0
  • Chrony was updated to version 4.2 from 4.1
  • Unbound was updated to version 1.16.2 from 1.7.3
  • Fapolicyd rebased to 1.1.3 from 1.1
  • Mariadb-java-client rebased to version 2.7.1 from 2.2.5
  • open-vm-tools rebased to 12.0.5 from 11.3.5
"},{"location":"release-notes/8.7/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • Multiple qt5-docs packages
  • aardvark-dns
  • anaconda-widgets-devel
  • aspnetcore-runtime-7.0
  • aspnetcore-targeting-pack-7.0
  • dotnet-apphost-pack-7.0
  • dotnet-hostfxr-7.0
  • dotnet-sdk-7.0-source-built-artifacts
  • egl-utils
  • frr-selinux
  • fstrm-utils
  • gcc-plugin-annobin
  • gcc-toolset-12
  • gcc-toolset-12-annobin-annocheck
  • gcc-toolset-12-annobin-docs
  • gcc-toolset-12-annobin-plugin-gcc
  • gcc-toolset-12-binutils
  • gcc-toolset-12-binutils-devel
  • gcc-toolset-12-binutils-gold
  • gcc-toolset-12-build
  • gcc-toolset-12-dwz
  • gcc-toolset-12-gcc
  • gcc-toolset-12-gcc-c++
  • gcc-toolset-12-gcc-gfortran
  • gcc-toolset-12-gcc-plugin-devel
  • gcc-toolset-12-gdb
  • gcc-toolset-12-libasan-devel
  • gcc-toolset-12-libatomic-devel
  • gcc-toolset-12-libgccjit
  • gcc-toolset-12-libgccjit-devel
  • gcc-toolset-12-libgccjit-docs
  • gcc-toolset-12-libitm-devel
  • gcc-toolset-12-liblsan-devel
  • gcc-toolset-12-libstdc++-devel
  • gcc-toolset-12-libstdc++-docs
  • gcc-toolset-12-libtsan-devel
  • gcc-toolset-12-libubsan-devel
  • gcc-toolset-12-runtime
  • gtk3-devel-docs
  • idm-pki-acme
  • idm-pki-base
  • idm-pki-base-java
  • idm-pki-ca
  • idm-pki-kra
  • idm-pki-symkey
  • libasan8
  • libdhash-devel
  • libestr-devel
  • liblockfile
  • libstoragemgmt-nfs-plugin
  • libverto-libev
  • make-latest (currently make43)
  • make43
  • make43-devel
  • open-vm-tools-salt-minion
  • openslp-devel
  • pam_wrapper
  • poppler-qt5
  • python-ldb-devel-common
  • python-sphinx-latex
  • python3-babeltrace
  • python3-cairo-devel
  • python3-idm-pki
  • python3-lasso
  • python3-ldb-devel
  • python3-talloc-devel
  • redhat-cloud-client-configuration
  • ssd-idp
  • systemd-resolved (technology preview)
  • tuned-profiles-postgresql
  • xmlstarlet
  • xxhash
  • yara
"},{"location":"release-notes/8.7/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.7/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.7/#new-vault-policy","title":"New vault policy","text":"

With feedback from community we decided to add the -last to the EuroLinux 8.6 vaulted versions that represents the last snapshot of the EuroLinux 8.6. More about vault policy here.

"},{"location":"release-notes/8.7/#smaller-base-repositories","title":"Smaller base repositories","text":"

Until now we keeped all produced versions of the same package in base repositories. Upstream policy is to keep only selected versions and the rest in the vaults. It is reasonable as saves a internet bandwith, and put much less stress on the mirroring sites. From EuroLinux 8.7 we will aim to use upstream schema for packages.

Older packages are still available at EuroLinux Vault.

"},{"location":"release-notes/8.7/#installation-from-baseurl-with-treeinfo","title":"Installation from baseurl with .treeinfo","text":"

EuroLinux 8.7 is first release that officially supports the installation from URL leveraging .treeinfo files.

"},{"location":"release-notes/8.7/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 2500 packages for each buildroot.

About 30 packages were updated for x86_64 buildroot.

"},{"location":"release-notes/8.7/#gaia-build-system","title":"Gaia build system","text":"

Gaia build system is still in the 3.0 alpha.

"},{"location":"release-notes/8.7/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO, (secondary download link)
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.7 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.8-beta/","title":"EuroLinux 8.8 Beta Release Notes","text":"

This version\u2019s code name is Sofia - the capital city of Bulgaria. The Beta version will allow us to provide EuroLinux 8.8 faster.

Major changes in EuroLinux 8.8 Beta:

"},{"location":"release-notes/8.8-beta/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: Python 3.11 - available as regular RPM packages
  • New: Nginx 1.22 - available as a module
  • New: PostgreSQL 15 - available as a module
  • New: Swig 4.1 - available as a module
  • New: jaxb 4 - available as a module

The following components have been upgraded:

  • Git 2.39.1
  • Git LFS 3.2.0
"},{"location":"release-notes/8.8-beta/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 8.8:

  • PCP 5.3.7
  • Grafana 7.5.15
"},{"location":"release-notes/8.8-beta/#kernel-version","title":"Kernel version","text":"

EuroLinux 8.8 Beta is distributed with the kernel version 4.18.0-477.

"},{"location":"release-notes/8.8-beta/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following performance tools and debuggers have been updated in EuroLinux 8.8:

  • Valgrind 3.19
  • SystemTap 4.8
  • Dyninst 12.1.0
  • elfutils 0.188
"},{"location":"release-notes/8.8-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.8:

  • GCC Toolset 12
  • LLVM Toolset 15.0.7
  • Rust Toolset 1.66
  • Go Toolset 1.19.4
"},{"location":"release-notes/8.8-beta/#security","title":"Security","text":"

The most crucial security changes include:

  • The Libreswan IPsec implementation was rebased to version 4.9.
  • Rsyslog TLS-encrypted logging now supports multiple CA files.
  • The systemd-socket-proxyd service now runs in its own SELinux domain due to an update to the SELinux policy.
  • The OpenSCAP security compliance utility was rebased to version 1.3.7.
  • With the fapolicyd software framework, you can now filter the RPM database.
"},{"location":"release-notes/8.8-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Podman now supports events for auditing.
  • The Container Tools packages have been updated.
  • The Aardvark and Netavark network stack now supports custom DNS server selection.
  • Podman Quadlet is now available as a Technology Preview.
  • The container-tools:3.0 module stream has been deprecated.
  • The CNI network stack has been deprecated.
"},{"location":"release-notes/8.8-beta/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • bind9.16-dnssec-utils
  • cifs-utils-devel
  • ecj
  • ipxe-bootimgs-aarch64
  • libnetapi
  • libsndfile-utils
  • libtraceevent
  • libtraceevent-devel
  • libtracefs
  • libtracefs-devel
  • libwpe
  • libwpe-devel
  • libxdp-devel
  • libxdp-static
  • lmdb
  • mpdecimal
  • mpdecimal++
  • mpdecimal-devel
  • mpdecimal-doc
  • nss_wrapper-libs
  • perl-Mail-AuthenticationResults
  • procps-ng-devel
  • python3-bind9.16
  • python3-scour
  • python3.11
  • python3.11-Cython
  • python3.11-PyMySQL
  • python3.11-attrs
  • python3.11-cffi
  • python3.11-charset-normalizer
  • python3.11-cryptography
  • python3.11-debug
  • python3.11-devel
  • python3.11-idle
  • python3.11-idna
  • python3.11-iniconfig
  • python3.11-libs
  • python3.11-lxml
  • python3.11-mod_wsgi
  • python3.11-numpy
  • python3.11-numpy-f2py
  • python3.11-packaging
  • python3.11-pip
  • python3.11-pip-wheel
  • python3.11-pluggy
  • python3.11-ply
  • python3.11-psycopg2
  • python3.11-psycopg2-debug
  • python3.11-psycopg2-tests
  • python3.11-pybind11
  • python3.11-pybind11-devel
  • python3.11-pycparser
  • python3.11-pyparsing
  • python3.11-pysocks
  • python3.11-pytest
  • python3.11-pyyaml
  • python3.11-requests
  • python3.11-rpm-macros
  • python3.11-scipy
  • python3.11-semantic_version
  • python3.11-setuptools
  • python3.11-setuptools-rust
  • python3.11-setuptools-wheel
  • python3.11-six
  • python3.11-test
  • python3.11-tkinter
  • python3.11-urllib3
  • python3.11-wheel
  • python3.11-wheel-wheel
  • rtla
  • samba-dc-libs
  • samba-dcerpc
  • texlive-translator
  • tomcat
  • tomcat-admin-webapps
  • tomcat-docs-webapp
  • tomcat-el-3.0-api
  • tomcat-jsp-2.3-api
  • tomcat-lib
  • tomcat-servlet-4.0-api
  • tomcat-webapps
  • tpm2-pkcs11
  • tpm2-pkcs11-tools
  • wpebackend-fdo
  • wpebackend-fdo-devel
"},{"location":"release-notes/8.8-beta/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.8-beta/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.8-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

About 150 packages were updated for x86_64 buildroot alone. We also added some of the packages (like python3.11 for i686) to the publicly available open buildroots.

"},{"location":"release-notes/8.8-beta/#known-issues","title":"Known issues","text":"
  • Due to compose error LibreOffice is available in the older version than one available in the RHEL 8.8 beta. The new version will land in main repos shortly.
"},{"location":"release-notes/8.8-beta/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 beta.

"},{"location":"release-notes/8.8-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.8 beta Release Notes (parts of our release notes are loosely based on this document).
"},{"location":"release-notes/8.8/","title":"EuroLinux 8.8 Release Notes","text":"

This version\u2019s code name is Sofia - the capital city of Bulgaria.

Major changes in EuroLinux 8.8:

"},{"location":"release-notes/8.8/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: Python 3.11 - available as regular RPM packages
  • New: Nginx 1.22 - available as a module
  • New: PostgreSQL 15 - available as a module
  • New: Swig 4.1 - available as a module
  • New: jaxb 4 - available as a module

The following components have been upgraded:

  • Git 2.39.1
  • Git LFS 3.2.0
"},{"location":"release-notes/8.8/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 8.8:

  • PCP 5.3.7
  • Grafana 7.5.15
"},{"location":"release-notes/8.8/#kernel-version","title":"Kernel version","text":"

EuroLinux 8.8 is distributed with the kernel version 4.18.0-477.

"},{"location":"release-notes/8.8/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following performance tools and debuggers have been updated in EuroLinux 8.8:

  • Valgrind 3.19
  • SystemTap 4.8
  • Dyninst 12.1.0
  • elfutils 0.188
"},{"location":"release-notes/8.8/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.8:

  • GCC Toolset 12
  • LLVM Toolset 15.0.7
  • Rust Toolset 1.66
  • Go Toolset 1.19.4
"},{"location":"release-notes/8.8/#security","title":"Security","text":"

The most crucial security changes include:

  • The Libreswan IPsec implementation was rebased to version 4.9.
  • Rsyslog TLS-encrypted logging now supports multiple CA files.
  • The systemd-socket-proxyd service now runs in its own SELinux domain due to an update to the SELinux policy.
  • The OpenSCAP security compliance utility was rebased to version 1.3.7.
  • With the fapolicyd software framework, you can now filter the RPM database.
"},{"location":"release-notes/8.8/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Podman now supports events for auditing.
  • The Container Tools packages have been updated.
  • The Aardvark and Netavark network stack now supports custom DNS server selection.
  • Podman Quadlet is now available as a Technology Preview.
  • The container-tools:3.0 module stream has been deprecated.
  • The CNI network stack has been deprecated.
"},{"location":"release-notes/8.8/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • bind9.16-dnssec-utils
  • cifs-utils-devel
  • ecj
  • ipxe-bootimgs-aarch64
  • libnetapi
  • libsndfile-utils
  • libtraceevent
  • libtraceevent-devel
  • libtracefs
  • libtracefs-devel
  • libwpe
  • libwpe-devel
  • libxdp-devel
  • libxdp-static
  • lmdb
  • mpdecimal
  • mpdecimal++
  • mpdecimal-devel
  • mpdecimal-doc
  • nss_wrapper-libs
  • perl-Mail-AuthenticationResults
  • procps-ng-devel
  • python3-bind9.16
  • python3-scour
  • python3.11
  • python3.11-Cython
  • python3.11-PyMySQL
  • python3.11-attrs
  • python3.11-cffi
  • python3.11-charset-normalizer
  • python3.11-cryptography
  • python3.11-debug
  • python3.11-devel
  • python3.11-idle
  • python3.11-idna
  • python3.11-iniconfig
  • python3.11-libs
  • python3.11-lxml
  • python3.11-mod_wsgi
  • python3.11-numpy
  • python3.11-numpy-f2py
  • python3.11-packaging
  • python3.11-pip
  • python3.11-pip-wheel
  • python3.11-pluggy
  • python3.11-ply
  • python3.11-psycopg2
  • python3.11-psycopg2-debug
  • python3.11-psycopg2-tests
  • python3.11-pybind11
  • python3.11-pybind11-devel
  • python3.11-pycparser
  • python3.11-pyparsing
  • python3.11-pysocks
  • python3.11-pytest
  • python3.11-pyyaml
  • python3.11-requests
  • python3.11-rpm-macros
  • python3.11-scipy
  • python3.11-semantic_version
  • python3.11-setuptools
  • python3.11-setuptools-rust
  • python3.11-setuptools-wheel
  • python3.11-six
  • python3.11-test
  • python3.11-tkinter
  • python3.11-urllib3
  • python3.11-wheel
  • python3.11-wheel-wheel
  • rtla
  • samba-dc-libs
  • samba-dcerpc
  • texlive-translator
  • tomcat
  • tomcat-admin-webapps
  • tomcat-docs-webapp
  • tomcat-el-3.0-api
  • tomcat-jsp-2.3-api
  • tomcat-lib
  • tomcat-servlet-4.0-api
  • tomcat-webapps
  • tpm2-pkcs11
  • tpm2-pkcs11-tools
  • wpebackend-fdo
  • wpebackend-fdo-devel
"},{"location":"release-notes/8.8/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.8/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.8/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

About 150 packages were updated for x86_64 buildroot alone. We also added some of the packages (like python3.11 for i686) to the publicly available open buildroots.

"},{"location":"release-notes/8.8/#known-issues","title":"Known issues","text":"
  • Java packages requires build with portable java version. We need a little bit more time to compile it in reproducible manner.
"},{"location":"release-notes/8.8/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 beta.

"},{"location":"release-notes/8.8/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.8 Release Notes this is expected link to final Red Hat release notes. As we release our notes before Red Hat this link in moment of publication might be dead.
"},{"location":"release-notes/8.9-beta/","title":"EuroLinux 8.9 Beta Release Notes","text":"

This version\u2019s code name is Monako - a sovereign city-state in France. The Beta version will allow us to provide EuroLinux 8.9 safer and faster.

Major changes in EuroLinux 8.9 Beta:

"},{"location":"release-notes/8.9-beta/#kernel-version","title":"Kernel version","text":"

EuroLinux 8.9 Beta is distributed with the kernel version 4.18.0-513.

"},{"location":"release-notes/8.9-beta/#new-versions-programming-languages-web-and-database-servers","title":"New versions - Programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: NodeJS 20 - available as a module
  • New: GCC Toolset 13 - availabile as a software collection
  • New: Java-21-OpenJDK - available as rpms
"},{"location":"release-notes/8.9-beta/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following performance tools and debuggers have been updated in EuroLinux 8.9 beta:

  • Valgrind 3.21 from 3.19
  • SystemTap 4.9 from 4.8
  • elfutils 0.189 from 0.188
"},{"location":"release-notes/8.9-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.9 beta:

  • LLVM Toolset 16.0.6 - from 15.0.7
  • Rust Toolset 1.71.1 from 1.66
  • Go Toolset 1.20.6 from 1.19.4
"},{"location":"release-notes/8.9-beta/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 8.9:

  • Grafana 9.2.10
"},{"location":"release-notes/8.9-beta/#security","title":"Security","text":"

The most crucial security changes include:

  • Kernel 4.18.0-513.1.1 support AutoIRBS.
  • OpenSCAP rebased to 1.3.8
  • SCAP ANSSI-BP-028 security profiles updated to version 2.0
  • Perl module HTTP::Tiny verifies SSL/TLS certificate by default.
"},{"location":"release-notes/8.9-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Postfix now supports SRV DNS records.
  • iproute updated to version 6.2.0
  • sos updated to version 4.6
"},{"location":"release-notes/8.9-beta/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repositories for this release:

  • avahi-tools
  • gcc-toolset-13
  • gcc-toolset-13-annobin-annocheck
  • gcc-toolset-13-annobin-docs
  • gcc-toolset-13-annobin-plugin-gcc
  • gcc-toolset-13-binutils
  • gcc-toolset-13-binutils-devel
  • gcc-toolset-13-binutils-gold
  • gcc-toolset-13-dwz
  • gcc-toolset-13-gcc
  • gcc-toolset-13-gcc-c++
  • gcc-toolset-13-gcc-gfortran
  • gcc-toolset-13-gcc-plugin-annobin
  • gcc-toolset-13-gcc-plugin-devel
  • gcc-toolset-13-gdb
  • gcc-toolset-13-libasan-devel
  • gcc-toolset-13-libatomic-devel
  • gcc-toolset-13-libgccjit
  • gcc-toolset-13-libgccjit-devel
  • gcc-toolset-13-libitm-devel
  • gcc-toolset-13-liblsan-devel
  • gcc-toolset-13-libquadmath-devel
  • gcc-toolset-13-libstdc++-devel
  • gcc-toolset-13-libstdc++-docs
  • gcc-toolset-13-libtsan-devel
  • gcc-toolset-13-libubsan-devel
  • gcc-toolset-13-offload-nvptx
  • gcc-toolset-13-runtime
  • gtk-vnc2-devel
  • gvnc-devel
  • java-21-openjdk
  • java-21-openjdk-demo
  • java-21-openjdk-demo-fastdebug
  • java-21-openjdk-demo-slowdebug
  • java-21-openjdk-devel
  • java-21-openjdk-devel-fastdebug
  • java-21-openjdk-devel-slowdebug
  • java-21-openjdk-fastdebug
  • java-21-openjdk-headless
  • java-21-openjdk-headless-fastdebug
  • java-21-openjdk-headless-slowdebug
  • java-21-openjdk-javadoc
  • java-21-openjdk-javadoc-zip
  • java-21-openjdk-jmods
  • java-21-openjdk-jmods-fastdebug
  • java-21-openjdk-jmods-slowdebug
  • java-21-openjdk-slowdebug
  • java-21-openjdk-src
  • java-21-openjdk-src-fastdebug
  • java-21-openjdk-src-slowdebug
  • java-21-openjdk-static-libs
  • java-21-openjdk-static-libs-fastdebug
  • java-21-openjdk-static-libs-slowdebug
  • libvma-utils
  • marisa-devel
  • python3-tomli
  • unifdef
"},{"location":"release-notes/8.9-beta/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.9-beta/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.9-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

About 50 packages were updated for x86_64 buildroot alone. We also added some of the packages (like python3.11 for i686) to the publicly available open buildroots.

"},{"location":"release-notes/8.9-beta/#known-issues","title":"Known issues","text":"
  • No known issues.
"},{"location":"release-notes/8.9-beta/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 and preparing 4.0 with branding kit.

"},{"location":"release-notes/8.9-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.9 beta Release Notes (parts of our release notes are loosely based on this document).
"},{"location":"release-notes/8.9/","title":"EuroLinux 8.9 Release Notes","text":"

This version\u2019s code name is Monako - a sovereign city-state in France.

Major changes in EuroLinux 8.9:

"},{"location":"release-notes/8.9/#kernel-version","title":"Kernel version","text":"

EuroLinux 8.9 is distributed with the kernel version 4.18.0-513.

"},{"location":"release-notes/8.9/#new-versions-programming-languages-web-and-database-servers","title":"New versions - Programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: NodeJS 20 - available as a module
  • New: GCC Toolset 13 - availabile as a software collection
  • New: Java-21-OpenJDK - available as rpms
"},{"location":"release-notes/8.9/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following performance tools and debuggers have been updated in EuroLinux 8.9:

  • Valgrind 3.21 from 3.19
  • SystemTap 4.9 from 4.8
  • elfutils 0.189 from 0.188
"},{"location":"release-notes/8.9/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.9:

  • LLVM Toolset 16.0.6 - from 15.0.7
  • Rust Toolset 1.71.1 from 1.66
  • Go Toolset 1.20.6 from 1.19.4
"},{"location":"release-notes/8.9/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 8.9:

  • Grafana 9.2.10
"},{"location":"release-notes/8.9/#security","title":"Security","text":"

The most crucial security changes include:

  • Kernel 4.18.0-513.1.1 support AutoIRBS.
  • OpenSCAP rebased to 1.3.8
  • SCAP ANSSI-BP-028 security profiles updated to version 2.0
  • Perl module HTTP::Tiny verifies SSL/TLS certificate by default.
"},{"location":"release-notes/8.9/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Postfix now supports SRV DNS records.
  • iproute updated to version 6.2.0
  • sos updated to version 4.6
"},{"location":"release-notes/8.9/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repositories for this release:

  • avahi-tools
  • gcc-toolset-13
  • gcc-toolset-13-annobin-annocheck
  • gcc-toolset-13-annobin-docs
  • gcc-toolset-13-annobin-plugin-gcc
  • gcc-toolset-13-binutils
  • gcc-toolset-13-binutils-devel
  • gcc-toolset-13-binutils-gold
  • gcc-toolset-13-dwz
  • gcc-toolset-13-gcc
  • gcc-toolset-13-gcc-c++
  • gcc-toolset-13-gcc-gfortran
  • gcc-toolset-13-gcc-plugin-annobin
  • gcc-toolset-13-gcc-plugin-devel
  • gcc-toolset-13-gdb
  • gcc-toolset-13-libasan-devel
  • gcc-toolset-13-libatomic-devel
  • gcc-toolset-13-libgccjit
  • gcc-toolset-13-libgccjit-devel
  • gcc-toolset-13-libitm-devel
  • gcc-toolset-13-liblsan-devel
  • gcc-toolset-13-libquadmath-devel
  • gcc-toolset-13-libstdc++-devel
  • gcc-toolset-13-libstdc++-docs
  • gcc-toolset-13-libtsan-devel
  • gcc-toolset-13-libubsan-devel
  • gcc-toolset-13-offload-nvptx
  • gcc-toolset-13-runtime
  • gtk-vnc2-devel
  • gvnc-devel
  • java-21-openjdk
  • java-21-openjdk-demo
  • java-21-openjdk-demo-fastdebug
  • java-21-openjdk-demo-slowdebug
  • java-21-openjdk-devel
  • java-21-openjdk-devel-fastdebug
  • java-21-openjdk-devel-slowdebug
  • java-21-openjdk-fastdebug
  • java-21-openjdk-headless
  • java-21-openjdk-headless-fastdebug
  • java-21-openjdk-headless-slowdebug
  • java-21-openjdk-javadoc
  • java-21-openjdk-javadoc-zip
  • java-21-openjdk-jmods
  • java-21-openjdk-jmods-fastdebug
  • java-21-openjdk-jmods-slowdebug
  • java-21-openjdk-slowdebug
  • java-21-openjdk-src
  • java-21-openjdk-src-fastdebug
  • java-21-openjdk-src-slowdebug
  • java-21-openjdk-static-libs
  • java-21-openjdk-static-libs-fastdebug
  • java-21-openjdk-static-libs-slowdebug
  • kmod-redhat-ahci
  • libvma-utils
  • marisa-devel
  • python3-tomli
  • unifdef
"},{"location":"release-notes/8.9/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.9/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.9/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

About 50 packages were updated for x86_64 buildroot alone. We also added some of the packages (like python3.11 for i686) to the publicly available open buildroots.

"},{"location":"release-notes/8.9/#known-issues","title":"Known issues","text":"
  • The AppStream is is about 15GiB. After long discussion and feedback we decided to keep it RHEL like way, where AppStream ISO is so full because it can be used to mount repositories used for mirroring and system. We are sorry but current state (mostly modularity) make things extremely hard to manage without breaking user experience.
  • There is huge problem with packages of java-21 not being reproducible.
"},{"location":"release-notes/8.9/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 and preparing 4.0 with branding kit.

"},{"location":"release-notes/8.9/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.9 Release Notes (parts of our release notes are loosely based on this document).
"},{"location":"release-notes/9.0-beta/","title":"EuroLinux 9 Beta Release Notes","text":""},{"location":"release-notes/9.0-beta/#technical-changes-between-eurolinux-9-and-8","title":"Technical changes between EuroLinux 9 and 8","text":""},{"location":"release-notes/9.0-beta/#installer-and-image-creation","title":"Installer and image creation","text":"

In EuroLinux 9.0 you can now use a standalone smart card to both authenticate yourself and gain additional privileges via sudo.

For the typical cases of installing EuroLinux with a medium such as a disk interactively a Quality of Life tweak has been implemented: the Anaconda installer will now automatically activate a network connection if applicable (will try to obtain an address via DHCP).

You can now optionally permit a password-based root login via SSH or completely lock the root account in any case. (While the former is not recommended due to security and disabled in EuroLinux 9 by default, there are valid use cases which we support with this single easy switch)

"},{"location":"release-notes/9.0-beta/#administrative-tools","title":"Administrative tools","text":"

If you want to rename a network interface, it is recommended that you use systemd link files. Check man 5 systemd.link for more information.

Alternatively udev rules may be used. If you need to use the ifcfg tool, please install the initscripts package first since it is not installed by default.

"},{"location":"release-notes/9.0-beta/#security","title":"Security","text":"

EuroLinux 9 provides OpenSSL version 3.0.0. Among other things, the concept of providers has been added, which means that different programs can use different security algorithms depending on their needs. You can imagine a situation where you have implemented solutions where one needs to use FIPS mode, while others need to maintain compliance with less secure policies.

This new version comes with a few security-related implications. The TLS-1.3 protocol requires that a PKCS#11 token supports raw RSA or RSA-PSS signatures.

If this is applicable to your scenario, please configure your software to use TLS up to TLS-1.2. Additionally please edit the file /etc/pki/tls/openssl.cnf and add this snippet at the very end of the [ crypto_policy ] section:

SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384\nMaxProtocol = TLSv1.2\n
"},{"location":"release-notes/9.0-beta/#developer-tools","title":"Developer tools","text":"

Some of the newest and most reliable technology stacks for developers are available in the repositories. These include:

  • Ant 1.10
  • GCC 11.2
  • Git 2.31
  • Go 1.17.5
  • LLVM 13
  • Maven 3.6.3
  • NodeJS 16
  • OpenJDK 17.0.1
  • PHP 8.0
  • Perl 5.32
  • Python 3.9
  • Ruby 3.0
  • Rust 1.56
  • SVN 1.14

The EuroLinux 9 platform ships glibc 2.34, which will provide 10 years of business-class stability support and the same amount of software binary interface compatibility time. As a result, programs written today will work the same way 10 years from now.

"},{"location":"release-notes/9.0-beta/#web-servers-and-database-engines","title":"Web servers and database engines","text":"

The following software is now available in our repositories:

HTTP servers:

  • Apache HTTPD 2.4
  • nginx 1.20

Proxy servers:

  • Squid 5.1
  • Varnish Cache 6.5

Database engines:

  • MariaDB 10.5.12
  • MySQL 8.0
  • PostgreSQL 13
  • Redis 6.2.6
"},{"location":"release-notes/9.0-beta/#security-policies-scap-security-guide","title":"Security Policies - SCAP Security Guide","text":"

The SCAP Security Guide has been updated to version 0.1.57 and made a number of changes from the counterpart we provide in EuroLinux 8:

  • Removed deprecated SCAP 1.2 source data streams.
  • Removed Bash profile remediation scripts to encourage more secure practices.
  • Although references for EuroLinux 8 have been left in place, the current package is designed for EuroLinux 9 - please kindly use packages for older releases if you need to check them for security policies.
"},{"location":"release-notes/9.0-beta/#gnome-40","title":"GNOME 40","text":"

GNOME has been updated to GNOME 40, a major step forward from EuroLinux 8's GNOME 3.32.2 , which includes many new features.

GNOME 40 includes a new and improved style, including the user interface, icons and desktop, The Activities look and feel provides a better experience when working, launching applications and arranging your personal workspace - workspaces are now arranged horizontally and the window overview and application grid are available vertically.

Many Quality of Life improvements have also been added, including:

  • running the software using a separate graphics card by right-clicking and selecting the appropriate option
  • The ability to mute notifications by selecting Do not disturb, which will appear as a separate button in the notification
  • Each screen can use a different refresh rate
  • The Activities program allows you to group application icons into folders using a drag-and-drop method
  • provide the ability to fractionally scale the display
"},{"location":"release-notes/9.0-beta/#notable-changes","title":"Notable changes","text":"

EuroLinux 9 provides refreshed and updated versions of the following packages:

  • m4 was updated from version 1.4.18 to 1.4.19
  • xdp-tools was updated from version 1.1.1 to 1.2.1
  • openchange was updated from 2.3 (version) 37 (release) to 2.3 (version) 38 (release)
  • tigervnc was updated from 1.11.0 (version) 20 (release) to 1.11.0 (version) 21 (release)

We expect updated versions of these packages to be available in the GA version of RHEL.

"},{"location":"release-notes/9.0-beta/#known-issues","title":"Known issues","text":"
  • Dotnet is not available at the moment. ~~Fix will arrive next week (the first week of march)~~ Update: It's planned for release with ARM Beta
  • We are waiting for Secure Boot; as you can see here https://github.com/rhboot/shim-review/issues, it is a long process
  • ~~There is only minimal ISO. AppStream complete ISO be published next week (the first week of April)~~ Update: AppStream ISO is available.
  • SCAP is not usable. A fix will arrive with EuroLinux 9 beta for ARM64
  • Until GA we will not rebuild other Enterprise Linuxes as it is pointless
  • There might be branding issues. If you find one, please create an issue in our public bug tracker
  • Migration scripts worked well in our tests. We were able to migrate from CentOS Stream 9 and Red Hat Enterprise Linux 9 beta. Because EuroLinux 9 and Red Hat Enterprise Linux 9 are in the beta stage, in the meantime, CentOS Stream 9 is heavily developed. We won't provide assistance and support for migration until the GA of EuroLinux 9.
  • EuroLinux 9 beta is not officially supported for production uses
  • We will update this section when fixes arrive, or new issues arise..
"},{"location":"release-notes/9.0-beta/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 1000 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.0-beta/#eurolinux-9-for-arm","title":"EuroLinux 9 for ARM","text":"

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It also allowed us to create x86_64, open build roots for i686 and x86_64 and batteries repos faster. Because creating EuroLinux 9 beta took us about four weeks, ARM should take about two weeks, after updating Gaia Stack, as we have all the necessary batteries and build orders figured out.

"},{"location":"release-notes/9.0-beta/#gaia-updates","title":"Gaia updates","text":"

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

There are new commands in Gaia:

  • new automodule-update Gaia subcommand, that well - automatically updates modules. No more manual config changes for modules
  • new automodule-merge Gaia subcommand. This command uses multiple input files (RH/EuroLinux modules files + result build + custom files) to create an updated module definition

Other notable changes:

  • Striga now creates automodule-* commands
  • Striga can create --partial commands for module rebuild
  • Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs
  • A lot of new configs for EuroLinux 9

We will also update hardware requirements for rebuild, including reference build servers for ARM and PowerPC. The rebuilds will start with the release of EuroLinux 9. It will also require updated infrastructure.

"},{"location":"release-notes/9.0-beta/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9 beta

  • EuroLinux 9 Beta Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)
  • EuroLinux 9 Beta Container on the Docker Hub
  • EuroLinux 9 Beta Container on the Quay.io
"},{"location":"release-notes/9.0-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.0 beta Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.0/","title":"EuroLinux 9 Release Notes","text":""},{"location":"release-notes/9.0/#technical-changes-between-eurolinux-9-and-8","title":"Technical changes between EuroLinux 9 and 8","text":""},{"location":"release-notes/9.0/#installer-and-image-creation","title":"Installer and image creation","text":"

In EuroLinux 9.0 you can now use a standalone smart card to both authenticate yourself and gain additional privileges via sudo.

For the typical cases of installing EuroLinux with a medium such as a disk interactively a Quality of Life tweak has been implemented: the Anaconda installer will now automatically activate a network connection if applicable (will try to obtain an address via DHCP).

You can now optionally permit a password-based root login via SSH or completely lock the root account in any case. (While the former is not recommended due to security and disabled in EuroLinux 9 by default, there are valid use cases which we support with this single easy switch)

"},{"location":"release-notes/9.0/#administrative-tools","title":"Administrative tools","text":"

If you want to rename a network interface, it is recommended that you use systemd link files. Check man 5 systemd.link for more information.

Alternatively udev rules may be used. If you need to use the ifcfg tool, please install the initscripts package first since it is not installed by default.

"},{"location":"release-notes/9.0/#security","title":"Security","text":"

EuroLinux 9 provides OpenSSL version 3.0.0. Among other things, the concept of providers has been added, which means that different programs can use different security algorithms depending on their needs. You can imagine a situation where you have implemented solutions where one needs to use FIPS mode, while others need to maintain compliance with less secure policies.

This new version comes with a few security-related implications. The TLS-1.3 protocol requires that a PKCS#11 token supports raw RSA or RSA-PSS signatures.

If this is applicable to your scenario, please configure your software to use TLS up to TLS-1.2. Additionally please edit the file /etc/pki/tls/openssl.cnf and add this snippet at the very end of the [ crypto_policy ] section:

SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384\nMaxProtocol = TLSv1.2\n
"},{"location":"release-notes/9.0/#developer-tools","title":"Developer tools","text":"

Some of the newest and most reliable technology stacks for developers are available in the repositories. These include:

  • Ant 1.10
  • GCC 11.2
  • Git 2.31
  • Go 1.17.5
  • LLVM 13
  • Maven 3.6.3
  • NodeJS 16
  • OpenJDK 17.0.1
  • PHP 8.0
  • Perl 5.32
  • Python 3.9
  • Ruby 3.0
  • Rust 1.56
  • SVN 1.14

The EuroLinux 9 platform ships glibc 2.34, which will provide 10 years of business-class stability support and the same amount of software binary interface compatibility time. As a result, programs written today will work the same way 10 years from now.

"},{"location":"release-notes/9.0/#web-servers-and-database-engines","title":"Web servers and database engines","text":"

The following software is now available in our repositories:

HTTP servers:

  • Apache HTTPD 2.4
  • nginx 1.20

Proxy servers:

  • Squid 5.1
  • Varnish Cache 6.5

Database engines:

  • MariaDB 10.5.12
  • MySQL 8.0
  • PostgreSQL 13
  • Redis 6.2.6
"},{"location":"release-notes/9.0/#security-policies-scap-security-guide","title":"Security Policies - SCAP Security Guide","text":"

The SCAP Security Guide has been updated to version 0.1.57 and made a number of changes from the counterpart we provide in EuroLinux 8:

  • Removed deprecated SCAP 1.2 source data streams.
  • Removed Bash profile remediation scripts to encourage more secure practices.
  • Although references for EuroLinux 8 have been left in place, the current package is designed for EuroLinux 9 - please kindly use packages for older releases if you need to check them for security policies.
"},{"location":"release-notes/9.0/#gnome-40","title":"GNOME 40","text":"

GNOME has been updated to GNOME 40, a major step forward from EuroLinux 8's GNOME 3.32.2 , which includes many new features.

GNOME 40 includes a new and improved style, including the user interface, icons and desktop, The Activities look and feel provides a better experience when working, launching applications and arranging your personal workspace - workspaces are now arranged horizontally and the window overview and application grid are available vertically.

Many Quality of Life improvements have also been added, including:

  • running the software using a separate graphics card by right-clicking and selecting the appropriate option
  • The ability to mute notifications by selecting Do not disturb, which will appear as a separate button in the notification
  • Each screen can use a different refresh rate
  • The Activities program allows you to group application icons into folders using a drag-and-drop method
  • provide the ability to fractionally scale the display
"},{"location":"release-notes/9.0/#notable-changes","title":"Notable changes","text":"

EuroLinux 9 provides refreshed and updated versions of the following packages:

  • m4 was updated from version 1.4.18 to 1.4.19
  • xdp-tools was updated from version 1.1.1 to 1.2.1
  • openchange was updated from 2.3 (version) 37 (release) to 2.3 (version) 38 (release)
  • tigervnc was updated from 1.11.0 (version) 20 (release) to 1.11.0 (version) 21 (release)

We expect updated versions of these packages to be available in the GA version of RHEL.

"},{"location":"release-notes/9.0/#known-issues","title":"Known issues","text":"
  • We are waiting for Secure Boot; as you can see here https://github.com/rhboot/shim-review/issues, it is a long process
"},{"location":"release-notes/9.0/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 1000 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.0/#eurolinux-9-for-arm","title":"EuroLinux 9 for ARM","text":"

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It also allowed us to create x86_64, open build roots for i686 and x86_64 and batteries repos faster.

"},{"location":"release-notes/9.0/#gaia-updates","title":"Gaia updates","text":"

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

There are new commands in Gaia:

  • new automodule-update Gaia subcommand, that well - automatically updates modules. No more manual config changes for modules
  • new automodule-merge Gaia subcommand. This command uses multiple input files (RH/EuroLinux modules files + result build + custom files) to create an updated module definition

Other notable changes:

  • Striga now creates automodule-* commands
  • Striga can create --partial commands for module rebuild
  • Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs
  • A lot of new configs for EuroLinux 9

We will also update hardware requirements for rebuild, including reference build servers for ARM and PowerPC. The rebuilds will start with the release of EuroLinux 9. It will also require updated infrastructure.

"},{"location":"release-notes/9.0/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9

  • EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)
  • EuroLinux 9 Container on the Docker Hub
  • EuroLinux 9 Container on the Quay.io
"},{"location":"release-notes/9.0/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.0 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.1/","title":"EuroLinux 9.1 Release Notes","text":""},{"location":"release-notes/9.1/#major-changes-in-eurolinux-91","title":"Major changes in EuroLinux 9.1.","text":""},{"location":"release-notes/9.1/#installer-and-image-creation","title":"Installer and image creation","text":"

Image builder on-premise now supports:

  • Uploading images to GCP.
  • Customizing the /boot partition.
  • Pushing a container image directly to a registry.
  • Users can now customize their blueprints during the image creation process.

Installer support customization size of the /boot partition. -allow-ssh kickstart option allows ssh login as root user.

GRUB bootloader menu is hidden by default.

"},{"location":"release-notes/9.1/#security","title":"Security","text":"

EuroLinux 9.1 introduces Keylime, a remote machine attestation tool using the trusted platform module (TPM) technology. With Keylime, you can verify and continuously monitor the integrity of remote machines.

OpenSSH now supports setting minimum RSA key length. The option to be set is named RequiredRSASize. crypto-policies enforce minimum 2048-bit RSA key length for OpenSSH by default.

NSS no longer support RSA keys shorter than 1023bit.

SELinux user-space packages have been upgraded to version 3.4. Changes: - Improved relabeling performance through parallel relabeling - Support for SHA-256 in the semodule tool - New policy utilities in the libsepol-utils package

"},{"location":"release-notes/9.1/#command-line-tools","title":"Command-line tools","text":"

The following command-line tools have been updated in EuroLinux 9.1: - cronie, now supports a randomized time within range ~ - ReaR, now utilises new variables for executing commands before and after recovery - opencryptoki to version 3.18.0 - lsvpd to version 1.7.14 - libvpd to version 2.2.9 - sysctl supports same syntax for arguments as systemd-sysctl

EuroLinux 9.1 introduces a new package xmlstarlet with which you can parse, query, validate, transform and edit XML files.

"},{"location":"release-notes/9.1/#infrastructure-services","title":"Infrastructure services","text":"

The following infrastructure services tools have been updated in EuroLinux 9.1: - chrony to version 4.2 - unbound to version 1.16.2 - frr to version 8.2.2 - whois package now provides the /usr/bin/mkpasswd binary, which can be used to encrypt a password with the crypt C library interface.

"},{"location":"release-notes/9.1/#networking","title":"Networking","text":"

NetworkManager supports migrating connection profiles from the deprecated ifcfg format to keyfile format.

The MultiPath TCP (MPTCP) code in the kernel has been updated and upstream Linux 5.19.

NetworkManager now clearly indicates that WEP support is not available in EuroLinux 9.

"},{"location":"release-notes/9.1/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following components are now available as new module streams: - PHP 8.1 - Ruby 3.1 - Node.js 18

The Apache HTTP Server has been updated to version 2.4.53.

"},{"location":"release-notes/9.1/#compilers-and-development-tools","title":"Compilers and development tools","text":""},{"location":"release-notes/9.1/#updated-system-toolchain","title":"Updated system toolchain","text":"

The following system toolchain components have been updated in EuroLinux 9.1: - binutils 2.35.2 - GCC 11.2.1 - glibc 2.34

"},{"location":"release-notes/9.1/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated in EuroLinux 9.1: - GDB 10.2 - Valgrind 3.19 - SystemTap 4.7 - Dyninst 12.1.0 - elfutils 0.187

"},{"location":"release-notes/9.1/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 9.1: - Grafana 7.5.13 - PCP 5.3.7

"},{"location":"release-notes/9.1/#updated-compiler-toolsets","title":"Updated compiler toolsets","text":"

The following compiler toolsets have been updated in EuroLinux 9.1: - GCC Toolset 12 - Go Toolset 1.18 - Rust Toolset 1.62 - LLVM Toolset 14.0.6

"},{"location":"release-notes/9.1/#java-implementations-in-eurolinx-91","title":"Java implementations in EuroLinx 9.1","text":"

EuroLinux 9 AppStream repository includes: - java-11-openjdk - OpenJDK 11 Java Runtime Environment and the OpenJDK 11 Java Software Development Kit. - java-17-openjdk - OpenJDK 17 Java Runtime Environment and the OpenJDK 17 Java Software Development Kit. - java-1.8.0-openjdk - OpenJDK 8 Java Runtime Environment and the OpenJDK 8 Java Software Development Kit. - Maven 3.8 has been added as a module stream

"},{"location":"release-notes/9.1/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 1000 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.1/#eurolinux-9-for-arm","title":"EuroLinux 9 for ARM","text":"

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It also allowed us to create x86_64, open build roots for i686 and x86_64 and batteries repos faster. Because creating EuroLinux 9 beta took us about four weeks, ARM should take about two weeks, after updating Gaia Stack, as we have all the necessary batteries and build orders figured out.

"},{"location":"release-notes/9.1/#gaia-updates","title":"Gaia updates","text":"

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

There are new commands in Gaia: - new automodule-update Gaia subcommand, that well - automatically updates modules. No more manual config changes for modules - new automodule-merge Gaia subcommand. This command uses multiple input files (RH/EuroLinux modules files + result build + custom files) to create an updated module definition

Other notable changes: - Striga now creates automodule-* commands - Striga can create --partial commands for module rebuild - Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs - A lot of new configs for EuroLinux 9

We will also update hardware requirements for rebuild, including reference build servers for ARM and PowerPC. The rebuilds will start with the release of EuroLinux 9. It will also require updated infrastructure.

"},{"location":"release-notes/9.1/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9 beta - EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) - EuroLinux 9 Container on the Docker Hub - EuroLinux 9 Container on the Quay.io

"},{"location":"release-notes/9.1/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.1 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.2/","title":"EuroLinux 9.2 Release Notes","text":""},{"location":"release-notes/9.2/#major-changes-in-eurolinux-92","title":"Major changes in EuroLinux 9.2.","text":""},{"location":"release-notes/9.2/#security","title":"Security","text":"

Key security-related highlights:

  • The OpenSSL secure communications library was rebased to version 3.0.7.
  • SELinux user-space packages were updated to version 3.5.
  • Keylime was rebased to version 6.5.2
  • OpenSCAP was rebased to version 1.3.7.
  • SCAP Security Guide was rebased to version 0.1.66.
  • A new rule for idle session termination was added to SCAP.
  • Clevis now accepts external tokens.
  • Rsyslog TLS-encrypted logging now supports multiple CA files.
  • Rsyslog privileges are limited to minimize security exposure.
"},{"location":"release-notes/9.2/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following application are now available:

  • Python 3.11
  • PostgreSQL 15
  • nginx 1.22

The following components have been upgraded:

  • Git LFS to version 3.2.0
  • Git to version 2.39.1
"},{"location":"release-notes/9.2/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following system toolchain components have been updated in EuroLinux 9.2:

  • GCC 11.3.1
  • glibc 2.34
  • binutils 2.35.2
"},{"location":"release-notes/9.2/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated in EuroLinux 9.2:

  • elfutils 0.188
  • GDB 10.2
  • Valgrind 3.19
  • SystemTap 4.8
  • Dyninst 12.1.0
"},{"location":"release-notes/9.2/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 9.2:

  • PCP 6.0.1
  • Grafana 9.0.9
  • Updated compiler toolsets

The following compiler toolsets have been updated in EuroLinux 9.2:

  • GCC Toolset 12
  • Go Toolset 1.19.6
  • LLVM Toolset 15.0.7
  • Rust Toolset 1.66
"},{"location":"release-notes/9.2/#installer-and-image-creation","title":"Installer and image creation","text":"

Key highlights for image builder:

  • Image builder on-prem now offers a new and improved way to create blueprints and images in the image builder web console.
  • Creating customized files and directories in the /etc directory is now supported.
"},{"location":"release-notes/9.2/#java-implementations-in-eurolinux-9","title":"Java implementations in EuroLinux 9","text":"

The EuroLinux 9 AppStream repository includes:

The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime Environment and the OpenJDK 11 Java Software Development Kit. The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime Environment and the OpenJDK 17 Java Software Development Kit. The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime Environment and the OpenJDK 8 Java Software Development Kit.

"},{"location":"release-notes/9.2/#containers","title":"Containers","text":"

Notable changes include:

  • Podman now supports events for auditing.
  • Clients for sigstore signatures with Fulcio and Rekor are now available.
  • Podman Quadlet is now available as a Technology Preview.
  • Skopeo now supports generating sigstore key pairs.
  • The Container Tools packages have been updated.
  • Toolbox is now available.
  • The CNI network stack has been deprecated.
  • The Aardvark and Netavark networks stack now supports custom DNS server selection.
"},{"location":"release-notes/9.2/#known-issues","title":"Known issues","text":"

Due to changes in the build process, some java packages (java-1.8.0-openjdk, java-11-openjdk, java-17-openjdk) are not updated jet (TODO).

"},{"location":"release-notes/9.2/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 330 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.2/#eurolinux-9-for-arm","title":"EuroLinux 9 for ARM","text":"

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It also allowed us to create x86_64, open build roots for i686 and x86_64 and batteries repos faster. Because creating EuroLinux 9 took us about four weeks, ARM should take about two weeks, after updating Gaia Stack, as we have all the necessary batteries and build orders figured out.

"},{"location":"release-notes/9.2/#gaia-updates","title":"Gaia updates","text":"

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

There are new commands in Gaia: - new automodule-update Gaia subcommand, that well - automatically updates modules. No more manual config changes for modules - new automodule-merge Gaia subcommand. This command uses multiple input files (RH/EuroLinux modules files + result build + custom files) to create an updated module definition

Other notable changes: - Striga now creates automodule-* commands - Striga can create --partial commands for module rebuild - Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs - A lot of new configs for EuroLinux 9

We will also update hardware requirements for rebuild, including reference build servers for ARM and PowerPC. The rebuilds will start with the release of EuroLinux 9. It will also require updated infrastructure.

"},{"location":"release-notes/9.2/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9 - EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) - EuroLinux 9 Container on the Docker Hub - EuroLinux 9 Container on the Quay.io

"},{"location":"release-notes/9.2/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.2 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.3/","title":"EuroLinux 9.3 Release Notes","text":"

This version's code name is Riga - the capital of Latvia.

"},{"location":"release-notes/9.3/#major-changes-in-eurolinux-93","title":"Major changes in EuroLinux 9.3.","text":""},{"location":"release-notes/9.3/#security","title":"Security","text":"

Key security-related highlights:

  • Keylime was rebased to version 7.3.0.
  • OpenSSH was further migrated from the less secure SHA-1 message digest.
  • The pcsc-lite-ccid USB Chip/Smart Card Interface Device(CCID)) and Integrated Circuit Card Device (ICCD) driver was rebased to version 1.5.2.
  • SEtools, the collection of graphical tools, command-line tools, and libraries for SELinux policy analysis, was rebased to version 4.4.3.
  • OpenSCAP was rebased to version 1.3.8.
"},{"location":"release-notes/9.3/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following application are now available:

  • Redis 7
  • Node.js 20

Furthermore, the Apache HTTP Server has been updated to version 2.4.57.

The following components have been upgraded:

  • Git LFS to version 3.2.0
  • Git to version 2.39.1
"},{"location":"release-notes/9.3/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following system toolchain components have been updated:

  • GCC 11.4.1
"},{"location":"release-notes/9.3/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated:

  • Valgrind 3.21
  • SystemTap 4.9
  • elfutils 0.189
"},{"location":"release-notes/9.3/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated:

  • PCP 6.0.5
  • Grafana 9.2.10
"},{"location":"release-notes/9.3/#updated-compiler-toolsets","title":"Updated compiler toolsets","text":"

The following compiler toolsets have been updated in:

  • GCC Toolset 13
  • LLVM Toolset 16.0.6
  • Rust Toolset 1.71.1
  • Go Toolset 1.20.10
"},{"location":"release-notes/9.3/#java-implementations-in-eurolinux-9","title":"Java implementations in EuroLinux 9","text":"

The EuroLinux 9 AppStream repository includes:

  • The java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit.
  • The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime
  • Environment and the OpenJDK 11 Java Software Development Kit.
  • The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime
  • Environment and the OpenJDK 17 Java Software Development Kit.
  • The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime
  • Environment and the OpenJDK 8 Java Software Development Kit.
"},{"location":"release-notes/9.3/#known-issues","title":"Known issues","text":"

Due to evolution of build process updates for Java 21 OpenJDK and SCAP Security Guide are delayed now. They are going to be delivered soon.

"},{"location":"release-notes/9.3/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 330 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.3/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9 - EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) - EuroLinux 9 Container on the Docker Hub - EuroLinux 9 Container on the Quay.io

"},{"location":"release-notes/9.3/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.3 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.4/","title":"EuroLinux 9.4 Release Notes","text":"

This version's code name is San Marino - the capital of San Marino, the world's oldest republic.

"},{"location":"release-notes/9.4/#major-changes-in-eurolinux-94","title":"Major changes in EuroLinux 9.4.","text":""},{"location":"release-notes/9.4/#security","title":"Security","text":"

Key security-related highlights:

  • Rsyslog log processing system introduces customizable TLS/SSL encryption settings and additional capability dropping options.
  • The OpenSSL TLS toolkit adds a provider-specific configuration directory.
  • The Linux kernel cryptographic API (libkcapi) 1.4.0 introduces new tools and options. You can now specify target file names for hash calculations using the -T option.
  • The stunnel TLS/SSL tunneling service 5.71 provides many new features such as support for modern PostgreSQL clients.
"},{"location":"release-notes/9.4/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following application are now available:

  • MariaDB 10.11
  • nginx 1.24
  • PHP 8.2
  • PostgreSQL 16
  • Python 3.12

The following components have been upgraded:

  • Git LFS to version 3.4.1
  • Git to version 2.43.0
"},{"location":"release-notes/9.4/#compilers-and-development-tools","title":"Compilers and development tools","text":""},{"location":"release-notes/9.4/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated:

  • elfutils 0.190
  • SystemTap 5.0
  • Valgrind 3.22
"},{"location":"release-notes/9.4/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated:

  • PCP 6.2.0
"},{"location":"release-notes/9.4/#updated-compiler-toolsets","title":"Updated compiler toolsets","text":"

The following compiler toolsets have been updated:

  • GCC Toolset 13
  • Go Toolset 1.21.7
  • LLVM Toolset 17.0.6
  • Rust Toolset 1.75.1
"},{"location":"release-notes/9.4/#java-implementations-in-eurolinux-9","title":"Java implementations in EuroLinux 9","text":"

The EuroLinux 9 AppStream repository includes:

  • The java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit.
  • The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime
  • Environment and the OpenJDK 11 Java Software Development Kit.
  • The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime
  • Environment and the OpenJDK 17 Java Software Development Kit.
  • The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime
  • Environment and the OpenJDK 8 Java Software Development Kit.
"},{"location":"release-notes/9.4/#known-issues","title":"Known issues","text":"

Due to evolution of build process update for SCAP Security Guide are delayed now. They are going to be delivered soon.

"},{"location":"release-notes/9.4/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 330 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.4/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9:

  • EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)
  • EuroLinux 9 Container on the Docker Hub
  • EuroLinux 9 Container on the Quay.io
"},{"location":"release-notes/9.4/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.4 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/ELD/","title":"EuroLinux 9 Desktop","text":"

EuroLinux Desktop is a novelty in the operating system market. It combines the look and functionality of Windows\u00ae and macOS\u00ae with the reliability and security of a server-based Enterprise Linux distribution.

"},{"location":"release-notes/ELD/#overview","title":"Overview","text":"

EuroLinux Desktop is built upon the source code of Red Hat\u00ae Enterprise Linux\u00ae 9. However, it includes a number of changes to the user interface. These primarily concern the system's appearance and usability. GNOME extensions have been used for this purpose. In EuroLinux Desktop, they are pre-configured and available immediately after installation - \"out of the box.\" In addition, the Polish language version of EuroLinux Desktop fills in the gaps in the Polish translations of the extensions and GNOME.

"},{"location":"release-notes/ELD/#appearance-features","title":"Appearance & Features","text":"

In EuroLinux Desktop, there is a translucent dock (taskbar) at the bottom of the screen. It stores icons for favorite applications, notifications and running programs, a button that displays icons for all applications in high magnification, as well as date and time information. It is possible to change the position of the bar to the right, left or top of the desktop, as well as to customize it extensively. The user can customize its height, length, transparency, color, icon spacing and size. The system allows icons to be placed on the desktop as standard, and provides a window maximization and minimization function.

EuroLinux Desktop disables the overview mode and the hotcorner function, which displays the preview mode when you hover the mouse over the top left corner of the screen. When you right-click on the wallpaper, additional menu items appear (including New Text Document). Notification icons from instant messaging or email programs have also been added. EuroLinux Desktop lets you switch day/night themes with a single click on the moon icon in the dock, and allows you to set a schedule for automatic theme switching based on the time of day.

"},{"location":"release-notes/ELD/#multimedia","title":"Multimedia","text":"

EuroLinux Desktop supports many media file formats (mp3, mpg, wma, ts, opus, ogg, mp4, flac, aiff, acc, ac3, avi), as well as the open codecs used for the popular mkv (Matroska) video files. Each of these formats can be run in the default Totem/Videos system player.

"},{"location":"release-notes/ELD/#office-suite","title":"Office Suite","text":"

EuroLinux Desktop includes the LibreOffice suite of office applications. It includes a word processor, spreadsheet, presentation editor, vector graphics editor, mathematical formula editor and relational database management system.

"},{"location":"release-notes/ELD/#software","title":"Software","text":"

EuroLinux Desktop has been integrated with the Flathub repository, providing easy access to more than 2,000 free applications. They can be downloaded from the Software application and installed with a single click. The system also supports applications in AppImage format, the use of which is similar to programs with .exe or .msi extensions. However, in the case of EuroLinux Desktop, the AppImage application is always run from a non-privileged user. The system also allows the use of applications designed for Windows\u00ae, thanks to Steam\u00ae, Lutris or Wine.

"}]} \ No newline at end of file diff --git a/site/404.html b/site/404.html deleted file mode 100644 index e8d68fb..0000000 --- a/site/404.html +++ /dev/null @@ -1,1574 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- -

404 - Not found

- -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/HowTo/centos8-eol-solution/index.html b/site/HowTo/centos8-eol-solution/index.html deleted file mode 100644 index e5bcb88..0000000 --- a/site/HowTo/centos8-eol-solution/index.html +++ /dev/null @@ -1,1801 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - CentOS 8 End of Life - solution - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

CentOS 8 End of Life - solution

-

Introduction

-

This how-to provides a solution to the problem of CentOS 8 running out of -support.
-With the end of 2021, CentOS ended its life in its stable form -and started functioning as CentOS Stream, a development branch for Red Hat® -Enterprise Linux®. As a result, it stopped receiving proven, stable updates -and its use, especially in production environments, became risky. This is -a very serious problem for many companies and individuals around the world. So -there was an urgent need to find a new source of updates for CentOS in order -to keep it in the infrastructure. A complete solution to this problem is -support switching, that is, pointing to a new repository from which CentOS -will be downloading stable updates. Such a solution is offered by EuroLinux. -It is worth mentioning that both CentOS and RHEL and EuroLinux are systems -built on the same source code, so they provide the same functionality. They -differ mainly in branding.

-

The operation of switching support is simple, reasonably safe and completely -reversible. What is very important, it requires neither reinstallation of the -system nor the applications installed on it. The process consists of switching -the repository, installing the el-release package, updating the system and -reinstalling the system packages in-place. -After the in-place migration, CentOS will still be usable, even in production -environments.

-

All resources used in this tutorial can be found in the additional -resources section.

-

The solution

-

A project named eurolinux-migration-scripts has been created. It contains -among others a script that will take care of the migration automatically. Here -we describe, how to perform the switch successfully.

-

Preparations

-

It's vital that the system be updated to the newest release. Use the following -command:

-
sudo yum update -y
-
-

Running the migration script

-

Then download the latest production-ready -release -of the project containing the script. Unpack the release, visit the -unpacked directory and run the script - usually this will require -right-clicking in the current directory, using the 'Open in Terminal' option -and running this command:

-
sudo bash migrate2eurolinux.sh
-
-

Refer to the project's README for additional commands.

-

After the switch

-

Once the migration has finished, it's recommended to reboot your system:

-
sudo reboot
-
-

Once the system has rebooted, the migration process can be considered -complete.
-In order to quickly verify that it was carried out successfully, we -can check the distribution description:

-
cat /etc/el-release
-
-

As a result we should get a response about the distribution and latest -EuroLinux version.

-

Conclusion

-

As you can see, the process is quick and seamless. You can switch the -repository for RHEL, Oracle Linux, AlmaLinux, and Rocky Linux the same way. -In each case, the process will look almost identical.

-

If you have any questions or concerns, please submit them to the repository -linked in the additional resources section. Thank you.

-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/HowTo/create-iso-with-repositories/index.html b/site/HowTo/create-iso-with-repositories/index.html deleted file mode 100644 index 9db667f..0000000 --- a/site/HowTo/create-iso-with-repositories/index.html +++ /dev/null @@ -1,1759 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - How to create ISO file with EuroLinux repositories - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

How to create ISO file with EuroLinux repositories

-

Creating ISO that contains RPM repositories is a straightforward process. First -you have to mirror repositories locally - mirroring is described in Mirror -EuroLinux Locally How To.

-

To create an ISO file, you need mkiso command that is part of genisoimage -package. You can install it with the following command:

-
sudo yum install -y genisoimage
-
-

Creating ISO with repositories

-

In the example below, we create ISO from the repositories saved in /repos -directory the output is saved to /var/eurolinux-repos.iso. -

sudo mkisofs -R -J -o /var/eurolinux-repos.iso /repos/
-

-

This file could be:

-
    -
  • locally copied to the machine that will be using it
  • -
  • added to ISOs pool of Virtual Machine manager/orchestrator or cloud computing - platform of your choice
  • -
-

Mounting ISO from local file

-

Mounting local ISO file is as simple as:

-
sudo mount -o loop /PATH/TO/ISO /MOUNT/PATH
-
-

example:

-
sudo mount -o loop /var/eurolinux-repos.iso /mnt/mirror
-
-

Mounting ISO from virtual cd-rom device

-

Mounting CD-ROM device is as simple as:

-
sudo mount /dev/DEVICE /MOUNT/PATH
-
-

The following example has ISO mounted as CD-ROM device /dev/sr0:

-
sudo mount /dev/sr0 /mnt/mirror
-
-

Using locally mounted ISO with RPM repositories

-

To use the repositories, that the ISO file provides, create a proper .repo -file that resides inside /etc/yum.repos.d/ directory.

-

Here is an example /etc/yum.repos.d/local-iso.repo file for EuroLinux 7 and -the ISO image attached to /mnt/mirror directory.

-
[base]
-name = EuroLinux 7 x86_64 Base
-baseurl=file:///mnt/mirror/eurolinux-os-7/
-enabled=1
-# Disabled gpgcheck, enable if el-release is already installed on your system
-gpgcheck=0
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7
-
-[updates]
-name = EuroLinux 7 x86_64 Updates
-baseurl=file:///mnt/mirror/eurolinux-updates-7/
-enabled=1
-# Disabled gpgcheck, enable if el-release is already installed on your system
-gpgcheck=0
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7
-
- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/HowTo/docker/index.html b/site/HowTo/docker/index.html deleted file mode 100644 index f94176b..0000000 --- a/site/HowTo/docker/index.html +++ /dev/null @@ -1,1816 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Docker - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

Docker

-

How to set up your Docker Community Edition installation.

-

Introduction

-

Use cases

-

Consider the following examples:

-
    -
  • You want a standardized runtime environment across production, QA and - developer scenarios.
  • -
  • You want all the runtime environment's specification in a single file, what - is easy to manage through version control systems.
  • -
  • You want the environment to be reproducible. After all, it's just a matter of - building an image from the specification and once it's done it is already -self-documented on what steps were taken to cook the final image.
  • -
  • You prefer a layered architecture and the ability to cache artifacts across - several images and backup & restore the images easily.
  • -
-

Why use Docker containers over virtual machines?

-

In short: Docker containers utilize Linux's capabilities such as cgroups and -namespaces to create an isolated environment and do not virtualize hardware. -Therefore, they are way more lightweight than virtual machines and can be -brought up in a large scale in a blink of an eye rather than waiting for a -single virtual machine to boot.

-

For more information, take a look at our blog entry on the basics of -containerization.

-

System requirements

-

The following operating systems and architectures are covered by this guide:

-
    -
  • EuroLinux 8 on the x86_64 and aarch64 architecture.
  • -
  • EuroLinux 7 on the x86_64 architecture.
  • -
-

Make sure the containers you want to run are of the same architecture as your -machine.

-

If you need support with installation on the EuroLinux releases this guide does -not cover, please create an appropriate ticket.

-

Installation

-

EuroLinux 8

-

The following steps are based on Docker, Inc. official guide as of -2022.02.01. -We will just use the commands provided as snippets for a quick way of copying -& pasting one snippet for a successful installation.

-

The following snippet installs Docker on EuroLinux 8.6. Other releases may work -as well, but have not been tested. Once a new EuroLinux release is out, this -guide will be updated.

-
-

Docker installation removes podman and buildah

-

Please note that this operation will replace runc with containerd.io -and remove both podman and buildah.

-
-
sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
-which yum-config-manager || sudo yum install -y yum-utils
-sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
-sudo yum install -y docker-ce docker-ce-cli containerd.io --allowerasing
-sudo systemctl enable docker --now
-
-

EuroLinux 7

-

EuroLinux provides their own builds of Docker for EuroLinux 7.

-

Please prepare your EuroMan credentials and enable the -el-server-7-extras-x86_64 channel first, like so:

-
sudo rhn-channel -u "$el_euroman_user" -p "$el_euroman_password" -c el-server-7-extras-x86_64 -a
-
-

Then you are ready to install Docker:

-
sudo yum install -y docker
-sudo systemctl enable docker --now
-
-

What's next?

-

EuroLinux provides several Docker images for you to -use. They are publicly available and free -of charge. Take a look at our entry EuroLinux docker images are now -available -for more information. Additionally, we provide a quick guide for having the -images up and running in no time.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/HowTo/els/index.html b/site/HowTo/els/index.html deleted file mode 100644 index 1c68e3e..0000000 --- a/site/HowTo/els/index.html +++ /dev/null @@ -1,1719 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Migrate to EuroELS - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

Migrate to EuroELS

-

This guide is about how to switch your repositories to the ones provided by EuroLinux Extended Life Support.

-

Introduction

-

Enterprise Linuxes 6 ended their life a few years ago. Still, security updates can be provided by several vendors for a fee. That's where EuroELS comes in. You can extend the lifecycle of your Enterprise Linux up to the half of 2024.

-

How to migrate

-

First, make sure that your system is up to date. It should be CentOS 6.10 (minor version 10).

-
su
-yum update -y
-
-

Second, in accordance with good practice, we recommend backing up your machine.

-

Please download the migration script available at this location:

-

https://github.com/EuroLinux/eurolinux-migration-scripts.git

-
wget https://github.com/EuroLinux/eurolinux-migration-scripts/archive/refs/heads/el6-only-switch-repos.zip
-
-

Please unpack the downloaded file:

-
unzip el6-only-switch-repos.zip
-
-

and navigate to the script's directory:

-
cd eurolinux-migration-scripts-el6-only-switch-repos
-
-

To start the switching process, just run the script with administrator privileges:

-
./migrate2eurolinux.sh
-
-

Once the command is executed, we'll get a recommendation to make a backup. Type YES to make the script continue.

-

The script will ask us about our EuroMan credentials. We provide our login and password when asked.

-

The repository switch has completed successfully. We can now update our Enterprise Linux 6 with the command:

-
yum update -y
-
- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/HowTo/ha-rs-enable-repository/index.html b/site/HowTo/ha-rs-enable-repository/index.html deleted file mode 100644 index 0024b0e..0000000 --- a/site/HowTo/ha-rs-enable-repository/index.html +++ /dev/null @@ -1,1856 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - How to install High Availability and Resilient Storage in EuroLinux 8 - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

How to install High Availability and Resilient Storage in EuroLinux 8

-

For EuroLinux 8.4, you should update the el-release package. The newer -version has resilient-storage and high-availability repositories saved in -the /etc/yum.repos.d/certify.repo file.

-
sudo yum update -y el-release
-
-
-

'certify-' prefix

-

Since EuroLinux 8.6 the 'certify-' prefixes in repo URLs and names are no -longer used. These URLs are and will be kept as the symbolic link for -backward compatibility. The certify.repo file will be used for the whole -EuroLinux 8 lifecycle.

-
-

If you cannot update the release package because the new el-release package errata -is not security-related, you might manually add the following to the -/etc/yum.repos.d/certify.repo

-
[high-availability]
-name = EuroLinux High Availability
-baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/HighAvailability/os
-enabled=0
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8
-
-[resilient-storage]
-name = EuroLinux Resilient Storage
-baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os
-enabled=0
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8
-
-

Enabling repositories permanently

-

Enabling High Availability and Resilient Storage repository manually

-

Use your favourite text editor and change enabled=0 to enabled=1 for -high-availability and resilient-storage repositories.

-

Before edit: -

[resilient-storage]
-name = EuroLinux Resilient Storage
-baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os
-enabled=0
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8
-

-

After Edit:

-
[resilient-storage]
-name = EuroLinux Resilient Storage
-baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os
-enabled=1
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8
-
-

You should do the identical changes for high-availability repositories.

-

Enabling High Availability and Resilient Storage repository with yum-config-manager

-

The yum-config-manager command is part of the yum-utils package. Firstly -let's install that package:

-
sudo yum install -y yum-utils
-
-

Then enable Resilient Storage and High Availability repository with the -following command:

-
sudo yum-config-manager --enable high-availability
-sudo yum-config-manager --enable resilient-storage
-
-

Installing HA and/or Resilient Storage

-

Both High Availability and Resilient Storage have rpm groups, so installing -them is trivial.

-

To install the High Availability add-on, invoke the following command:

-
sudo yum install -y @ha
-
-

To install the Resilient Storage add-on, invoke the following command:

-
sudo yum install -y @resilient-storage
-
-

Basic HA configuration

-

Configuring firewalld

-

Before configuring a firewall, it's appropriate to check if firewalld is actually -running. The standard systemctl is-active command is one of the options.

-
systemctl is-active firewalld
-
-

For a system that has firewalld started and enabled, you might use good -enough configuration with:

-
sudo firewall-cmd --permanent --add-service=high-availability
-sudo firewall-cmd --reload
-
-

Starting pcsd

-

After configuring a firewall, you can start and enable pcsd (PCS GUI and remote -configuration interface) with the following commands: -

sudo systemctl start pcsd.service
-sudo systemctl enable pcsd.service
-

-

To make a very basic test of the pcsd installation, we recommend setting -hacluster user password. As root user, you can, for example invoke:

-
# echo "secret-pass" | passwd hacluster --stdin
-
-

Then login into Pacemaker/Corosync configuration. Use the machine address on -port 2224 (example: https://MACHINE_IP:2224) in your browser. The -username is hacluster with password you set in previous step.

-
-

HTTPS Required

-

Web browser like Firefox and other programs like cURL will report -"Connection reset by peer" or "The connection was reset" when connecting -with cleartext HTTP. -

[root@test1 pcsd]# curl localhost:2224
-curl: (56) Recv failure: Connection reset by peer
-

-
-

From this point you can freely configure High Availability and Resilient -Storage. We recommend using upstream documentation provided in Additional Links -below.

- - - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/HowTo/install-epel-on-eurolinux/index.html b/site/HowTo/install-epel-on-eurolinux/index.html deleted file mode 100644 index 0a37615..0000000 --- a/site/HowTo/install-epel-on-eurolinux/index.html +++ /dev/null @@ -1,1711 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - How to Install and Enable EPEL repository on EuroLinux 8 - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

How to Install and Enable EPEL repository on EuroLinux 8

-

EPEL (Extra Packages for Enterprise Linux) repository is one of the most -popular third-party repositories for the Enterprise Linux family. From the 4th -November EuroLinux team included the original epel-release package from EPEL in -the BaseOS repo. It was the most voted small quality of life change during our -first community meeting. The package is re-signed with a EuroLinux GPG key, so -there is no need to accept an external key to install this particular package.

-

The package version will be checked and updated if necessary during minor -releases.

-
-

EPEL is an external repository that is community supported

-

As a company, we cannot provide proper care in terms of security, quality, -support and lifecycle standards on a third-party repository. Nevertheless, the -EPEL repository has a great history of community support.

-
-

Installing EPEL on EuroLinux

-

Installing EPEL on EuroLinux 8 and EuroLinux 7 is as simple as:

-
sudo yum install -y epel-release
-
-
-

EPEL is enabled by default

-

The base EPEL repository is enabled by default for modular (EuroLinux 8) -and non-modular packages. You can enable debuginfo and source packages in -respective /etc/yum.repos.d/epel*.repo file.

-
-

From this moment, you can install and then use all EPEL goodies like htop, wine or -createrepo.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/HowTo/migrate_to_rocky_linux/index.html b/site/HowTo/migrate_to_rocky_linux/index.html deleted file mode 100644 index 7c4c9d7..0000000 --- a/site/HowTo/migrate_to_rocky_linux/index.html +++ /dev/null @@ -1,1687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Procedure for migrating EuroLinux to RockyLinux - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

Procedure for migrating EuroLinux to RockyLinux

-
    -
  1. Preparation:
  2. -
  3. Ensure a stable and reliable internet connection throughout the entire migration process. This is critical for downloading scripts and packages.
  4. -
  5. Create a full backup of the system to be migrated.
  6. -
  7. Test the recovery procedure to ensure you can restore the system in case of interruption or errors during migration.
  8. -
  9. -

    It is recommended to run the migration in a session manager, e.g., tmux.

    -
  10. -
  11. -

    Download migration scripts:

    -
  12. -
  13. For EL8: -
    curl -O https://raw.githubusercontent.com/EuroLinux/rocky-tools/feature/vaulted_migration/migrate2rocky/migrate2rocky.sh
    -
  14. -
  15. -

    For EL9: -

    curl -O https://raw.githubusercontent.com/EuroLinux/rocky-tools/feature/vaulted_migration/migrate2rocky/migrate2rocky9.sh
    -

    -
  16. -
  17. -

    Migration:

    -
  18. -
  19. -

    Migrating EuroLinux 8 to RockyLinux 8: -

    sudo bash migrate2rocky.sh -r
    -

    -
  20. -
  21. -

    Migrating EuroLinux 9.4 to RockyLinux 9.4:

    -
      -
    • If RockyLinux has not yet released version 9.5: -
      sudo bash migrate2rocky9.sh -r
      -
    • -
    • If RockyLinux has already released version 9.5 or higher: -
      sudo bash migrate2rocky9.sh -rv 9.4
      -
    • -
    -
  22. -
- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/HowTo/mirror-eurolinux-locally/index.html b/site/HowTo/mirror-eurolinux-locally/index.html deleted file mode 100644 index 87100b7..0000000 --- a/site/HowTo/mirror-eurolinux-locally/index.html +++ /dev/null @@ -1,1985 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - How to set up internal EuroLinux RPM mirror - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

How to set up internal EuroLinux RPM mirror

-

This short how-to instructs how to set up your own internal EuroLinux mirror. -External (publicly available) mirrors should not be set up this way.

-

System requirements

-
    -
  • Internet connection for sync server is required
  • -
  • The firewall must allow connection to EuroLinux servers
  • -
  • For each version of EuroLinux, you need about 80 GB of storage
  • -
  • You have to install utilities like reposync and createrepo. The - following command will work on an Enterprise Linux 7 and 8: -
    # --skip-broken because depending on the version not all packages might be present
    -sudo yum install -y createrepo_c createrepo yum-utils dnf-utils --skip-broken
    -
  • -
-

Mirroring EuroLinux 9

-

Making a local mirrors for EuroLinux 8 and EuroLinux 9 is simple because:

-
    -
  • repositories are open
  • -
  • reposync can pull repository metadata, erratas, and modules files - automatically.
  • -
-
-

Use Enterprise Linux 9

-

These instructions have been tested to work properly on Enterprise -Linux 9 and Enterprise Linux 8.

-
-

First, let's create the directory where mirroring configuration will reside: -

sudo mkdir -p /etc/yum-mirror-config
-

-

Then, let's create configuration file for EuroLinux 9 mirroring -/etc/yum-mirror-config/mirror_yum_el9.conf with the contents:

-
[main]
-cachedir=/var/cache/yum/mirror/$basearch/$releasever
-keepcache=0
-debuglevel=2
-logfile=/var/log/mirror-yum-el9.log
-plugins=1
-exactarch=0
-obsoletes=0
-reposdir=/dev/null
-
-[baseos]
-name = EuroLinux BaseOS
-baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/BaseOS/os
-enabled=1
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9
-skip_if_unavailable=1
-
-[appstream]
-name = EuroLinux AppStream
-baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/AppStream/os
-enabled=1
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9
-skip_if_unavailable=1
-
-[crb]
-name = EuroLinux CRB
-baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/CRB/os
-enabled=1
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9
-skip_if_unavailable=1
-
-

Then invoke the command reposync with the following arguments:

-
reposync --downloadcomps --download-metadata -c /etc/yum-mirror-config/mirror_yum_el9.conf -p /repos
-
-

Mirroring EuroLinux 8

-

Making a local mirror for EuroLinux 8 and EuroLinux 9 is simple because:

-
    -
  • repositories are open
  • -
  • reposync can pull repository metadata, erratas, and modules files - automatically.
  • -
-
-

Use Enterprise Linux 8

-

These instructions have been tested to work properly on Enterprise -Linux 8. While everything may work well, it's not recommended to use -other versions.

-
-

First, let's create the file /etc/yum-mirror-config/mirror_yum.conf -with the contents:

-
[main]
-cachedir=/var/cache/yum/mirror/$basearch/$releasever
-keepcache=0
-debuglevel=2
-logfile=/var/log/mirror-yum.log
-plugins=1
-exactarch=0
-obsoletes=0
-reposdir=/dev/null
-
-[baseos]
-name = EuroLinux BaseOS
-baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/BaseOS/os
-enabled=1
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8
-skip_if_unavailable=1
-
-[appstream]
-name = EuroLinux AppStream
-baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/AppStream/os
-enabled=1
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8
-skip_if_unavailable=1
-
-[powertools]
-name = EuroLinux PowerTools
-baseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/PowerTools/os
-enabled=1
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8
-skip_if_unavailable=1
-
-

Then invoke the command reposync with the following arguments:

-
reposync --downloadcomps --download-metadata -c /etc/yum-mirror-config/mirror_yum.conf -p /repos
-
-

Mirroring EuroLinux 7

-
-

Use Enterprise Linux 7

-

These instructions have been tested to work properly on Enterprise -Linux 7. While everything may work well, it's not recommended to use -other versions.

-
-

The official way

-

EuroLinux 7 is not open-core; therefore, only organizations with a proper -license (EuroMan or Golden Key) can mirror it freely.

-
-

We know

-

We are well aware that it is possible to mirror repos even with a single -license. You can read about that below.

-
-

The official way to mirror EuroLinux repositories is the following:

-
    -
  • You need a proper subscription, like EuroMan or Golden Key
  • -
  • EuroLinux engineer will provide you with SSL certificates that we will name - repo.key and repo.crt and CA that we will name ca.crt
  • -
-

Create the directory /etc/yum-mirror-config/. -With the repokeys residing in that directory, create the file -/etc/yum-mirror-config/mirror_yum.conf with the contents:

-
[main]
-cachedir=/var/cache/yum/mirror/$basearch/$releasever
-keepcache=0
-debuglevel=2
-logfile=/var/log/mirror-yum.log
-exactarch=0
-obsoletes=0
-gpgcheck=0
-plugins=0
-reposdir=/dev/null
-
-[eurolinux-os-7]
-name=el7_x86_64_os
-baseurl=https://cdn.euro-linux.com/dist/eurolinux/server/7/x86_64/os/
-sslclientkey=/etc/yum-mirror-config/repo.key
-sslclientcrt=/etc/yum-mirror-config/repo.crt
-sslcacert=/etc/yum-mirror-config/ca.crt
-
-[eurolinux-updates-7]
-name=el7_x86_64_updates
-baseurl=https://cdn.euro-linux.com/dist/eurolinux/server/7/x86_64/updates/
-sslclientkey=/etc/yum-mirror-config/repo.key
-sslclientcrt=/etc/yum-mirror-config/repo.crt
-sslcacert=/etc/yum-mirror-config/ca.crt
-
-

Then invoke the command reposync with the following arguments:

-
reposync -d -m --download-metadata -c /etc/yum-mirror-config/mirror_yum.conf -p /repos
-
-

When the download finishes, the next step is to create repodata and enable -groups.

-
cd /repos/eurolinux-os-7/; createrepo . -g comps.xml
-cd /repos/eurolinux-updates-7/; createrepo . -g comps.xml
-
-
-

Info

-

Enabling updateinfo (erratas information) is a little bit tricky, because -firstly you have to find the newest updateinfo, unpack it, then invoke -modifyrepo script. It can be automated with the script below.

-
-
REPO_DIR=/repos/eurolinux-os-7/
-unset -v LAST_UI
-# finding the newest file
-for file in "$REPO_DIR"/*updateinfo.xml.gz; do
-  [[ "$file" -nt "$LAST_UI" ]] && LAST_UI=$file
-done
-# unpacking to updateinfo.xml file
-sudo gunzip -c "$LAST_UI"  > "$REPO_DIR/updateinfo.xml"
-# Depending on the system - some has modifrepo.py script some has "normal" command
-/usr/share/createrepo/modifyrepo.py "$REPO_DIR/updateinfo.xml"  "$REPO_DIR/repodata" || modifyrepo "$REPO_DIR/updateinfo.xml"  "$REPO_DIR/repodata"
-
-REPO_DIR=/repos/eurolinux-updates-7/
-unset -v LAST_UI
-for file in "$REPO_DIR"/*updateinfo.xml.gz; do
-  [[ $file -nt $LAST_UI ]] && LAST_UI=$file
-done
-sudo gunzip -c "$LAST_UI"  > "$REPO_DIR/updateinfo.xml"
-# Depending on the system - some has modifrepo.py script some has "normal" command
-/usr/share/createrepo/modifyrepo.py "$REPO_DIR/updateinfo.xml"  "$REPO_DIR/repodata" || modifyrepo "$REPO_DIR/updateinfo.xml"  "$REPO_DIR/repodata"
-
-

The unsupported way

-

There is also the possibility to mirror EuroLinux repositories even with a -single or even test subscription.

-
-

True Product – Real Support – Fair Price

-

We are faithful to our values. We also know that it's always possible to -cheat and not play fair. Please be aware that during support inqury, we -might check if your system is registered and supported. To this day, we -always had pleasure to work with honest companies - please don't ruin that.

-
-
-

Mirroring other distros

-

The instruction allows cloning other distros, including paid ones. If you -want to mirror paid Linux distribution, note that this might breach the -license/license agreement.

-
-

You can mirror EuroLinux or other Enterprise Linux repositories with the -following step:

-
    -
  • Register your system with rhn_register command for EuroLinux or another way - to mirror another system repositories.
  • -
-

Then run the following snippet as root:

-
reposync -d -m --download-metadata --plugins -r el-server-7-x86_64 -p /repos/
-# recreating repodata and updateinfo
-REPO_DIR=/repos/el-server-7-x86_64/
-cd /repos/el-server-7-x86_64/; createrepo . -g comps.xml
-unset -v LAST_UI
-for file in "$REPO_DIR"/*updateinfo.xml.gz; do
-  [[ $file -nt $LAST_UI ]] && LAST_UI=$file
-done
-sudo gunzip -c "$LAST_UI"  > "$REPO_DIR/updateinfo.xml"
-# Depending on the system - some has modifrepo.py script some has "normal" command
-/usr/share/createrepo/modifyrepo.py "$REPO_DIR/updateinfo.xml"  "$REPO_DIR/repodata" || modifyrepo "$REPO_DIR/updateinfo.xml"  "$REPO_DIR/repodata"
-
-

Mirroring EuroLinux 6 ELS

-

First, register your system to EuroLinux EuroMan with the migration scripts - use the el6-only-switch-repos branch for this.

-

Once the system has been registered and is receiving EL6 ELS updates, you can mirror the ELS packages with the following commands. Run them as root:

-
reposync -d -m --download-metadata --plugins -r els-6-x86_64 -p /repos/
-# recreating repodata and updateinfo
-REPO_DIR=/repos/els-6-x86_64/
-cd /repos/els-6-x86_64/; createrepo . -g comps.xml
-unset -v LAST_UI
-for file in "$REPO_DIR"/*updateinfo.xml.gz; do
-  [[ $file -nt $LAST_UI ]] && LAST_UI=$file
-done
-sudo gunzip -c "$LAST_UI"  > "$REPO_DIR/updateinfo.xml"
-# Depending on the system - some has modifrepo.py script some has "normal" command
-/usr/share/createrepo/modifyrepo.py "$REPO_DIR/updateinfo.xml"  "$REPO_DIR/repodata" || modifyrepo "$REPO_DIR/updateinfo.xml"  "$REPO_DIR/repodata"
-
- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/HowTo/vagrant-with-libvirt/index.html b/site/HowTo/vagrant-with-libvirt/index.html deleted file mode 100644 index 60a033a..0000000 --- a/site/HowTo/vagrant-with-libvirt/index.html +++ /dev/null @@ -1,1800 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Vagrant with vagrant-libvirt plugin on Enterprise Linux 8 - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

Vagrant with vagrant-libvirt plugin on Enterprise Linux 8

-

Introduction

-

This guide covers the installation of libvirt and related tools along with the -Vagrant plugin that allows using libvirt as a provider. This has been tested on -a clean installation of EuroLinux 8.5 - only Vagrant has been installed already -as described in Vagrant jumpstart.

-

Terminology

-
    -
  • QEMU - a generic machine emulator
  • -
  • KVM - a virtualisation solution that is native to Linux. Used by QEMU to - achieve near-native performances by executing the guest code directly on - the host CPU
  • -
  • libvirt - a management suite for several hypervisors
  • -
-

While libvirt can manage many virtualisation solutions, in the context of this -document libvirt refers to: QEMU with KVM managed by libvirt.

-

Why prefer libvirt over providers such as VirtualBox?

-

As mentioned, KVM is a native virtualisation solution to Linux. This means a -significant performance -boost -when compared to other providers at the slight cost of portability - if you run -Linux only, then this is your solution of choice!

-

If you have never used libvirt before and just heard about it in this how-to, -there are several goodies worth mentioning. As an example unrelated to Vagrant: -Virt-Manager allows you to get a similar GUI experience out of KVM as that of -e.g. VirtualBox, it is fully Free Software (no worrying about licensing -shenanigans) and is more modular - in fact, there is a libvirt VirtualBox -driver out there.

-

Install the plugin

-

Normally one would invoke a single command: vagrant plugin install -vagrant-libvirt and the plugin would work well out-of-the-box. This is not the -case for Linux distributions from the Enterprise Linux family and Upstream is -aware of that, but as of -today (2021.12.21) it doesn't appear to be resolved.

-

Because of that, you'll need to build additional components and use them with -your Vagrant installation. The following procedure covers all of this and has -been tested to work well with EuroLinux 8.5.

-

Use these commands:

-
[ "$(command -v vagrant)" ] || \
-( read -p "Install Vagrant first before running the following commands" \
-  && exit 1 )
-
-sudo dnf groupinstall "Development Tools" "Virtualization Host" -y
-sudo dnf install cmake libvirt-devel ruby-devel -y
-
-mkdir krb5
-cd krb5
-wget https://vault.cdn.euro-linux.com/sources/eurolinux/8/baseos/x86_64/Packages/k/krb5-1.18.2-8.el8.src.rpm
-rpm2cpio krb5*.src.rpm | cpio -idmv
-tar xf krb5*.tar.gz
-cd krb5*/src
-./configure
-make
-sudo cp -P lib/crypto/libk5crypto.* /opt/vagrant/embedded/lib64/
-cd
-
-mkdir libssh
-cd libssh
-wget https://vault.cdn.euro-linux.com/sources/eurolinux/8/baseos/x86_64/Packages/l/libssh-0.9.4-3.el8.src.rpm
-rpm2cpio libssh*.src.rpm | cpio -idmv
-tar xf libssh*.tar.xz
-mkdir build
-cd build
-cmake ../libssh-*/ -DOPENSSL_ROOT_DIR=/opt/vagrant/embedded/
-make
-sudo cp lib/libssh* /opt/vagrant/embedded/lib64
-cd
-
-vagrant plugin install vagrant-libvirt && rm -rf krb5 libssh
-sudo usermod -a -G libvirt $USER
-
-

Next, log out from all of your sessions (graphical and text) and log in again. -From now on you should be able to run Vagrant boxes with libvirt if all -requirements have been satisfied, e.g. you don't have any other providers -enabled (an equivalent of deploying this guide on a clean installation).

-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/HowTo/virtualbox/index.html b/site/HowTo/virtualbox/index.html deleted file mode 100644 index 3366dad..0000000 --- a/site/HowTo/virtualbox/index.html +++ /dev/null @@ -1,1877 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - VirtualBox - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

VirtualBox

-

How to set up your VirtualBox installation.

-

Introduction

-

Use cases

-

Consider the following examples:

-
    -
  • You use software that doesn't work on your EuroLinux 8 installation.
  • -
  • You want to try out some potentially dangerous actions and don't want to - endanger your machine.
  • -
  • You develop some awesome software and want to test it on several systems for - compatibility
  • -
  • You want an easily reproducible environment that works the same way on every - person's machine
  • -
  • You need a multi-machine laboratory, maybe with several different systems and - don't have the resources for a physical equipment
  • -
-

Why use it over other virtualisation providers?

-

VirtualBox is the provider with a copyleft license and a focus on -interoperability when it comes to supporting different platforms. This allows -you to cooperate with someone running a different operating system and when -exchanging documentation - once written it's applicable to anyone that can run -the software.
-New VirtualBox versions usually support older operating systems too. One can -enjoy the new features on a system, which has recently reached its End of Life, -which can be indispensable for a company that can't migrate yet.

-

System requirements

-

A brief documentation is available at -Upstream's.

-

Your machine shall support hardware virtualisation. If it doesn't, you either -need to perform additional troubleshooting - e.g. enable virtualisation in your -machine's BIOS settings.

-
[ $(grep -cE 'vmx|svm' /proc/cpuinfo) -gt 0 ] && echo "OK"
-
-

Make sure you're running EuroLinux 8 on x86_64 architecture rather than ARM.

-
[ "$(arch)" == "x86_64" ] && echo "OK"
-
-

Installation on EuroLinux 8

-

As of today (2 September 2021), 6.1 is the main VirtualBox branch and this is -the one we install in this guide.
-Assuming your account has been made an administrator during the system -installation process, simply run these commands for an installation:

-
sudo dnf groupinstall "Development Tools" -y
-sudo dnf config-manager \
-  --add-repo=https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo
-sudo dnf install VirtualBox-6.1 -y
-
-

VirtualBox should be ready to use!

-

USB devices

-

If you want VirtualBox to support USB devices for your system account, run -this command as well:

-
sudo usermod -a -G vboxusers $USER
-
-

then log out of your graphical session and log in again.

-

Extension Pack

-

VirtualBox doesn't support certain technologies out-of-the-box, e.g. USB -2.0/3.0 or builtin disk encryption, among others. If you want them to be -supported, you will need VirtualBox Extension Pack. Make sure you have read -its license and understand -its implications - you're responsible for compliance.
-You may want to read Upstream's -FAQ for a quick start.

-

Once you're sure you'll be able to comply with the licensing terms, run these -commands to install the Extension Pack:

-
export vbox_version="$(VBoxManage --version | cut -d'r' -f 1)"
-wget "https://download.virtualbox.org/virtualbox/$vbox_version/Oracle_VM_VirtualBox_Extension_Pack-$vbox_version.vbox-extpack"
-yes | sudo VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-$vbox_version.vbox-extpack
-
-

Troubleshooting

-

I can't enable hardware virtualisation and prefer software emulation

-

As Upstream -says, -for software mode you'll need VirtualBox branch 6.0 or older.

-
-

Please also use version 6.0 if you need to run VMs with software -virtualization, as this has been discontinued in 6.1.

-
-

Additional resources

-

Upstream's release pages

-

If you prefer a manual download, check out Upstream's Linux release -pages and use the one they -provide for RHEL 8.

-

RPM Fusion

-

Alternatively you can use RPM Fusion repository for -installation. The software might differ in branding a bit and only the latest -release is provided. Use these commands:

-
sudo dnf localinstall \
-  https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
-sudo dnf localinstall --nogpgcheck \
-  https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm -y
-sudo dnf install VirtualBox -y
-sudo akmods --kernels $(uname -r) && sudo systemctl restart vboxdrv.service
-
- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/HowTo/z-documentation-markdown/index.html b/site/HowTo/z-documentation-markdown/index.html deleted file mode 100644 index d3f132c..0000000 --- a/site/HowTo/z-documentation-markdown/index.html +++ /dev/null @@ -1,1879 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Quick markdown and extensions guide - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

Quick markdown and extensions guide

-

The first part of this guide is loosely based on Adam Pritchard markdown-here -cheatsheet. -We include it here for contributors as reference and show how different pieces -will be styled. If you are familiar with markdown, and want to skip to this -project specific extensions they start with Admonition:

-

Headers

-

Headers are created with #. -

# H1 This is is reserved for page title/name
-## H2 [Contribution guide] is h2
-### H3 [Headers] is h3
-...
-###### H6
-

-

This is fourth header

-
This is fifth header
-
This is sixth header
-

Headers are essentials, because table of content is based on them.

-

Emphasis

-

Emphasis, aka italics, with *asterisks* or _underscores_. 
-
-Strong emphasis, aka bold, with **asterisks** or __underscores__.
-
-Combined emphasis with **asterisks and _underscores_**.
-
-Strikethrough uses two tildes. ~~Scratch this.~~
-
-Emphasis, aka italics, with asterisks or underscores.

-

Strong emphasis, aka bold, with asterisks or underscores.

-

Combined emphasis with asterisks and underscores.

-

Strikethrough uses two tildes. ~~Scratch this.~~

-

List

-
-

Proper markdown required

-

MK-Docs has proper markdown list ordering that is 1 to 1 with markdown standard.

-

See: Python Markdown Issue 3

-

TLDR: You have indent sub-list and paragraps with 4 spaces

-
-

(In this example, leading and trailing spaces are shown with with dots: ⋅) -

1. First ordered list item
-2. Another item
-⋅⋅⋅⋅* Unordered sub-list. 
-1. Actual numbers don't matter, just that it's a number
-⋅⋅⋅⋅1. Ordered sub-list
-4. And another item.
-
-⋅⋅⋅⋅To create paragraph within list item you need newline and four leading spaces. To have a line⋅⋅
-⋅⋅⋅⋅break without a paragraph, you will need to use two trailing spaces.
-
-!!! info Python markdown quirk
-    Python-Markdown won't reset list without paragraph. Even if list types are
-    not compatybile (ordered vs unordered)
-
-* Unordered list can use asterisks
-- Or minuses
-+ Or pluses
-

-
    -
  1. First ordered list item
  2. -
  3. Another item
      -
    • Unordered sub-list.
    • -
    -
  4. -
  5. Actual numbers don't matter, just that it's a number
      -
    1. Ordered sub-list
    2. -
    -
  6. -
  7. -

    And another item.

    -

    To create paragraph within list item you need newline and four leading spaces. To have a line
    -break without a paragraph, you use two trailing spaces.

    -
  8. -
-
-

Python markdown quirk

-

Python-Markdown won't reset list without paragraph. Even if list types are -not compatybile (ordered vs unordered)

-
-
    -
  • Unordered list can use asterisks
  • -
  • Or minuses
  • -
  • Or pluses
  • -
-

Code blocks

-

To add code block use (without leading space) -

 ```python
- # nice
- for i in range(69, 420):
-   print(i)
- ```
-

-

Example: -

# nice
-for i in range(69, 420):
-  print(i)
-

-

Admonition

-
-

Info

-

This is admontion extension for markdown. It support things like -(info,todo), (warning,caution,attention), (danger,error) and more.

-
-

Code in markdown:

-
!!! info
-    This is admontion extension for markdown. It support things like
-    (info,todo), (warning,caution,attention), (danger,error) and more.
-
-
-

For more information check documentation

-

Check mkdocs-material docs

-
-

Code in markdown: -

!!! warning "For more information check documentation"
-    Check [mkdocs-material docs](https://squidfunk.github.io/mkdocs-material/reference/admonitions/)
-

-

Keyboard Keys

-

Sometimes you might add keys combinations. For example:

-

To use second TY terminal use following key combination Ctrl+Alt+F2

-

To make them visible in nice way you should use following syntax: -

To use second TY terminal use following key combination ++ctrl+alt+f2++
-

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/assets/8-jumpstart/additional-repos.png b/site/assets/8-jumpstart/additional-repos.png deleted file mode 100644 index 256ad5603984cefae396042cacf6a276c72afe3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63991 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 A5dZ)H diff --git a/site/assets/8-jumpstart/g-inst-1.png b/site/assets/8-jumpstart/g-inst-1.png deleted file mode 100644 index 9ef1bee0fce6a9d1edf034e90a8e9ae1c32ff46e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5757 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 diff --git a/site/assets/8-jumpstart/g-inst-2.png b/site/assets/8-jumpstart/g-inst-2.png deleted file mode 100644 index eb6a9ce7c988e5bdb047886f8edd4a75f471e35c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9007 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 diff --git a/site/assets/8-jumpstart/g-inst-3.png b/site/assets/8-jumpstart/g-inst-3.png deleted file mode 100644 index 7992865053796a99a6057f2e82d5bf5a4beefd3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144136 zcmY(q1yodR_da}P1nKS$>F#cnPHB*q?rs?AMp3$3x}`fMq+385q`To8U!Ujs{lCR5 zVAeWw=G^<!)x$w1v zow1cYxstJ+8DMK=@8-$D#=*wS!5fs4550u#|G7j%L-sXb&Tnq^-h`c-ncIYmpP7r7 zpPiZC{5=md2Ok%&sVTcD_j^7L@wHie=w}K4d{)}b-ptw975W(Bj*fu4m9s0eow2>K zg_(2d-iPylAL9S6(lm2+v2w5nI9NDX*x!-SZUbQUW7*f@>Yj@S8F1P-I;q!j?#Y=| zg6E?@j(l4yIFh3$Rt(#>8PM!K1tGwovy549{p^F&Lmz*;MR)ucFWNu zzPnDz$wOf>SuRo#)+Y3_7MmxU_GNXM&CBQ_^hfxaJ&&WGQs^+^e_mGM&au;RROVB4 zRC7Nzg5Qh2l~>|URY1l{UT6I>t$VP~t`4-5mbOv74w#2MlwuD~{GhP<1VjGGUx5yQ z4vw83DBaM7D=TLNz5+K$s68L^ zjqSEM>kacf$-rzNSm1w80poQH9=A$&Jo3#?d=fS1=X!4=yS5Q-MROR_gW1(_HIwO0 zaYk6gv1J;>wzz$LwGLRUzuL+(fTA^)MXX8IU?OC1WEV3(P>sip>CZK&9 zr8M+r$0-DV{GlFyltc&E+8hzTHj8i?h4^E$YfgRhB!)dnQ6cL5Ni=O#b6UuTs zJ#^r=QSpDa9ERzn%XHU!ww_<2FYy&l&Ez=V%=52!htqyl(AR!8d4xbippXd==xd6# zpP4aO2`DyJCQ-|VAuUJFLqGayS2{oj^pUsHAD>;(?|wh+Y9No`uZfLuA(hgY=R&!7 zbO}$OAWM@}rFO!Kf@EVRl4|MtVN?*f1cKlvrub|9Jp>Hxux3t?n7k5~6-_k-N9brYkQL@>4mg z&zkXNmk05uEe1mum8E+b(YN?uOPCU>x=K6!+D$mk;X)R`y}ajK?~-g+e81Rj|XogIA#KN*E3BsXJ6^nn!_~1=-sPZ2DJ9aEe?yk1fWCPt` z&MTxhy!!^M7)RoOwl$*z%oG`H~I$x`kb*k{c;s4;Vk zW3#kV72JzzWvnFhUtO}jc`fhgPcG?JmlMboW5j?AehCIzzBiuHfbjFUNaD=@dV8=qKpvhpM(*9UDDj(b?bgt=zE6$S zBvXE)auyp&FZj^^u;+`1S%~eLCtsUJCwVHf)cxdA2!$_azr9X-Hsi4vV5!Iv4ANfE zM2$i2&K4#8H!|1ofbe1Ssqb?ux)MdkLZh>;Mr3>1WUt{4=8h1mx)FMr(zq4Uc4`nI zR@;JD5S{KA6gzPsbi(K5e^$_k>GXZ+*PAeFgi>vgmD3Py%;cxUCLdfN974mMz?Dqi z2)9)1q?2R4ivMr)!g##`F1ifb7X^!l&5<^qEr(api%~XGD9gM=NEkmCpZf^}<+c_> zVC9ATqHs2XMPyd&Bms_Fm~1N{&3|tatOY3ac3J0-?GIG~-0vYL^umSAsh;o0h%+owO$D;b6$0#0DRDf&^LdWY+l{+nv%kUES{T zku9CBhu=*=Hz1bngsz9A)13dpR#>eN4TtoFP`nOceg-cFiUWcX#w5&35$axG&mu{H z#Guab(OuEgHTu)Y+fSr^9T*muL|lA6cgQnmA1EkFhEtd3FNyd(_s+H=LmKRtaIp!u zXWPQ^((aQXoz(J4R=NonG=)3c^a<4-Zj2cnkb+FS5|(*^mdzij1$?~p%%gp^Hv0M* zzh`$?-@!AJ*VZ2|920p~7Ed%?;-d`DyC30#rTpb#_>sDqITySuJF`Ej0~D>9Yy+AlKw$lx)h z(H8$b9eqi}YroVk%qvP3=qck#1!Kqp`nWLP<*k${P>==y+0<2`8?;K{9Y>3`M8BJ? z&T(fHE8o=*&39W%8IammSRTFWTegx#aWNmMt8y7+O>eU}UO5!>7-3&S zF>LWC3EtMQnT_no6mompo;iO5qcv8c@;M5xRF?&?o`YJY0H?;cOqXbL86ILx-1b7- zrn<5%q+OsI`PL1F{rh`H{`3_ug@&U(_2d<8p%8w_;Q?;zFfedMIsE3Y2YjOeQqL%( z06OOVeKK;XrHmHK!IdVPr1hUJ2|L8ijY%VnTbMwHQ&&)^k5|mqgbo16d<|-o5|gpB zwB21PTFvjJs&662#SvZ{Q+{H!g>HQL7Wcty3o9R_w+K)risyZAU$Dn(&$Y6A2ZEBuld7|1(DW8gk6@jjRi6 zutrpEaFA-+_;*kkQ%pTD%#H;kX7ef_=5L7G=>n~O0}^MSUmX*SQ3G20l`JfJ*7l|i zemkf)GmBkT3z0Y_X@dUie6L4pcYZh{0IjlPBQ-AW{g|3_}rwg#H@8=_s#ZlIx-IZve8iY+R|=%BuQmnF0H2y&!5f_QwxW{Yrzj++uF~ zmDW#*pZ0dQQTKVP>sG3)UJWaD>e|4oYijoQ(?VWe?B0)_ojH5Oc|~k4&(9leY;q_! zV%$Qvm_zTrH4vNuE9Py-1n#`AmgAMNL4xSKWS4y(nO~D~L2txFtr!ohaS|U7!;f1V zLIKf+=?rtn{Y?x76tcwNY&?Z5y`NTGHex$CfTh3`7b<9XQ*u8KFZl279p)m9LnwM` zij=ij$Z$xo2@74ZPM(6`4)mKx25ks$wyqBK60c$zH4{rK&U?ROeZ*GI5E*3zJXWHO zUacgQCezfi+L$fUWofJ|k~8^HBOyPije5kZXB!9=Hf z`dNA`4iTVoE3926=%vf#-qyvQJYrFx?RyM15HL--zZfHbsap0yPc%4Lc>@FDXp-3X z3ShtB0TAf_sU25L0H}+?2?0S4OZw(ULQYfP9U4^}M1t&Ku%xtiDGSn<5ypBaXN<9c zb418|L?6`c_U9_;3uVhMVYYvyIqV!D-V)_9OsloN&4HO7nq7F~q%wRKi8xr9u*0aQ zElK?&Q_#lTPS2qFt$a==a7?fQ@pW4JCEr27qLeq9jFeXcu$xg$|evAu_eTIsn!{x=60n#Brsb}`Tb_vNBE((0{^ zFm#*Etd8l9TQd#$h=zvm3mMmUw<~UXA^JYg$X3-ZpSWeP(8u-&=Cl z1g4wvT{C@$5*XdGS*BK^X?m#v-MM}`K)|<*31!j*#3oBqSghbRO(i>6sT=uNs`#t% zi&+YiasiH=Qd+Ijr?MuZ7g#&b3p`)FqGR*Fb>g=?=fFU|c_FeZiTzUoe6gxL8EI7v z4Oa_nuG?S0C1{lek2HL>jVQHfc#;gYCLAOSe3dWhRiQXM62Gu$v9&2?{j=O3FW_ ze15gEgXj(Hkjj#1EYL%1njg;ygi$umzs41=(u~uOg z=zR?8>E4R7`fMpYv-dv(M3a@y#+7Nn0^Jo%arjc~A*$hfQds%JuDe{hErwSO*Q9N; zC*D`X=OP=0ym~{Pk>i}1?2-fHh%WGA;zXE0kmVYU>0eNG`_&$-i5ya&WMfLxe|>Nr z6O!>Fe=Wa`s}IDbkw=;@>6665&8JEnoqYr` z3sDmdh6`^C_&m+?T?9|NK4hOhJAPN4=zCVfb^*hs#>es7wgJ{dLI1tMg<<(wGLA#M zN@wE_IzTjSTT??L3OvN0&QAr;bU&h8k<~DI^Q-7QMqOMW=dTX^zrZ~o7HmYU{EA79 z54B*~O2F#4cr|AVei#GEow$ubp!4@3Z5bT()AFklmuvhs(&_*wy)u`Y1Yqxw%f^HCEM zfJVIt$&$1WCW&lV9(!gtp^I5c`43QCoJlf-PqSM#Bl zBlq1@e0iQd!%3ByB0i+?H8KoXdZR_Mx;})s)+U+K4h1v1#u&Pv-~Hx)+lQ_BqzT|7 zs)+&H)|O%g@g|&ih}TrXTv;=|a0$2vT#+ILIp<4?zb2ypg8N+tpwOzQEY1T~9V07)e?Fyzt9+xx7*$u>Y=*#eTKj?e}y9iQqSAHO(Ob z;e=XCZs}<$QtbHwgX_W;Y*Fgt*;6r>XaiBFv47umu-ploc$;Da^ z9GQ^kiF}KzO-JnPsD&p~%Ve z=d3Kyn7y=;2s)igAFNKx5 zViVD~V*X0gURd4b_AX;6HT1kbMkC2#u(-IRZC@tgGCRLvi{f$0CrY}N2n1iS#ScRs zt-U$PbDPSZ5l1;22vlYL;2kC}luZY-#o#OdO}OYV6EUM{ymc)XtRBEuUmJu@8G+Px zFCMj*Gv`GaA;{hMoJWTDWlRjK9q%7=GN1T0gD~yFsFskGz`tU8PNtuoq8=0izDQ&} z5u1EDsrW<9BrE3$mR5)Pxgf8?13uXegS1kr#2;3uJ|!2P!FR$lAfFiL0RQ<{gZ;8? zQC%h!kTL%R(1)?bQ2MckC349I-`=R@eSE@lUuitw2pQ&Of>YcZ_sYi{EnSm*!K)s0 ziR_2n1_vaXH2dLBUQvky$$30D5TSO?yBgxYsdHp7xzGSa9-3qrN(i4&{*qDIKoxxF zp!qH=dK!l}5oFS}e*A|7tOB)Q%)?LLK!>3UGE$+6mZ$QblRDIlwt^u^?%my7ifG27 z<&R8fI!G^QKJVeYygCbAbA40?@bOLyl~H+OH;UhK9K!Y*kg_SEU*#54pE}_Gk4=KM z)=)>DP_hyRL8$C>6r>B@BV?PWTo80dgN;6If37=RdCam82ndi+YFgSIsW7eGx8&&-aLV(71q6=)Lk|4)OA$WS)0y=-I1C68FX0k>ITeuMXQ}MH0W%9&w}rswg%66E=KcL_}f!k!nKYs#WM${5L$p7*3AFY8i(6BuuuBSBn<&c#}< zog8rSB4h^+F7NN=BLdJLh!QwkG*%mTB9>aAC~E*~81r_|f_XRQ@u&N@vHUHM0AJVR zCuOgw1~@7fcqJVwTBf$L>qdfSrt>*f;5~mgeyW``(7Jcn^iCs?*g=Qxc&sP#4Fx;A z^#9NVIyQg}EW>11SLb9*%7KmW70C?yoL22X`vf*^PFYK1WSm~#(a`*xCr|W~R0%pb z&Qv#%OjngJr0FkSr^=1g-oQYbIOE9ywO!ND)f^x?{{_l-=bOpaOQG96UsMpF^A~>p z`5wqMHDJH&ZM)R2?<8mW{^H`Nkm44rVFh=*&g`^$X@<|)v~04Tp5FZjm`)}&&lP69 z3+yb=h_|=TLy>z_o5}XifSXO|7Ad`&tY0=r7ay7Qf-&+=!vZ$0DS_>jUM_;aTcZM~ z0Ipb&(9r!>&#Qwrn`@RndQ~i%ZM+||>ITq8d?&M12+n1Hzw%5oj~e{z5w{dGXD*WW zg-EYZQgVI`&Q)O&QrULE9)?<@tCrOF{%1$z8I`wAzB$FC$8WCu&(%n32waID%^6Q; ztHRk}ZM%G>&b#9sE^zJzWwAA}A@p^cn0~?PtJ-50ZAI(lKt9H~>pyG~NDMTt2vit$ z^drG{{?Hf1DSE9KKFrEAt=|6a+e=D+w@d1JmodXez{TyWlnuPtPBj-~@`(!hL;E?t ziRx=)Q*GEzE)C?L9Xtg0A*c9q=MTkoI z4O>=gKJqsFP3#Tn^ZB2S8y@OXop5-N9_d)*bJDGYwS|BamFnbofVFi=IdOU}t%B?6 zE+TA=b79X<`6QMUoh5&A5L-04=9>!$LdyEVp>D zYG?`ixawCsn<*-yXn#PRu|xquI<5JmVhz8?+jrsGCc=*)nF=-Nzm8sCEdZFd6?PuL zMm^-fXs#DmH3QY%6S37l%%lh+h&-J&`sq*!h$Rtys_kYpHwmNz^uF0wd+a&y&oX9#OZL!@yxbuh2rk9J&eN-MP;(06)7E|7? zf~7N8Rmhs@!>_*tM{Eh@Dj#Frq}jY4gAlwji3HGA4+5%Dt+_$j4T9(JkV8rnbSCAM zXIqS4T+Y8g4t7sq?V!SE6s+3hI&<+NRaBsM|+r*pMa1W1us z_ju_5vUk95s6T_jRi-e2ar2)WO67mZ8;f z`GhY&&QH%fye}g^w}e4$*aSq=%u@GKWpaBAaYXdFmY_spalf&6Bp3MFA&ze|%>z%1 z>*8;Ui`eBo{4_*HCW4zq=)Q9lR6rExN{~>j1SC4b1L`wepAgZsrZu5JLgX}L*qwW& z$>W*AFOp#TWTap}XV2`}9B+~m#1@+urow#hYo#xeRP1G8u0D-=R(VK=Kx|QH2-oVi0Mk1|IGh> zVlHLy6ow868=5r4)428jw9*lC&@yAP<;&E@YZLbSK@J4$aXl=MAECsT{?h*zVG>B@~!aGhRQ1sqLn< zq56=4vv;J+&LW(U|57Br#QKnFL@^y5f>r_^TkSV*-k6(j&z9?{0=n`*g+W_4G~};H zmT-#T!75^_bB33@3#IvW*eixjZyOw*{XJc7oy)63W3RY5TVXq$uKnj7N4V) zmZFNIvmeVXu3x3(VT`c*_%cx?DtW){X<3m^>n5RZASi@@^5{&2wRQ`;)t@-0ERQ$a zRv%Ax>qF>vBk{(UZzj7||x{WYXES<&1o>M4d$#=GBL--{N&$zdiRw z$3}$nqF@U}Vo!1AWfyT8TO`eF--U>6MWoJ1w#bwh_S4RrKP)tqgN()l)ggAK^Sk^~ zl#!9KvtxD#Sr3C%3dCd zF1ew^%0{QW)9K>RO7^69Ea?HqV53B(GDH~*!@^$K`;4S<3sZI)_0O_gh@7;G9iB>h z0lyY)zRyMBvF?=3pNo=C94i9;$Eu_$ZQBE3aRrR-ckA43nOGrje8WeD7(@^B*x@NO zYxk55Ky32je;emGZ6G^8DM@P}mSk-%Q`m=xiz^$bO9aHkcD5$+q)|}jaEgAmcpU%8 z5L~~9QXk750nfB|-WMBjqLEk~_eXj+`o5I-!B5iN`%p?Km$Z`!{-SlpvKr9d#5_md z#+qSwl_BmQhJ_{@5#OT_#%lu`AK`#g=fjFA_nxU>iimBb47)}c^0>B#)s}wTii*d* z@0{iJV9wL5nrtia{mE+z;3Cv^9*^u{Eb0&XBNNBVPE93D#v~ws&i2;J7_}%5jQ&9Ipz;r!0o(JhxNp;v6AIW2y zY+3ld&SN=T<$}S$nBgG~N7hyP#Q6?3#J9g2_r+(PL&58ZKE{3qYMineRbZE-t&iBR zG!=&2U>@(E^xeV>V*H_zPS>uLj+FC!-SPaG^>k6Rxw&cF6B+@ovYD%xo}T8mncdvl z^1E8Fc)Y)s{_})i%genS-ZeUs!erN+y(=v%Hv=1?OW5MMxaNE^gEIdI2s6&O?DA%K zz*u&HmO~99&}v=bx0BF#&za|RECC4hD=Y=nY;%v<43%*^z(8t|(2cnD@S`FuFnSzK zY9YHZUC*t5>e?9wJkUBcH1xFJ@wD&Jaj&1mqW_*F#S^X5@aZgRO!S%fXXojfYz~bcoB&k8eYZx->v2Mz1~W4#A@>DTvMp5190-n;5Sd8eVlWJMuxx zq`|R&XfrcnMC{y=GL=$J_ctVk7l*xOl~c!Nk%TG;La8b2=zBHxSY`}cudLESq* zs|Dz5Mf=Ul*W#v&&F`NV7k_K&=t0Ani+zkr(`A=P>L3wwBSL74G2EESCHL~tr6FXv zAv0j~*86nb%;|PTbg5Q$rRNSQvhySr@O$UUFs!P$FU{Zo4#@$Q zRLFas*Gyd6FRM`Fd(8}QS*H1jT7*W0I!NPU0DWJ=gfQ;e3j@kdORTfc9 z0yacl5o|Q+Ffoz>wD3Gm(V_gC zr~U_R4M2^KYrcX7P=bUnbDkytx`d-&kZS~b+2K(oo=f#l@owQ^n8XlM1$yQaW zYQz2p_?b{H6Mn4!!&pEikS-cfkueDdLB!CYz40xQeb{s17+c9Y0^JOB%ph6%)9hse4GHe?BA?F14M5HtW^FXUuR6hoMCQCcC9}tZ)0; z(5IdqMjlLEG*|A9L>%tIvKSjOs_?%sRTRy@K$a_CE3AhrV*Eb_XMuL>-gg(@purtAyW3eT0oS|dwXTi2+?eM9f!EfIp~e@#!&G6$j^gqfP$2wY zQ%YwEU_g-V8ol7ZaRCF}AxIRIinU$(R?yf;&g-EonA_Oscz?yL;-wGU=}*m`(n|sG zoQsA-wNMuW7ii2vT2o)S_{J`mL_-xs??QCw1~f;e1Q&leo&8vJY1Iw82)Mm#0Leym z$=2ESkp~xgc?WUdAKhb=N_c+=^uxet;rOSnzz4FyLpG#L@P801zlhlI7H~wjVIz^> zD6=Ij0?ITP0m>@_f_vrJcJ$D_;JJn0p--RWzb5X+y^u8eIaFy^8>+aXqv4?zc7djM zK*SMcr6&LnXcX>UfWWO_Belr?^c>`X`xaM`GXms^FZPTFDg68ESaKVDDPo3v-iaoQ z?sydG_UE;U*d7gi-$I0If-#HA8L~2oehY^V{~Zj6i-4!~nX8_e*jJqV?yJqg$x7?E zfS3dF>RUcU^goG>9KM?h;ECb~x2bYfS7tXQN&>hTpFN@9A@ByDd(g0X-cUa`^bKCx zm2z%Jpwal7m`Vd__+c`%n%(YQXJAeA%*=_$uhAAtxvu;$-Ixx z7n^(CZebn2F;>gYz9B(xv2>db28dGS-|zWG?Z$Qe%WE5>1DP%(z3vF?89ymODn2>c zAz&kpPxCC4FU94A9TniHk{pCjFBV)@E&`z4PH-#t^EP@#{O~O-@DM37#{_YpPotzv zi~KuFgb(!92EkK*Gjok5ym~{#ci(@iJ>Utq7$7)qsu>(6*`QS z9|(Uq(ut|sP?8(shoSTBBzmQqIJp46===pgF1u`Y5)HD%uSe(;nL0DHKYzHV?>L)- zPG-zUmd|MK9kun~UUZlf)g;phj9}I$s5d#Aw21AczWi4Rb>%K-x!-Lf%?5d3*dy*+3mp$kc`rJ1s{rd-bFru49d5F0fx#ew6w?K ziL_x1bJ^aUKnIVnJPNd$wM|Jij94$<{X<>Bi0f(r$o)JyZ7x5UOf-5^ws$ax13egk zECRUb%$nwJYis)+=Os2bEaX<-D-~X(DUAqL?BGF&?_kXALE3ULNdL;9ytKgCIHfwS zzTOqsHZ8%)7OjGyn;1>9~f8k2Y)dvzW&lQwF$DI&x1l+=WI9nfGy-ySV#J0*JzXSFNs> zT^-)}7y~gE6lQf`|FY!%si|A3oOE8vvCTGn$iKGgrUd-U=2@sTVTrdW?j=qV%$(nw zWy=C}*!O8ZKPMFjnwsyULIS+cTsPW>nnRCW9YbU8OWO&XQ=p0266Qq{5PZt~=9pJI z;=fSf1379-s?lpj*6T?LcG5A3N5N+2<#b$DA;X_GyKP4dRovjUoKUDz*P~p!Y4_v| z9k<+!9b0aWO~Chm>NUn;kJz3Ljp%h^4l?_f4ktfW0pj(jfK(Q2Hl)rXDNqn)Og}hT67ir+CGVO#+-t=9m zjTyFX>g#P}kagD%JzL`apa2RHd=HJVr36t^`u`zs1IeG+z}X+?o-19{y}xfe91CwA zUOW$<;|=qW@e+K@ZKWs`GHLl0(5%Fy{cWd+R@sZ>7qpYLU|G4%vacQyg@uo&G z`;@Mp-*byFxxgmrhF9*e8dNO#X?8f|US-sh7G=yur^r_Ef{W&a~lZ_E_^(Y+QW?x=kMN&Oy=7q22kISGoK z^tS1t0b5D3`?k2(9)TVCzgS%i0ea!V=mYdX!G&+rhv&-CphwIkuAfihP=IveN|GFu zh@uM8Rz^-G2;A$OzV!Jae80u-V3;T9LH62Q>w#>^5k*x*2OT2TUdSe2xLkoONfq^< z`yJ{6@6{q6&jP+hq_dfhE|UeU$2_qbwEwJoZnbq3=ppUH44diJM;R>)SP(Wo4b6)q zby>xIxY@Dz?!xo*o#JiJx1osdFwk2g)BIT4eHFYgwDIpKu}&UzGt%UH6Aa7SvE{FV zmwyG#>HftN_9Dip68IaKb~wgNXc~;Wg_O#>h+*? zjabdZtJT(Y5D4``H6-SyJ1cD#p6VB&ifLaW=`|g$SARCTE(2KihsXNb(cf< z3hAY!Y^pWit3oQNQfFo6lz+H9R zwNs%hCeqheyFXK^^=0UIxj{KyPaxm}Ux**Ca;5-+Mu_1(GQQ`ARGvxo25oE_QtcfI zaT%9Xu)%b=RVZxsMG zE>0A`0**>-MvMEfyu{Pzg~d{4gx}6hM>UIOLNw$mZh25CogX^LXf@=T6^KmM)~(d7 zm2%P{AvA;o0qeB1-*N!}wst36tK zwt_oxlhR-yv_nM7=rH7&HpQ`tI?H)z)92BHUfXX?$9CID%Fb>}EZAa0oul?r5nb7k z4=k}QdD#5UKOnIhI14fJSzSqSGuG*`2>oIb6EDTDN*A}q^X&yYZXXb^_vR~&s-zo0 zr9$jpbF;H_KQ0NkUQF4gzau0f!p743G4c+6Tn-}7hS&)m5_zo?3(vAr`&s)NQ#=G; z(9~AfIy++X!gX42QTsi8lv$Mz5CoJNCeeG$g06KoSd7Bm!ua7wj?Ei|;W zBs~KoCY-PcBuV8{B&AWKmLs7db~InFW_1LWN$&I7W3Ofj`02I^tj(4WR0y{u_`U=; zG*S#&$fX@EmZCi%LsdSF;Q=aDzKOb^@kI++W^}H;KGO{>^_{b$K-9zHT7a&cjapd$ z6o0(w)D0cb8na)A{R(YZp^RyGi;?jTfVDOVr^@eq@wHL<7xQFBz-Ayr$GdMf*Y-|w zT?hO(W}$zqVG4o_+HiOe+zv0c0OFLatL}1@%JJx1&{-i6P=zo?w|uqHL#u0Zd9iRl zfq*n)DDi=AOiywOX7Qk3l__Ltk0Lo%|S4)dl=|ij8{sE-{E`+bbl}KzaFvMhc zp~lXJ5mBr$o4B)IF|B}+IO$`yI_QnHjZN>6-lAY6FV7$^$|qGJL!XOz)q<(#vkY%h zaAyk=nF^2{x_1OQ8Gd2GfCoX+ z!0V;2dgCOgsf6mE@+U+N^?;|JK0QN+7Wpn$ZTF&zhK=W<%j+xYhFN{fk_c5gGG+3? zYq#}yPu)UPe0H~6`?~f>BEDBct9y!_3^r^LuYL$N+E^0Hl4*9%h8|v^|E#ttG70nV z8)>i^I|@(6FIWPk?kDa;GnR!ZHoheSKimD}TNl|Jlapof3R3$u*P<^!#d-}l1OT{85)+fULwn1V8 zf4wHHB^0vp@@}LiP75F}iL|iWD!Qemrs=ATwLfCBaneayw*%bV+)M%@=)co5@#ZHo z8~(u5wy`ehYr>lDGb?BpGx^>q`k zU_j>Ji#<5IhsALjhN&{s9{e#a%kZrL+P5?TZqsqcO5Qf7W*#n{x~e}eJ)bLy=iw>p zU1rD#RXiGhpL{x0M2c*Srb74A?uE)93!g+?B2Utgp$(^(H29@REx zQ}|g&Z6x9_Q)Nf-wi0A$k;rdg?CB?01jq>(t{)qe!cONUfAw(&v3ZeiZl}-X89g_GudDj89l&lfA)ocObUKLSnQ3L zcr{Yv?h9bE3OZPxvQUb0;jDKn__$inq>9aykGy#f2;khz(p5{JSPAnK{Tqd}L7A zm_cz#i`&!LXdA7yOVU9i$`2@hlkuWo;1UPGx1La(EuTW=%m4m9Kk!fwO*5mkNmV~! zr#HlAxFMaG->Hl2Fn0x84PiGlXF7Z2E!4iv!PgN03>`YSPy$VXw zLL*LAriY}29y|PdURr@Z&eJc$h=u8Y92~`*kq`JBU8=tL&OrE778Mix@k^>MR8pz? z$57Bvvq`?DyP3&}5+tTA0e9A?IoCKlV@tOF_S-25*XrM0l`xqMd=u3wbsruEy(@gj z$e+oW2Nh7d8U~1|xbw@5B_VbA8;d-ZlB(IZ)s%;sJvLZ$ThMf|RR^u{Z552vT6(-X zq9c=jcZFnn;K+=lOg!snl6XQ^fz>H>Ag#o?n|21525)zdBXN+3xO2vxFyWeFLg;7E zCCve!n?qt=WY2MC8RwgYpgr5orWULWcm?ag+zozz1(ywOD7`7pmAe7*A_Ujr^e7nI5fJ^c*FTm z9$Rm9b9@Ko$pW4=ZJ`+w;B$XSoi%~e3nnGMx@ zt4z*4ALdahWr%P)YOAr*7p%$sA#9*0K9OG}SjmGsiHB%0!Y;cd2RsuwBB$Q~Vw}Xh z7`3iPNT?U@{OPaXn$y=EqxWPC9o~syE7wTq9`ahUwVt9OCXSV8x9JMW>vDNiB)i3C z@vZy@qjRzwFjYC8n(UQGAgV_~BHwlRD-t)sM@t;cmpAXF+}^HZqh~^~kibEpJ-7<$ z0tFfIwSU|RH{U{$5nC`6WHVQ3)7K9rUm(-P1ZR5KUl^c!ZL*WK^0?Rb%cyohIh~F^ zgEmn%IiBwHgF&mSDpMk~968;UaNG3lZQ(GU-v7xCRv&<`eH_oiZlFn3U_Iio8LD*o z&}*E>0yfeS3uEMl-~L%2(Or(c=uxgu7VZTLi*5o{mwzohX>Jxcy@T*Itaf$@1gn;t zkw-@8RXaKBRM)(-vNtvDxylgS+zIN7*F=q#TRvr-)5jI0r(a1eZnn~1+T$z&-C7-7 zGXbqF*=az!u!p8UlEc=mTpyY`@jd2zvt3#tPB-QHhJVZD(JM0Yj;%ky2CBMXT}h=3 z09U^Q8r`vyQxhJ|jiw|{Yx-qY*>l$!aMj-U9%#)O_(3Pulv#9S)O%3L`}&u2ydUzS zeg8WIh!1N-d>CSqQ0ZUsx)n;pjX|>^+q(CSFalsZ?1bfk0%|$q-3W8e7*;NP{1V;G zFU*i?;KQ!?&*1;gQOtmGfR zH$baf@0ZOl-MQ;^BW2m+D%IB^LM!4Vo77>kCrWaPupc7ABQRbOl5q8p#o2s$i|{A3 zGhiVecvQ}{u9y8Vu{PeG<#{d_!HwwzoEt?7PFK4ON(YytfL9n}effnuBO+O|eN5$^ ziv>2&=Wn32^2z?m^h-v=k`Pad6Y->OQ=%36DbC{Yv-CA{`H&c14~ z70DbNmgDvbnsniEB|uY~y`}9h0i7S*h#!56bSa@*NlpPw&a`;$nT+{A&LldW9+b={ z$WM8BuuDmbwEu;&&=ukVMhA`L_2ACNw3rx_^+8dn=>HbM=Tp=9whhS|HZGaKq@Ej= zkx0>4y5?`nkg=D4xB%#hCGlQklQeHGP%f~9pX8k!TK}3s}QtsEV;wN=;W4^t40BzUyqWSVG^6TnW9^rHa z`NU<>@xu)TJq~Ac8b;tSfGhoR=wVWH(Nf26l>tW34^rHCUmZY?HL?2KMK2E5GnG@3 zg>Z84e4~z8WdH*Mq1JfhSIb{~%5Kz63j}Nbpd1%oyA{gQY8Dnoq9ftOh2^Qm2`}ie z8x_4iQt_}@;!w#sn=f&T?6UvMU@X7}K76kDLJ6e23LFV07q6Wc&g8Sl`7tzQD0nG% zCjX9**F|6A$(vlnq3uQrg?a{|7R@@nw6pi8+XR1U4~N#Bg25!SiPp{0y!% zrqjZARRhwgjO+1z;Ac<5_IMPq*w5GfFE@QV4*oSr1B}AwXb~})KXlPJ+nOv)xLj7Q zF8pa~J&uI=eV^{VY)}WbD)uqdZ;mURvQl9@*buGFKp#yz-kNgC1^b-4t~cuJFZcX6 z3pi81>{2|ER6+gxl@?JOY+-qEgPkT_a{b(uO6EDM)f@PEy74+0hh!ZX)Wn zC#X&tZu{cIW?E%Bd{J5B}gKm11F+utr7m(~6x_D4!%C*s&8=s%H_VaiS8JkMQA zb@Z}&kRsNmDTxEIsNFb|K_B_w5y55LN13e|s%_@c9Ri?G?V~!zIw_-V3QR~+~ zb{k}uFGm@N{*o`X;xkb8DzqydD*qn zEeB!mWgY{RhJa)>|4wV|#MB=`vo4K9y{;T>u26E{M|>aCqy_yyE~*KDVK>&0fm^g- zVuFJKa5r@}Ij2rVihVlnPxtnD&b?31wr+=crImFbie(3vN*0-^zeP2TZKWyYLt)nF z3r$${&glQ+{g|fkdxg^qW}~#a&hUY1RD0)ovivi-Y&IO2d(uj*Q{;(f zCw}lN+*8Nxb@f_dRVVi|1LoiBjz2nK|I6h-8SLyxeB*MY2&@i3do0Iq%L{kU2-|k2 zp`vh2HBIgrdb%nwt3xP2weIX!fEU$xiSFij5pfkFWL@JEO82W7E`q>9r!bSf&b-3Y ze@XR0L0kYs6~Jf3gAU{&&%4z|8*2`R4Ks6R%th@7pJcGSlJdIgy$t9XptGpPB=Ebd ziG3h71oYp=ksv{Oae@k~^j_b8ccfV!V^Rw%%Cu?p>##%YgsSYfD}~PtGwB5ofkTCQ z13XYwCAp>x72FN)r2>b}B=Jmn*G?ux; zynMaW-V&0-?{&@csgV>47Ho&Z4=Mi{?4sv~fYC>SFNyD%82Y=NZRP4%&AtZeFgPtf zg=}peZJ4tz`<_WGmmm9kLItv>he9`7D?vrNQOgfUPlv~3Liby5BZf2X;b~5an%ECcC+M7euq-*By*q4B&TOCV0@?dN=dboY z{^ZXTdE@!{MBDHO?C4a)6mB!$f7>ku+i8n=$~WAG{mVOiu+W*+tRv7p-k9-c7axrO z(=3C;Hur#NQHibm78)AqFx-Q&?;-!=^0TY*bbFII7+r~YcAQ1y&zwa8s6HT$uITk#+|) z`aC;jjhiT`rYNS*PRN5=1$V1b=SMVVgLoU>{U6<#2@JlC7-lg^?4$<}dLNk@c*gVf zlnxSiseq*$STRq5O1GSwC#{;Qu8DIcP3|he&XNp^=L5_EwK1mk);CGslg1iaHmOnn z&jf=)Avp**pfLX&Vwm!xRF=tUS(>S^O?a-t`>M^#n#|nYMZv7T}zRSZqC9!~>C`Wjxs*w6<^*yK; zF-hY$qWksuI4Z}qnA?;)UvZ{?>?s=5?zx?g*yoV{I$bO<>6m^-wM+8-y~~XU0YK^v zVG9Fi@g|&XZ;z~lnYH(?jR6*DsQf&Dg~c_~LWGx+SI(T@_oJ%_XM6JmlZO2N_BfI7($ z-`z%q^(cE_{r<$JGh&er-^42w4O7DZ7VN(Rq2>W-FxgeXI3OA?5H0sR(%|ieY^FbE zLZ02W@tzUb(z=FEc*Pd};-fa#1vxuKyxpx*mKx-Gx3{WZXG>3H>s3d2VekS!3VP$A zI{z5XzmM+W#|0?J)W#GqSlK-u|fHlVOT^c}be3#g& z3N;yBa)g4t)*(sL_f4lCp@q$%>Pm6mgVI`cZ2Z@Pn6IhS5?DU&g{lDeLD_8t3u-Yh zh4`;raUzKAlH?J*8gT*Yzs@>a6%ls9*3uUHRzrIWG_7@uftr-=7JLGzmw0Rs>+9Jr zr?+putMXs%wHDlcoNRHw_@D)Zt4xt%#LtQD&iTFE?+-F|8}}&HQ!S6~w4dDlZz56h z8o(?HT5r614LHlx$FT>e56@Kgt-cL(Tyu_(ms8=t;?TT4|K$O8iUu^!J7<|WvpqAN z%N%4H+XS94JNyE=OtsH~{|!pgd*~t!;Dw1qPJjhh6Zgum)*<)|lgrD#+C`O*DO9bC zvRH6PMu#t`NAv7-ld%LI;)X!z%xR1V^kb|!tHhC4Cx2j7>&a!1`(LsW9H@dCnHp~Q zMTf_df!BL_2t!64WG6Brr4ILwjt>>4X~ZQquJbfOpoN&edKu9o_8puH@nqkvj1!uQ zt4rOAl8zHpf&X_5D$?Z@KmfKN;zelD$gK9(zk_~bI&@Bq7q_QPUMJUOJ{^#yWSC|FP}tnd;aE`1H4kdb_3W#`8JKm zX3JID&*+I^TKC_l^fciBIM~4O8OcTZBxs?r^%OK}4GZX6CJK=B^&4B3Pr4$FWE0f} zCPP{!a0=7cEgm99QlO2iY+D32I?`yB)M9=876%XtAh}{T@il5ih zVN@uY?|}{t-<>1xXbrh_TO^z&+%;$D)0ilN-JI-x|IHodFT82^Mjbx3BnAv>J~5{$ zbuXo>w8oB0s&WiW2+(WC|A8_FraP&zR_U)N@@X3m`#CQAUpW4is;a6ad;jsy^IyTp zm=s@wNx8p_9gsfs#WX7C$!7qboN%^#Q-dIw7q6?ca4N5GJM&2&E`5TDS*pfPYixqK znBtE97bEb&%KF0W^ZLZ}be^f%#i8&>U;Ak9AT7|hmxlVC7DdR0yDjj1Y#!NevESUW>srIx3g%xXibX_bg40>vB?mQjK9fH6@>>mk zIPY~_#^@<_?9G3XtSL+_AsX1tDjA~}$xOy=C=)Vine6SuE!2-Pq{Szt*;pLS%*>=~ zBj8L2!yUiTg~TT(S6ZCK#`^e;bxSri!KKgq=MP+WkNx~p;iJ?Hm)^KF_2oA=CW^eR zhU@Mr3+;&h zp*P}&XQw45+u5MZMUL_*W~_^qDT{sU!1H#$K@Gy7>u`Q`iSgiuAJA=xV>b))Qba6g zrqOlAsrqyied&5XIXRi2HOs`p7$r~qR)`biLIDSVlj>R@;3#(aU$U7r58;4qc1^$o z*zmhI_6KgHF~-dW?l=PD6BKN;ud%wA!AJ3fqoVh#KcvQFyhfzbm4cKHQ6B~dyTO6} z=T~;WkP+dpGBUus>1#{bT}C9zP$HXAbTb2LnqBMh zYknY*e|||$N=8WC+GdwEI@i9tk|Cy8VF%*xzkoh3QU$V3R)a>K++Nu`UQD{PfwRjBQcf6Zn zk*#xZ4ohR-oGM9LD+a4FBIIEGr@`I%8CVGmfvmZ4%`E(>u~L1TZNZqRMmN+q(7U^o z$67rMvJ7}!9VqY0a(RQ3(D&2Tp|W@~R>zDd(}EsX9dYg;e&i}_v)Tcc(kkq2_ZNLu z2JSuWq+VDS%?K%A6pog-=%dJjUHl4olaXj?xe;w`Yc~=zDV3Z3zx3VeSa9}3WMovE zkbFft%DA{DKZoT$&M0WV&xy)SeBJCYU23?rbiCTp&g)*h98ieP#P#EocJP;W!v=@x z!;u~a4HI|kRHdpN+Y!qzWWjAhv0f&{sg|ULC84=(wBSh7)mZ{Zermj3XMStZ`kE49!&-x5PuqPZc|*qLXEq@J z0F|gs3Fu6j5*?ewO`Aicu%(pJ~4#KyRtCwi*t<9?5Coa@maG1>g z`D1xgw~Jl&1D%Lf$o_mMvyv{-O1)Hzd1$WHq5H7K1BAC-S5`!&xnJ!n8?IgKO^1B= z@Hts$<&Hw(;hS10isdwww|oRD%GYP){NA74+;}IXyeEz9?a{twoQA}#FiSXWU+&z6 zsX<1n3FM04s6@{9rzu;ThxK{VVxr)i98Qd4*7TTkTNma=HJ5A(J<_}tdUI@yTtGS; zuq?kKrzZ-@{`$*QMii-!@ikSA?E8;~M9}jArWwxtyNu32nGf3+;B0*%P`q4^!_9mo z+3YmW-NShNYNytT1rn6Ri5i~9VLr^poj7MKrc9@a0L)Q3b8`zpgxWzan)Hk=d2uVb z7jtS_fB{ba@hYuUm$%~w)TFEQ$vGZeA1|i69wot=FZs3XiI3r&sKDJ5@-O!fWLUV& z#nsawk46lO21?rgeE_;??Im{Qrj^1i0v$KNTU~!%$y~1kJ*tFd6CRyZpIyx={RSV0pX>&Ai`S6e%$}{)JvjdAS3$%=w1t z+J5piU|B~~QCM`LPOUBSlQ7SpNEA~cghahe?@e6=-cgj0_Zor;iiVE2T)IbED_Esp zXm*2deMJAhw6s`n+l$L#H4lQtgpg04KSL*9rxL5q%OR?5?jOEdM)OQxGcTN(8&LqRK&C^)Uw351 z_A6e=t*+T$+E6>psIBxor zp}2jrDyjL1-8kzNIVo<8$vzyy7n-UH|6%n7tKW&z)g{#c14Zl@YSL!I&X`fo9*d4~%i2+-e5%oiklmf0cMd zp#J$20Zwp=@Q{}wjlCuS%*?Uvw4}-?cCf>BUG~Oydzcb0iz=9>evviq6A|5a2^fi- z-_N^HRwh4|l|D@wEfA;JH;?dyGdgLGcvIUgUgDsLSbKZ7`T7s5rYi5(w%VSo9eUmB z7PcbjPfCSTOp=INvQBqg-DYQ-TvrM>-8$ZHi0eTjHT-jJZb9a)_UV%QVvg^?r@4@> z!gN!EsniyaUwUXXYw^+_#9s3@xWSx}G064w6d|LOmn5xQ?Z_a%2yPh$gK5zBIF^oR zue+-XZ~{~^hr|*WxNhzut7>ju06Tdq7~`z9L1dmsnlOgh7hZA+>ubembojI25A0~r z_}-N&|4Ga%if7#%GN6O0okSE_lOERuo@*y50xI(gHSD-PC6g`Gb84IgKu9+~F`iBh9r zZRrPOYt9PZQI2%8ndM(=iQ zexCOzP}cxaqi2b&yQ|*`l_V732V2JaO@Nd-O(whSIf+*P2)R5g3glI4IM&6~W&*9E zs)lG?!qrh$Nox+|FzV`Ct{+87QrkDLbiA=o2wR-IElT_wxu?tY{n?iA*6A@KSh-ZGG zs|C5zq{%GC!e~#XyJzP1!JPJ6Va$(fD^MEj^Wy^LlwLoehVlKI_`gKPO8ICd_Ya(S05Fbz^s@%h!Cf&IFV(Vmqcd7QPtImi7 zuup_OjJ={iV%QMgXV?~6zi)TK$mdjW!Zp7)?-6k;HAwG_zT?p4*mE+)VL|kY+*-4C zAYHJM>E}Gi1ef9iUIom&Ti3*|zkLh-uxQC85!rHg=_>&egn2x6+?X<|@pw4K__UX4 zXtD@N?T`HEJk5BA&rgN;Ewl~fb?G8`(YjleCm(n;3ie*<6}DDeT^)ifIwjxz zR8Wkcw=ocpx(9h*?^Ar;b%+OJQI=L-n9kx(CG>`y%YRJi*Wg_adVP8Yc3cDGANC4RDom-zM!Q%Rv?PtRR(8w z%hAZJe4LEc%-&PgU910sLq04OhbUuVL+7o2(@`*E^=I?U$wiN&P3?g1%0~Ak&i8`s zJp$cA%OCHG&@56tW5O|lvxt!`<=K0!=>2j$EJzT5E>)gO%URu^NFnEH+(#{qs zG3zMv0yiXAAJ72CYVUQwU;nWp140v`eBo?lu$}f{zoDvdupTTTe|m!geoQ1h zES(DeRcd3ZvJS>xMYYS<8FdvU8pz~(*FG_8o%WfAmFK6*Mj znSXMjiQ2UlT`CEX7wHWFHOP6vx3j}n)8$;NLVN)iDcU$Sn%$pdSCWf&HO|KzFVXA37<9>bUA6NF3NanW9<0;P@=WJ)KoO$^5>X7kJVIqAbOJI;(2FvM+_t%*i zZv?pGQEc+Jqtn9WB_)MU7N6>e##90J51=LryjYT$ubuTLG^8{K%iwzyUrXg5i-OOzP6R0izxaY8T2m1C zVySwR1{ylZTA)|j6dKqiJR$o1?<~dX8&nvnIM|Lpl=n;y&NlIKd$n;BD!GbE1*Gu} z+zrr#B&ANK&2GQ?c%wpy3QHPh&hq|3e#YN~>f@aBd6kQn&1xsV;#fM^nGtqKdW>c*XcVGZjE7p5f;L@2J zM(L?a`S_vdYdu)e77!4+^(Xv0n!G_N0s!4Hj_I;XIly#EmmB#s4fz1=(->E;`~5G` zs4J`p{SG;;$>Ry-5an-jIvAnxDqCr46#C^BQz7tsmwG(f4rkOp=Yi7)O;~s0(cHr) zML~Pc;MFy4eH)cm=qFh3BJMh40(l=cKwzQb1Xb|vf~fJ+m9l5+7_!b};AUS8-%J44 z-qh;q$tYztND<)&-rVO9V5U`(b_snxhUDX{_K&&#L`9?&i`S2@vJbSEg;&-OhwBc7 zR8ugE8bPJ$78dqc^qU?xAI3wg6QN7`WtZf+=AGQL*5J@=%D1a1PpJ=UN}p6&vkTG4 z&HQ(~Z1AK)2_rfljBAvv${OnE!Q*edN74mHovh44r!gnl3!QN<8LNv z%VoWNul>T|EoL=6le7bPXM5lEz|b<;&II=_-1(RJ@B(AaPBJdkia*IU6>liq>eWqy z>iJIB=G)emW$y8(?{Ta|);uR^i=5RW5lBV}zZZG7@GQdXm^a$0ape{+aRN>MMZ{3D z0P$07QT`&wl9y_;3yK7pKEw0pp*6KXBTHP!N-UCgpEmo|tuB+F()1E(g`~qD1a$42 z_b}J0CF5FEb)CmOf}VsuwjpZ2VlGd_GP^XUV&gZy-#AzG{{F0Uc95GdeKdwpEE?AP zveZhJ^G$Ft38}6Kj_8l@XXQXhCW8TdP7sxdp7gMw~E=O4TX2Jyx1o~f4 z-Bm4GKGh)Q&=W;J_&*WN_@SAyWz{z3%234*YI{A--f&$GQ0i{Kq<5$u-{VT-+z+>*EJOdL&$GKgpmb8q(3uXImA++}JG$nQQ(o9RC~* z1AYiUaQveZ`ON@bTIseN=8Cm>-Vfs1eWB}^gf^cx!Rm~HO*hS_+^yR23b*eEGTndb z+sL0aP7%q1H@OPoYsHfcQgOWgb&R0 z7r%AY_1GH{i_@OtOU*g5X)zGnPlZABPlYJIJd#R$U41tZ4uA()=3TJBMP3< zbYr(nrkWddeVg?^%ESXeEBSqZa#|z{lPT*ZV&QoaRdNOo+xG&Z4*egRBD0I5 z8lUz5Q2Z6Klh@-2VKsFqP-E$_Q^_p4a(&@*{CNF6Wu5bds((Hut@}v}bIMnV zdF$Q5v54BBg zd~<3tAwbu2&3^>iN4}a!TFLhEm<7?B*WeMZr`T;_TGFf%hu=rkC+*~|{GZw$P5vbJ zbE@L~9_Q$HoEPg>-SYjr>ywzu&N|_tRhN;o1tz!LZd!bU1+jS%U9wU}(eh@eN3?G` zQ{jLWA6Vbgn#}ApwJCN${w3Uv?pJrG$U}K0JCfS z%XJ&MOD+;~iedkmWNI8pPb%@Kh%Z}|iAZ%>A= zk-1p%ZgCps)Y@^ddZX-|3IDIBD#@D7{TTMn>RRlUucOPIJOyB(2VHFb3=OA4C<6wO z645O@QU2KPo)cgbP`dqQ%0xQH_}Lx4r$duyXn&!>Bj;$e`A5eN@?XUO6`if<<%jSH z0IDkwKgVb|%Z`PX8X}Jxi?J ze4$(P*44s#gA^UlU0CbGgzF$PZ8UcfZjd`0mmfBw^xpNP)2FWroe?xZ`u}MEZ3$9( zP`~`EvimlzUy3Pg>i0umhlwkn&Dw{)PPf>-G8M zadhghmN0|nr=e8AFwh6tqxaL`qj8y_WtyV{w|3$j@t&9b$f)ozN^#-XPbq6?81ewj zG?Rekd0bQ;Z!Xe#sHyx}ZfZ@t<+3iMLjC9W(+_)pNR#I0`0qT>R*{(xw$~kE+U$Hh zUvju83Ozb7E-fosAWt^Dn^TKrEMDV~hQLPXh(PbRp|A`G=*i=wU3jAZeYZik(~tu^ zlsDu9EHW?wAJqQL z($lMzc=8f2OSX^3q4kVb70tZ4D1ZamP4S z+(L!aZ~ELO#6#k8wUyS{Up1W#@r*+tK)}0I2co}n3;>F-Fkw`uramtwLWdrqNw^F35BD}m4N3G1e;yYs%Yh$J90J{pY{X^ z%B*q`L`IDBH`offR4{=Dg#si42C?Xy>oLi$^Ct=6UD?pveo~->MjaSzU#J=8oeN&jD|E0j!DeFT};3k>VNQE{~YSJJQ%QZrj5 zP-lq5syj>^{OVy3VtQ`w6qFQZ$)_#Gu3pAxoe;u+O&7n=GBcimLq(ZF(i{U%| zLRV_g{_=g(pU4=#bqsPfCK}(W2Fg&i$f!6ir~VFiP!$b!LE;BgI32HbOZFnVo-P^t zNL=r8Uaqs}Fd$^TFUNVfT zT{>Oc)Yh+F#p|i1sIt@$*5CvDq;yFpDX82%DR|ARtjcI#U6Q!@&Z#us&>vu{Pi<$I za8QwH`U)Azv|04%TeRlY#Jrn*Zl7fAUZhN*ayv5bbv=2hTbR-0=GHwSBm>mPd&zIO zFSX7u(Fa7F94`F4bsp}o@lw4OH{sM{^%h|znyMuaFC%(lu|vF?b)m6WL%-Z)UDjWy z16I5Xa?@)|aRF79p}G37O?Q7P zE+9VCM^|_&s_jAv2g|6xtsSCZdl06472tu|x71VY;Tb`9r8&xHTT*&&-85>=#0lCJ zCy;+gn+uMzKvU3E1cOhQ+eJhKAR@g9@f&zKy3O`2{N1ab?;y+6K8f1=)&!Hu%|F*E z^x7Vd<*d@s1)N6t%ExXEVtd?4m!*8#TzGC$6QVOBv4LAS0O=RU^8oko+s#kJ(N0r& zjJKY{^vZ|M&Q~L47QPIYNqnnsdwxEuSi(n-c+C@~L7+kvb7MeyW(N85l~)lL(LlL@zPF5&i_g6h_&@ydfN0&|*)Nus zdWRSyR#TWp(UNAo4kd4}W8YU8i2Ic8cISU_5^&9F@!#8f8Y(@!ue@#PUT<5lcf3{i zpx>RvZDI6V<+_!*VETkm2i5o)Ca7=pWU@*KlAsZxz-V+xGa# z;0d(B9qyJ93D?gr%x>oyw$dM|nf7N@wltYr*)VsV!9o9ckhfOU*xHdKHYI8`b&QjQ zdg#ASs^3bHZqRmVt9tY{_gwW7A&PW$gX=$xv)tKq>h5P})Y9T_JgRZbiRNZKdzFm` zd!%OFr=02(3d`0>o_CqQ(l1)a1eoZDlL=lBdZ&8t>5Kc+z`AZvn+}){7Kt~RtsOQ^KYN>2kJjpv*_e_`^Vd-!lnZVns6wa$BSvL@-DNY2r{OP_AnPbdEG^A+ zoHy30#@#rgdGllZ2fZzA>s+JVEmq7 zd}jyAtK%y-Sog{5=(HqGW*utm7C_$E1Yuf@ikEB8oSlnHszk{H*&&E+$HtLM29{P>=J4I;ciuPR2~Qn$_j?OzHFg!*${D=EUvGbVc*@6U zp-zDC1ZP0-kLAJv@fI?n;|1SDbRZ(qk_Fnz3>9voGt|ik_GCw7(W30FWO4nrv%h^7zEk zV12PEibUgnycnDGX*cKbi!zakYcAO~mrsjCPuO!#`!ozm?92JRQ zV|L~wKi}sXJNzz`AHs2jo_>6S^XCUfPS>mU3(ol{fAT z-}mNLC|`KX!6?O?k6W7ok+t6M&3HH#pE-sFDf?!gwJf%;`aCmbTKJf&;9Bd#(J;dg z>6C*bLSO^>Oc<&YYOnX7dC;(vDEBA2rNmShq1gxJe{I4?e})eS1pqMio9WZ?t)2qV zM~O_I_o<c?*5nA5kZ#mHBeCY`3q^Uz`kH_&LH+K>r4Un~=*{n)Zd^assASTlex& zi@Kx)>n4L-AKu$*g40~Q&2yPeQ=x!zk*7XcoikV+d1z6Vk5P)QV7E=sBVj9kwlEE+ z-uAE*gU27|jA2Q{hXYsQ@n^+ZMccgG5L_0|bk_{+m|_79rZGYpvsE#Ev-0dX`^2yB z-)A597JuSRuvfpA5 zAvqSftY%!_dNAwmZZhZksWXExLsI}cT;AN6=tC!mM^P$I>R&P5itUGFD6p~vpVRet z_fn(!yVIzU>`qNo&gg#g>L|5lHoN(_vd2w7NzsfirL0p;CJvWV=Wd$h`seG%y`n=l z(qopVL?v)B`YDxbBLVE>y%d4p`0Fh67j3fU-dBAlu<-EO7Ns{vwo2lQa+iw4r?@c> zR$o2pro3W)oN7af1uZ#SYQ)m=z%LYZDFJtPrFhxquh&HO{9jd>x)s{|8HDkuz2O1` zvFZY1usDJ1Lu}P+DC4H;^@t>)Qisp$tY*{IR=C4}VR=z}qc_hML{9>)XuIa>;g3>w z23aV9`}v4Q2y|y>>uoix)rU3yM)aD|AsHEPMv;F1b`zI(iY5Z?_#sb;^sn`L`Y5_; z`Evr1&T3<&uTc)SOAjf?P*4JZ5p;kA(#4=@pz3z(s>*7l_7V$F*y4#Bn0v*MGb(@A zAbU%irg#~_s-xjj^CNy5n~whdL9_-VjoF++USVZKU4***3&~ya*)SK$3$d=9m-_Z1 zfUDkL#o|RM@q#B-KX_P9Q3UlY1Xq`Qc?1%M)L)O4eC2(%#m&8kp_ zl0^0~udST@su(&8Z6tvp_nYpHz|x$Xg1T+S$=`ytr4>0c*UzrrK1NU0?vV=y^8?k@ z!nJcEUMtO4dc`RQC~<7F*FBTDk)DLmlfR23+nTNT<|4atBY9ZV?jxh+QNq2a z$W$pe?)v9lLBecwmhXnI6)#qw$jQOcZ-+KZtv;5C;}7^nQ~-vbIUCvq*+o=(LYT2Q zUB4QCMh3^OdTsSdCjH^!)kYarPIW_m=`+G`oi;J9*qNkZ6?C>TMGLPzeMg4Y)|M)I zO@nJVy!_T4!qkXyGWo{w@w1Wh0x84*hn^D41M=09K;o7wVi&mFZ83wZ5ik-dKsC}z zHTG4H_bS-yf6A`H>q90M87JE0Am!%d@2!R!o$ zfzLxfR99Tith5qbmdGFmce5Yr=Kycp&Jl2X41W8U&J?6PH2Qs~oY>a4V1^N2h9Naj z`k4S3s7KzZeXrfw=YzuFYlEf^k14gRNYkywSZ}c!d)HStLY;X!} z<@pbNOy}D=1=mj`_3js`gbgY!P3kQF3-mEmR|6q`#r$o$a-j+S zm2{=pk`4kR+d$=#m*KJOUJMd1F-k4|q?3=uEaZOMVp$Ep_!;=fn20e)j2*R(4x5Yt{?=n%hDuv&x|uIV9&U=#VkH_=ft&|A9nR>?0r?nppx>ZOK}iC z@)IC7@5U=pcvMB^&o@-!RV5dg`p%7a40T7!QW%yAT-)0nI-$t|66&|!Xa`84T(oH+ zTfu1A#fs0*1q8g;hklRD!;p@@@3~z^9`0jawiGpW(-o44+`6CmCoj$Bu5>%Gm0Iuh z+9w@{M4DLUvbp=^X~!_TO_qF<$9zcb$lyY0T0=kLpnZb%o{u}In`ypCg9Uwetk`iV z!DRAfJX_58x$Qxjc+i_Po`(m!2wY%MS+?2hpn!pCr6DjQD?1iErMLtf-@Ft>UXy+# zev7+!)^*J1ah4HwxIMe*BV|5q7Ljkr(NH5g#`6v%YV*&YXCes$YALP_P%r5vm%#Lb zW&LwI0y--nfD!xGhMOI!wL4HOWce*-`kH^4dt? zdk_OuRZ62{%U=Q1s;g!PxMxu~7>y$Mw^@=lmZ>$}*Hb&`9Y14AnXDMtSODZMXLt4RN^cuw@?PW z81LSbKwk=fY9|G%!|}54V?$|G>)gNTnIl6N#`q3Yg;)n?dYpEsvmDvS!+qjRv0krZ zkS-B(MWFvaoBawLlR;Ky1wdP&rrH}P@Zz!e(eHhf%@JSb1|Tcw!+yr^UA*~}8hf%} zFOw5*EoF|He?8>sN5pW|I43;2CORHg7e`bybO7-EQ(kFB z+Vi}h32My{kzXnC>SzNM8wfVUGilA9-^qbYT=bG+Bftz`@ z86`Y0!-NGK?+ZYIW6w13hK{XZ@Xkx!W%yonOwtH|gW;BSI1q>B_+4Jr9n}g~ZEbZZ z^Jg8u&cFuh0T^XOHo0u5jnadf+Z#Z7Fe=_e(b%+7#83PcuM#;{en#L6`s+^_{WaA} z&cF<1s(|QxA|r@}rq4|&!@Hl_l$)r%H)}W^%K0NFi-rL2Zoi}WAYSHQC4Php2V428 z_x>Lp)gfBHn;cfvqfR!84N(9P^5V*dh)ntq^iowNQ0+o2p*^}@1eYJZQ?5S)YiDU$V3K{GGT;hs=tWl1Ufv>H`K+MlwWU$1V|?JG+SnF z4I-ibgup^9`Ll_sN`8xc2~cl8;Aa9xMka2f9IjC|nFT^?R^>7sBq;#4544HY!|*_T zcwYzreV5@1*6$xzuWyS(V(-3ybVs_=-zhO@u0U}19VlGzk}YC(Bfc0Y4BU%4QH)^z zpwC+3&Gb>!dgj07BJ?Z9MH5JGt#FGGn_+AQfY6#pQ#Ziik}H$^H&+GQ#z1e*PSDXR zX9UhVh90<+r~Bti<}&Izxw= z-egKyh4+g=z_O160bFeS7jT67`ue`}AB|kLYfn^50`ET7gstZAyZxkyxy+E#~mkDF98E5#UcT$K{$ZdDa53w2)s3eK^4xCVNNinGji<4;3&d_-y8-ix$rr%RmW z+jcxT2NMN_hwHMMQ*|RP@o1N4ZUC$j9v*(ZK^Vj}J76$Z zU(gf-;z!{jU)JbtCv)Az7t`>VgL;~S3PmETEsA3=R)bV7_fl0=vKl+?auSlR0TCpw zO9p*Ptf@3VvIYP~73;#nBX4Y{K*mZP9l)t*06wE z#jcgY>JrAfz?vGDO8wh2)EgV((~4=Nic@e4^#`R!gDJSyFM*e+e9~0FiWm_nkiXvx zkDlp^1W>K>u=D#3%rM13vVDCYHI48Y!PGd#YCPx5rBBnJ%f%yG{;Yl$c0`@ppNIn2IXXrHudQ zONJ?cSQgz6si9cH_vP|HdQp+ppNRq%78Wl=fKjcOjgvDw?&)UO$9le2?!GBLA)(?( ze4`j-XgWJRy&ZA;p4^$j@3P{~qElafWTpj?p+)KTAn2ZU|v~!%E9> z;0ii-I|_j6#hH@jBSg%TAX0BDXHj<~iqX*c>Q83gETtyeC^)L8VQL$*^OY7b0Dl5Rz=~1gCOlL~_P(FBO*Ty^<>s0bpdx!f z1`M*chtq^j`=a?>4$qfcM(aR_JHqCEzJo{qaU}xNcn1#plRQEF#dDM(dH@>nR*sgh z+tnN)As6o;Ypi^gE@zPRO2W4-?ne02(ax!036#wXOTGKE9fJEqRJbZkK@$s^WoE9BlQJ1~0bk)^~S_-PF91iAcz^x13 zcL#NHa&qSA?-s^8PeGRaoz3|8=b$<&W=XbO&RI1!HrClJ=l;e1j=F;J3t}Kx2wJqAyF$H=wAWbC`uDCThKV2bY45Az1u0zx;>2Hj zo9V&?gdfiF$QsMb6%btG(P@@9O@*JavX;pU-5|)`3qPJ<)$0sku4;hP;Fg)Cd%8KTxt_)+ zBI@)uc$OjpQY1`IzZDc*Twc}}6@_5Zdm|PW6}6{#|NedYAN)?$!J(?Ch%tUeQglR4 zzxC+-nH)b{FGF+IH2cLv)DBv|zFXX$}Estw*BhlFe%dC-7e z2Rx4)W2Z$v&cWB+Ms>m#vjU1~$0$IpVpd9rC?zfA?JItqDjiD`iq;1*4C5eggz1xL ziilzou$ZCngo6OQhx~dV^*cU0GnVfy+9HQH1~Wr`7ba%r_Oal)IA9)mk5#8Wk{;#q z0qPUbW$@;tfzgHDz%a1UxEu2&9ZwIX_ceqN)EUWevfbU?-p_F6!f>eA z5n!a(D4}vbV01#DfZ?JVGeBU3io0plFN33Ha)rRGKr1l+w*W_p8$7g;UQ?krb;~D| z?BQcxwTq+Oy$|P-ja*Ojfi0W!P#NT@&hcpPcAmft&5L|7YQKj%Ct=)~ojxVs<7{t3 z1Rl08y)={V79XFD0u52VrA7r56%`c_tSl`mdePf3>FM+C?>#lbBO(G*IJvpk9O~o~0aSjK<8;UM z$l_uqhPbh@v3hvmi)yr3cPDXN8{5F+I|CK%OevL`w#)DoTMaDn15wu<+pE0QoxEmsGt5zj(bz< zs|bv*UmM8j=p^@4KxquTTwQq{PTKvEk53jFq&g$TB_%_2EHOfx+!@a0H}w=f$eO_KM*;33K;Ko} zviDt1oL=T$Vgi)LV=VhU6LCQIKQhg>J6aO7vf2ap?)kYOKT$XDK0e%)<8oJ+APaBo z@9Su5GrEeW)KpfkjU|AWG;44_GkgTY!cYi0Fmg$v6iz9uCnp!?%`u4ccTE(gRCd#| z5kpJMMx$S7KTJT)1ov!skpK)VEZ^WElH6#BJZ9zVH2MjMK)gDyZN@h&O79gIL=S-d z6(fAH@Mqjo+x$YfJuzH7JU58Qr%yZOhMl%lRH4+*fIk!_dJxk-UI;YOY%UU!3m>W6 z!SCzaJiXol9iIB}L`bUFsI(S$pP3XD63NC#ObVVKbdq3qJPfF2V`w z!H41`Xt3FMjWE6*n-{X6cwshs|4r2k15jgS0vsJ3W#ie}mzOD1#lY1ngi9tMtC5$i zH3ASSN`ixf6CNI(l9B@E939rd-c49QWKvSUojRzgG{Q8VhnKtn)Spbyy}GEVh!ZHU zsfj@W9HAG1xDlm|8z_Lm12L;ipud0TURfKTV)ywTCoU(vl*EqA_tMPTRx7aK7% zG5wC9#QIEi%40~8v$(hju1yGtIOiYLZE}`N;d7eESB!co=O@NiLYrM;PMq{^jfdj- zb9uZK3mEH|T%^CB-`9f`aCc1|Dxw!iO6+>l^MiIJe}#1+pI$yy!1KDitc*1U(Hj#P ziy}KtTT83Cxp_q>??7EwSNGE=hHKK9h^Q!KTU)jl>B^O#{W^W61_lPcX6-LDj1LWA zdJ?$4bZ5Mu0-2y1ZI*?u(IRnnazMv70)a}?uViM@Bv816=B>b!%ww0?*ho?e>!$P> z0AT04ypqz- zwl?9JDS6?CXg4QN?^js-#t5)Exwv9j;13QCy2D73pGvxc+9;(d6=b!{4<0u@W$}@;0qmV8vTtpgqz=75)m#tayqV6+{6$7(R784>~l z@a-j_BWF{67=2iA8$=jbQ&?4$kS9Sj^#eB!%_#iN=s^4$y5b&y&QQ;EwlxSJQJSBB zy)FDijKT6y4pw=WJCe4g$=IgOnhQ)4sF`<`grv?h8jJ3UI&1dt|%!eK<@(i|6`O; z9nf&UaZqwu;_F~v>#~LW(E_j`eV+%XOP06b6<7=okTnW2#3u!$qaI%wCH7DPwF>?l z&wrr~9InSa8E-hg<~A>1faoqR4*5~;n^ke^XebQIRVLI}V#Vt+3uOpf{s85Rac1N@$OP=H&Kxd_5rv&tT$NwK?ZyDC*_VxQtxVjq9JNwV!vF|2Yd0qFX1MR;Dp z|B09ZI*6?f!mj+Yg{Sq* z*eE-4=~E(Sqj7l96P}T8U%wt_&o2??9s?B?#<8!UaTsD=r-(kL?ek{~h$c15^-})p zH+;iNii*l#IQR*ibN~AW&T?>k=WyaySv(rVjf990mcGCJXF^!Kacoree1`M%=S)wIE3r&=f)tRj*aLP$QoFJQO=b56fIHCj501F zAtCvrKaIhi#6c^64i66v3$(0%u3>VqL*Pohx$5fb{r!F8XP3XISpM|)M!sB*#}B^q zG&i^T%NO@_6Tt`Dti-$i#Cyxh$+Wx7a+UZ?7AA^sYIU`>^S4HS|HccMn3%Xr;R9PI zXm9gNC0S1+=@!3B;`Z2R#@!2-FJESn^d$U_I2+ob_@~1~b8~awUsz_RrV^f0S5s?S z8Efv&k{KKk?}RyDoLZ?px^#Z>tsZY{)z#G}K0LTy5Zc^851x}LjVb#RUOujfEzi{3 zR^h~#b-QrfPd`<7ouW#jSK34P22&EuCGNR~UH_6sy-}rEG~!E&%zZn{a@gsOqt?nx z6p2uSMGT{8`_NFPX=sih@(S^e)UP12k@fC*T>A_?~K9AeJT0!Yi9>HQA5qs|*AwK;jMMdkh zrERqUpX%;eZAg7?^$EX)>kh4XWGZ<(IQ}#bz4IdZuEun9o{df3H}Jy~vVUk_I0N8R z@hFRX(#Y!e1Nv)81W3z`@__ox{Ir|2+2D$m-Y={ly&VO-NwR)T8R<&X+lDx3Fvb}^ z?o?O0gRL!lg)lE~OxnD@D=I20V-a^{8uDdy{+{kuFX29}L_!ixc1ld}c%?fcw!bk> z;*5j@Lx!iidQ{u)DRI{ZfB#E;F)^ekj)Hbp?M(W}j(s^cP7dJPGy(dyc<<9U)ot=4~KOrD`5Eb?I_HPXf3zm$* zCJqZC{d}Tt9!xnmf0O05W%&BFHI9-B)ts(aJ!w4uO{zQj$8atI4s+_4pTlXM&o23F zgr+1_$;zRAVRi@X4-LLguzU1>vPrL-hX{_BlLni$ghWO}NJ>Z$6%y>RP*GhHz^NAQ zpunqCRq*!TfTE5zQD z#slHzc3o88E1yk%E**4vqp`HwY2q{QJzv_(VXu8@YH^X^y4>EI$QT{+0`aIN_h64_ zScq2%!Rl&&+U)o*UoqI=DjV&Yj^{)}MI3z-c6P!-F}~QC2yxM{xH~xW>9wBm;z}kqE zbrAz3A0!~UgJDvnaNN~b&5IH4jww)Al8Xt^R^}3d=ADLFrnJO1Hzz#YV;@i*m)-N?XMzxVRD6)H9S8m*6ZaRv6sB!tAU6Aa=6IBaRwfn#4i}iC@RI zV~aJgFlSYr|GtlgW6SVg_^peDG?H5;g@x+bWE#baovr*c>6KRSQO_^Zr#@jJDm<&o zkUP=`kcCgaStS~;Bfq#|tXJV*h1kshF1YP~z9|mYs3WpEB_ye;HPOaVJNQs=jnLw;h#k& z8jq^v(z4Z!GT2@0@K9#6tu;%UU31N*)h4%17Pu%e^u+cZ>mT@utk>+HTr$*ih=R}nTvV6XU7SQcHHPS(XF_W2aQ=({Z zd;;_Ps}Hd-x&qUxsGJN7vA+BJX5cRqN-`saOpPeDb%#;Tf;=rPp(Le;x&WBxPLZq? zjbW;{#B=fkVp0p&2r$evsIy`^g@kEmUwW7?Rz$iumbiAx7@=+KztHeH7s9M0O$MdI zd1#`pUi|vC@sfx6UrtT_u?3*P`Sa%?iSZ?{u_C>OQq#3ayWudYC#{0RJIN<9 z^_vqrJDzd~Bvu=jG*{)mW4b{=%7Uz@0rBDE%lhn5{sWcI9MeaHY`Pwc0;XN2MqE5R zhDJuU5V*1tO7RGXD)eA9oZ?+g%^!{yU?|AyTpZ2yQlBJV%39Ou`L+#Ry+_DM9DUIy zuH>~esA4R0A`4M?N`y|ueAfKMnfb@gjz?Mal>Y33;r4|__YXqMe^jFL!4PzSH>-ackFi8XLbF4);>lG zA|fI&EHb-*V|}UNOL(KWGkmNSg62J3mS&9HDCf7P=#>5tcSUem{X~=Y$4u<;K%M*r zlDe1HBX@P{H?iq`Mb?lqd84hx`3={@Pcbi?`b%E?bo=eox@KFkJewXoc1B~Prhn9@ zOwGBDSJ`-1`G=ZG$YW!D<6!-7^@WC;_?9Ep%S{ePo7hzH=1ncYJ62CLmC zraIGd3kp8KvV99Y`&iGob6&K5_FmcT2=inf~Vlo{`P=>0j={Iq1&fscjXw=u& zLpA}KDlswft&4wn^sZggCX9OU;1NFR{pQ(ru+*>2H#jeq(E5!=j?kF#BGbF?KV@?Wm@qF^28WBjm~9$7Q$qQ)Kkk1^ zD<{8SQk&U+sjIocnu+~y+y{c=zzMWC{N?b=>ja5Z8N2X^h=h-i4=%7>UthNs3#|ks z`17Y(zsHRmMQvY{A0zE_F&8*_$FCrm8ZW@d2hT^JJ5Hwsdsh-^yJb6T{dT6pc{aP-BAmi< z={I(^@Q@nq-)Q!tsJM8b%EeqmgBSuEE)u?Qp^=)zQkNegEK|1MP=P_|2b8*l`M((B zEdnG@6Tg;3h~Td6(LEST!%Rn)lAZnD>Dzg0L`X))Eaps4j(aCm$QP?&S3N2%fRCag zFM(^YO$G17EM9`L#8+7d(}S7YI#VaLK9%mi7m$fcAQP%nA(J}~MwF4*`|Aw!ZSirY zvM#f-cTEjARMS%wUQw(dw0K}U%olZ*8}2?fHoAPd{&07mnnR0_h{*b~tnZ2yZ0Hqd zDUT^qS{Hhp3roM=UUzgP+GM7k99GxSAzyd`%rCnJ#J^)qp9)wc9}81jTB?L{0DdMZ zuhZ{?DlJveB_vS&#q#@5sGP~fMBl&P|3I__?iX)t z$^OgVcIUo5V-49C!a;g%sp;vk?V}K;rbcR?8ZdgpEk$?F^%?yog#LV%S|;osgdSJ6 z%cW+@*$yE00fU1-7ZE!n$jbC^;hQXwZ$lrd5s?n!+!vTutlReGX|PI%QRu^}EtKE6iR=gP>!KGl4UfI~VOOXDSt)cN00|TE$Ej^1Pgoyo# zhjJ#~7J7Q+-iv0yTzrX}uG7a>-1zb|GAwjQCrg^>;Vs^ug7{W&ZFl$2pN#wG`nTHJ z+6sMLGw;fHdT%yTlE}|~{`?uZ4%9+@$o~Tb=v_I&#S2TK1Eq+{nGj|G+L5OLW7<vb{Y0MK6#8zoyL)CQ($*=X@Q{dw59HIGj>;0nx zVigO4z~+{;_WVUf+Tk;dW#!M;EswCIb_;!#t_kc~Rt_c9D9PcY*k&#vgwe*Z9D;NR zMSpEA6U&vA>bsHW@=RYlJ&KGZ;B9D5SYi=(`pU)e2Q<(zYa(4$6QcCX&rK9w2%JBU zO}agqsCx)fe(>SW^h$<@msb#@<=xOPFMz<0&CC#f7;0@jmIH4ub3*0W&sN{oJrwK| zONbX68mjQ#;tm{7czAcA0F+p*diAO&H+Geb%l_j-)`v0}A;AbqM1MEYPyAlHH}tzP zo~2i4^G|rWX3BjXvswRpac6*URiEEjRU!ARoC(Vl$7Oe6Kd4t-n6ITv3)GcZ|4>C% z%AOC`u`wr8qWU8Qk@G;s@82nwSy1S|Kim))`>;#7Hr-9YvphSy1Aw^!yE+Y)d3?cL z_zun3LmDTuJVy5-LHPJH-WnP9&bNPkIA9s_46Kv2yK~Qe{`?siF+BasvCnG$!-G>V zuQt-s$baNXU8z9%PD_*>Kk(oKP zG*rV-S?$oxqDDzgjq{$ZA6JfbEc6CI8z|{dhdy}l;2(^>b}BTNN#gb-+#tU~r#A`L zeXn?gA6)Qjyo`MbmTz-$lj}ofsqbID2*qXB9N;2I3Ob`B4oR$HUexc-r45DNlBzp8 z+=C)|`#R*7b126rH85WBt2boT&3!ZyT;@DQCIbC5S4~4K=c0?+VpLxoIhxW?*RlEU zWLpNbIwVuA44D8i85tP?0Rc%#MlqqG@i8uP z@?-U)^V6qKU0rZ-gtwQMjQcol-N^C?ws^=ALb8{BSUh3dQJvt*1OxIPpt5nOp^O;9t|rhDJeNRa!dE$A@~Z6@5Yz!-|>@Wq@^ror1+Kipq*7#8+Uw(j|jP_sviv}q4fs-g|q!_%ZlGnp6b;bHdCK3E~_K{6<3 zI(16Z4f5ch<<^QI!_%J~!k7K>lJAn0H@d9szgzdoqume*x#>(lI*Y@EsnmYu?vFXQcT z#s+dgwy_59M(oOo!NI|?TcbC97W&=yx80|>fOl&>KIYvj@9gxImGO8%eW56u=Kri7 zc3jo7@tX_FrO{_k;2>=MvxGxu-bE^X*A??QSU)xLFxfYzC#m;^yZ|OppRN8-*FUx| z*)O>M*OiJxkI}VKAGxFD6U9XAb9;T+ZoFej^X8`y9{<_Vb!X)pE-b>wA2O>-%52-$ zdg>8JfI6ejMohou_%0!BgoQHhgoTBHI_Kiw+11rpU~X#qavHl5`_pm!?`4f7JB7~* zmj<*a*p1W&#ZAGc{xD8@-AYAOH8MAMLhR*5-xapZocw$|Sz+JK+GRSHnYGTe3#gX@ zZ(_5dprYdA1wIZ=&gRGO-l-;v4cGcn2h*%O<9POb!y8xq)ZHB^YITs7iLBTV*r1@D z!3ycUw5Fc;`JkyS%;-L@FBay$Oj^3U)>Gfa@G60wGucHow@VzX@@!O-FQ3r%Ic$Dp zufLZ0r`;|~KISY-NX9w#D3sHLFrrtwq6*JrRb$H^XI0Dfd$Eq~6fYh7IJPgk4NGrc z1^-PPDODeIo$p;1ogmV4+6dvxrf#RL_vmm}bq&Jv1__5k2iN(dm2?z)z z75x0(szv93>WaljqWgpR)#%a^IY|otwXhaXOKi!fPoFj{^-;@#oc7;YwL~};5j)E{ zA)yoBdt8DMl~r1r40J&s+XbyCvC-KBWD~C~a!t8WzCcSL{_US6(P=!y7=T;wE1grK zKYnMng)PR?@~$ivN;B{}1NGOELX}8mR+6c-kR<0jgU4F@6voJR;(>TW%7w1SAe8D- zj5cS@A8Ti}>#1^-ZuL7Hfv;Y^oSm6LDT-^T@=>hMuphx?;)k|jp+dK?d0$snR&M8H z7wTr?H*0UTY3b@l+WD7oOJd{Tgi_w=tEsN;G1R^r5dozpiCfr4XOaQHXeduR3lhJV|y(DbW6-8C@wa;tk z$Sc^wXIQ6+P?fEPun_6Q5B<=r+2=kzPvD=PM&6?nsToi1UzmgM2W8+bu%EH8uyjg& z{$UY7hH`Q+E>;6uBO$B_LbM~FJ~_gXWNdIWTkTnt)N4bNauKEv%owVf7I2UTw6)jomq^i7$NDp{<|%+8)*xubeg9lI*O=LL z)YbjCW;oC8$FhP?F_~eevZSQ_<3|EeiY$Sh1JNkga-)(U)+TA9_H59{NU}Wu{svaB zfl7xxMuoNYYies91fqJihw=anplW@I-@>?I7TN|6=Ca02(BtdLlIviR@x;xq!^Z>R2% z*z-;$`BuLhBCxDB@8^6zWcl*@Mw7v_L{`2(^ab`G8Bld*!mcY8+IFAod0xp%b@n&} zjUJDHI3~3iSv=HL*K#K1M!;ItYQ$+WZ#NxQASHYo%lh5Z*ynG z6A4}(alG4{cIWx(y8stxUgmSj^m@?c&hUF=@g9Bde19PtRiT}dCPKV2te@lFs{c>0 zj3Gh>gJnW-bJ#sTwglt5vJ-4#Q3>ZLN0XPbt;6u~&xsvbwsMP<^$sw)uw_!ws3d&mLhBwO5Vw-<7+u80Srp^h1nq z*!z-`IomKAg`A1MvQ$EED4tB`%s=nUry*H+`Tf!1=HlSqS$A+gCL|chk-c6gt#`J! zFSvhS!@+@bxEEA-oRf%D*WdtS%)Ij(+tiji{CWisgOV+yGMP*Z9qI&_@lty4RCVGD zrvV#e`D%leC!@TeV5%?U7T9PkEQT*^S77-6<-q2Q5QuZI zF|n*WCHIS#$H~wdHQwc{EBxj*zG35JuQT_5)z0Dx%SHKghYEB=RnciO)@9>#+)VFx z3wu5;`OTQ%Bzx6Ge_Ry#c2g^rS&Q~JWJ973t9E?)L;tXPAk?^skFQkgN!%b=bil6Y z&F>jq=xTMr5U-f9Kuq{*o6)mz^4o`KRdbd~nHqvjyK+mUOipdHO^TI_JRNnFt+>>5g z({99m>RmdQq|Us~w6)Ggm{j}7xSe7pJE?y^bv72-|1A*W?&&EaB$OuNNM*7JM|;_` z`7iTNj_dZDKcL9pS$s1hCMufAN9e9g+7Yn1@FeBBjg66!k;((cjh{DP%+AdX*9WER zpuNai@KE2`DDTc<`9zV!ZCKDhFd*Y+`Wa*jF)^{GD|!Y7Hs71osV>3)mD{ziwHvFx z=GNL@vvM@#mS!d<;ISC~@B#n(!awjh?gT#`6FGVNpnwD_>zN# ztE{XHpt1`M?$AYo`isxqZ{33PGhDIxaYu^4$JSQ31!1V#9VgWRWa|aQ#wUZDckJzs z_`7Hj77}8(n;_5|^?^TlGH2`(FYa~!3K#}M%T5B#7&wU0_3M0~Q_pGHx19nc_B@G? zt%io9WrX*SnrjDrUWJhA>AkkYL9wL?ytkudBTwrYXF>v5;!$;}MU1-0OWO(Vf_ z|I2W7BAtUs)?mzCD4pZas`~r;3#T_2SK`RKxbQ7Vh=>?X&YaP{QJ|e(6@1|ThX;u< zR-_~+3*Q7f(2yJ8=hrBlx_!km=;Xen6jGBS_`@N;(h3+c|3C^D%9H&3R&vzatB8w_ zA4@NUz3c?1NhmS$KeSbs{jxck<}Q`Ss@utbj6$bn#FKrNt-TzahJ|tsg9uTsXU1lx zT09Xd-VyCPsQIs%x{ZscON8X5%FRpO{nKXx9{nPsI6;JIEgUR6X3dE@ ze_1mn&y_OViJJdc+UzeakGCCQ;_ew6zy4k9O()K1dW|+iyJ$7K772{`K-4x*AlTos@&1>^%1fiK;4OEL@Q|>QvZBi2%gcX8mkB6hL@HbD`x>reulXppc z6o?);XTx&VW&S8=5ogL`N}Dp#Ow8_OlD*Cxf6E!mo-T~y8{G5mEMKJBtP@@z*s2SC zGyO+Ggl9VW7eF@^UpZXib#!3O|UeqoL7Zp`0OdN+ueX=!Pdcrm#BSn}f% zZMc}-UH_FoV4{tUj_&C0KKA^9FDx(ezmaGpXob~~#jA1JKEBq2f$4O#N6~2|zu&!b zO0?4k&7Ku``X~B+J!_FpE^?m6LX{5<$RhJ%ZoRYen5iRh5q1lU>yV&+kQWnQqOL1y z)jezbs;)Tk%TLaLwzJLDM%O~E82-~YaRMDLlTqk=(7-`p8;C;k1pP}y)EqsEQy#de z{BU%Znwom{A;=oJDi3b^_&893X&P2aQ*SR-GVn&4lP3Xja+PK&Ofn(#A%>xOwe??1 zjVI<1EH!tr6W(zmSHE}RMV!U@UbQWil{+K;2oF2=HJ9T~CTbc*u@bL3rI7#$r9Uh|g)dw^PkA*3E0PyeTN6QO;7dwY8*YPTn@Sor;h1K}53BA@9q zY+W!Q>Ae6R+GgNicc^(y$}wq8&flM#-eLrI(k<7OlVG~lWK|xQ02GEha|Zr^9M4jw zIvLFgco|!82|5;_JcjI^_WI1ZVAJGvN~rMD@T4;B7 z!cCru~(8nAfPUV~t!VXaQLbD7wiuc#Dk4X3BDYiZ_ zqxzkxQ$Vl$8NBVlbCbZv%S)=mqP4H6AaFPBfAQaNMGCobLJhHLt9U zJgQJTotBzW%$P^wvaJHqFtWNzAzatv>@`cL9D^>IGgg8sZiR+c zmu?0Wc1p25t6oZU+s~8qvOrceDzpXdIt6c2uo1J|@%sT6zORa~#}`=W4;e*?J49m| zS$vj$0WZPbBPRhpf|HYAQ_sX?`x2IXHg2_tztZQ!=>GuX7=@r*e_!8!or>_gDk77l zOI_g|9qrGg46pk$W>0F97sT6+k(F(b#&kaY6gFQwPqvMXX66~kzC578eT2{W4Ci)- zt=z=`e-@VaNe9Wr>0cS~yMiX?&B}(Trj+7$)HCcg4$q`FL8s+$W~2Up$t78Mr$H~x z$jDe-TRVYTntOU~0sT1$V#WvoWqsBdkOG=9B)5B>s(8nRfdd}0q^05$AHEzMES*Mo z_6A-HXNo?TGC3pv{_V7k)3k5cD?>%FdU^TsR4Dz45juGI)_mrq&Z7L>Df9YQvZW2Z zJu_g+?3hcl(xuI#oVZYd)o?LGW5E0w2=|~Oo@Ro~DqLy@1RAT6vuDr#9`1(qU`3Ic znZR?&(9jS{xSKa`o(!f|wE3C^TD0 zNJxM_1a$2hBIYXwia0 z82r%6z6RyN55V515cGn4bL}G>HFr??#l%ht#ji~MuQL-p>$q?0jhrUN7Y^DJ)+#{*W7b|{N9Y^=Rev@uKHXW{POIp%>D>2QAveG z%c?y()F8ZFFDsl-EUAA1%@7FRj5v>!l$Gni`wbz^ce!qh5(x@kRDlMn($YncNUSBe zxYTT4eT=3PVEGTQXBz`x55mEdCr?~mT_IuA(a`}Y0%6_LMqHt#r3GkegY4GAKw?r7 zdkg^x@|_>S`P$Z|=H}+6M$~_6q5mat6gn7Gd2FJ>CqkWdO1!;y5hh(^sI9`rNm4LY z6hDU6Azs2^2MhDT)rns)D68MfKZ{pwJjKphSkydiZd3oA)Q`88 zJ;)l0B4641KkzxYxGx55IzxhFVPOGTcb=TbRHtHNx!8&a3PwiNptEUc+|SNtb*}T8 zr>*0;a^=dX$5hJefUPBHNof7}k&cEYFF*epz=*pgSU?Kkld>bLTX&q2b6-cYq8k?z z1zf562!|&Hmx)bN8&n9XET)&)qZ6WLC4ya91g~4)w_?`|Mk`-ZWCJcGvcB>r%nGbH z`V;p-bo&G0BD3&2;q;6rpH=NIusg~3;y{9RS7rfOc_#3-=kR}qfd?S*Li!K_Uo@*e z*IG;K*b34x&%?zvGd~}`tN>k2{(#Kwp`(L^MJJ@Qy&b!Q96Z|av;doUE6c)4N8X1V zDJrO9w*`PJ)!tB5m0(3)UcNz5VN08bhv&m@R&eGD%T|7v`Fmy(qE#p)IZYpHu2Za3 zt$GL~-2K5F*~ODGreE<~&09Ersdde!?H4_mi+%2y5UR9|W!N=|JFdMMsZBM|*gIs= zd2qyPPx~!swN$RKtdj;grwpb0d9#UbrL81=qQbJWU=n(-wdhiW0~~70+^tSDaQl|v z473_H30#Domqxd9hBe^Na{_5Sb#fn5DdtmmCf0Dvn=YU!QXDBlwn3fL^4n>boGFMz)X zYB}g53Qb!i!9v&DK(qZXSUs8>_6%S(@q|cASGxGvw2CgHJb}Du9ZPcKFA`4Z+I%v2 zFg-ne!8|cB(K;lx({sx52hs}Y<$6-M)Z>sOK<5_@%d37(x!-jH(z0UzhKLO1R+76%KGzdQH8NRxDyPicMK0Y1YdLr%Pnk~+KT|rr+R~eXOhF-EBrGqp@$DkzAw@& zFj|X{+otrb-wAaB4rYmkv*84!XR1Y(o;kUcpR?_L>HDJmdF~(W$Zk3o^6pLYj#c80 zJ8-!m&BF@}1iFdi-shR`&wmn`rY`2^>?OaGC#fuZOY+e&Wzr?Oy@^j%q3U{8*vXR2 zJ~H$6Lqi1GUAkrxA9g4EUN=R2lC$$zw0R|%NN1yFlOQUUuw%k$WT0}FI!XPsn> z)RD}W_~_BWRJt1t4Nb#HM_b$e*88K4l@*lzr;&gaV|T^K=vRdu$wB<5^WDj@vE(AK z*Y-eM0mbu5so6I`@vwwRS)`9mC*=#^{(|n^{F6xJzL5rcI-Z6 zVJ36n2>Cl_1Z&gIZWTD`#G_rO{n7x>^~+>*+zLKyajW;Stdeo;5_BDz5__C2sO)IAWD)c@o12)Vf(r|XDy$axA)K6? z;x;Y!ps_gUPb(dmSOz(>1F;WTWRE=t3=9l`(O{>*mS}i>S}~$W_rQAK=wLbIA&bmA z5QD?;Nbt#-)PCTQ`uh0^k-*I5VS_IRxB4e6`j;}uhp0i2+tM3>rA3c|6`*2;bp_Zb z6d$T6-}d<>3b{yd1kjy435CSY&W_7SedbQ-&i1xEj{okTiH{g!Z*Ol$N5|II))n!K z7pvdC-6^eJJ|65`v_*mJ2lPq${F+f7F3PkL#`t~+=1w6#Q-`ttdC&c5LhF}eE=kQ| z$~CXOv66!mb!6R!YYC>!RCj2_P{w%DM(5LnJBW&v_ETP*I2s)yK>FAY6qh4DpHTVH z;0b4pWhFF?d}?dUD<~L0NxUIjR9BZ7HQdbUe}_LcAeEemXe^+}(%AU-*qFk{?f0Nd zUA@Yr)mMo~p?6Noo0Ma7X^4b+!C_yXTrg$F7;BNXZ`a{HFl8t8GM#2N;rOGHO!GO#AF;7vqn6xDNb-l7eRe53JX>Bze0!JofJ+Q;^mruRu~2kT_{!iLX<;$tuTqXO~i-i#U%JYIn^Xl zs-3DoQ@nda(%HMO?lg)B>tjm*dp-w&i;U!B{$CKvX&n+zHKin6;RcmC};`PL?0 zARl|Ae%Wk-B-Ejy(5N`ooqhBo2u+Pt3U6^ z1%(nK!Oyuyb?i8pv6D`&VRytxgt-sY8Ugb9%v9aT(-de#YdcGrz97qs? zCdZ$)XD(O4&;VU=KUZH6eJe4322CohBG5UNB^%@q$8^>ku3Abj9#sBB%Y&=#LN}5( zI)TAzCTthcoNL61pex={zvQrSd6pS>P7eloPe!7{F_ebEu4c;D$TwPriCqWII$ClCCr8#=Or{`D@viq#ue(@R= zBBb%sbuuL*nmwCDsf2~p7al2cOAvpa%YQZE`7y0zkfNqJMZ<^X?N<3t&)espXf0&y z7w2i1ADu-#v)!G<+^@r_END7!!&eYFXvMvGz}otPYYF=JbuSyYrUq$AErVWrgNOn$47sX#D$y0IAXt)-z>ZILc)_by~%vZ{Bw#oq# zj=yV%4;2*^O;##R>lZ9m02J5L)ARPO%FecgM!B?KBp~?Xb+AxU#w8?-&&*tewx&PF zc28ab0g9}PqN1}zJEU|%GwE^jPckd zsjtd={`?%2>wvhyc!c4C9;l>k)+jSu=;tfvy8)DWYGGl2z#&@*u{oWfgyDzy|GWWm zRDR?qR4bom>s{hE{MOR*OM&7&mN=?Y{DvQjpH6KWzPaWYBwJIxv=QjH#VR_TGF+c( z;1uvKFmz}m#LV|o@u0@${4XpkS6w0PMa$NAX306+W#&FW+FVZfwAqB7uLF^##-; zt>TY$g6Dm<$ABvLKqBQ+CxUz&lqoMvYL#4CgkMo2cHzfvKvtJlTPZIrZU5Gx`IB2^ zKcwGU_+^WCl^V&svl!~UVyfrOSy(NbpR;@03?@LG>2Hzzs5x>lD%IQORX*^Dg{17y z19e|KBq$JSSpK#3jasl}{Fq@WccQcYm?5_v=ih{JYv@NG-aVI;#__%(GkEZZ5a@CP z5A#pSa85BHp|^oM62@IfGs0dvqAIdp#gPYWp^Hf58`ql_4f#-$@T_ z1JV_f((NO)uV)~gC?8s1_k051l_v+Xj7lH+yGpwGjF*^V%CDW zC_sPeZqkR-LN5MXi_0&pw|uT|nI3IiIpEg&J#BbCpxsE!(#Vvx;q^Yti;5Z(y90Oc z{N50ph9%u=w`Z>7Ooy6n9(-HeE$VOUX^vM9?7jKi{gX{}qhA?9^WenRi2a&CtkGp? zi}RqlR__u^)AU@X!twF%I}#NB*HXR&vY7FCpltK9VhZvYDbc+B3+o6$m z)*1(f&pftsb>;VbGe1Ay7=Ju036?b=U_k51gy<N~E(4;hJgKLqrUu3!K}t$u z0i_{Q1T!Jjay=woJIr z7{sP>t7aFHdRb_47m|jl13nNKU}QoI4;}H{t!uI2nB!7)m_Ph*e@$2L4}c`Nq8dth z!$KW9WCbHPR0z?4Hj(t3sD*KKc|M72wSj`N%&Xn9Ma585?U!Z8onCHp^8^ zCeysse!X9m|0u%@+bGrc#1DQ3v}qX4!;TuX%*PKOJXIFcb1&r8@MFHS-NzAU_uvBe z!7W@Q6t*`4mE-)JWW=MCq$FQ||6u48hRkDu((CUnA6Q5~4bzI`Vf$q+K?i6sh#*$c z4Cr1=%pJUsAc(-Q*F$;+h6hX%2A3~;!`O=k3eRfYB~ zd#XWj?-{z|?CdOixIF=f8B8UESD)5FkMyIZgZJsl^_Pe1#^f?3Jf@y1N2dzGo7n;P zG)&m|^Hq85ZqXhVrsC}DqI-{-TP#P42{Dbl=2V1gTX~)+XHl20^h|f{TY;yu&8G?$ zT3**B;9%hs zA_qK&vF7c{pu8$ZkT%Zq9dAYGG5GQMy#}8eB?)S3ukClxboX96U)JLCj3o)k`8`GU zYcEAmPQd+}d*oIY+zceD&aE7E$ z{d@$&9^i4V3l|KPmF*z40P!m9Jrugv-xV!^c@=UDrXL}+)1H||7%dVCRb7VZ;TR`M`qZqa75?W4j)4&1$WKJCjnm#6e_ zG6u06AG2C1R{K%u0K+z20{)uJc0%2n%)klju~MnuUKDeTjLW}5NbxuT(#YEx1bdk@ zX{RL4&NB(zJYtmg%sSG984PDGmYbA!M(5LVKwtYkdRFJh-KSW21v@Un&8<%gN6sOL z&)c#25c7@}q1&yja(8Q)BE;cyhD7lG_KCA9dNdo*ApgLI$hB@Ir7R^ekvij;CDtdy zhfIu*Kk<{w+iIY~u9IUWA#zS~s6HqF4BO^!T<;P|GrG|ox7Z&KF?lRPR3-rhgB4hU z4M6+yJX)SF?N_Inlfg$^Q#cer4?NHnQ5XKXvcqLwa;$xJSsSYg8{v{%kb^rZ_M?;-@^urCKisZD75;RIhf!Ohs&P37N zQD%J_AjFVCcep*WkDouav4n-PVeZL*JNpfAr61XZtZ!~!zH-IQ$%!h^>U6& zCk$fvsWo?NBhu3?QA1>KW%& zgE8EDk_lqc0sBX;IP$)}+ZZgIV-qeuG#v>4VS`5V3l}aZ!0A0-v%Ijtdje&xN|wN^ z5wI&q#I`nO8DGA<32bS!mHb;iu(RPkwoY@WHl{c$FS0$rz0J63bwCk0P4npec-Gy!Z_B3nhGfg+@aR=Y8S!ul;wgUyI7f+!~daT&yiA zIZxfGN(sMeg%ymjn5pcR#UW|M$H2HG2(`DcFom_%v=B({$HdTNhyp@9{uV|s=cBTs z!pYI`Wo0ECUVq>a>~RFXdiwgO z3+l_t_}STUgJmK8y0e>;!-g^UHwGW^DiFe=&DGVPl@1iI)U~wkY_Oj@=jZPa4H<*O z!&%IxRNf14(y!EDOv|mnXSaQgs*><{BrS}VhcpmxKmW_gStS1{)Wl;*kK2N=hdGkA z#e)DboV)4duKsW!^ymACJC;1bzkc<8vvlc8yxiZjp#7vSN&Wp>CS`t{a>K#Vw9jpjU5XYY*Y1T1hXb+U^_zkm;y zc$)nJ-7o3w1?Ui&oSK3jNK9Qpx3~VrXe-DPn0y$#0urdTi$ix-{uMky6rBNSI-@R> zE`mS4f2S=v3zH{;p|taclO+eI1F7}*_cKZRQeHOJ(?fEUCdn*DXPx?NX#ZxyglLE! zt$&V-ovn1vw?^g`q1Z%f`!cgtOD?B5s#tKRF-*xR9QdRW=a% zQWorXt{y_xZCwo3#ZdxW^!4UtL&H9pt=XX1$J(eH&K>!FUG*YoV|@6xDRT{@x*R4Z zCURy;CEc2uno5N?uU^qqd2P%Y7jSTM6FHsd;j!L@`7kRT*bM~^-+ugP=54?iN~eAO zpJl@WQE9MPu>NXuwDh~nUh$v1=CkuVZ>tqpEJfd7IX(11ZC{Unv6Nu;;y_064OhpI zgAsSlo9TvXKjQ`ne9@?q>375S&r~p5yj>){I#8cX<+p47+gPdz<5%Ly>5s(%f1)jf;XF`p)5Q&*JR}qttq&16iXTo&% z9utKh1Kc79WWil7E{hh{1KIR%-SJR3AyrBC$;x~0JKt*IBSM!PpX5AB4mS#u*%LYW z%0yAb=Mm|$6Ahc7JVYJnNFS-+2mIvb_D)zx$Q@FwaXQ;he`xQycqkLF*~6N`Yq|<& zHW41$oaly)2RCHE^KZ<+j3(eb=6IfyZ6^w}?d;C=@EU~$z4!fdX6?3?QIMJ09IkgoH{+Dj`ZrNHdX;kVZtL zL=aR2BoveeLAtw93F&Uw1J`<H4UwQlqVbY>vjkaH~WsTN< z#;eU{Gd)7wWu0$ey zd`u{83HMv;x6iOx^^8*g=WruK(z!om6#D?qGIsXYB}{C^YMH{db7&j=eqbx4pWFEr zd~@HC?;-M&zF|1>a784cf3!+_2+7Kw@dePoWwO4m@kT$MRD7S~SD^MD0nBpBqMxmURc$TMD*NmwetKL9}unE4!q<1ix{m=dkMR%#6(M2=Y>( zD!?1%{VXH|oKlkBl)7ZW3^b>S3UJp63O)i5uHZfB5UNl8)rnTwZNUxIh%FPi(CJbL z-+cPy1e`)OJLtoJlmSTz+>9BL8zIBRiAsM_Ei5@v6e4;1%<971m%XE0-5}yO4u55F zKfgYqDD|8xUu@6yFaj1o zW1=4IDau-*_Q1ixx^dP#oIyj4&dG5E)-b=LEoyxaunVzeMCR)jieLzZKm7g3`Qe3#`Ru#AMh|J9&UOgmLZ1Tu-`E=}7 zCR<30xqIf8-g>6dPQ5d$+4Cvo(g~~$@wrdc~7MuvteE+hJ% z?goAS{CU!zjD~+w7J|cJUQLzq=>AwK_WFb#X$8Sxq6!%YC06wU9&)=&N}1=Yrp+FH zfxrG$S=mTKsO=FtjzK#;;ls0tx82#lq`IY1T=K=VE$=Y@=kFWOMlIu0r9(yeSotm~ zin+>R;TX?md9h%G8DwMfOgp#h2&SK8@Lr}k@SS{H5Tg2-l{;2mjIU*-DC4ZU#O-$; ze+TB?1r$&Xzikr+&2>z>x8Sr9VP>9wj>s7pyadbp*j|{!mp2(1K*Als;Oz~z?!{-1 z#?B&gz-phD^_BACmw;^l)nFLNVl3vdgf18Q7ceM#vNy#!yc?&Z368_Yx{SB`r%yCE zzHfB)_{wP6gau==$oQgG_5l8MQr7;;5^^W>vZhZ)$ zd5aO=$PXL6utau{=&8# zbQBQX7do^A4t~hZ{skGle~uAH5bSt(?7_q#^#v+09WEe?oNqWNT6FFTxoK~tb3ar~ z^Ihgc6?@|g<&=HmI(R7Vk^KDbC{23pgAp~K-V1>)mw;E<)FfKETd!w9W%9})?v<`i zM+(ZDW#gPnN>Gq!8#5|W5mjBwO2HeNPZ6nqt-?54lmJ7B+7{-4 zHv!@HTdlzZc_s{&8Fc?QaiQP$4{>ql(4JAuQ4Urm_}^?Y9G{XDAQ0j=s|JPwZXDKQ zUH*q~I>CL6#v@G@w$X8Pbo7QStKf!o`G8{x=R5$kpv~6K?v(30!Oumxy@9|M11X3& z92|825q;6+5y6ZW@E>h2h45tHf$xrRb#Z|p>a|hji--#v=_E~0=!;H0f+X-gB>(Y& zI4K_qjY0vtKSnsJ5GA)YI~lhB^g7!2oQN69UgjaFE%}!GWq7lqrZ*8oQ5r5yVe+bmOTs)Gc#iaPfJ!<>$14D1c7zRL%?`GFEK=aJp&ixrO7(YGqc!3K%m{sci=^aiNZy(~q zhno4W)$lHJg=9eKf(kWL9X>Ac{zGx`;J41+#C{bS^41#!PE)}%N{{PDV)U(^#>%%g ze6c+I0XQm*Dl! zN5U6G#jZ{G^>RCjF3a3E{OM?L`}vi_>QyOPG;+W)cl?^-S>-Y9@xJ&Ad?60Tx!s&a z^>GRslgW4uFa@06gF6ver?^t09-AN5H3X?)?tBC%g^*Qidfk>I_J7%zyKWTUMkCZ@4-|6PXBp3*Hv~^E9i61>pPRS{n1`(H-^X`L zCPR`_Qovw+nyPbkXTAp_Q!tVUM&@W!*G*Gk+a8=zLn9+mGy>Bb9kP%gl1;Y=?%dVM z8W|ax0;R#ch={fTJTemo1a2oYtVJ)FJ@WHcV55fzU}FO48wEAChBMyDl8<>)N8q`) z$3jTsr^+H{r;TW<{RjMxB(jz-VUsEDtpqjo9*XgAa^>>%UlG3UduZBuxN|96yep`| ze7!S8jr+|k(y6^c)^qhmw|$AKC!^Df_6F|kT;-q0@^MMcOgzf@Z+wF%jWL3%?8Mc1 ztOouxHXF8~+v;(n6l%aQA z_x5uvsB@3yUG#iSk;M5atm~4#MS5fl!$jsa4IT=Tov-)$DrStQv61)7nUWFhYt#tB zu|TFMdVQF&vqosBVB=Sxf5XM*!mu5&iDd)x477)?TJsOn&prbL%uQ7{jU;6Lq_BB$ zJwOEhB5|$)NI8YSTD z|DyvMDN(s|#|tbD#y%G?0^Ho(WR(zFt&@|6Q`0Nrs4Wv<#SUEK{*@7F60e*U#YU6Odf zQMYYy9u>tJ7CuFl>V^}BWX&8?nE8&*zIs$>KThRW$|(Bf_}7K23cnMnwUQde5F}UJ zf522_&PX0{oZ46>dYl{(5jOE*`n}iiE6r`K9o7Iw7px#i-#k#-le%jz_!dV?EsV2` zh2FhjSHjXU!H?6P^cg#cDG!^6Fo(yoJVSGR@;)_a_`M!vZAa zaOJW6620er_YWgu-?TX|;#V&nM9ta}v9y|{UR6HN;fx>^x>D9F`*#t3A3H6RdHOZ4 zTh3p)Y#%G$IMVHn)w#%Eyu?I6Qs3gT&Al_E{lGw}@u%OImY|8k*unQvS$Gq-Oy&V_ zhevwkt1FlKq|d*9ikuVYAWTo z{8rXRKT09|np4tOX36ilxbe@|Dl)WIL8He+RHL&R>*#&JPk4u&D`%gGJ&=!$zCx!Q zU7!*uH`jQA$MMtRfjpMSVg9mG1FDXpGUvcg4>egEL`10sB)!w#84+P&N-C<#>ijPy zC9a^JTC|YhxG6gDPB+_ad6eK(tkLEa1IHu?+Nj6xLe&pU$)H5~XYO3WLn5wX5i`9P zqv-g`AL@P^mPzi*nZzB=w%l(#&H5u3f}T?pV#a(rEeg4wa0{}>3bw^cU7!uK=eLZx z@ve-(98HSwI~y0&|ElkM%~`$TO7hs3r9xzLU7^*xD7hWK?1wAY zt7Gq!kP&||UjDSp#y2HreX2mxIrG6oCLd*QP)!$S<``MX!Ac)k`pkk{1Am19k@8qq zl$Wm=8KJX<94{a6v=MGm%>!EjXey}WfK-5-u$j_cSo{Gg4c{^T`)4C^XNo@j;l%-` zmdR~Zi4P%O+MQ)`_re!g>q$hB!~#L?5=AUTSlVW6ns!3BFH}n2)a2Ts#EUacT=pBO zrQvNp%D6n$0#l5a3v5j-US*1=~%;J5*SNL z<1>$9hmSVus=whOkRb#b77`K?Si|6nSTyMB>H-WAs-sQ-f=GY+)@`Am2h7=FSs?QJ z^7(Tu$UWH;vl0(C08WRrQ~?nY20@D-p!t|L0K<}t5J2UC$<#HUCjGn$rcYlm=X5j% zfL)8sV*O}mqK++f-IF|Yn4EB{d26nVrC=RQBm7IVvyG46!Y28>q2X(3soX0FutG6_ z$39ugxO?*w;m-?ha zhc2<;iA4z0*nzpOm;2c9OY!Hjly-)U6-|a@wDDYUIW~e%R{|ZWWxgXZ4=FZ~%yWId zMFQFlQZFV_dOSi%+NEz?m(w|E(1J8lc3SiW)APuMacM-q_9xm55p$XNl~t;tgH-?^o$6m_>k0W~bzEI0vh(@khz%BOuMd9%C6F}05D6cYg{8c5$)h5RSbh?4y){J%7gU{KG&M%$qk9^Pbj zdpSJOLTlr08HteNp?jXS+_cY{J>3l3%&i*+GioNL+?ScY)#D)CA5>mkoJW~GYnlql z)Col#IhXnqPiAzK^>)X~+MS-rsh=>8#r4MCvDo~6_yL=k6_?GE50(Dz9f1^tAxj?p zC;~92wWtYB1O8DnmtCr<1uRwu1gyd}CJ7{n?MMAj3NY(JM+@xMMc|1BFafeDdKV}U zdAApb(4SL}@u?UWuN*G93wC#7v5S=Y)!_IiyuS1ePxdgqI;Cht-@pK6+tah!0|ACO z(N-qhwiA^{pwd>@Asoa6n|sR3unrg6k+$K8^8)a_6IYQ;Q@eToN^G#Mu|&-#xOe ztFsDa_h0$`q~_rV4-bM1lIMV7Hg7KKsW_+z|U~LO0$_f!;<%a1%n<61PZrWNt~mnudo{tVcWF!@sS?%Y*_p9hv;)LF)sD z+_fJ+4~JfZI$hmd>Z_1bxAU7U1kqp|M~obJBM$DDdaop#oTO{a1^5{X7(D-ar+u@} z(y{-p`) z-m>H|@?x@=rTA7P5gIx=T`VjLGubZe6KRVdr$eP z<_KQshg4_(dk3_#X;lUXigW(BxT_WVVwNu_HnxibRLz*Lkg2l7rkD^T@uGp(i4nrf zAAHikNR~8a7#%Cx{93wpF>6`=ZQm$oICJwH^Sq^EH}&eH%Ul(59*ro(RuO0raQnVY z0wEww08geS9}@IK+n>Li2!fz-iOo_jFTrhK>j3W~*y12FcCM=;{a?M~5FFWr-#35W zICWjc%+og>8-vGnX|(LD83;kD+SO%$|Hj7L>Oz~{x3sptN`gTJ;Hh^oYu&xe+}kO3 zhL*MrnrH@L!Ayeat2)y}92F)P`9bX7YF}nV#nmAC{b|q-$OzG1#uW|}C6N3J;N5=a zlLhvPmeZLpeFVYSar*2}ic__fPNsE?0hiV~Acs zFt}}PvDajQrs;;d^3HX`jdC%;^YVxK78Sbmd$sP2cnf8cDL(?2u1ld~*B`PS#($?{ zXfvccteO$;9c`g!oHf3P6!6Cw>ZqryI4kf3WGs%Hg|TiIsU+vKPfWTDSfizcOq&xT%4K7x~dL#9g_2`XOQat>g&}v z;Yr%t-zR01F#;*+=~w$6Tk8SDgwt$pK!Md{0o+zxr6EyKQ2_yHX_5qbL%||AYRx!T zm(?{uIo;b?;|;mW=3n2x4|_=@%Y`chy3NVQjjfxDX^(%&k0r089fMhIgj7x#TmRguLy z8;&O)slOEQ=#j}@-7U-%qj}bqolCw)5gI(V{a*&$J{L!gZ+n%@v9SE@8{Oz6$$27+ z1l7oZ&uK1Ay<(F!->?z5^&lC@`#E5lfnNM}%dczTMgjo%8bt2Qrulu|ka!C4rXQp; zgCrO9}+Sv(oFP;8)>MsG($Ar79R4a~0V1w!LH4xI` z>M2-xyM4hzlBA~I|9HlB?Nk|X7ReEdv+jONn>i7#g-dQYW0c=E?|l0n}~dUT{a zCy(%>vtL$a$4_`1j~5gi=Ix~tRrI9pIA*!ym&=d`!4_I{;f)IHTP zTnJ ztJM^Ei}`sT$jgQ21x)4PVyGRv^P4T49scEsDt_5NhIYFOFFg~JR05{((_4TMab#0! zd1`2);n@WudJ>1`!dR&$s*}7)52qO%bi@=salj0NEX`F0mXeY$*_8e5#}l*!=E`N* zLRawFXH14(5+UA#9S6J57mO+o`af?^&e5?XD6L(S(Ai<5_jS1uYm*`u`^nvg(=xW1 z#}4d{pl@=$hLAr$yUMv@*#dYF)C-A2^$>948mZVCA_vdkm>FLEipph7pqFsr=&h3& zQNqqhYIVo|b_$e(VAHo6g91$Mi;xo-v3Th0EWOHKP>HiY|%5Bv)vc9*f_&kFM-`L|AIeb&!VsUDB zg0n_Hs%(=~yQ6t7QwZn}h2BdL{%13iM$$7fVml~=Iu&keR%e%2N}CO#v9NS>binTf zRw51tB=GH(%>NG~(`d~94RHEItCHsA+AVu&$%G#40{4ZYpzrH0p52(x!Jok@&)pJ8tV&K!*3U` zb;2E@qtlHLx$jGF7}rU1AF=E2I)+^@&e2*AvEY&IR;NJJhh2o2{@}jwuPWxvei3C{ zf0gK{J)e{69J$~{2Zmae6{eQUnk>&vDarnqNyP*{YeR!Fa0Wo2TTzL5tszX8KVCFV zO9nHn?QpT`Dn91g)9>?V1{F}4l(kjh`zD89M(0B7AINcwL#g|4Le$vmflNoCaSP6J z7Jftgy?tOcSqjhQI{h`zA=OlToEJkMm7y`8WkaomB=y5y;CA|IVmF$|32tO~C0RRp z-b<%fF)+d_-mUK3IO)f3StuoP=tm)qicShQ`p^<1XYUc7zodL*y;)l3`rMAvoGzR$ zrBh)CyCgGy^P|oN(;Hu&hxoYVxd+tOaQ;r%E8p_7iK08*5%^$cjep6IYTYw7BzqV3 z;OZCvZ)_<$9AX7Zj@uasrXmd}kS9&I<~|mPvfHuML$j)cQ~(De=65VLp_y^&ztaTY zl+;s0cMZZ*?-#Tts*4ehuUlF`!7xqvT+r45zn

nG?qj0pbtBsNeM%6JB+oRQ23)bjYW>u7gE1hE4mbMV1&toZPoPyZW_y z&$Q~fachosWmLvG?$c=XzO)7uS`DJz(QPG7UFJS-&9#<4?v8Al#5 ztG%>_LU`OxKM&H+*!mc54(ihYcY5LboseCEJy5qeLS&)fy*U>HT*N`u3>pEh6oN~p z=flA9^B9f1m{t18KmWttQIqiM4PtwoP`8dx(nE?DRi)WJWeMhU^S+%i`jbe-ifw{A zo4>X&-%D{(mAvHviIeCl!aVGogEn0=4bdp%&(n}CQyqnOUaFe$!KZ>XtuX>*7Z){A?x9eZ{zi3-t&Aaia;sv+JSYV+o~ZEO+pr2c4@|I!fx2m;d64$!j$`DEr? zpbZ{#2{!H`2fhRXCm6Fg{fu>WA*aIpt&<8bEn_0(?)EqFHmF+orJ@l(TCtIPB|a`r&jZ_ovaXQn5I($DbotFX z<2B2^I>krwOKtDH>~vgr=DBC%46bfU2fEzS*k_%_FL zLa-8@z+LP`I*lufK3@LnA#gbaFM*VU?sx&xc6beoLr_TK*3?r**j9i3{fT#Q5qiJa zvfCRW2!hYkaTgV{D$igB?$35FYs_Es@vrcOO|!77;h%sUpk)tJYm=#;UVv9!|a8 zcj9eC4b6jOh>`d1eO&YzG(s8?(W(z~1Jhk9HI zlPy#rwqanQt?aExQ{t6S1swls1kb}#D=BxSe?jD(Hk0uGA6^W5QwVJQ>&3wS$BO~w zep_F1(>HH~p^-{K_GCjN#a4-HxQUEv%A`4u=xh)d^HEN*dB6T3s^_BRG5O+^b6t8L zA|IcRSMR2q)ot#GJ(oBeo1WIPfPaSb8xwLW9L(8)Z~pyz5OlC>Btf{9sCg~6n@$1m zEwEMX97cX!iad3{x6OEPd;L97rIF)yBqvRcvxeN;s@sCzuFb(D=?!RE!VF@?iSKXkbb*2F7j%5lwi3l zY4^tAhNF(hSlvJmLC&A;H`0~w(sFs;Zg#j9ZY9Zp(v$R3&*i+{T8rspo`)Pq`~orI zf&WmQ|7Hj{kR!d)Ip2fgyKttQgP8qmXqyX-E?iz6@{ALvm^LX z9^4rm3hX|JN_83A8Q#pia=D`R{zG?DX+MeuUG|(fC%iXRnSlc*jW4@NGZSusRhyV8 z#V^^^`0p*l@ej`03CM!wvgHFC0gsz}ktlto1&)%;L_sNbQi?$wLtdV#EbIgt%Q>c| zB1zfXbEDd9jUr#ao3`Y8bnb=;q?cv!{8T68>=P!x6 zy)Hgd!T61th2F!JNp`-!zMmOdMcF*>4(=(v7N0Q7YQE()uyQWTc;Xm8Sr+}Qn5Abc z8GE?G81UPbRK{!2FR~n^Wxlnjx5fHN#`e7tvX;s>e3pn?%pZ7~`s<{`83b@8MeeyNLvovdK z?r1L8pI(0%HCeXRPQlu_e(HjZ@%z*CDopg}vFhosGOn`(TpX7gfB|GgL=Wxko|l?w zYo963jw_q~54Qrub}0eZrq*O!Z{eNzet|q_B$S_idOq0M&cVf>6`Q=PWv*o*mrS1jbi6uHm{fXl zDJzpDx-cAcaMfF<*(ldt`+nszZ<0c3)mHfJJ!Az%+LJkU2q@|hjNGLakfZ^99 zH|IqbS`10TK(wtT^H|j`d^j=$h?WkkdB|CD50$U@0HS~N*|Zlg8uMJ-+_pD2<4bM9 zPjt$Lnd)6voILw~lQ1nPxwenGQ)rBbo`j%xsHa-B9w_!-*G(>#A(*e!27AdH-dh2i z6}C?V>!0qO{M6F1hOc5qS=&k+%d9$*(8 zT@NO4;dN$y2V^MU@?}68(=Tceh99N}=w1Ih-qaMDKhPN^d#ut?SW=P#1P7pU zz?J|=)8E-CAY%cg3y2DKQ?%jOV$&tg_D_%anr%UjUqsMOzN|?w^SQ~$JAwU2( z4}Ax{9i!mG1A&|_I=dgH6i}9cT4-r%O54b&H8~of&a7cglFYa-yfWdI|mr>DbC zWp(yH1PpLnus~uGI)f|d{?aou#SqQp>f|(3@{n5i)GMr{gwtC`=I_CG(bu^k4tfzf z$H9NGJ@kK*F_Szfgu}{)m8&2T_mGbyBUF!yjNsWA-aQS$NNGl^PTet$m7UeXVZ3Rw z$9+rJ3{NCmqRw6}*CU7JkVA1`b;-X=safiU;(@ul*$~fz z_Mk|D0DjHoDx#Q4V>AYbi0aquEM&=n1v5&Ti2DGtNuXO9lJLRK8zmor>whZ)g{ZsL z32CIsq@Xb1XL{45y*`7ls58~x z4Kzjt2WC}f=buG_^v?bKpv2-;z{wdA0M4N|fnPdP$<7mK8NgP>Z-S~5LW|Pyk(IJ) ziMn^sn{+{>2QL^{bRbiu$z>7s!S3EYv^A$NhB4^H3+mlRUngX_@vXVXh^0LB^=XO$ zw*qn(JIBnbhOK%OqBsJN4Q}b_)eW0TFODHCq|b?ot4|x=qk(gZi$gEU|NIaTa205s z7i~4ut9zdJ}*`RWrP6F0^CKoJVD=B-3DY~x-A_brhh#e2NDaw6P znEOWsZL6)=z);SQluIzU>*1mNwuh`?gLtwJmq5T3Yh~pp(pZwdbDbB@BVeq)XGH=n z(038cM`+svyg>-5ma4_G8!E(+l2C`dncDXto1NePE>)xG?CcCL5rp&M=n)|Wu%SbA zH(;yD9<6*(v zS}K?TqyG8>PLbw`#GFR;yOvxOwiHsCJjQ^CiHYrUu1Jr7vb_3e<0CoMQ~Ga@eiOcE zTk8s{sE`)gslY)hAGUMZ{+rALFaDPuJ*K`BF6|GuKR!9YSGTaXhCmd0O`G!ebaDh6 zRc)+qKIBQl*UbDP$xlfT=~OymD&cswxuosk41Tj=RZ8}cnNQwpUR)}-i6cpWm6%uxrl7Boh^vHC>Mcglk~R-=TrKqM4Jde?oHJ*-C6*5(@b=1t zAJp1dowfZ௛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

mg6@B|wJg*6t;Bz^CpM)G9K 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 G|Nj96S-XP( diff --git a/site/assets/8-jumpstart/g-inst-4.png b/site/assets/8-jumpstart/g-inst-4.png deleted file mode 100644 index 561a20f655af80fb1b4744f0792ac4e67f45caae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123746 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 Z&-|!f#NpDXgQ}pBYEM@`mvv4FO#rLTDCqzI diff --git a/site/assets/8-jumpstart/g-inst-5.png b/site/assets/8-jumpstart/g-inst-5.png deleted file mode 100644 index 07b45ad72a6eb9d69c8378e76fb827ea76f4aaed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107176 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 diff --git a/site/assets/8-jumpstart/text-inst-1.png b/site/assets/8-jumpstart/text-inst-1.png deleted file mode 100644 index 5bc6d49bbc0f742bd8390af60700d1b1765a8f8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6058 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 diff --git a/site/assets/8-jumpstart/text-inst-2.png b/site/assets/8-jumpstart/text-inst-2.png deleted file mode 100644 index 52617934c6112f87c287ecab04f2983da4f8835b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7277 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 z z_Ui)4vn&ifJuOLElb$DaCLIBhyjuA_1NQ~71MNlB=BpKtw0lk5Vyz0v*6xuWt(F~k z$XXr*WLk2D9qq3lt$D`r&+%aw?!lb%EU^h@k2g)x z29y3lm_K!tV3&Ta$QNCc~LF#x?-C7-~(a^K^O27t{ zvtoBKXAI$YH4Xnxfgwy`1s%o@O-2gE{X9CZ77QUd&)PF!4yz`mOrvN#pX$KHCjq+P zZx73gGh|r=DnsHQCc>8pRw1s$3Qx<-CY#(E7LarqE}-QNGuDOs+XaY=+N9fU(=tWV?udk@xWBK$2FKIRUiGYi6=B^4n_W^iw zKmPLFOlbdt@P4j{3Hp&1A3QRxmA__2rbX^7?RZON!N(bz-yfe$3#yFYsNDGIJQYZf zGpbj*C2;)*=gFg7;<#sOjAB+;+g}6zR!UiXO`-8cGs{%9aqxzB4$a(xVV9QZcFUWNWjH zZ7QXx2&KppvS!ON3}e2d@8|csp3mp{ey`sjziX~*-sjxselO>q_qp%;b)UItWl0s{ zm*EEh2$`FiSOb9J9U=fmcuhk)Cu{92Xt()c0)f!={a_#ObVIPIeXv=Czk6V)SCC&I z`G~bS2ypia*`=YO5fl*=?C!I{B(#F3D6yt!;^%Y1%a?3X7gxe4&_IC)Y_M`zns9W7n0t=rvnPi)oG-LZ4)PIpZ=tsU+j+IrjFS`IGT z@cPQE^`*M|x(A*J<}Je5-yei}1qN^RIpKTalzU*oXxuDMOY+~fY~2Hcy!?EDwz{^u zmV>;?5Kl$W%HpsouLa=Y+UMcJV|Up(04U^`n;0Js@0_@Ez;{shX({r`+*lPoKJu7a zgChPCpP1uI8yrd$?;2cf$ZE$QFCb4_YNQ_5Lv!Ipq4=x$E1R3V!j4(K@_IJWDDN?p zF8Ye_IwjF-fM1*x@OY)`PWYvic}`pJP6bzCW_GxseQ#_!c<8q*j@EH$+#BnZO(Nx^ zaEX{rxCKEivX!#tBbE9F@Z?nDMMK;|wKOo~A9ci-kzNRp$jW@Ac#u|MmIm$CP#0wi z-9hfcU}iUnbCWSq#h`+Ku#*4^!Q#ld76c8%P{N}CK~xna+`{x7eGf@Nmx7prKpag{ z@2SUXX);X@4j%2*(ln>IRPqCJeFRCv=tkmth$!1-@nu~yH#$nOnLEDNTka`QKg->< zTK?9JK{}3}O-vL#KF@d6bVJ#gSYHb4a?cRr&mXV3%*Lof7|6F>g#xuw_yX3%l)s@f z?^Kxb{4Tq&JBGvnJqYX=6PuPLO6f9b@Q|2hHoAnd*p&X(P5b6Qn&2+}mkjPxzc+4q z=szxLxoLmh?D8*7HZh_|MOD#|9e#Emc219R&```oMueEJ2VI+)^+dl2mi|8BVb%HXJ?f+cL?}fDq zHJWP3Z0y^dW@$8Z;1Ck`lw`xPD6d^ajC}qIa&oJSe0M7cml#h>y z&#y9)W3bkPro9X`&`iU)fd^GUS*Wec=~r=0yAor>wXW{W{Q|h9m*@c=RMe(i9ranR zaO2OX9tJlq&q-66DSN;RwvWclTE=$pi!1DrQlW=mf4E2%Qq~%kRfx$AzT`4-to}*vO8E`sLnw{O&JkVt{ zDPg;1LdpNzfxZE@fPEgE?o~AFEVD@|qGgF+QGFLFpfiEGkNU#2Y(w|6!N&1~m9C@_ zZ&^0M@S|(+Atg*m1cnrF2oj&YK0R>Uq1FA(t0yB{Q#N=2a)Ta!_K4PWynNg7mYsRM zUp9j$F2>{7*@hJ}6;SALtq=RS!>L`1c)H_WUdqL|EXCA%q8NhQfXFz^!km_-iLnek zYKk(mP_rDiU@P&Y9NY%v?FPGN{)_g~<9?R0(|F2>b#4Hq6dA zi0@O>d=F9dtQ_b1+ApWdVIKd~Hk*q&UAH?`Jl@O;14ttC(w?XG%&XA)cM}M6bAqyD z#m+0&lNDI^Lj?T=1s%$WitK2YQ9G$~Ei_CsQyDRFSdhN2FqoA)K8-&UZa~9=%|$)( zyr-m$zT~@l;jmc7WhvGEdw)8}nO?cpu9h)16lAPv-_8n=s!t}{Ex8r8=KcO4VHrrL9{cQrk`TvJzbrry#)h)4b%mQBBH422^1U7_(D3X8SNB>n7lA`HxgZ z)M-Fy#BomakuTsm8?(BD$f#?$BK4)IB)}6;1{Ql^ zvYj%s5&Gk@2xv++oaS|zCE1C%c+n_-xl`pAgCygZ5)l}F7SGHrT~bYakC?e?->gL+ zj)4odbz+j#Sc-$8>jWu3duL*bqOW6e!25;lOFa==DUzI9&`9SmaWKE0U{|WsAEY+E zxuCac;}yl#LMk2DU#nvZ7;nM}tJ>C?H4~#Yu|JB?b)XxHcl6<1PA<*Fvz@oRF?2od zt1-J0ONt(L`wc1k>rSJmYHjjW{(ETsV$cR!MM%C>>KPu1`39_)Dn08+cI#Zs(i?t2B5buRfwZ+w7^~e5HMuw&zEv_ z-;dZkhzFS7g=&5Gg;VbdJ}YN7f_IX;Pb+Mv)CkD9(+9Ad z_?&&8E_U~Rkrc@o{tQ*u4WqB{85Yj2#V;SvuNK=wSqlW+&C4z7>$^6__N6ZieU^*6 z$w&LX$$Zo${Pa70#r;8bvWDDB4zBGexKV_uzKz#(K4Ae2OFJ?mF@LF0miekxY?*d) z&^+EVJAS)|$l|w){_o^@L1m02RRpScu3e1#DFXOLHq(W4pNW0XFq*Ce_8@;lBI`B( zVxtnVUA7Q-evOn=II_xAL71}4sPe{Wcj7DoP2p!YsL^8fg9Ls`g(%p#qt8V+oLWfv z+iFDNMWk@X6MTLIVzbK3TUdWMg))NyQ^^u8KS-z(76v=rMJP2w8)L~V-5qNg&}eVR zw~NsZd@&LR5ciV+_smZ2;ms?z@S1*?HV#iL_y8*-%7+wCU_(naFv6cr0Z!3rwlZ(r*!JS8po*(!u*|Lbf>^WZ3VME6Dk#N z*|1^Q4V5HkdhbD?yDi;MyCw#6ba&fiq+;9MR&_#)eYP;9H_~zj+vZL(Wz+qPVR`%^g&uZg4 z7p*`A|HUd{(3h&8TzhMmw~Jc*Py^MndAeUQx7A`PO9u70l>GcA9?<3)F^=GM6gTEi z^egEIq-%&>d9GA~ArJ10RYZ2T%ULUYs1mwb2$?lAA;pU=H91l_wtVe7i?CtVl_`+n z>5}J8-Xs%ANBwsuEsfSoN6FC^9bdx)^`e|v7@O8_9@1NquK6MxU3JaDm9)egAX+*9 z2rPkSDLdKkx^C0tIaoWSn7M&QJpX>|sB%P&4aLD?4_R4Akz=S?zdaGdoBYy&FIY0W zX6W3w5)^MJBn{Mf))fN%8(X}J66b+SGM+ffa!Y*Ymp{3~3QFZe4Xq(7ONidi%f7Wk z%bX=aG@g^y?wazW!5Xkx-n>K{1ZNsx`_#4|gK}qg;pd__y6p2~zK9B->x+{08}uj; z8PUCsXu?cBkPrIQz`i0%4gcISsz4>YTQf(TvN^n5lQ>}YO0>d(wD*(<$!?c~c8eJC zqujYFNzuvp_}oEHG(TwA){OihgV*u5T|$Xbk5gxA&{S zZURBf$DHJu;Y~wme|Zx~I6ZYSWj&rAFmo#d(FSh7Dk=MmAlMpNd_6pkQo4xX7kw<^ z|3yISk4SyyWJmAW^e6ToG<1m<+AX1fF;d$FGn=a^LG#_V@dNwrPhSyadH~O8aK+G$ zL>Kv~BN-|7nY`aScu)&@&re2Ai~eM>)waN?MncYbf2lqGGL+Gs(>mbN@985) z^0vdeq&;*UFA2&%9rT+Y_%X~&`|Fi9MqiU~5FGxkwREZDwc06Hg2UAn8j0D~=3OG= zSqBwak4WJ*^tK(UC%q{V{oy^@@3nsClckuMhKg&9+c#bl?|Xj4{|EQB?b_}aFj>}N zJN<&wVSs$3yVuPw_`K|MHq%Vy*C~rOC6MX!>P$VM}w8 z3~}@yxUN-iB9BD*62LS6U5>$rMqZi1U&KM;4T_|rU>BzEo@A@3WaRp z{*q}4ZFK*?$X@^We4jj2ZJbYCnTqYzY7Mc3qO0ck$@N)~TO#y8GQ>3}#bEw=he+Ii zaJ#v}QO1?=xPs`0-d#CK>bb#R&Frv!H&akSa;n8y!vBWu%I2h*E7~am1CFG zPbbjTQ^?0WDk}~oC??4F_NS#asb4qsi}K>u)d!7v(hZR`o?E&} zr9j}hAVtQ^AP}j!4+$KM+s;FEpl%I24yNKF-yRxOP(x#~aWxx-vIQvoKzW7}G4abpJ;>(3F1Bcsx~gT4rwchUt-99pM~ z!>J!9ka+R);wcx3`0iPfK9Vj-4ETB~6*mzyy;M9q5h7PpTbk86#(_4adkJLnK;29y z?rUP4q9Nnuk3-@|&5PoBL{B{|=3huvHt`R3*C=^<-ahW@Z`t&kY?`G9yop0qOT!QO zFt{`W=iW9*L{XSveqZEq_CjXPUV%cot?^QAqh(L!X&7USBbH2z1?AAZl`Lhzg zI1h(H=NHX%F1tUVGH;%SX>0BvzU6DiJq$tb7OAD2i&bPaHT5-rtF$kiRs#NRxYBFNP41Y;d4OZ#>N#KC#>b$ zUdPqUeM?^9@8`2BzD}j@&pv7z5BdI(c75`PA?0ijC;m?KySAkrB z+{uJGw$OF;giR?FX%WJkqsSsmf=?BPt)w2RE#BHZ0d#$u>Pj2Y2#iH;$=$Tym>!vQ z_oMhw=L@M4VV59@b7S9DKYbmuJIZHQ$tigHspRR<7DwzpU#{fiPY2f028P2d4RZZUSnA>Y_h)k9HMlSLw^T7r9uBMa3@of>;QcC;+#FBG*U8$UPbsRsvnuV<6)k32$Rth(KUaoS*W`vL6 z^J@eYw=_xS8^GJd7GE4lYkmHx_V(uc{!Q^>F^%e?0_(r)vuS53vjQ zkKk30BJ6!z5V~C4M}B71No+Mnjt%Xre^lGrne$2jlp-@d_E2_|MSBc*FGC4^Q>@_- zgX^m~{=KI8i3-onA zhAjd|@Y6Qs(nHCwe`kr&=XqYe;acCFZ{dY~w11Jf|CbHZ2^uc@LAyw5(2C?Mgf_3| zqWeYGbP_><`d|3Pv0b__xl#lLUW6{B@80$2d6WvzKUZD@0*}Hk%s>p*fvvO8kIZ3K z>{OoX`lT0k0~0tMqka*u`MUz(VT)DKhYv*w3F2eoZxw3r`1nHk=nyvf{b1Mr!uCbf zhG2@2PwXS(Ivf9BjSJbdy3N3N!C=p}0}XkoQTX6Bkl-+S(2bJVxks%&qC7552k>G&MVZ8~6W`N52H3f!eU@r0 zEhcqB=Zp8&c-}jw3pWYJj;a|6+)o+ZwVWKMu5HH_GdIr<02>1Au6sNFpndoM#^ImOw@_hBw2U@53{ua_ zfcpLPHmCG)h$$;VZk>8d4Dwwr?4n>Pn*iGk%PV-I*2wh7rY~Q4Wrn#8b5Yhw2G`~H zLnFN<5K#_k@mdf^3kn5OqXfrzuZrdeM%F*961ol0UuNjE>@dKhf_?tNOakDcIgAzn z)lzs~tz`;1FRP$AwZrNOE=`&5CrdGTkHr2ySE(Rj6O(WDO631v4rf0S0@t25eSGu7 zD}CWJv|<41eh{lL{@av?(#>lqZHy)QMxQ5Kn-QhtzdDE+wCVf2zIa3DlvJz-D31}Q zsDa(3tonw_NJ~YyPe`-KuAbCvxAqb*3^dHvxT}d86!G#ZjlTrhe7^nsRIl zaby*ZGxDnPssfwZx)-12jx#1Bc1#DC(Eg11I#xOLxn#LGDk6N8F_~RF-Z)hpH5y}7 z9qh=OJykn=cYIR5YLa!BYrmS+u+R`T8^2Q$v8U zP#JkiZrd;<8~ZH{4Qavny=jxnU1qH5vN1L z9A{}P8mp+g+n_tzud{5NF|_2{@$7x^P2`Ktp9VWJhpQZw-WM~{u_T)y@ zF89#K5aici%EY^Mc2g`edESNEOvJrtw#Q2^g4!d z!%L{In_f=w?DoUhFCt=uk){ft^)$Q1F4S?L15La@k*$=us=p+;%Xz4IL#^lz?wxO6a5r$eQ9u%ig!yZ^KX1 z?2z!<@yuDCZ1n(Oser3`eX{6{3n#&Z7l`~ARm;1nOe9kY99V8o1|AL6*%D-NY4*o= z)&OT<;A96U<~9`mlYxMg3n0_6tE?)t<7Z}BcWKqa-(RE08B?(nohmiB;9o`Kq3_E> zJM?uJ{+&9GtoENWj*14c;|#~yZ$D*5gYUC@c+W!BUWQ{WciDNqM*cA|lC~1f4djlm zW;YZ^RdVMSw;YVGn{uA4nhdLb;DC+k9p@NTIdiLHH-B51DVr%-Xuo%BGJS3_pp5zV z%Wy`K9?*;p4iW&NVX+J!_I^wK$S~GX5R<8+JIX~&Ffgll<;RJ&KW~_uTACE^c8UKl Dckc}) diff --git a/site/assets/9-beta-jumpstart/additional-repos.png b/site/assets/9-beta-jumpstart/additional-repos.png deleted file mode 100644 index 9f1ec1221dceba97d39901de218b6828aff5e9ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114669 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

qHLC)7m8IQ(3tfoTw64U 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 G{Qn0LJ$YIH diff --git a/site/assets/9-beta-jumpstart/g-inst-2.png b/site/assets/9-beta-jumpstart/g-inst-2.png deleted file mode 100644 index 78347793480ce8d2b561e0bf072190934341e22e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4580 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 JTXqJY_&-&HP2&In diff --git a/site/assets/9-beta-jumpstart/g-inst-3.png b/site/assets/9-beta-jumpstart/g-inst-3.png deleted file mode 100644 index 16c08cc0f7124a2bf3aa4667cde0d1b4a2074753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211107 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 dWYVb$8%$zX5|T1A@0)Mj>i+(5 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

UASdiC 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
I;j6;Y>cgfYD?>fJB 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 z

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

`qtKw&uS79>?vEq&2E-e&KPgrx#BZ(L-137!) z9?Ajd(1!PO5J}_@9ZUY#OiWB1%9uJ2rJ8{P7hjLzbM?O98e#1UXti(bg}3ETOJkD+ zw)st#Bw7I7Px_KBC@&s7@7OARSXXxEagKs7elp(V zKJR&GKUrgO^qIr3&iq#$%u3N~4-2@uN>u**S)nQ0(=g%!{-^Tqo&k7?W^LoWuEA%I7MF?-YQu?|a&TB;C_f*?v3)f9+7A1*+& zG<@JM%+@`u{BnO$hCO^lV6@$xW6~Kfj)ZUzR>L1+yMVutLn3T z3sGOUk+&n-Z71`zll%aMtb+N|1XS^_;(?}qpD;ke{Y`W2r(ebUxl9)nCDyXy`NKWHr`*mfoZ4Qo*Y2jP(wvHfwp`LQO}%LbXY&J9l2Mu#7xASd9pn{`3q`9<=j3g7 zH{=6|sd6<8z)x)1f1T>)IMv8B+0}g`W0M8Q9cbKkvk&yKE%CgK$+|tkR}XApw3q?& z<^4Pir6c)aCy&a}S2sgV4~8Bzqz8LmBldh!r|2WyMiicf1u=C1ud3QSEnx$d}GPw9$YGzwKjZXh? z%qRxhAC8{CycJ5l*wb*@_&BnyV7uW_m^F2q@Y%@gI+=L{o?cpEot`S-aA)?pP5Wd8 zVMfskoz>9+sszNBUxJB=3`F2PQMU?bOXpKiP{{amQYzwcDDN>Ret%Y5u}`Vw=()#K zI8kiidtIV2c^y+#@wPSw$Xd!{FXxLK?+YuUlkL z_|rv~NOHj;*2D=mpOKij?y--7PvO$|lE#{1_9l zi|hEv4I~DZxD1S^LG#Kn(C22yj&m%3zAs#Yhz?XLde_#q==&F&gxnx*46%UaN*&*$ zo!eV|fA|6ZR+4NE(dWt(x%1iCO&53JeS1K=@rK?WIWx)Ra&sG-mYaKQvP?g6@L;yq zSNYk#t13zVM#%uj$Y9@<(-I@p!UFg+eCt|MQ*%GMUBjG{cBPAk{9%NI_2k;m#>NId zAI`6hanUXY(=4Z+s>r&&5TSzIPSFaiQ`>+XEOAJ$A#;2k`JC}MsyCP5rOVk)e4eZ) ze3s`lYgQa_G61F(M$lMIjagWjC31#*UN|n2@nyFEui?`Q6WGyQ?e=G=k%o$xs<6k| zNASDO+BQrldn*%CQl=WmXF1x1cSqRt6y)VK%kK}Pi^s>u#vUnCR1V{SOFcXA=2y+w z7!nMJ(r>>CeBd(-WGp4$-RS{#!S-fettQX?8b6Er$8Y##6)w!mw`465s93a?aR9U~ zKcAk5r}lLO9#yPt!%@B0GN0n-%CB(Am!vpNiw<2YIULt}oe?>Hd&O3d@TeK2Tq(M% z?E@#(E6pCqt#7dLN9Ae9^0jTkW9E@boGT5d9n>^BQy&~3k?px{r9CnDt!CM*J9XC< zPgl@(ue+^er6#YODaf^1ZiB#BRxQRb1uGJ8u?V~$lahG^)&}~5WGWJjcG~UY01!oX zk*d!w0DNCOM4c{7$0k0<=H=U*E4@ugO7c7VRcIG@XS3h%e%fGMpr<&+;hEL*@0ziq z*MmZ$>^n>QW7|gF8sl{sGO^r5u`Py2S+M0t0CaN`OdE|tkN0=JAk!suCf(fhzgiO6 zQ(mj?p7%Uxxl7+?Z{KPnM_=Z4y#Mj5vSp%18XMrmK>>o1+PiWX4KRS%-mHU{Jltcl z3+~(9zZ@SwNmYj{O_wiAU|xgZuqN0*MRqBHKtGRI^47{}Lx|mP)E=)>aRztl^4Y4p zhFfKiu7-G8id}B3>yVKV83vs1?K{5Rh;3UwGCD`>VRwH7`&krnXXPkARh9ualD#U6?~wVxk$rZ%YE@X7%WL6bLhwE$5>NBLe-#llk3o zs|x*NN`fRzLh-x~v80~Z!xx)u4WDefX4o)fjeIkocgLv7OQrWd?RRc0sY3bVXt80? zHLj|<6>t|RYI=0$@t(1bbG5e7)q&dQ^T4LC{yR>``{1iQ|5iUC;9#y+R#-Ya;LsbG zIqTh`la1B1N?^2`c@Azt5;{6zi0IpsOC$**sG&A=Uu{?NSJO9c#-&hKOBip(zGwaP zeiqN=`fjadVSfJEzOP1^oraHPu-#;x+xnSO)iW(~#>_4?_x?F42ret-YqVBedO z<-p&aXdcGm0I#ina^1Ru@44-0+3rU1_yKa^STWU0H|x1UomjCm<<1^G9?PFiQbSMq z41F$kHx)<%>%BVdINIZ~Qx5S__a=(f;AF_qv%AB^=dCAej1NBTDtYL!V&`u`V7MFA z3~VnbD_a}(mF;g20x1}B5OJxd7CfZl-df{Id!6;o33^cH3x;$VTsmz-Lm8%DBg-)R zSpgBx!#ET13-uMLpBg>Y1Do79UF*l+-D2CH?HqfFQdN#=X=k!xH1te6TrSVQ-h=Ng zKkFpQ)Xp5Aux4mp5NE2seTbm|sXRg3a=Y47F1JnSA8oixT@uB_0y|iolPOlFB=?Wc^IAFK7GGXxBE#fb(SuPP@Jc;zRBiK2NRJI znfuWqzbN-xg2giN<%Z51s>0(!i@VF zifv}@9~8jU{h6AkrDe#@Ga-#HU*%hy+GU zHx(}l6(=MF6BXHIz3W>DQT(XoumjXGq}4?Qny~1M(P1e2;^vTI$(ouzrG9+|pOkst z@MA58%UI*ZUa4+_b+rQmef$C&J;Ze@z;DI)&0%U%lKpH0C2*3?AIUR(*y`(fu%JPs?Uf5uoPqBHm$!>jFGLt9Kpj5%vU;?bv z+P-}gC>-e!Ujl`z$<;dk!ip=8`aS4Ut>bcqs4uwNrz6Z2$HSNW#>X7nxJpNGTdxbi zD#P%qhw!{k9A=-@zH_?gW@-Z#NV()U%3iy~72oezvi7u=Ss&aHH(YdwNI{1N&2IZH zOXDN$)_YCbS12EZsQvxmeEx|pR6@hQC7tD%fQfQ)4*L4KvV(|vJB~y5_$DFO&TCQr z`}-AHyT_7gTCmyIF@+z!JXwdm8x$v*?5^3^O} z=M1upqBHX6rRicy0m0*bq3gfodMIB-DIq_Iy@29JQF+fBTz(ES3yT7kpX*-K<@O-o zi1+bq;h==;twJPz24+_N=f_mJUNcDl%qziR<$Hrrc0$m#s8P zs_%hPAdpfjDYv5W7XMgM6~b} z6ptDlmJKxxm#)irz^Pc`^RJ9b?6J`Kn=r{~@yDI>)8pw%bUaBTlV z&%xtB83(waVyXV{2|gWBUF%+a4&<-!~jA)R!(tqfFA} z9X8(H1ZWjPp+nhX?)`ddjO~2qSCK!SN2lX7t=^PYe192p2?sS8@15#ifxC-ldpGyX ztgg9wQFv|GXKLRYGJ|nto5{Uh+1>$NyywjxM{TPGv|HmBg)o1+F}q{N0}qf&ik>Wu zUS`OyDZ7tlI6|RNyo112?*RD1g2`*gth=cRkl@qm^-6`}Zacos@YvX?Zh0O(ayWC` z@D=8j5KCD#n)MsGuEt{;RRz5D!6xI!*tbTg)6MQ=v1*>~76W^3GUSG&+0QZpbuXzF|a_P}?rqWS*fntBEVoE0_6Wecm*N5t(KIqlnRsmvAnvYu|w0<(B`N2Yzl< zKI2)f12I45Zd7q%>xHhi#9>Na0pAMjM4LRnCLJy``i|unhxNwpHz{FW`SqZo$-aQ@ zotvR8mooNU3*HQ@Yt2Nded`Ut_P7j$eihMZ&TL7!;pjd@3#Zcgw;@JvgF^F+fw+fE z)>Ic2_C`DE5p94D?0(nEaI9#meqYEcYnE03wl&gzSCX9vw#+E(NBKe_X}|5#GDJI` zYg)&dk=>)#KBeeFP{Qa;7riJJsjUQPhD+`vc#!_rOvEcP2%kfldOvCT@h=a@jHb)g z@NRNg4BzFkyhYq+W@f4>+1TuM5X+)wz%k9;18W)5T89hlb>fUaj7s(Umo#EHAC8VW zv$p;AtTU84Fi6tw`ACuT?B6hbr1MGgd#oa#1hM^9?|zobxOSyA;@rGwmFe7MkM~Yh zwIrKFOig=ls$KYh z-~8q+N)W^;N(4jC-e)7Uzpm`Y*4B2fY93Ta8!}!%_X7~{2x**UbWBq|1~+~ zNP$mfo>QIi@~>9cx76^ysh)!bw7~`9{&u&lEvDBKBi<$10>vX-}rz=MY`yyO%SQNRO*z*H*HrgtSsNU0T19#fDB-E=|~ zQfFZ_8w5Pp+CyYj%3>++ja441OR|2dJfxI%&+&d-9+`27n<*vL84S{%{i%%y>coE& zOl}T{<2J;kMcod4Cy7N%6U0+N#Hr@17^aMg#EcpQAdTw$=nxXr+Dxs<$PrwfuW{F- zffN-L0g@9wIZYMRf?h>`uAFl_8ecA(+DkDx)>^hh1)S=to^Kues3o+0<=<=w6S>Ml z@x{bIPTGkgQ|%;r*7d=BDikR`y-4$QPxd2wxrUVOFFp5)rxFcDzj=rB$v(2LepS0)OO&og{PlqnQqh7nGkWKLiyce(uu&V<8$)8-^gJ&D6Y1M%2nPQ4(ej8;p#&w08BSN#&f*mu zHUWEW>h3~;atIGcil0oBL{9+Q^`}TLXr(X-OJ}S6HDjKXxSi}hkJ3TK3OxP0F#3!> z7a3$MJE1%#vCRpPkHE!ld!Q13@B<+3dsQD$`bP84J~P~W=6GexOwP}`$F_y3`ejbG z;sWzn`MHSasA7hc65jPHhRa%L-!M7=zU?>de;n!MXbIZhh#ShFB`tF+`lzo{iw=0D zvTqT1%$Mia;Q)04%a8f&PV6etfTizX*vu4Z?gcfgZ@Y;;d}a@>Q~#{ZaC_NY(H4HN z%+cg#GHs}EaY#ol&~JM7fItsYzxLo$#w5_k>|}eEp~@UIpIiz-Hg)@nYalm0d@%D> zt1`Ro+gkCs72;;!aj%r3?A)(|q>aO1B}rA`)mw%9IMZKF3QF&TnS}ywKKMvAZ8Jeb ztqTwxUtB#L?-T^7JpJgPPiOXMz9I$vZA1sQBE753=DG*~j8h-F{1?yXdQT?cA>U^Gd{HgSV+@vE(id0J%VAg|rP#MgH7K_c)NEIy!io6nWW0LkklbvtRz8~%Rrvw zIDL45gW;aAB~K_RxE;l%BOvD?-C@-H7ivyCUo~|N43r1nxY`1M)v?D5-K3!w%0u(Zj>RGWxvdx ztZD6VdpTa&zUA-pfL{`bc?1X!n7*R>a3%2(#~VpfLJG_7)R~nLCS6|$E$}$>OPOEy z*sb^&U1SFe503L~bfmnd0enpL^YqS-PUy)=s7sq-7QCxwuva}$pCaJ`LGNfuF`0uH zzTFa~*_JKYrc_u};}ZX~QQjl>#na7|5+McU_&RL#osqpWl-cG046Ih;+<;tiey^vz zI832~gB@GqrZGCL1Z$aZJq~g+1jx;fo-{VLyw__oMN3Ks*F^h{g}zSY9+Nf^#*4RtI z9fD76iRo^64_aFfGKg*c+Jz^7KLy)aNbhRD{bNG7E`7(q+J3<8F);MCeH{aDCsvG^ z8e`c<;f2Yu?Mm|>AJdX}+gQl9d6N?@@G)ET^@GF0o7Bn`f1lU7x+|s7xpuJ$%fVc7 zfw9%D>$~gDG#bFY^r9h2_mw3Rt&X;}P$4Gb~M z)jQFfO)1>zkpbeS@5A3AN#eeJ6n2XZkqCm|qGGO~zJNFgNHdeYlrck6AbVGTTiGKK z{3jc@pZn{)ifboHE5YWo{WLy*978#@-r|3|vi-S!_GoYYCx~k1?zzA94n7=-BMu&k z3|~W2(XHMpdxU!NxCy7RYhwZx13nqDbtB^2{yr$6c4_~IhTjWf08^s&VL_ZIxctd2 z(yAQWw_Sb!sA2{8%jh*noI7TS-cYO`Ht#T=o-t;xXc>|TPn0l#ytnl9OTFIYlY47GK7h_Sk{?PT9^=>!SXDK$}6z9!_!1)yL2?6~k%5y{>4De@rF z+N&_dg#5K?+?}IK2x?3dcp%*8x+CZ6Z0!5ko(TwS(ReEcbF@Kx7OG5$W!@-7*e@%= z>{qR_nTEwg%<=v1xDYpXn5aRj5M;2syFw`yUH#AVwHtPrCk5qic}+8 z;xSe1@q}8%hmg9Q z)L2YsjTUZ8TW1CLr#ueXsy;uqZ`VFoPL&~aX60xkKK^Y!0D!j+A;BhX7s}fCvb*Z! z);$W=rYZ7HvL#?K>=RHaW~{2bYD2Xh}S%oguI$WR`u}hN|?owC*;>& zPug&X{IDG{o~8b$et3xJ?K*5ypcXguy|!4NwR#;mi%&Ub7%=-X%*Y#Ry`=wQlCzW_ z8HfwPIN$CHmkPPD?*MuecZ1OY<0vvVpEJzjt}#{kqUY}A@@u(bF^{sHIq8XV1(*X} zsn%%>rF5RmaU~0fqQ?g-=VEJ*U-J>Q!|aRtuB%(j7=;XdsXhq+Cn~ z0)@|?y_Ou#+1EsR%qU|SiiJ?*hdMjUlBF<1-r@7n#7VIRJZp`x$f6!kP#HquTVd4H zGyNA5!>f=4Y!jc`P!F2G@QD;pfglR8vi8R+t)1gapN;y&j|twq`oQmO`ex8gSi~Hd zQJNxQ4Lx%s7}i1u0-QPi4tv|^5BbgKQ{OoE_OZ%#0zSJMB$OG%r8KI>L0Tep004~E z+qs|zy_W!`f??Ez9{$Gs$Y<~K*1OYO4f zvMkSH3{0|DtbrHTZ4(Y`+BFejkZWK5wI@&i7TR&`6iseSz#ab2sfYIJ-xT)9Jl;>9 zeHu6XtQPH#6>0YIN!YVxLlqUI(Rv?>pNz*c@1$#?gVxF92${vOuF~!nWOdCRais+3 zGOTVURPzyZeq5kYJkEH6X!MuXYbq%lq8Ri)cCOMLR!K#%krIk{bTlUO7HL(i!+O7q@ju!-WR_3&rO*Hx?H zW_XmS@+lRg3Z!(?KXfHDj{m(bexpT)Me2pTvU2J#9N){$k+jp}7H{krDwdZzsWBFU z#c~~t2+RNMmk$naqUVOxE87oDEh25I`|Jo7iw688Uh$MpM_@#q?YY<<5Z7YpXlic# zrbRhwF|*dxERe?7J`(@)lbmNM4N-Y=;!+&Wr-(hhNuRzI{HE-sC#y<{&C~5nu9SoX zRb5@(O2bw>N?}l`cbso{e_>3e&`JmFjJ6JR;V%bT_Tr^LaZrP)hY{vKPAdfpQH&AOP8zB{DeS(6NK)SSM6AgJ* zDU1$?A`OOq(|o; z(>j8d&_n5&W3QK)uDkm9sK{YqVR|r!#cDGQcW(PZ@{z$oQepFzyx6;154cwrjE9F? zGZ3~lQ!N=mnLrwz7}AYzz}tVw9qalN2m*)!Nr=2Y`(k->>*bOtYWwg1qUm?0&A_yt zbQw8$mMXJ(;_{~KI7QU)y9a#Xxpy=Rmp#XWaQp1bW z-`~IBAYc{+Nr;bk{U*)Vv5}OVEVR@N`Q}|);JL(=ANXLWs;0KCd{8&8o8#$F z$fnmY`(#KJKEaM4+NFi`%j71h=1MW{BF(4KrvzhdckCb)l% z9;AWz{6)0os+?Z1>NG}^nnx~!|zXyCDz3K~~2_=-r90m8?#iTvdkG9u;5eK~9fEA5&VZVfj>_}Zt zA)bnN*C#>-3JJ(JtrGvq^>7o+Y-^nio?$`6aqmM~R@V9KUC#%J--92~3f=U)LsfMR z4G+(K)YQ~aJ_LaVdG|%Q2Sx}|^G$oM)g_p@u7`~v@{D)adr^?n3=`Uza*beGgdN)<=h1U&7fea(P8$|grDJ<^s`p4L;yx}NkRB)H9{6Ifpd&Jhz zNw&{PXG_aZ#}=X5qQ31JRV~pRuB~$)GBZmw+UpsY0SDOrT!8;ktCe=CCL3YSTM%}J z4Vukb_jcA}YsFGtJU=gH6=#-;gWv%aw?VZ3#sEtKjuvPt{g9!Fgm30ZMpCN$o|Vr& z5-)*5RP($0{zbk6ors9tM4t$izqvgqQ?m&8xb40wq>7DDWhM%qT%j($KWbT@vdRvi zXFA6R_66+qTYaL})4TgQ8|G1}eTtY;2v;ThObepW$f|Y@vH!g*CgD8raStU|rNmAG z3xl?FN_%e{oAw3d`Za1_;AU*yqi5(SjKM^Zq+bX$#k?jZUPZ`{P)_;(vXUBI2%@_3UjOhiqPrVjHt*Grrzok*|(DA_UvKPtuOE^L~aSCjFIQtCP zIfCNQ&O$l?GjwPuSBR_SqqDhs*IrRhp9OJQ3rkCSzKFH81n<)=P>-rkJ){i{g^@{+ z=y3 zV$v37j@2k;sNqpE3;JF44GG{=@!QYb--YNk*nd?Y2NUcNwX1ZZ0Wc?=& z)xT*#E|4d)Quq^*UL^qnx;=tMoXVCf3rom{Y50R z-2B)l$?9pG9DVWKEAI=L< zGE}!qE@F=NfexJ_JrWGss5fkZ@-{S(E2qOkP#69gLuqo#4BsHvt$TkPqoynh zHs;PtwJI&6p!xZrdm_KEaKDKi73O)D96NF}>OT0zx5-1O*CjT&#&!EJGI1$WakbLa~~$CH9!-Hl`m6X5FC^=O@bo9>5$rT(Hqm+H8Df{{JU9O<&C-w+%B|4(kOfC zyGmDc__DBZN4;SsZ0uI2!G7{HhvE%b)smSpF)e}C_uJOtqVDDfjc8 zvS#mWt*hw&CB}Qy0vkEEZ5;HF#|qv6z>j>3FKMCwiJ2W<|EK)u>qG(o@u5R{1(+K$ zGn^FHvA>;eyPh${0RV#B6jE*;Q_rK>+X)_ywzHEBa9Ldm@LcAN95x5urPqrqD7TDk zpZc_h#({=4u!E|p$y~an?NDnOoykZY=(Hf-OJ8wMn=~|SW-gLj1@7Fasl;Lefre@3RPTUV&W*S)B%e?$Ua*J|NAjs zc)TnX5|A@eXfwCc8M3Ls(RO7zkirH!ndTbai`Y%E>Ko?wOQCgriM7Dy{CJ@);_=J9 z?3S#QuxR&OYu+Ht0|j-a9Pcz*%xE-8!16Kilh~HaVW0DFHwXP(hz}iuX-BPRC;MSx zy+fC_>BFRXN&OE)p%ALrUQQgHGqvogGM%NXh+ac)=_B(ehuv7q^R-Jk;CwJDT^&Hx zJExGz0Nx>scD`N4k4YGxn2F_w)=SQbQ*OF>mjrwNJ?L?=JlLPiLhZHkVSuCEZ{fSM z@8#k9@dDfmELC?D31)}Y{BxV{lF+B)&*m+4>H>C*HglzWGuUmaMWF(zwYDr30zF{<=xTpwhG_j`+aN=B7 z`mK9!d)#cJ1E$#{V29+c*j$YqbxIW0jVc28>B%K%24S_tkJv3K1W1#L;p#7mSt@!G^2mq@Xc~N$Y|k;b7NC2|B383om=jWS0H= znb;ByYL)|+?-oL}KzE`>-EVRhj^U@uH?v<7(V*2khfiE8)_YD40KSe62}n z>5H9S|I14QN1Hv5ZjagnL2<&!?^xQw;c(+uVrApjQ+<+r+jmaPzl--&>ct(-UYT;p zo7oT#lA1;7Fwbb){>doh`iaxUiPN>V)X?HTl%69S>%B9s{DhL_Wt+>UCw^?8?dlJX zH{U0NT2tbo5A1-sr6q{+5AnzN^riQ>A?4cDHy@m1*>zi_(urc+qfL9H(mawPy{At; zKpSg>yz5_mu^{ifNBU=bKk>}1s*39=sH>Y8^=52MxxT(mSx+wzy z8xTdx9nepz&S^au;5kh0I5<=7n#wTt zOA`_)=|)Mf)*GUxg!Te0exiukwDiD6m(pV#yS@J}M4lK)7#bRCYEHG^pK~aV^E)h9 zQyH}fAXq9}#_H{+$HvA$M(qKgTh*o25CB;3uXZQ_)A%i=*^0-K&aaKb5npr{aFA4S zg5Dr0eq{Hv;R0C0KlGFbtaN<6K7B%tP8aG#MJA6M1}l9?VapJ|pZSjMa}ie#5Eg#_ zZoX#csFZW80uWlm-GjV| z;iQ7yps7r^{*jh)us?8bwi7dC@ml$X%6WiPY6PL7#U@qlGu%;L+c_NDS?X&+`oIsR zC(~4WbZ8Z=q(zObz$llbZBTS8S=!4^xX0zL|MB<07>A`6o3&By6T*!9tJ5?qL*1K6 z?)rgB1HV#j$~&%-;`Glz!xSo{!Ze>BEzu(JK<`ntD#1VW`dUFkG4^f|7pO|EfJxPf znBT~+)5yE(t{<^ImnsQI$6;%Mqjo4Opj_FCG;SxYS2FjWQ+S1aNh_2OYk&P zu=zKO;8*Ln)KhJLe%OKR2LxM1wb$2SY);~1*E5{HP^wDlI zc7Pd7ZwE;2+Y=ZuWJH!iRD?D5+Gtl2kjxo>rUv?3k&vj=xO_sm37& zij3Nq%3ovPHd?%^VQROqu=q^Ek@eDI4m8K7=o>0%p(+&e04w@4i6j!mXO1Oze_T|2 zTLS@O))LoXh(4a_ENWH8+y7O_<3O%@$POp*B!lDVc+JwwZGBG_`C@_%ODo`K=z%^o z{AhqMhaE=JZxZ$fC$_A2^t^=3^E9f?EoVd)(l|^)=YnoUURj8hdbB#{ORSJ`-mJ;Gw?Lg*)0mX z0IAsr3D7#zU&SE#0-8>i=a^2t%KxjIPy@>T8A0M^pjAp+3`ZtxRQpftk^2FBJWYpg zw2(pR!Z@}wgGfr>#p+@tx>_=gI5vJ_xF-IFZC5gSnqr*s$6DoPW^?TJqV=wg>yqCw zCAG{h)AjzgV8|{|zi{72Nl7U>eKv|K_npe$mkDa{?k<_MbdP0tMU+plQ@Dgz!o+Ay zjl<(F&LY9caZYx8w5V$P*gZ9=tn2H~|4Ev=Fk>|GjfX@erNJDaN!|;n*DPrK1z|`}rrR5q(AAv-lV;KNvMQagRMjt4)#ufS1JnX~ z`os?}iqB@@&9u9G@yIp{oAWi|9y|;7VQ^@DEx7bq{Q;18!(bTb zZtivaUqiBGGBVf<4*7l)^AT}*6xeh*#gWo7o2)9Z=~qF#SizP?5SZDx#&BBG)O z!`+-XpVJ<R5f8iqx#ytx;5s3?Py?e)x zScZ5!l!ALzCa3Gip#tL-^)14r$L5V3Cj7X+-OC@&wPGoRT0k+zWBqITJNe=a{$Fmi`y3laeON}yrL zK9~OqTZxuHktD@qd{OWp64;nMW9M?4kdQ-N$)BysawE=n8|pZg^4ht$iRdwi@W0bE1i??K{4dX}6b z@tq~Dz~(XP_EV@nWbKO@ZN^o)FQp3$ol?2-ZL3JbeUG8>zd7`V5Iu-lm~C`#to$uz zY=t&H#6xo6H)ZdgfxE6Y#kP*Nl| zAV`-W-LUCSX#^D{r8|^vY3aK>dd~fL_`wf&SbMHH-x%*0V~Q}FKNBAYRe)l=0sB+_ zT^%vYb>-pd$bg+N-|EmLmBp5lK#=7fs$%`a+xa^?Gb$hBG!%y(=k59Y&^ z+|9mV=IU%^Vtv9ukg=adg*YAu_?YDU19EO z|2oUWiZAT&O1xF#_o_XgGgKPvC=s9>90GiN9TgS({X8pUplFX)=qMHup0wLtSvvZ| zh@p(5P(mX`&4fzvoYu+z*TVmo#`l*ATqqHgX=)b^@B>$6gB$NLsv#zywMzqf=~@+v zS?yF)x{4e~jw!qXjBb!pnYLRm;$X%ij_bd?oEIMXmS+gL`rm(vINgHbLM85A`~bC! zU!z;LGDqwl?}@5Edp7Je{;_{c)T@2_a|EFcoY>6^Q~?DAHoRoUBkW{pf$AvS_b((g zySgTjJXMm1@ zcVu8ovjrA_qr;Wp{;Icj2Eh5A2^R+o*9kEij%^hlU{7H~g-%EBaTEeUBpO;GYVpW} z$E^RB3AVV4txSN6zg*dFJI0Fn`=p;0g&M0lOyz0dQaaAc2w*N$K6hyS#j#;uv4haW z{16|2qI&MkMla-%4w3m4&!O4obqEs1XoOc=4I3R9U%R@!|CC#6KlVPNx})XzQWDyl z)(!HgCGLNR6ewcdn87?99hHBUE1;J?uU8mOe~yBJc6qqG!^X+R%322UqR@XMbg!u; zHnYtj4b{oh?_LbAJ2-GXr@D$=O5(toq-w+Y?}}12oJFVCz3Tw+1R!tyjG**hb%*8I zN{J{iAnKDOFI|9KzH^!!>mG$69lrROTUQL7?j)T*z~gq7(se&2EiEnSnu~+O*J*cw zt5XaV)KKH|z2laV@f7s$%m?+(oUE)O9ZL?N6T(yW%pw7M4KAVP>CIuI3tC|vQ`1jm zgg|Q*p`{CYYR02Xcg~Nx!x@hyrg$qHX+k%=Ci`}c)+fda-mU$eUO|vc<@(;Vr{xa# zp)A4qT((=ov`FdF2jPP+y?V`y2n1+fjtIoO93kUVahJKk@Y-=fBtrgSj2>=HsErwd zm_wJ2k1eU%1Kkk5L6vRDh{4COH~`E|=Wb`BX%GW>K=|lyJo-QZEGMzIRpGF# znRg#}h27}#fQ~mB;CyF~^VxwK`T_7#K&bmnYmoZgONAHfw>1xvPTEgd&XF=9!a^->{zbmNtp;i*kS3pn5 zFxng96QvTmN$_JT+Y5p%pvICqGsdk|gCJUX*4Z$#ozUyoI!7e5p2>D4LLV&2l zkY1Fq4G;X~5}}eO$XARYB@ttz_+>y{3JLg2BrPRc;u(=Evm0rt+LL;HAmRzi@9u`)gSs=2LoRR_)gpJkq^eEEM_+IZg6XrY(yKo*o@VhuPx#CO-gY+P8 zEkfw~pOCV@e}prJg8-esb4|H7A2e?wBbY_|_k>T8DV|Yb(FK2k(yix5ab9m`R3~$q z%y;-+YRHz?1Z=34bi!&-T1)Dt_Nj)*_^{vde0oxxG+mmQk*u;meAM;8<9PP=XefK_ z5-oEfEi|qK_q9OCH#gA}Eet3CvdO|T%lCYdBJ=}C)h!%q> z^AQs5-ph^nDR+e%u}D87SV39=1>@7(A@o3qOG=cZlmJu*LQ&?&#kQ>R6E$~yk1J$# z5fc0gKOW&MV#pM|)@{n0K_TYGZHHIhAk1=uWePoSTpm}G##;@Yxi04$!%5Ko^5YdO zDM3(ZeCChme>P?ZBApmjrJG((GSd=Ed&qiJ4%JLs6|WCg-0(_0uUT%uEb z*=-|qqi$$x2)X~(Q}4-IS&N3zY)9EmW>VOn&wqR+OZWNbmneZ<`Vg5U^C_rSPYx1j z83uWN_6{-7f{aS$(0%7XF!Z%Sf8DkQiLj0a7=QJ4Cc$Ldd3%y!$JAcuyr5PSN|~0T z-RNn+tf>3Y!0bT$L+NWtS%1n1i9VV*~HYZzt z*+Jp~dG{t#FE`YfK}o?nXk796hx?0GssHvhqd-mJ&_HoCM#{65CeOaNcoIEiSifVU zqg4P36Fz>evG?vW;qm?*=s!a2^FC61g7cWi*`z27YeBS;ly}AoLKm8k#2P)zg-;~{ zZa-(j{KYn6$Zsxbb9L(NcuO7&aJ1AH-M`z8XQ~$|mJc5+>LJX|`RMI>Z_?`;laupn z;j83y)zvp{L;#AMhzbDc2u0V;?O$A44faXk7HMy<<8sLV)rU}4LuJRN()XXzg`eHt zNAB-aG1x<7>g(zT2k$tS7(~ytlv$>TB}MQvohaZsNcahbneKpc;JX2|Z;`1X15t9f zE8T%1KTigq4FLh<8n0BE42T^1pu_=4Eak2H%Nj>iHUv0OjRe8pACv15~U2v+n3b&|27_I zS1wA{d9XzJ0Ex-#greo%=az(ZtsJ?|)wPJP+n#Q6 z#7SH%GUafVl>Ewgvvj_4|Ywmlozffagwbbfq*kEr<-di8ZO5tfbNRH2-$=%({&?%S;UZ{!(<{8N$1D0N$?vu5lxziFM&UsFs02>bZe{*a z^N;D~1ky{M7nUh59$nhm*nCJz+HS3K;Dqpti{Je|UMt;kDDof)E{Q1POnElJ|LK#t z^m8(zz;a9dj(8G+ZMr9vYACi^kT&BtDV$rzK0Zg&#Z92*bv2WehV9mWVlz(S{>9o? zN$g&Y_cj9IURxQu@7TSGc*X1=?JvKVrqtWg@q8$U2cgr+{IVTBscN~71oL#6c5zeR z8Yd^qT!+(TH?yZ5kZ# zG-QN@@;gq9(eoTcLNY9TI+nq%ZL%W4iW_7NzWn_%$bwsgz%LYHiyQbj+LZOhAPyGY z{@6)Tzo3;fdys6=PEQN_sw^|SrKNFqs&ei4jbCRz5*qHcpZt$!fsQ)%5Q;E_6hYAM zPfr`iEJcI@h{kx%GUXTHK0=o0m3Wu@zu*aGNH@pL(i2jhF5wMi{;$^J%7_5xk}UcU zb7kFUOy)gLn4|=TQM%tM1fIs{EE82bR#jHve+>o+3UvG&>&&DwFKJ2>8Jt#?##GQl zdGCPGG^Hz})-O za!N@pHx@ZKQZ%%l0#Z{q0x|Te?n>rBpnn^z_b*Hgiq>hfv@oGon#gd?;B20+p&reA z$^tT;xfGBdFw9$x5NuWoDvp`jK zAjtCUX1^m*bcm$S2IIIQp_odFk%-FGdB`$gv#TWdttg>sV_B4MORP(Bq@#XoWT?Ye zsKM`tPa9XesP}GK;`*uB7EA1!y?o~pmctOLR%=P49_x3*0w{t#y*)A_<|E9Qc$^0O zZ6f$Vx*2?bW-md1x#4k@y?;X&D8!;fMd>{RJuoCU2m(Asr^D!9S9YqzAj0&Z zDh&=qCvpgiErpaxeGwt&`_F)fTcs5tx3MW>WFF2P3RDjAu*#s*!6A3VZk8q?3^^TI z2!K6xa=9rY9cDR3%0a{7rOyJjPvYY@TAp4nI(nAL81y9jI>Xl8q}lBN)^DF{=cT>a zwfEghRl{TO$ET*w&%m(}Cd%k(VUn#bvL?OdWMzdIlo?;1KUxmiK+wv#4+VmYUXO?b zC>6^0*QZ&Ky#v3=XMsSsy{Z6p9~D}rMo)NaEIfk;Qwxs`*B9;q0JAIGf~K#THXE8k zJylkUl@AIL%-Md=KD8X<{dN!VEYUheW+q2G8$*{e^c1_Rc$dczBDL?D_yU`|o`4=61(jApwxFn`i=XBkwf*x57G$>ONC18WQD8&^f~dL> ztG1Q3BqG2}IOoEIo#c%AC;~ljKB<&WhLx5CWqnp=F}An13Q^9Qz}lI|*@aPH;PLaX zOigc{$0vDTyy#`{8QIp;RxL9gVY+WflNjX-fqa7B z8-=r}&?fno4rI-z4IEg@s)A{Cdz_*;)bk`?80BkaOUv5adM~Pp7SuwdAt4sC6BBKI zR|BD0Q7e9@mE71dscIJsk)>DttR){*jM=cCD(~D#&{M3y_6ZWc3ti?WjZ@@D<`_C9 z;z`M+BND$yji+A|&gO|p(h|!c|IcEj2H^x6R6k$9H$7g&q6;CadO5(-(|M%t^z(Zm zGBY)^O`Ya9{&ISHDQfxVjJJS_H}?Wg&d(!PCnxdWtE0518@=AM77KXWKO*cm26VAV zygHw_-W$1g+|4^xk7nNufMewk4pYRVTi_2gP6ROPdMC2^+ zm(gNV(i$%3lm`w}7p!L=Fj;9lm`SUokqMqQw{|?9#!LxUh;fuWm`v>QI(e0*vMEa$ zWiy!ECAbxnViw@MIkc7Sdl>4uv?L8lFP`{@DNSs}=m6NO>amQLp&-C@7!!GXI=~P> z$D5`?_D)9FW(8&=M;CcfYMh=+f83}b_d^&_6`3@&uo0JZG-sGF{ofJj2FN7b3Yf8J zEPbkSA&>GILfJy39P+h^G}n_4<1|vVuHnHE=&XI?a*Zq;NZo1zv9Xl{OsM^~^-MV) z`*@u&J#FoK2J$5NsO0whuZyCGAGg3_&ZO4T#*;H7%MaTV#JY1G;S%rNsF<*2OXNVy zlcDO^wY1z^4Ho+7Ygihq)W#Py&8PNy^PYTFDa7EUqla537cf7*C4DXPFM6E6;)f7G zJ`}98k#`q;4|pPlu0aT~cMje*VQH9Fc9Pi-7%h- zWL!iHx{#gry_>wfR^`&zSWR$LeWVD#M=)Rf$g}n}W)74*;R%~}b*;Q!NK_v&ZmwEr zz~CG4E#b6s)GATMp{R}x?sG@OEqYyb% z=G&Tj{m4D>kr}XE>g<%5@$A)TsiJ%rAd!9#PTv#V1y?;HF8vEe=CFkb) zI)AIiH)yUPX`Yn*xl^NGfCprd$G}#sQOo*+LgR9{=B=%&6obOKZh}72zlC^*9az{I z*6`J+sgr-Ftci4y)0~zATgtOEM@M>bW(J(D@3*=zX5@%?u5tPA)D$sR+nKD)3zWaZ zqiyFx2Zh>Qm=%3*0Dx6+`dMbG84VS zr9NymCF|)rg4xg3Y+?|8br$ZmcA53es;2Qii>KotHGX}(;L24qB}tz?jRxdm1eSF5 z8XC3-Ow|S}IgMK<8|Ra;0-A?asGIfVrc!LRAC1*9h@k5K5>F8Vn0PR*ojm3fHX5-3 zc+&B?5n~WznVYNrq$GX59t&egOGuKI6Gw1OrY=!cUh4<$ip2~t zI%CJ-u-Zrd4L@_{30IpIhC9q{{H(hmKQV~;E6ilcI^6Op`j}wDu=~8z02_(%pdmJzZ>6SNRD6KELj?tPU9>AmbxjA^Y;N4+Ws44H()(8SVvM zhXc&Wj+IGT2=u|+CX^oSkoe6<=Kn1vUT*h)BPfpyl969xgVQf`m;HV!Q|P-9LrGcY zj-f)!1GVUDNR9gZW>29UEqm*#^XLW)GnZoC6RO2(WRjd2gO2cW0SP?`#i`f(d%;B? zJ8ok zcZy|9J7Vn!Z;ehaC^o5T&1R6*EX;z;k(xf=5~aM&R6C}c>*35HR?17oj+XWF8mu3{h`SbIVZi#q^z{$8T~3zGJj$bLG7eq? z-H4JCjk`;S75B$(PXQ^;lq~SvIycR^&18Ac`yPqU&l|FgkyMftC^o|m)~h>(Z#F_f z4QH&COZTfxYw2tQ8Tp@c2ND?QPz@zIDmpo`ce%3gB$iVy2ug0#MfEx+!xrd0^`9as z26{T&3*}&4g7~B`Xi`3tX>5E^DPf6B(G3zZJ`my?oK=R!QL!87hSbsD(@W)XKeSMXQ8U}Jt zYc0qmZhx(fU8!D8THm`+^L^8M2qy?-fU|`bBvtoFvFHYr)YY4%u44w)$wN%`DqLY% zO#FW~mS|Hm%FHrY&wpL>Whk|ny5Ra^!X!7Fruqd*Gy2oYEMz@8w z;D%#Cb~ZttHUHos@X8$Lb2FA+ zTBeJV2nb`1JL=G8cJ^}Gs8|;`+QA^~i=h!OOTZu6sLS3HzyCZDDwCIdvl6Mg`%vo) zIW5gJ9(ypRqgP^~W*L4-9>N{R4jD_xCW=iW(9C{y{ZuUPU#3RD4pga{`ki7m->P+0 z%sx@jntY7BQiiA7rJyMe+ImMo5i}Ap?3g~^7g~t2qv3-N$y7`^qm)au$OuV%(ehf? z#o|O?ECZlpYwQlhayL$uTkR5;jWf%$*1KQ9Lc_rt5{5%5VmGq*qvQa@5Q9~)QAw~v0$aYBqGS)n5jszlXe~vkMKhVFq zK(#Y#A*m_m?`HMo7_U_AFjb0_SP6@6;8;FAX&MsdQ7+wH ztQA$!TY7r%3_`j@eDmqBn>fqo+xseS5|6{0JHg&CJj$04lbOAP1Ap+PM}EIB zBP&JE$t;6zVOXr`6Cp)t56D3C>ky!tN-UbGc0%eFLr7Z6S)Pnx0MFkOf3Ko*KBl}Eu54v+ zcH{1;f%xEn-sj-ZDC3zlLFXHUJ;au(HtVM|QT1jRy)|m`BL?4fk{;n$n^CZ>K_}d~ zm2|I>2bE=-P^%C@e#oDH%pdsu1Gf2s9bQDPk7zvOF1j9DO{X4S1@rn>T+T9v;lz`f zNz_J;#O;Ot7vUy6$t1?bO#1t;!b=R;mtRjDj7o?)b-#My;xg~O(xK28r{W(!$z6D_ zf@)&(@R_&9%1U0&R$NXQ!~CoCTixOhf47XqE;;b^j`sXomxQMms++ZtKj$^1XjiWq zN@ke&gkG7S+lIqRM1pb7>XW3oRy3U7M)s2-eTg=DNissbUu#tr{POm6WpCOOPdLd+ zL?I@Jo70D2;gOPwe5qihRx8ivaT?@YxkN6NLRn@-9Q^;&*+Spn!P zMq|Mb8FSF?4YFJ*I;7gW&>d9H3wq?XE73_ScK=!Xh}}SVRU?+_iRFC5LH!&%cEgCq z!lN2mxmk5bt`YPf=sy7aO4(D{!XXjh?@R2(HU}O(uEXGp$X{k#e&gIWrTx}XOVph% ze>zergSHJbfISM@s*&Gi5P7t?{An@cxpQC;>%%0*_b>|b-ai3uHAqnzu636;v~{X2 zn4S6Ub)!q8p0rlMuS&`kg}Y)~?bK$gO1JIx@P8XzMHLBJBzF)<%ciHeUPuNHn6BpMUvD3;%N%WP|0y=DA4C)+& zh^%uR_R|C^oz)!97l{X1Gu!2DENNq`T2B@f&0|a#U=Kdk{P})X9{oFd!z6vLo;%p)@eJK`>YWcp9R|=j!3w| zg$zx9iwKVjpI-;cxd*!S{#Pj@yxP}DGf?STVkU(y53o*0&CH_KD&H#1r_0FJ^7Xav zTvU5;1{ejT#6sc$UNz>Q*EgGkRE=lQ~#WB z;~CW^Wu^INo`;EW$-nD8AxsbU!J3>C_mIJ;MjX^ODm#^oc@zZ()y(-<70Cw)(VKA` z4A^C}uu5E;(tyj^$I6dkt7Amlt+6I5EEM7_HjE&hN4(B|GF*kx>LNi)At&)0**9M$ zc9!pNjD-Jv5GKMtul2VZ@2ijWo9YqsAzn&_yI+HstWZP>;_p%eh4SPy3f$D*zMqNJ z<83Cq$$X>XXg&5O>II*&GRur-{oMY?V=J!}|4Yl--|LC$UYy1+=tEUJ$0jk$Gz4lL<2kinQ!@k~(O$vn>c?PljDeb>Go1y*SD# zySHi?Y-CTKY`w2F(|#5UUNM0n#hBqBb(~mA;z%i@HQ*;93DN`nFXr|N6V*=cAoxdn zEw1Nfpbz+U=aH~W#f3e;L@8JP$UMrw<3Fj$OkMbH?sHGTeo3lQo2=))MuYqMO<0Jl zXe4@>r|h?+K%IjO!|nQ!dr!gXU0SMz*`!e%;q-u25H0it3Mfir*BY9da47{V8XG|l z|Kl8x-OUivZ(ZlPUw++eQjGEs9qTRpDb-^qY5wt9g`#fVab*@2mG(h`_lh8aR_N;? z1{y3_+y>Q5%jhg@#x+%J^kADzJa>eX_!$Tvd1)czhg!^nedW^9-FI2Mb+;DJy=if9 zzFe+XdE&ov>Ccj7NTSATMc25)`@d52EjQ4BNN3%c#ASq72H=04du$`^_%BUPW9QlMlSC@u<4UTec{GdO+=_HC*fCd z41pMwH*`7VLF$uULfXc3;M07T|%6@ig%iThaD61w30>l51yXOY}~)5bR-N5M&pur$IR{6V>t z8{5~{H?M3JPj}@JKW`6ku0rv5f4zGu1ne>gw6&|(jY~edMqs++e{|~ae3y>x60v02 zz-yjvhXU4$@3mU1*h0RyE*i24JQ4O`E!ktQW~WYyN~T9g?zaX_To(SwV(DdB!Ac)?&ZVW6S0fxUMCjhjbBqE}1f^*QRe?0;=~ zXZ6O{cP0Iy=?JY<4-LPi%1*9x?W2~6oX$=xWFc*Lg=BS{9v%;0k?i z8II1I-MmmG8b>K=+uf^Q;dj}xWy(wv^$mG@fP~xPnb+Hz)-(+I^QHm`44(QJJHCG( zwFbd_aK%9Lb`m|O(7Kw~f$(&tZ+D>(wW?5|NsjeN;;6aFZjy!&?gYVP1nnb6 zr_zUQH3+^`G&$eq>e~wtWTk$|+}4`Rxo@n~#j062sVd{nagaTv8*XDL*0N=lEUWd=XiWIka5}%BmTKti6Na%DzTd%kO7>3EHHi7az{$C6WAY?+ z#sNPtJX{MsVc0fS*z#-aL=)vpD&IG6Kow8|G23!zgII|2?EAomP5WBJikROg+ABo= zLIier&H0-OIO*e(^?t2!)RK*{YTegNK2MaAZsRVZEqzrEtDmBbY@LG2zXR~2)Xh~q zMHg%eYLQJOrz%h*W+3#VJzxxZNoBXO7`C~Q=S|EBfC^LoBD8#@@#a2l79sh#w`#ppYzAC;&EwQ7{E?V9W)AWgPZM@!i! zo773)IBPdI(Iy;1he`fki@xWuP4#9BZ`9G1_Q@*rT^^{mup{L(4q;Bx3fDbXxVfQ& zVg^NaM>7R!P@p5nN7hvx7-O}G**C;na@a!vM09tFRigg}bZMmAu`~=&R>*hv9OfK(|#tofjJmE=2y@wz4O?`$1W<0#S zC}!GPTAw4=i0^>`fA*@N(1?ECzd37E^fHr0ThP%OGE?#V^gDxk#q;_m0$TY}6I^sD zd<64(_?jx7rSAI|zPTb81_dRvoPYBfHeW7+M)8);xfgv|N*X3HTGJ9B%nQ7*1IN-B z3#!=^+DZJ}g)aqy^>Q2O^Ir&Fg7g?PY4bAB;07zXPka~In5j_0c1o`FD<7`-@8}8j ztI6UbLE&&dJBf$EkQ{5hK1Ev-P^U0MMLl?%#$o+g*KxpYUj+iZ(X%OcN4PEwH zIffELpxP{5ttn=y-S!HOFxr0`z-R;w%14MsNR;00chF>|8^_9L@b^bI-^6BSDP-1u zPAS3ubbLiW14?z?YdKb`azF{Gtr6oJa4DY@V_c7JxuelGJRF+e?7)za-Ja$-3cNdS&%k zjIAeCU)3`PxhI#TDALLz(pPm&1s!@~@7IKjSgIkQff={X+zV8mjKNJAV#HKbqaIJ{ zzE`ZnO~{sh33&uW)@qMq4rzs4_PrKd8vAJ4jvBY@($i1gQgjyENnEBlRfo-gQ7EsV zjt@i+4$M_sSKlQu`f1ch4_>_=|Uq}eYYd@LG?9~@ym}yNeU*4co`qK|Tv_9NDrQek+)u)u&x5_MFo1%69cG7 zY~rAed&}Y*yv(B;eKYsFf;e%TpP{?hRxrHA05q6Q2%D%}lXQ}@MY8DrakW}LGaA-Y zx=;_e$KDyC`M=;4fCRCM*=~@9DR%LVkNoJnEUws9p_QnJf@`2`QPOpv zeB0itfGV0 z`(uh}=Jnz7Q7Oj0cQ~${PmZ!eu}-gUlVXHK{Jzq)9krHUH975!lPd;*{dNqs``|gu z>DTUNIc=8v1u3rB>TvV2$i?Ss`0}z#+o9Vr7iS495B%j8@NXu2xms84n(x-CwqO`^x; zeIT~fa7;=ex-}wt&|v{1DEb#KByH($@b(q(5#l)z{ zjdq5M+wcc{{@;Chx2|z(Aj*5bv*aau{Lv~sBg1KFJ=y5ReevK!H{t4#xEqW_S?%wT(KR>Vw~UlW|ibNn+y16BKxAnFt(;q zPod?ro5AYUmOj5BoIuN3d)DoR)YtDzqHQbKDml~>Z8#}w$#V%VEnOpImKEb@&f#1% zbrxl?%5(oq$=5qJFm@v48-JHLE||^NaD0Zs&)&<2`#YTP^4@EqN++=HL8p35WDOH0 z3^ybWewCH^Lg_%Hlqi+~IZ!X}BGE}eg~8ZoYHH^8K%~-BTjEG~1gqZcjm5bo&DWBO*}gZ+bDwr>E)vc3yJT?MSS0}4G(8$0CNQD$8l@TGxuZrZp z-JE+~fA4o-26m>ftkaH;%SBmqo*TIS$j#2^a;DIccgjOoPPR8E(9Ux?9L0H+wI^(s zbzeztCftA84n^PWx*ORZE66{+-TD;9n|;~hf7x=H4U;(AF4(gGRLCR`tMyGBTw7LC zNICY68|I27Ja22w$bZRn-A!=~g(=d)er7(1xRzHowVr{qj@Z@<@OFxuNqnItw*^w% z-?!^e6L%@EhR_Dm1)Qon?omfi@3+RIniu`t<<9(J;Py!TGWi=zeCPMtzAiLleaPoN zlvG{xRJ3};XQ@FKA regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - - this.debug(this.pattern, set) - - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }) - - this.debug(this.pattern, set) - - this.set = set -} - -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - var negate = false - var options = this.options - var negateOffset = 0 - - if (options.nonegate) return - - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate - negateOffset++ - } - - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} - -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -} - -Minimatch.prototype.braceExpand = braceExpand - -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options - } else { - options = {} - } - } - - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern - - if (typeof pattern === 'undefined') { - throw new TypeError('undefined pattern') - } - - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } - - return expand(pattern) -} - -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - if (pattern.length > 1024 * 64) { - throw new TypeError('pattern is too long') - } - - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' - - var re = '' - var hasMagic = !!options.nocase - var escaping = false - // ? => one single character - var patternListStack = [] - var negativeLists = [] - var stateChar - var inClass = false - var reClassStart = -1 - var classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)' - var self = this - - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star - hasMagic = true - break - case '?': - re += qmark - hasMagic = true - break - default: - re += '\\' + stateChar - break - } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } - } - - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c) - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c - escaping = false - continue - } - - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false - - case '\\': - clearStateChar() - escaping = true - continue - - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) - - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === '!' && i === classStart + 1) c = '^' - re += c - continue - } - - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue - - case '(': - if (inClass) { - re += '(' - continue - } - - if (!stateChar) { - re += '\\(' - continue - } - - patternListStack.push({ - type: stateChar, - start: i - 1, - reStart: re.length, - open: plTypes[stateChar].open, - close: plTypes[stateChar].close - }) - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:' - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue - - case ')': - if (inClass || !patternListStack.length) { - re += '\\)' - continue - } - - clearStateChar() - hasMagic = true - var pl = patternListStack.pop() - // negation is (?:(?!js)[^/]*) - // The others are (?:) - re += pl.close - if (pl.type === '!') { - negativeLists.push(pl) - } - pl.reEnd = re.length - continue - - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|' - escaping = false - continue - } - - clearStateChar() - re += '|' - continue - - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar() - - if (inClass) { - re += '\\' + c - continue - } - - inClass = true - classStart = i - reClassStart = re.length - re += c - continue - - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c - escaping = false - continue - } - - // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } - } - - // finish up the class. - hasMagic = true - inClass = false - re += c - continue - - default: - // swallow any state char that wasn't consumed - clearStateChar() - - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\' - } - - re += c - - } // switch - } // for - - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1) - sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] - hasMagic = hasMagic || sp[1] - } - - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + pl.open.length) - this.debug('setting tail', re, pl) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\' - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }) - - this.debug('tail=%j\n %s', tail, tail, pl, re) - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type - - hasMagic = true - re = re.slice(0, pl.reStart) + t + '\\(' + tail - } - - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += '\\\\' - } - - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true - } - - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n] - - var nlBefore = re.slice(0, nl.reStart) - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) - var nlAfter = re.slice(nl.reEnd) - - nlLast += nlAfter - - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1 - var cleanAfter = nlAfter - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') - } - nlAfter = cleanAfter - - var dollar = '' - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$' - } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast - re = newRe - } - - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re - } - - if (addPatternStart) { - re = patternStart + re - } - - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] - } - - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) - } - - var flags = options.nocase ? 'i' : '' - try { - var regExp = new RegExp('^' + re + '$', flags) - } catch (er) { - // If it was an invalid regular expression, then it can't match - // anything. This trick looks for a character after the end of - // the string, which is of course impossible, except in multi-line - // mode, but it's not a /m regex. - return new RegExp('$.') - } - - regExp._glob = pattern - regExp._src = re - - return regExp -} - -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} - -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp - - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set - - if (!set.length) { - this.regexp = false - return this.regexp - } - var options = this.options - - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - var flags = options.nocase ? 'i' : '' - - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|') - - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$' - - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$' - - try { - this.regexp = new RegExp(re, flags) - } catch (ex) { - this.regexp = false - } - return this.regexp -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) - } - return list -} - -Minimatch.prototype.match = match -function match (f, partial) { - this.debug('match', f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' - - if (f === '/' && partial) return true - - var options = this.options - - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/') - } - - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, 'split', f) - - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. - - var set = this.set - this.debug(this.pattern, 'set', set) - - // Find the basename of the path by looking for the last non-empty segment - var filename - var i - for (i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break - } - - for (i = 0; i < set.length; i++) { - var pattern = set[i] - var file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate - } - } - - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate -} - -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options - - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }) - - this.debug('matchOne', file.length, pattern.length) - - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop') - var p = pattern[pi] - var f = file[fi] - - this.debug(pattern, p, f) - - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false - - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) - - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - var pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } - - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr] - - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) - - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr) - break - } - - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr++ - } - } - - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } - - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug('string match', p, f, hit) - } else { - hit = f.match(p) - this.debug('pattern match', p, f, hit) - } - - if (!hit) return false - } - - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd - } - - // should be unreachable. - throw new Error('wtf?') -} - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') -} - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} - -},{"brace-expansion":11,"path":22}],21:[function(require,module,exports){ -var wrappy = require('wrappy') -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) - - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f -} - -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f -} - -},{"wrappy":29}],22:[function(require,module,exports){ -(function (process){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up--; up) { - parts.unshift('..'); - } - } - - return parts; -} - -// Split a filename into [root, dir, basename, ext], unix version -// 'root' is just a slash, or nothing. -var splitPathRe = - /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; -var splitPath = function(filename) { - return splitPathRe.exec(filename).slice(1); -}; - -// path.resolve([from ...], to) -// posix version -exports.resolve = function() { - var resolvedPath = '', - resolvedAbsolute = false; - - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : process.cwd(); - - // Skip empty and invalid entries - if (typeof path !== 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - continue; - } - - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charAt(0) === '/'; - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - - // Normalize the path - resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -}; - -// path.normalize(path) -// posix version -exports.normalize = function(path) { - var isAbsolute = exports.isAbsolute(path), - trailingSlash = substr(path, -1) === '/'; - - // Normalize the path - path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isAbsolute).join('/'); - - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isAbsolute ? '/' : '') + path; -}; - -// posix version -exports.isAbsolute = function(path) { - return path.charAt(0) === '/'; -}; - -// posix version -exports.join = function() { - var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - if (typeof p !== 'string') { - throw new TypeError('Arguments to path.join must be strings'); - } - return p; - }).join('/')); -}; - - -// path.relative(from, to) -// posix version -exports.relative = function(from, to) { - from = exports.resolve(from).substr(1); - to = exports.resolve(to).substr(1); - - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - - return outputParts.join('/'); -}; - -exports.sep = '/'; -exports.delimiter = ':'; - -exports.dirname = function(path) { - var result = splitPath(path), - root = result[0], - dir = result[1]; - - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - - return root + dir; -}; - - -exports.basename = function(path, ext) { - var f = splitPath(path)[2]; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - - -exports.extname = function(path) { - return splitPath(path)[3]; -}; - -function filter (xs, f) { - if (xs.filter) return xs.filter(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - if (f(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// String.prototype.substr - negative index don't work in IE8 -var substr = 'ab'.substr(-1) === 'b' - ? function (str, start, len) { return str.substr(start, len) } - : function (str, start, len) { - if (start < 0) start = str.length + start; - return str.substr(start, len); - } -; - -}).call(this,require('_process')) -},{"_process":24}],23:[function(require,module,exports){ -(function (process){ -'use strict'; - -function posix(path) { - return path.charAt(0) === '/'; -} - -function win32(path) { - // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 - var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; - var result = splitDeviceRe.exec(path); - var device = result[1] || ''; - var isUnc = Boolean(device && device.charAt(1) !== ':'); - - // UNC paths are always absolute - return Boolean(result[2] || isUnc); -} - -module.exports = process.platform === 'win32' ? win32 : posix; -module.exports.posix = posix; -module.exports.win32 = win32; - -}).call(this,require('_process')) -},{"_process":24}],24:[function(require,module,exports){ -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],25:[function(require,module,exports){ -// Underscore.js 1.8.3 -// http://underscorejs.org -// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors -// Underscore may be freely distributed under the MIT license. - -(function() { - - // Baseline setup - // -------------- - - // Establish the root object, `window` in the browser, or `exports` on the server. - var root = this; - - // Save the previous value of the `_` variable. - var previousUnderscore = root._; - - // Save bytes in the minified (but not gzipped) version: - var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; - - // Create quick reference variables for speed access to core prototypes. - var - push = ArrayProto.push, - slice = ArrayProto.slice, - toString = ObjProto.toString, - hasOwnProperty = ObjProto.hasOwnProperty; - - // All **ECMAScript 5** native function implementations that we hope to use - // are declared here. - var - nativeIsArray = Array.isArray, - nativeKeys = Object.keys, - nativeBind = FuncProto.bind, - nativeCreate = Object.create; - - // Naked function reference for surrogate-prototype-swapping. - var Ctor = function(){}; - - // Create a safe reference to the Underscore object for use below. - var _ = function(obj) { - if (obj instanceof _) return obj; - if (!(this instanceof _)) return new _(obj); - this._wrapped = obj; - }; - - // Export the Underscore object for **Node.js**, with - // backwards-compatibility for the old `require()` API. If we're in - // the browser, add `_` as a global object. - if (typeof exports !== 'undefined') { - if (typeof module !== 'undefined' && module.exports) { - exports = module.exports = _; - } - exports._ = _; - } else { - root._ = _; - } - - // Current version. - _.VERSION = '1.8.3'; - - // Internal function that returns an efficient (for current engines) version - // of the passed-in callback, to be repeatedly applied in other Underscore - // functions. - var optimizeCb = function(func, context, argCount) { - if (context === void 0) return func; - switch (argCount == null ? 3 : argCount) { - case 1: return function(value) { - return func.call(context, value); - }; - case 2: return function(value, other) { - return func.call(context, value, other); - }; - case 3: return function(value, index, collection) { - return func.call(context, value, index, collection); - }; - case 4: return function(accumulator, value, index, collection) { - return func.call(context, accumulator, value, index, collection); - }; - } - return function() { - return func.apply(context, arguments); - }; - }; - - // A mostly-internal function to generate callbacks that can be applied - // to each element in a collection, returning the desired result — either - // identity, an arbitrary callback, a property matcher, or a property accessor. - var cb = function(value, context, argCount) { - if (value == null) return _.identity; - if (_.isFunction(value)) return optimizeCb(value, context, argCount); - if (_.isObject(value)) return _.matcher(value); - return _.property(value); - }; - _.iteratee = function(value, context) { - return cb(value, context, Infinity); - }; - - // An internal function for creating assigner functions. - var createAssigner = function(keysFunc, undefinedOnly) { - return function(obj) { - var length = arguments.length; - if (length < 2 || obj == null) return obj; - for (var index = 1; index < length; index++) { - var source = arguments[index], - keys = keysFunc(source), - l = keys.length; - for (var i = 0; i < l; i++) { - var key = keys[i]; - if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key]; - } - } - return obj; - }; - }; - - // An internal function for creating a new object that inherits from another. - var baseCreate = function(prototype) { - if (!_.isObject(prototype)) return {}; - if (nativeCreate) return nativeCreate(prototype); - Ctor.prototype = prototype; - var result = new Ctor; - Ctor.prototype = null; - return result; - }; - - var property = function(key) { - return function(obj) { - return obj == null ? void 0 : obj[key]; - }; - }; - - // Helper for collection methods to determine whether a collection - // should be iterated as an array or as an object - // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength - // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094 - var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1; - var getLength = property('length'); - var isArrayLike = function(collection) { - var length = getLength(collection); - return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX; - }; - - // Collection Functions - // -------------------- - - // The cornerstone, an `each` implementation, aka `forEach`. - // Handles raw objects in addition to array-likes. Treats all - // sparse array-likes as if they were dense. - _.each = _.forEach = function(obj, iteratee, context) { - iteratee = optimizeCb(iteratee, context); - var i, length; - if (isArrayLike(obj)) { - for (i = 0, length = obj.length; i < length; i++) { - iteratee(obj[i], i, obj); - } - } else { - var keys = _.keys(obj); - for (i = 0, length = keys.length; i < length; i++) { - iteratee(obj[keys[i]], keys[i], obj); - } - } - return obj; - }; - - // Return the results of applying the iteratee to each element. - _.map = _.collect = function(obj, iteratee, context) { - iteratee = cb(iteratee, context); - var keys = !isArrayLike(obj) && _.keys(obj), - length = (keys || obj).length, - results = Array(length); - for (var index = 0; index < length; index++) { - var currentKey = keys ? keys[index] : index; - results[index] = iteratee(obj[currentKey], currentKey, obj); - } - return results; - }; - - // Create a reducing function iterating left or right. - function createReduce(dir) { - // Optimized iterator function as using arguments.length - // in the main function will deoptimize the, see #1991. - function iterator(obj, iteratee, memo, keys, index, length) { - for (; index >= 0 && index < length; index += dir) { - var currentKey = keys ? keys[index] : index; - memo = iteratee(memo, obj[currentKey], currentKey, obj); - } - return memo; - } - - return function(obj, iteratee, memo, context) { - iteratee = optimizeCb(iteratee, context, 4); - var keys = !isArrayLike(obj) && _.keys(obj), - length = (keys || obj).length, - index = dir > 0 ? 0 : length - 1; - // Determine the initial value if none is provided. - if (arguments.length < 3) { - memo = obj[keys ? keys[index] : index]; - index += dir; - } - return iterator(obj, iteratee, memo, keys, index, length); - }; - } - - // **Reduce** builds up a single result from a list of values, aka `inject`, - // or `foldl`. - _.reduce = _.foldl = _.inject = createReduce(1); - - // The right-associative version of reduce, also known as `foldr`. - _.reduceRight = _.foldr = createReduce(-1); - - // Return the first value which passes a truth test. Aliased as `detect`. - _.find = _.detect = function(obj, predicate, context) { - var key; - if (isArrayLike(obj)) { - key = _.findIndex(obj, predicate, context); - } else { - key = _.findKey(obj, predicate, context); - } - if (key !== void 0 && key !== -1) return obj[key]; - }; - - // Return all the elements that pass a truth test. - // Aliased as `select`. - _.filter = _.select = function(obj, predicate, context) { - var results = []; - predicate = cb(predicate, context); - _.each(obj, function(value, index, list) { - if (predicate(value, index, list)) results.push(value); - }); - return results; - }; - - // Return all the elements for which a truth test fails. - _.reject = function(obj, predicate, context) { - return _.filter(obj, _.negate(cb(predicate)), context); - }; - - // Determine whether all of the elements match a truth test. - // Aliased as `all`. - _.every = _.all = function(obj, predicate, context) { - predicate = cb(predicate, context); - var keys = !isArrayLike(obj) && _.keys(obj), - length = (keys || obj).length; - for (var index = 0; index < length; index++) { - var currentKey = keys ? keys[index] : index; - if (!predicate(obj[currentKey], currentKey, obj)) return false; - } - return true; - }; - - // Determine if at least one element in the object matches a truth test. - // Aliased as `any`. - _.some = _.any = function(obj, predicate, context) { - predicate = cb(predicate, context); - var keys = !isArrayLike(obj) && _.keys(obj), - length = (keys || obj).length; - for (var index = 0; index < length; index++) { - var currentKey = keys ? keys[index] : index; - if (predicate(obj[currentKey], currentKey, obj)) return true; - } - return false; - }; - - // Determine if the array or object contains a given item (using `===`). - // Aliased as `includes` and `include`. - _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) { - if (!isArrayLike(obj)) obj = _.values(obj); - if (typeof fromIndex != 'number' || guard) fromIndex = 0; - return _.indexOf(obj, item, fromIndex) >= 0; - }; - - // Invoke a method (with arguments) on every item in a collection. - _.invoke = function(obj, method) { - var args = slice.call(arguments, 2); - var isFunc = _.isFunction(method); - return _.map(obj, function(value) { - var func = isFunc ? method : value[method]; - return func == null ? func : func.apply(value, args); - }); - }; - - // Convenience version of a common use case of `map`: fetching a property. - _.pluck = function(obj, key) { - return _.map(obj, _.property(key)); - }; - - // Convenience version of a common use case of `filter`: selecting only objects - // containing specific `key:value` pairs. - _.where = function(obj, attrs) { - return _.filter(obj, _.matcher(attrs)); - }; - - // Convenience version of a common use case of `find`: getting the first object - // containing specific `key:value` pairs. - _.findWhere = function(obj, attrs) { - return _.find(obj, _.matcher(attrs)); - }; - - // Return the maximum element (or element-based computation). - _.max = function(obj, iteratee, context) { - var result = -Infinity, lastComputed = -Infinity, - value, computed; - if (iteratee == null && obj != null) { - obj = isArrayLike(obj) ? obj : _.values(obj); - for (var i = 0, length = obj.length; i < length; i++) { - value = obj[i]; - if (value > result) { - result = value; - } - } - } else { - iteratee = cb(iteratee, context); - _.each(obj, function(value, index, list) { - computed = iteratee(value, index, list); - if (computed > lastComputed || computed === -Infinity && result === -Infinity) { - result = value; - lastComputed = computed; - } - }); - } - return result; - }; - - // Return the minimum element (or element-based computation). - _.min = function(obj, iteratee, context) { - var result = Infinity, lastComputed = Infinity, - value, computed; - if (iteratee == null && obj != null) { - obj = isArrayLike(obj) ? obj : _.values(obj); - for (var i = 0, length = obj.length; i < length; i++) { - value = obj[i]; - if (value < result) { - result = value; - } - } - } else { - iteratee = cb(iteratee, context); - _.each(obj, function(value, index, list) { - computed = iteratee(value, index, list); - if (computed < lastComputed || computed === Infinity && result === Infinity) { - result = value; - lastComputed = computed; - } - }); - } - return result; - }; - - // Shuffle a collection, using the modern version of the - // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle). - _.shuffle = function(obj) { - var set = isArrayLike(obj) ? obj : _.values(obj); - var length = set.length; - var shuffled = Array(length); - for (var index = 0, rand; index < length; index++) { - rand = _.random(0, index); - if (rand !== index) shuffled[index] = shuffled[rand]; - shuffled[rand] = set[index]; - } - return shuffled; - }; - - // Sample **n** random values from a collection. - // If **n** is not specified, returns a single random element. - // The internal `guard` argument allows it to work with `map`. - _.sample = function(obj, n, guard) { - if (n == null || guard) { - if (!isArrayLike(obj)) obj = _.values(obj); - return obj[_.random(obj.length - 1)]; - } - return _.shuffle(obj).slice(0, Math.max(0, n)); - }; - - // Sort the object's values by a criterion produced by an iteratee. - _.sortBy = function(obj, iteratee, context) { - iteratee = cb(iteratee, context); - return _.pluck(_.map(obj, function(value, index, list) { - return { - value: value, - index: index, - criteria: iteratee(value, index, list) - }; - }).sort(function(left, right) { - var a = left.criteria; - var b = right.criteria; - if (a !== b) { - if (a > b || a === void 0) return 1; - if (a < b || b === void 0) return -1; - } - return left.index - right.index; - }), 'value'); - }; - - // An internal function used for aggregate "group by" operations. - var group = function(behavior) { - return function(obj, iteratee, context) { - var result = {}; - iteratee = cb(iteratee, context); - _.each(obj, function(value, index) { - var key = iteratee(value, index, obj); - behavior(result, value, key); - }); - return result; - }; - }; - - // Groups the object's values by a criterion. Pass either a string attribute - // to group by, or a function that returns the criterion. - _.groupBy = group(function(result, value, key) { - if (_.has(result, key)) result[key].push(value); else result[key] = [value]; - }); - - // Indexes the object's values by a criterion, similar to `groupBy`, but for - // when you know that your index values will be unique. - _.indexBy = group(function(result, value, key) { - result[key] = value; - }); - - // Counts instances of an object that group by a certain criterion. Pass - // either a string attribute to count by, or a function that returns the - // criterion. - _.countBy = group(function(result, value, key) { - if (_.has(result, key)) result[key]++; else result[key] = 1; - }); - - // Safely create a real, live array from anything iterable. - _.toArray = function(obj) { - if (!obj) return []; - if (_.isArray(obj)) return slice.call(obj); - if (isArrayLike(obj)) return _.map(obj, _.identity); - return _.values(obj); - }; - - // Return the number of elements in an object. - _.size = function(obj) { - if (obj == null) return 0; - return isArrayLike(obj) ? obj.length : _.keys(obj).length; - }; - - // Split a collection into two arrays: one whose elements all satisfy the given - // predicate, and one whose elements all do not satisfy the predicate. - _.partition = function(obj, predicate, context) { - predicate = cb(predicate, context); - var pass = [], fail = []; - _.each(obj, function(value, key, obj) { - (predicate(value, key, obj) ? pass : fail).push(value); - }); - return [pass, fail]; - }; - - // Array Functions - // --------------- - - // Get the first element of an array. Passing **n** will return the first N - // values in the array. Aliased as `head` and `take`. The **guard** check - // allows it to work with `_.map`. - _.first = _.head = _.take = function(array, n, guard) { - if (array == null) return void 0; - if (n == null || guard) return array[0]; - return _.initial(array, array.length - n); - }; - - // Returns everything but the last entry of the array. Especially useful on - // the arguments object. Passing **n** will return all the values in - // the array, excluding the last N. - _.initial = function(array, n, guard) { - return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); - }; - - // Get the last element of an array. Passing **n** will return the last N - // values in the array. - _.last = function(array, n, guard) { - if (array == null) return void 0; - if (n == null || guard) return array[array.length - 1]; - return _.rest(array, Math.max(0, array.length - n)); - }; - - // Returns everything but the first entry of the array. Aliased as `tail` and `drop`. - // Especially useful on the arguments object. Passing an **n** will return - // the rest N values in the array. - _.rest = _.tail = _.drop = function(array, n, guard) { - return slice.call(array, n == null || guard ? 1 : n); - }; - - // Trim out all falsy values from an array. - _.compact = function(array) { - return _.filter(array, _.identity); - }; - - // Internal implementation of a recursive `flatten` function. - var flatten = function(input, shallow, strict, startIndex) { - var output = [], idx = 0; - for (var i = startIndex || 0, length = getLength(input); i < length; i++) { - var value = input[i]; - if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) { - //flatten current level of array or arguments object - if (!shallow) value = flatten(value, shallow, strict); - var j = 0, len = value.length; - output.length += len; - while (j < len) { - output[idx++] = value[j++]; - } - } else if (!strict) { - output[idx++] = value; - } - } - return output; - }; - - // Flatten out an array, either recursively (by default), or just one level. - _.flatten = function(array, shallow) { - return flatten(array, shallow, false); - }; - - // Return a version of the array that does not contain the specified value(s). - _.without = function(array) { - return _.difference(array, slice.call(arguments, 1)); - }; - - // Produce a duplicate-free version of the array. If the array has already - // been sorted, you have the option of using a faster algorithm. - // Aliased as `unique`. - _.uniq = _.unique = function(array, isSorted, iteratee, context) { - if (!_.isBoolean(isSorted)) { - context = iteratee; - iteratee = isSorted; - isSorted = false; - } - if (iteratee != null) iteratee = cb(iteratee, context); - var result = []; - var seen = []; - for (var i = 0, length = getLength(array); i < length; i++) { - var value = array[i], - computed = iteratee ? iteratee(value, i, array) : value; - if (isSorted) { - if (!i || seen !== computed) result.push(value); - seen = computed; - } else if (iteratee) { - if (!_.contains(seen, computed)) { - seen.push(computed); - result.push(value); - } - } else if (!_.contains(result, value)) { - result.push(value); - } - } - return result; - }; - - // Produce an array that contains the union: each distinct element from all of - // the passed-in arrays. - _.union = function() { - return _.uniq(flatten(arguments, true, true)); - }; - - // Produce an array that contains every item shared between all the - // passed-in arrays. - _.intersection = function(array) { - var result = []; - var argsLength = arguments.length; - for (var i = 0, length = getLength(array); i < length; i++) { - var item = array[i]; - if (_.contains(result, item)) continue; - for (var j = 1; j < argsLength; j++) { - if (!_.contains(arguments[j], item)) break; - } - if (j === argsLength) result.push(item); - } - return result; - }; - - // Take the difference between one array and a number of other arrays. - // Only the elements present in just the first array will remain. - _.difference = function(array) { - var rest = flatten(arguments, true, true, 1); - return _.filter(array, function(value){ - return !_.contains(rest, value); - }); - }; - - // Zip together multiple lists into a single array -- elements that share - // an index go together. - _.zip = function() { - return _.unzip(arguments); - }; - - // Complement of _.zip. Unzip accepts an array of arrays and groups - // each array's elements on shared indices - _.unzip = function(array) { - var length = array && _.max(array, getLength).length || 0; - var result = Array(length); - - for (var index = 0; index < length; index++) { - result[index] = _.pluck(array, index); - } - return result; - }; - - // Converts lists into objects. Pass either a single array of `[key, value]` - // pairs, or two parallel arrays of the same length -- one of keys, and one of - // the corresponding values. - _.object = function(list, values) { - var result = {}; - for (var i = 0, length = getLength(list); i < length; i++) { - if (values) { - result[list[i]] = values[i]; - } else { - result[list[i][0]] = list[i][1]; - } - } - return result; - }; - - // Generator function to create the findIndex and findLastIndex functions - function createPredicateIndexFinder(dir) { - return function(array, predicate, context) { - predicate = cb(predicate, context); - var length = getLength(array); - var index = dir > 0 ? 0 : length - 1; - for (; index >= 0 && index < length; index += dir) { - if (predicate(array[index], index, array)) return index; - } - return -1; - }; - } - - // Returns the first index on an array-like that passes a predicate test - _.findIndex = createPredicateIndexFinder(1); - _.findLastIndex = createPredicateIndexFinder(-1); - - // Use a comparator function to figure out the smallest index at which - // an object should be inserted so as to maintain order. Uses binary search. - _.sortedIndex = function(array, obj, iteratee, context) { - iteratee = cb(iteratee, context, 1); - var value = iteratee(obj); - var low = 0, high = getLength(array); - while (low < high) { - var mid = Math.floor((low + high) / 2); - if (iteratee(array[mid]) < value) low = mid + 1; else high = mid; - } - return low; - }; - - // Generator function to create the indexOf and lastIndexOf functions - function createIndexFinder(dir, predicateFind, sortedIndex) { - return function(array, item, idx) { - var i = 0, length = getLength(array); - if (typeof idx == 'number') { - if (dir > 0) { - i = idx >= 0 ? idx : Math.max(idx + length, i); - } else { - length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; - } - } else if (sortedIndex && idx && length) { - idx = sortedIndex(array, item); - return array[idx] === item ? idx : -1; - } - if (item !== item) { - idx = predicateFind(slice.call(array, i, length), _.isNaN); - return idx >= 0 ? idx + i : -1; - } - for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) { - if (array[idx] === item) return idx; - } - return -1; - }; - } - - // Return the position of the first occurrence of an item in an array, - // or -1 if the item is not included in the array. - // If the array is large and already in sort order, pass `true` - // for **isSorted** to use binary search. - _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex); - _.lastIndexOf = createIndexFinder(-1, _.findLastIndex); - - // Generate an integer Array containing an arithmetic progression. A port of - // the native Python `range()` function. See - // [the Python documentation](http://docs.python.org/library/functions.html#range). - _.range = function(start, stop, step) { - if (stop == null) { - stop = start || 0; - start = 0; - } - step = step || 1; - - var length = Math.max(Math.ceil((stop - start) / step), 0); - var range = Array(length); - - for (var idx = 0; idx < length; idx++, start += step) { - range[idx] = start; - } - - return range; - }; - - // Function (ahem) Functions - // ------------------ - - // Determines whether to execute a function as a constructor - // or a normal function with the provided arguments - var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) { - if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); - var self = baseCreate(sourceFunc.prototype); - var result = sourceFunc.apply(self, args); - if (_.isObject(result)) return result; - return self; - }; - - // Create a function bound to a given object (assigning `this`, and arguments, - // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if - // available. - _.bind = function(func, context) { - if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1)); - if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function'); - var args = slice.call(arguments, 2); - var bound = function() { - return executeBound(func, bound, context, this, args.concat(slice.call(arguments))); - }; - return bound; - }; - - // Partially apply a function by creating a version that has had some of its - // arguments pre-filled, without changing its dynamic `this` context. _ acts - // as a placeholder, allowing any combination of arguments to be pre-filled. - _.partial = function(func) { - var boundArgs = slice.call(arguments, 1); - var bound = function() { - var position = 0, length = boundArgs.length; - var args = Array(length); - for (var i = 0; i < length; i++) { - args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i]; - } - while (position < arguments.length) args.push(arguments[position++]); - return executeBound(func, bound, this, this, args); - }; - return bound; - }; - - // Bind a number of an object's methods to that object. Remaining arguments - // are the method names to be bound. Useful for ensuring that all callbacks - // defined on an object belong to it. - _.bindAll = function(obj) { - var i, length = arguments.length, key; - if (length <= 1) throw new Error('bindAll must be passed function names'); - for (i = 1; i < length; i++) { - key = arguments[i]; - obj[key] = _.bind(obj[key], obj); - } - return obj; - }; - - // Memoize an expensive function by storing its results. - _.memoize = function(func, hasher) { - var memoize = function(key) { - var cache = memoize.cache; - var address = '' + (hasher ? hasher.apply(this, arguments) : key); - if (!_.has(cache, address)) cache[address] = func.apply(this, arguments); - return cache[address]; - }; - memoize.cache = {}; - return memoize; - }; - - // Delays a function for the given number of milliseconds, and then calls - // it with the arguments supplied. - _.delay = function(func, wait) { - var args = slice.call(arguments, 2); - return setTimeout(function(){ - return func.apply(null, args); - }, wait); - }; - - // Defers a function, scheduling it to run after the current call stack has - // cleared. - _.defer = _.partial(_.delay, _, 1); - - // Returns a function, that, when invoked, will only be triggered at most once - // during a given window of time. Normally, the throttled function will run - // as much as it can, without ever going more than once per `wait` duration; - // but if you'd like to disable the execution on the leading edge, pass - // `{leading: false}`. To disable execution on the trailing edge, ditto. - _.throttle = function(func, wait, options) { - var context, args, result; - var timeout = null; - var previous = 0; - if (!options) options = {}; - var later = function() { - previous = options.leading === false ? 0 : _.now(); - timeout = null; - result = func.apply(context, args); - if (!timeout) context = args = null; - }; - return function() { - var now = _.now(); - if (!previous && options.leading === false) previous = now; - var remaining = wait - (now - previous); - context = this; - args = arguments; - if (remaining <= 0 || remaining > wait) { - if (timeout) { - clearTimeout(timeout); - timeout = null; - } - previous = now; - result = func.apply(context, args); - if (!timeout) context = args = null; - } else if (!timeout && options.trailing !== false) { - timeout = setTimeout(later, remaining); - } - return result; - }; - }; - - // Returns a function, that, as long as it continues to be invoked, will not - // be triggered. The function will be called after it stops being called for - // N milliseconds. If `immediate` is passed, trigger the function on the - // leading edge, instead of the trailing. - _.debounce = function(func, wait, immediate) { - var timeout, args, context, timestamp, result; - - var later = function() { - var last = _.now() - timestamp; - - if (last < wait && last >= 0) { - timeout = setTimeout(later, wait - last); - } else { - timeout = null; - if (!immediate) { - result = func.apply(context, args); - if (!timeout) context = args = null; - } - } - }; - - return function() { - context = this; - args = arguments; - timestamp = _.now(); - var callNow = immediate && !timeout; - if (!timeout) timeout = setTimeout(later, wait); - if (callNow) { - result = func.apply(context, args); - context = args = null; - } - - return result; - }; - }; - - // Returns the first function passed as an argument to the second, - // allowing you to adjust arguments, run code before and after, and - // conditionally execute the original function. - _.wrap = function(func, wrapper) { - return _.partial(wrapper, func); - }; - - // Returns a negated version of the passed-in predicate. - _.negate = function(predicate) { - return function() { - return !predicate.apply(this, arguments); - }; - }; - - // Returns a function that is the composition of a list of functions, each - // consuming the return value of the function that follows. - _.compose = function() { - var args = arguments; - var start = args.length - 1; - return function() { - var i = start; - var result = args[start].apply(this, arguments); - while (i--) result = args[i].call(this, result); - return result; - }; - }; - - // Returns a function that will only be executed on and after the Nth call. - _.after = function(times, func) { - return function() { - if (--times < 1) { - return func.apply(this, arguments); - } - }; - }; - - // Returns a function that will only be executed up to (but not including) the Nth call. - _.before = function(times, func) { - var memo; - return function() { - if (--times > 0) { - memo = func.apply(this, arguments); - } - if (times <= 1) func = null; - return memo; - }; - }; - - // Returns a function that will be executed at most one time, no matter how - // often you call it. Useful for lazy initialization. - _.once = _.partial(_.before, 2); - - // Object Functions - // ---------------- - - // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed. - var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString'); - var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString', - 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; - - function collectNonEnumProps(obj, keys) { - var nonEnumIdx = nonEnumerableProps.length; - var constructor = obj.constructor; - var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto; - - // Constructor is a special case. - var prop = 'constructor'; - if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop); - - while (nonEnumIdx--) { - prop = nonEnumerableProps[nonEnumIdx]; - if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) { - keys.push(prop); - } - } - } - - // Retrieve the names of an object's own properties. - // Delegates to **ECMAScript 5**'s native `Object.keys` - _.keys = function(obj) { - if (!_.isObject(obj)) return []; - if (nativeKeys) return nativeKeys(obj); - var keys = []; - for (var key in obj) if (_.has(obj, key)) keys.push(key); - // Ahem, IE < 9. - if (hasEnumBug) collectNonEnumProps(obj, keys); - return keys; - }; - - // Retrieve all the property names of an object. - _.allKeys = function(obj) { - if (!_.isObject(obj)) return []; - var keys = []; - for (var key in obj) keys.push(key); - // Ahem, IE < 9. - if (hasEnumBug) collectNonEnumProps(obj, keys); - return keys; - }; - - // Retrieve the values of an object's properties. - _.values = function(obj) { - var keys = _.keys(obj); - var length = keys.length; - var values = Array(length); - for (var i = 0; i < length; i++) { - values[i] = obj[keys[i]]; - } - return values; - }; - - // Returns the results of applying the iteratee to each element of the object - // In contrast to _.map it returns an object - _.mapObject = function(obj, iteratee, context) { - iteratee = cb(iteratee, context); - var keys = _.keys(obj), - length = keys.length, - results = {}, - currentKey; - for (var index = 0; index < length; index++) { - currentKey = keys[index]; - results[currentKey] = iteratee(obj[currentKey], currentKey, obj); - } - return results; - }; - - // Convert an object into a list of `[key, value]` pairs. - _.pairs = function(obj) { - var keys = _.keys(obj); - var length = keys.length; - var pairs = Array(length); - for (var i = 0; i < length; i++) { - pairs[i] = [keys[i], obj[keys[i]]]; - } - return pairs; - }; - - // Invert the keys and values of an object. The values must be serializable. - _.invert = function(obj) { - var result = {}; - var keys = _.keys(obj); - for (var i = 0, length = keys.length; i < length; i++) { - result[obj[keys[i]]] = keys[i]; - } - return result; - }; - - // Return a sorted list of the function names available on the object. - // Aliased as `methods` - _.functions = _.methods = function(obj) { - var names = []; - for (var key in obj) { - if (_.isFunction(obj[key])) names.push(key); - } - return names.sort(); - }; - - // Extend a given object with all the properties in passed-in object(s). - _.extend = createAssigner(_.allKeys); - - // Assigns a given object with all the own properties in the passed-in object(s) - // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) - _.extendOwn = _.assign = createAssigner(_.keys); - - // Returns the first key on an object that passes a predicate test - _.findKey = function(obj, predicate, context) { - predicate = cb(predicate, context); - var keys = _.keys(obj), key; - for (var i = 0, length = keys.length; i < length; i++) { - key = keys[i]; - if (predicate(obj[key], key, obj)) return key; - } - }; - - // Return a copy of the object only containing the whitelisted properties. - _.pick = function(object, oiteratee, context) { - var result = {}, obj = object, iteratee, keys; - if (obj == null) return result; - if (_.isFunction(oiteratee)) { - keys = _.allKeys(obj); - iteratee = optimizeCb(oiteratee, context); - } else { - keys = flatten(arguments, false, false, 1); - iteratee = function(value, key, obj) { return key in obj; }; - obj = Object(obj); - } - for (var i = 0, length = keys.length; i < length; i++) { - var key = keys[i]; - var value = obj[key]; - if (iteratee(value, key, obj)) result[key] = value; - } - return result; - }; - - // Return a copy of the object without the blacklisted properties. - _.omit = function(obj, iteratee, context) { - if (_.isFunction(iteratee)) { - iteratee = _.negate(iteratee); - } else { - var keys = _.map(flatten(arguments, false, false, 1), String); - iteratee = function(value, key) { - return !_.contains(keys, key); - }; - } - return _.pick(obj, iteratee, context); - }; - - // Fill in a given object with default properties. - _.defaults = createAssigner(_.allKeys, true); - - // Creates an object that inherits from the given prototype object. - // If additional properties are provided then they will be added to the - // created object. - _.create = function(prototype, props) { - var result = baseCreate(prototype); - if (props) _.extendOwn(result, props); - return result; - }; - - // Create a (shallow-cloned) duplicate of an object. - _.clone = function(obj) { - if (!_.isObject(obj)) return obj; - return _.isArray(obj) ? obj.slice() : _.extend({}, obj); - }; - - // Invokes interceptor with the obj, and then returns obj. - // The primary purpose of this method is to "tap into" a method chain, in - // order to perform operations on intermediate results within the chain. - _.tap = function(obj, interceptor) { - interceptor(obj); - return obj; - }; - - // Returns whether an object has a given set of `key:value` pairs. - _.isMatch = function(object, attrs) { - var keys = _.keys(attrs), length = keys.length; - if (object == null) return !length; - var obj = Object(object); - for (var i = 0; i < length; i++) { - var key = keys[i]; - if (attrs[key] !== obj[key] || !(key in obj)) return false; - } - return true; - }; - - - // Internal recursive comparison function for `isEqual`. - var eq = function(a, b, aStack, bStack) { - // Identical objects are equal. `0 === -0`, but they aren't identical. - // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal). - if (a === b) return a !== 0 || 1 / a === 1 / b; - // A strict comparison is necessary because `null == undefined`. - if (a == null || b == null) return a === b; - // Unwrap any wrapped objects. - if (a instanceof _) a = a._wrapped; - if (b instanceof _) b = b._wrapped; - // Compare `[[Class]]` names. - var className = toString.call(a); - if (className !== toString.call(b)) return false; - switch (className) { - // Strings, numbers, regular expressions, dates, and booleans are compared by value. - case '[object RegExp]': - // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i') - case '[object String]': - // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is - // equivalent to `new String("5")`. - return '' + a === '' + b; - case '[object Number]': - // `NaN`s are equivalent, but non-reflexive. - // Object(NaN) is equivalent to NaN - if (+a !== +a) return +b !== +b; - // An `egal` comparison is performed for other numeric values. - return +a === 0 ? 1 / +a === 1 / b : +a === +b; - case '[object Date]': - case '[object Boolean]': - // Coerce dates and booleans to numeric primitive values. Dates are compared by their - // millisecond representations. Note that invalid dates with millisecond representations - // of `NaN` are not equivalent. - return +a === +b; - } - - var areArrays = className === '[object Array]'; - if (!areArrays) { - if (typeof a != 'object' || typeof b != 'object') return false; - - // Objects with different constructors are not equivalent, but `Object`s or `Array`s - // from different frames are. - var aCtor = a.constructor, bCtor = b.constructor; - if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor && - _.isFunction(bCtor) && bCtor instanceof bCtor) - && ('constructor' in a && 'constructor' in b)) { - return false; - } - } - // Assume equality for cyclic structures. The algorithm for detecting cyclic - // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. - - // Initializing stack of traversed objects. - // It's done here since we only need them for objects and arrays comparison. - aStack = aStack || []; - bStack = bStack || []; - var length = aStack.length; - while (length--) { - // Linear search. Performance is inversely proportional to the number of - // unique nested structures. - if (aStack[length] === a) return bStack[length] === b; - } - - // Add the first object to the stack of traversed objects. - aStack.push(a); - bStack.push(b); - - // Recursively compare objects and arrays. - if (areArrays) { - // Compare array lengths to determine if a deep comparison is necessary. - length = a.length; - if (length !== b.length) return false; - // Deep compare the contents, ignoring non-numeric properties. - while (length--) { - if (!eq(a[length], b[length], aStack, bStack)) return false; - } - } else { - // Deep compare objects. - var keys = _.keys(a), key; - length = keys.length; - // Ensure that both objects contain the same number of properties before comparing deep equality. - if (_.keys(b).length !== length) return false; - while (length--) { - // Deep compare each member - key = keys[length]; - if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false; - } - } - // Remove the first object from the stack of traversed objects. - aStack.pop(); - bStack.pop(); - return true; - }; - - // Perform a deep comparison to check if two objects are equal. - _.isEqual = function(a, b) { - return eq(a, b); - }; - - // Is a given array, string, or object empty? - // An "empty" object has no enumerable own-properties. - _.isEmpty = function(obj) { - if (obj == null) return true; - if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0; - return _.keys(obj).length === 0; - }; - - // Is a given value a DOM element? - _.isElement = function(obj) { - return !!(obj && obj.nodeType === 1); - }; - - // Is a given value an array? - // Delegates to ECMA5's native Array.isArray - _.isArray = nativeIsArray || function(obj) { - return toString.call(obj) === '[object Array]'; - }; - - // Is a given variable an object? - _.isObject = function(obj) { - var type = typeof obj; - return type === 'function' || type === 'object' && !!obj; - }; - - // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError. - _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) { - _['is' + name] = function(obj) { - return toString.call(obj) === '[object ' + name + ']'; - }; - }); - - // Define a fallback version of the method in browsers (ahem, IE < 9), where - // there isn't any inspectable "Arguments" type. - if (!_.isArguments(arguments)) { - _.isArguments = function(obj) { - return _.has(obj, 'callee'); - }; - } - - // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8, - // IE 11 (#1621), and in Safari 8 (#1929). - if (typeof /./ != 'function' && typeof Int8Array != 'object') { - _.isFunction = function(obj) { - return typeof obj == 'function' || false; - }; - } - - // Is a given object a finite number? - _.isFinite = function(obj) { - return isFinite(obj) && !isNaN(parseFloat(obj)); - }; - - // Is the given value `NaN`? (NaN is the only number which does not equal itself). - _.isNaN = function(obj) { - return _.isNumber(obj) && obj !== +obj; - }; - - // Is a given value a boolean? - _.isBoolean = function(obj) { - return obj === true || obj === false || toString.call(obj) === '[object Boolean]'; - }; - - // Is a given value equal to null? - _.isNull = function(obj) { - return obj === null; - }; - - // Is a given variable undefined? - _.isUndefined = function(obj) { - return obj === void 0; - }; - - // Shortcut function for checking if an object has a given property directly - // on itself (in other words, not on a prototype). - _.has = function(obj, key) { - return obj != null && hasOwnProperty.call(obj, key); - }; - - // Utility Functions - // ----------------- - - // Run Underscore.js in *noConflict* mode, returning the `_` variable to its - // previous owner. Returns a reference to the Underscore object. - _.noConflict = function() { - root._ = previousUnderscore; - return this; - }; - - // Keep the identity function around for default iteratees. - _.identity = function(value) { - return value; - }; - - // Predicate-generating functions. Often useful outside of Underscore. - _.constant = function(value) { - return function() { - return value; - }; - }; - - _.noop = function(){}; - - _.property = property; - - // Generates a function for a given object that returns a given property. - _.propertyOf = function(obj) { - return obj == null ? function(){} : function(key) { - return obj[key]; - }; - }; - - // Returns a predicate for checking whether an object has a given set of - // `key:value` pairs. - _.matcher = _.matches = function(attrs) { - attrs = _.extendOwn({}, attrs); - return function(obj) { - return _.isMatch(obj, attrs); - }; - }; - - // Run a function **n** times. - _.times = function(n, iteratee, context) { - var accum = Array(Math.max(0, n)); - iteratee = optimizeCb(iteratee, context, 1); - for (var i = 0; i < n; i++) accum[i] = iteratee(i); - return accum; - }; - - // Return a random integer between min and max (inclusive). - _.random = function(min, max) { - if (max == null) { - max = min; - min = 0; - } - return min + Math.floor(Math.random() * (max - min + 1)); - }; - - // A (possibly faster) way to get the current timestamp as an integer. - _.now = Date.now || function() { - return new Date().getTime(); - }; - - // List of HTML entities for escaping. - var escapeMap = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''', - '`': '`' - }; - var unescapeMap = _.invert(escapeMap); - - // Functions for escaping and unescaping strings to/from HTML interpolation. - var createEscaper = function(map) { - var escaper = function(match) { - return map[match]; - }; - // Regexes for identifying a key that needs to be escaped - var source = '(?:' + _.keys(map).join('|') + ')'; - var testRegexp = RegExp(source); - var replaceRegexp = RegExp(source, 'g'); - return function(string) { - string = string == null ? '' : '' + string; - return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; - }; - }; - _.escape = createEscaper(escapeMap); - _.unescape = createEscaper(unescapeMap); - - // If the value of the named `property` is a function then invoke it with the - // `object` as context; otherwise, return it. - _.result = function(object, property, fallback) { - var value = object == null ? void 0 : object[property]; - if (value === void 0) { - value = fallback; - } - return _.isFunction(value) ? value.call(object) : value; - }; - - // Generate a unique integer id (unique within the entire client session). - // Useful for temporary DOM ids. - var idCounter = 0; - _.uniqueId = function(prefix) { - var id = ++idCounter + ''; - return prefix ? prefix + id : id; - }; - - // By default, Underscore uses ERB-style template delimiters, change the - // following template settings to use alternative delimiters. - _.templateSettings = { - evaluate : /<%([\s\S]+?)%>/g, - interpolate : /<%=([\s\S]+?)%>/g, - escape : /<%-([\s\S]+?)%>/g - }; - - // When customizing `templateSettings`, if you don't want to define an - // interpolation, evaluation or escaping regex, we need one that is - // guaranteed not to match. - var noMatch = /(.)^/; - - // Certain characters need to be escaped so that they can be put into a - // string literal. - var escapes = { - "'": "'", - '\\': '\\', - '\r': 'r', - '\n': 'n', - '\u2028': 'u2028', - '\u2029': 'u2029' - }; - - var escaper = /\\|'|\r|\n|\u2028|\u2029/g; - - var escapeChar = function(match) { - return '\\' + escapes[match]; - }; - - // JavaScript micro-templating, similar to John Resig's implementation. - // Underscore templating handles arbitrary delimiters, preserves whitespace, - // and correctly escapes quotes within interpolated code. - // NB: `oldSettings` only exists for backwards compatibility. - _.template = function(text, settings, oldSettings) { - if (!settings && oldSettings) settings = oldSettings; - settings = _.defaults({}, settings, _.templateSettings); - - // Combine delimiters into one regular expression via alternation. - var matcher = RegExp([ - (settings.escape || noMatch).source, - (settings.interpolate || noMatch).source, - (settings.evaluate || noMatch).source - ].join('|') + '|$', 'g'); - - // Compile the template source, escaping string literals appropriately. - var index = 0; - var source = "__p+='"; - text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { - source += text.slice(index, offset).replace(escaper, escapeChar); - index = offset + match.length; - - if (escape) { - source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; - } else if (interpolate) { - source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; - } else if (evaluate) { - source += "';\n" + evaluate + "\n__p+='"; - } - - // Adobe VMs need the match returned to produce the correct offest. - return match; - }); - source += "';\n"; - - // If a variable is not specified, place data values in local scope. - if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; - - source = "var __t,__p='',__j=Array.prototype.join," + - "print=function(){__p+=__j.call(arguments,'');};\n" + - source + 'return __p;\n'; - - try { - var render = new Function(settings.variable || 'obj', '_', source); - } catch (e) { - e.source = source; - throw e; - } - - var template = function(data) { - return render.call(this, data, _); - }; - - // Provide the compiled source as a convenience for precompilation. - var argument = settings.variable || 'obj'; - template.source = 'function(' + argument + '){\n' + source + '}'; - - return template; - }; - - // Add a "chain" function. Start chaining a wrapped Underscore object. - _.chain = function(obj) { - var instance = _(obj); - instance._chain = true; - return instance; - }; - - // OOP - // --------------- - // If Underscore is called as a function, it returns a wrapped object that - // can be used OO-style. This wrapper holds altered versions of all the - // underscore functions. Wrapped objects may be chained. - - // Helper function to continue chaining intermediate results. - var result = function(instance, obj) { - return instance._chain ? _(obj).chain() : obj; - }; - - // Add your own custom functions to the Underscore object. - _.mixin = function(obj) { - _.each(_.functions(obj), function(name) { - var func = _[name] = obj[name]; - _.prototype[name] = function() { - var args = [this._wrapped]; - push.apply(args, arguments); - return result(this, func.apply(_, args)); - }; - }); - }; - - // Add all of the Underscore functions to the wrapper object. - _.mixin(_); - - // Add all mutator Array functions to the wrapper. - _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { - var method = ArrayProto[name]; - _.prototype[name] = function() { - var obj = this._wrapped; - method.apply(obj, arguments); - if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0]; - return result(this, obj); - }; - }); - - // Add all accessor Array functions to the wrapper. - _.each(['concat', 'join', 'slice'], function(name) { - var method = ArrayProto[name]; - _.prototype[name] = function() { - return result(this, method.apply(this._wrapped, arguments)); - }; - }); - - // Extracts the result from a wrapped and chained object. - _.prototype.value = function() { - return this._wrapped; - }; - - // Provide unwrapping proxy for some methods used in engine operations - // such as arithmetic and JSON stringification. - _.prototype.valueOf = _.prototype.toJSON = _.prototype.value; - - _.prototype.toString = function() { - return '' + this._wrapped; - }; - - // AMD registration happens at the end for compatibility with AMD loaders - // that may not enforce next-turn semantics on modules. Even though general - // practice for AMD registration is to be anonymous, underscore registers - // as a named module because, like jQuery, it is a base library that is - // popular enough to be bundled in a third party lib, but not be part of - // an AMD load request. Those cases could generate an error when an - // anonymous define() is called outside of a loader request. - if (typeof define === 'function' && define.amd) { - define('underscore', [], function() { - return _; - }); - } -}.call(this)); - -},{}],26:[function(require,module,exports){ -arguments[4][19][0].apply(exports,arguments) -},{"dup":19}],27:[function(require,module,exports){ -module.exports = function isBuffer(arg) { - return arg && typeof arg === 'object' - && typeof arg.copy === 'function' - && typeof arg.fill === 'function' - && typeof arg.readUInt8 === 'function'; -} -},{}],28:[function(require,module,exports){ -(function (process,global){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var formatRegExp = /%[sdj%]/g; -exports.format = function(f) { - if (!isString(f)) { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); - } - return objects.join(' '); - } - - var i = 1; - var args = arguments; - var len = args.length; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': - try { - return JSON.stringify(args[i++]); - } catch (_) { - return '[Circular]'; - } - default: - return x; - } - }); - for (var x = args[i]; i < len; x = args[++i]) { - if (isNull(x) || !isObject(x)) { - str += ' ' + x; - } else { - str += ' ' + inspect(x); - } - } - return str; -}; - - -// Mark that a method should not be used. -// Returns a modified function which warns once by default. -// If --no-deprecation is set, then it is a no-op. -exports.deprecate = function(fn, msg) { - // Allow for deprecating things in the process of starting up. - if (isUndefined(global.process)) { - return function() { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - } - - if (process.noDeprecation === true) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (process.throwDeprecation) { - throw new Error(msg); - } else if (process.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -}; - - -var debugs = {}; -var debugEnviron; -exports.debuglog = function(set) { - if (isUndefined(debugEnviron)) - debugEnviron = process.env.NODE_DEBUG || ''; - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = process.pid; - debugs[set] = function() { - var msg = exports.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function() {}; - } - } - return debugs[set]; -}; - - -/** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Object} opts Optional options object that alters the output. - */ -/* legacy: obj, showHidden, depth, colors*/ -function inspect(obj, opts) { - // default options - var ctx = { - seen: [], - stylize: stylizeNoColor - }; - // legacy... - if (arguments.length >= 3) ctx.depth = arguments[2]; - if (arguments.length >= 4) ctx.colors = arguments[3]; - if (isBoolean(opts)) { - // legacy... - ctx.showHidden = opts; - } else if (opts) { - // got an "options" object - exports._extend(ctx, opts); - } - // set default options - if (isUndefined(ctx.showHidden)) ctx.showHidden = false; - if (isUndefined(ctx.depth)) ctx.depth = 2; - if (isUndefined(ctx.colors)) ctx.colors = false; - if (isUndefined(ctx.customInspect)) ctx.customInspect = true; - if (ctx.colors) ctx.stylize = stylizeWithColor; - return formatValue(ctx, obj, ctx.depth); -} -exports.inspect = inspect; - - -// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics -inspect.colors = { - 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] -}; - -// Don't use 'blue' not visible on cmd.exe -inspect.styles = { - 'special': 'cyan', - 'number': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' -}; - - -function stylizeWithColor(str, styleType) { - var style = inspect.styles[styleType]; - - if (style) { - return '\u001b[' + inspect.colors[style][0] + 'm' + str + - '\u001b[' + inspect.colors[style][1] + 'm'; - } else { - return str; - } -} - - -function stylizeNoColor(str, styleType) { - return str; -} - - -function arrayToHash(array) { - var hash = {}; - - array.forEach(function(val, idx) { - hash[val] = true; - }); - - return hash; -} - - -function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && - // Filter out the util module, it's inspect function is special - value.inspect !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes, ctx); - if (!isString(ret)) { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); - - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } - - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError(value) - && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } - - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); - } - if (isError(value)) { - return formatError(value); - } - } - - var base = '', array = false, braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError(value)) { - base = ' ' + formatError(value); - } - - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } - } - - ctx.seen.push(value); - - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } - - ctx.seen.pop(); - - return reduceToSingleString(output, base, braces); -} - - -function formatPrimitive(ctx, value) { - if (isUndefined(value)) - return ctx.stylize('undefined', 'undefined'); - if (isString(value)) { - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); - } - if (isNumber(value)) - return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) - return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) - return ctx.stylize('null', 'null'); -} - - -function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; -} - - -function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); - } - } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); - } - }); - return output; -} - - -function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); - } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = ctx.stylize('[Circular]', 'special'); - } - } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); - } - } - - return name + ': ' + str; -} - - -function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); - - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - } - - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; -} - - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = require('./support/isBuffer'); - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - - -function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); -} - - -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - -// 26 Feb 16:19:34 -function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); -} - - -// log is just a thin wrapper to console.log that prepends a timestamp -exports.log = function() { - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); -}; - - -/** - * Inherit the prototype methods from one constructor into another. - * - * The Function.prototype.inherits from lang.js rewritten as a standalone - * function (not on Function.prototype). NOTE: If this file is to be loaded - * during bootstrapping this function needs to be rewritten using some native - * functions as prototype setup using normal JavaScript does not work as - * expected during bootstrapping (see mirror.js in r114903). - * - * @param {function} ctor Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor Constructor function to inherit prototype from. - */ -exports.inherits = require('inherits'); - -exports._extend = function(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; - - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; - } - return origin; -}; - -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./support/isBuffer":27,"_process":24,"inherits":26}],29:[function(require,module,exports){ -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -module.exports = wrappy -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) - - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') - - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k] - }) - - return wrapper - - function wrapper() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - var ret = fn.apply(this, args) - var cb = args[args.length-1] - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k] - }) - } - return ret - } -} - -},{}]},{},[7])(7) -}); \ No newline at end of file diff --git a/site/assets/javascripts/workers/search.f886a092.min.js b/site/assets/javascripts/workers/search.f886a092.min.js deleted file mode 100644 index 283b855..0000000 --- a/site/assets/javascripts/workers/search.f886a092.min.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict";(()=>{var xe=Object.create;var U=Object.defineProperty,ve=Object.defineProperties,Se=Object.getOwnPropertyDescriptor,Te=Object.getOwnPropertyDescriptors,Qe=Object.getOwnPropertyNames,Y=Object.getOwnPropertySymbols,Ee=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable;var Z=Math.pow,J=(t,e,r)=>e in t?U(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,A=(t,e)=>{for(var r in e||(e={}))X.call(e,r)&&J(t,r,e[r]);if(Y)for(var r of Y(e))be.call(e,r)&&J(t,r,e[r]);return t},G=(t,e)=>ve(t,Te(e));var Le=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var we=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Qe(e))!X.call(t,i)&&i!==r&&U(t,i,{get:()=>e[i],enumerable:!(n=Se(e,i))||n.enumerable});return t};var Pe=(t,e,r)=>(r=t!=null?xe(Ee(t)):{},we(e||!t||!t.__esModule?U(r,"default",{value:t,enumerable:!0}):r,t));var B=(t,e,r)=>new Promise((n,i)=>{var s=u=>{try{a(r.next(u))}catch(c){i(c)}},o=u=>{try{a(r.throw(u))}catch(c){i(c)}},a=u=>u.done?n(u.value):Promise.resolve(u.value).then(s,o);a((r=r.apply(t,e)).next())});var te=Le((K,ee)=>{/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 - * Copyright (C) 2020 Oliver Nightingale - * @license MIT - */(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";/*! - * lunr.utils - * Copyright (C) 2020 Oliver Nightingale - */t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i0){var f=t.utils.clone(r)||{};f.position=[a,c],f.index=s.length,s.push(new t.Token(n.slice(a,o),f))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;/*! - * lunr.Pipeline - * Copyright (C) 2020 Oliver Nightingale - */t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n1&&(oe&&(n=s),o!=e);)i=n-r,s=r+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ou?f+=2:a==u&&(r+=n[c+1]*i[f+1],c+=2,f+=2);return r},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),r=1,n=0;r0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var f=s.str.charAt(0),g=s.str.charAt(1),l;g in s.node.edges?l=s.node.edges[g]:(l=new t.TokenSet,s.node.edges[g]=l),s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:f+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};/*! - * lunr.Index - * Copyright (C) 2020 Oliver Nightingale - */t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var r=e.peekLexeme();if(r!=null)switch(r.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,r){typeof define=="function"&&define.amd?define(r):typeof K=="object"?ee.exports=r():e.lunr=r()}(this,function(){return t})})()});var de=Pe(te());function re(t,e=document){let r=ke(t,e);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${t}" to be present`);return r}function ke(t,e=document){return e.querySelector(t)||void 0}Object.entries||(Object.entries=function(t){let e=[];for(let r of Object.keys(t))e.push([r,t[r]]);return e});Object.values||(Object.values=function(t){let e=[];for(let r of Object.keys(t))e.push(t[r]);return e});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(t,e){typeof t=="object"?(this.scrollLeft=t.left,this.scrollTop=t.top):(this.scrollLeft=t,this.scrollTop=e)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...t){let e=this.parentNode;if(e){t.length===0&&e.removeChild(this);for(let r=t.length-1;r>=0;r--){let n=t[r];typeof n=="string"?n=document.createTextNode(n):n.parentNode&&n.parentNode.removeChild(n),r?e.insertBefore(this.previousSibling,n):e.replaceChild(n,this)}}}));function ne(t){let e=new Map;for(let r of t){let[n]=r.location.split("#"),i=e.get(n);typeof i=="undefined"?e.set(n,r):(e.set(r.location,r),r.parent=i)}return e}function W(t,e,r){var s;e=new RegExp(e,"g");let n,i=0;do{n=e.exec(t);let o=(s=n==null?void 0:n.index)!=null?s:t.length;if(in?e(r,1,n,n=i):t.charAt(i)===">"&&(t.charAt(n+1)==="/"?--s===0&&e(r++,2,n,i+1):t.charAt(i-1)!=="/"&&s++===0&&e(r,0,n,i+1),n=i+1);i>n&&e(r,1,n,i)}function se(t,e,r,n=!1){return q([t],e,r,n).pop()}function q(t,e,r,n=!1){let i=[0];for(let s=1;s>>2&1023,c=a[0]>>>12;i.push(+(u>c)+i[i.length-1])}return t.map((s,o)=>{let a=0,u=new Map;for(let f of r.sort((g,l)=>g-l)){let g=f&1048575,l=f>>>20;if(i[l]!==o)continue;let m=u.get(l);typeof m=="undefined"&&u.set(l,m=[]),m.push(g)}if(u.size===0)return s;let c=[];for(let[f,g]of u){let l=e[f],m=l[0]>>>12,x=l[l.length-1]>>>12,v=l[l.length-1]>>>2&1023;n&&m>a&&c.push(s.slice(a,m));let d=s.slice(m,x+v);for(let y of g.sort((b,E)=>E-b)){let b=(l[y]>>>12)-m,E=(l[y]>>>2&1023)+b;d=[d.slice(0,b),"",d.slice(b,E),"",d.slice(E)].join("")}if(a=x+v,c.push(d)===2)break}return n&&a{var f;switch(i[f=o+=s]||(i[f]=[]),a){case 0:case 2:i[o].push(u<<12|c-u<<2|a);break;case 1:let g=r[n].slice(u,c);W(g,lunr.tokenizer.separator,(l,m)=>{if(typeof lunr.segmenter!="undefined"){let x=g.slice(l,m);if(/^[MHIK]$/.test(lunr.segmenter.ctype_(x))){let v=lunr.segmenter.segment(x);for(let d=0,y=0;dr){return t.trim().split(/"([^"]+)"/g).map((r,n)=>n&1?r.replace(/^\b|^(?![^\x00-\x7F]|$)|\s+/g," +"):r).join("").replace(/"|(?:^|\s+)[*+\-:^~]+(?=\s+|$)/g,"").split(/\s+/g).reduce((r,n)=>{let i=e(n);return[...r,...Array.isArray(i)?i:[i]]},[]).map(r=>/([~^]$)/.test(r)?`${r}1`:r).map(r=>/(^[+-]|[~^]\d+$)/.test(r)?r:`${r}*`).join(" ")}function ue(t){return ae(t,e=>{let r=[],n=new lunr.QueryLexer(e);n.run();for(let{type:i,str:s,start:o,end:a}of n.lexemes)switch(i){case"FIELD":["title","text","tags"].includes(s)||(e=[e.slice(0,a)," ",e.slice(a+1)].join(""));break;case"TERM":W(s,lunr.tokenizer.separator,(...u)=>{r.push([e.slice(0,o),s.slice(...u),e.slice(a)].join(""))})}return r})}function ce(t){let e=new lunr.Query(["title","text","tags"]);new lunr.QueryParser(t,e).parse();for(let n of e.clauses)n.usePipeline=!0,n.term.startsWith("*")&&(n.wildcard=lunr.Query.wildcard.LEADING,n.term=n.term.slice(1)),n.term.endsWith("*")&&(n.wildcard=lunr.Query.wildcard.TRAILING,n.term=n.term.slice(0,-1));return e.clauses}function le(t,e){var i;let r=new Set(t),n={};for(let s=0;s0;){let o=i[--s];for(let u=1;un[o]-u&&(r.add(t.slice(o,o+u)),i[s++]=o+u);let a=o+n[o];n[a]&&ar=>{if(typeof r[e]=="undefined")return;let n=[r.location,e].join(":");return t.set(n,lunr.tokenizer.table=[]),r[e]}}function Re(t,e){let[r,n]=[new Set(t),new Set(e)];return[...new Set([...r].filter(i=>!n.has(i)))]}var H=class{constructor({config:e,docs:r,options:n}){let i=Oe(this.table=new Map);this.map=ne(r),this.options=n,this.index=lunr(function(){this.metadataWhitelist=["position"],this.b(0),e.lang.length===1&&e.lang[0]!=="en"?this.use(lunr[e.lang[0]]):e.lang.length>1&&this.use(lunr.multiLanguage(...e.lang)),this.tokenizer=oe,lunr.tokenizer.separator=new RegExp(e.separator),lunr.segmenter="TinySegmenter"in lunr?new lunr.TinySegmenter:void 0;let s=Re(["trimmer","stopWordFilter","stemmer"],e.pipeline);for(let o of e.lang.map(a=>a==="en"?lunr:lunr[a]))for(let a of s)this.pipeline.remove(o[a]),this.searchPipeline.remove(o[a]);this.ref("location"),this.field("title",{boost:1e3,extractor:i("title")}),this.field("text",{boost:1,extractor:i("text")}),this.field("tags",{boost:1e6,extractor:i("tags")});for(let o of r)this.add(o,{boost:o.boost})})}search(e){if(e=e.replace(new RegExp("\\p{sc=Han}+","gu"),s=>[...he(s,this.index.invertedIndex)].join("* ")),e=ue(e),!e)return{items:[]};let r=ce(e).filter(s=>s.presence!==lunr.Query.presence.PROHIBITED),n=this.index.search(e).reduce((s,{ref:o,score:a,matchData:u})=>{let c=this.map.get(o);if(typeof c!="undefined"){c=A({},c),c.tags&&(c.tags=[...c.tags]);let f=le(r,Object.keys(u.metadata));for(let l of this.index.fields){if(typeof c[l]=="undefined")continue;let m=[];for(let d of Object.values(u.metadata))typeof d[l]!="undefined"&&m.push(...d[l].position);if(!m.length)continue;let x=this.table.get([c.location,l].join(":")),v=Array.isArray(c[l])?q:se;c[l]=v(c[l],x,m,l!=="text")}let g=+!c.parent+Object.values(f).filter(l=>l).length/Object.keys(f).length;s.push(G(A({},c),{score:a*(1+Z(g,2)),terms:f}))}return s},[]).sort((s,o)=>o.score-s.score).reduce((s,o)=>{let a=this.map.get(o.location);if(typeof a!="undefined"){let u=a.parent?a.parent.location:a.location;s.set(u,[...s.get(u)||[],o])}return s},new Map);for(let[s,o]of n)if(!o.find(a=>a.location===s)){let a=this.map.get(s);o.push(G(A({},a),{score:0,terms:{}}))}let i;if(this.options.suggest){let s=this.index.query(o=>{for(let a of r)o.term(a.term,{fields:["title"],presence:lunr.Query.presence.REQUIRED,wildcard:lunr.Query.wildcard.TRAILING})});i=s.length?Object.keys(s[0].matchData.metadata):[]}return A({items:[...n.values()]},typeof i!="undefined"&&{suggest:i})}};var fe;function Ie(t){return B(this,null,function*(){let e="../lunr";if(typeof parent!="undefined"&&"IFrameWorker"in parent){let n=re("script[src]"),[i]=n.src.split("/worker");e=e.replace("..",i)}let r=[];for(let n of t.lang){switch(n){case"ja":r.push(`${e}/tinyseg.js`);break;case"hi":case"th":r.push(`${e}/wordcut.js`);break}n!=="en"&&r.push(`${e}/min/lunr.${n}.min.js`)}t.lang.length>1&&r.push(`${e}/min/lunr.multi.min.js`),r.length&&(yield importScripts(`${e}/min/lunr.stemmer.support.min.js`,...r))})}function Fe(t){return B(this,null,function*(){switch(t.type){case 0:return yield Ie(t.data.config),fe=new H(t.data),{type:1};case 2:let e=t.data;try{return{type:3,data:fe.search(e)}}catch(r){return console.warn(`Invalid query: ${e} \u2013 see https://bit.ly/2s3ChXG`),console.warn(r),{type:3,data:{items:[]}}}default:throw new TypeError("Invalid message type")}})}self.lunr=de.default;addEventListener("message",t=>B(void 0,null,function*(){postMessage(yield Fe(t.data))}));})(); -//# sourceMappingURL=search.f886a092.min.js.map - diff --git a/site/assets/javascripts/workers/search.f886a092.min.js.map b/site/assets/javascripts/workers/search.f886a092.min.js.map deleted file mode 100644 index 9115984..0000000 --- a/site/assets/javascripts/workers/search.f886a092.min.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["node_modules/lunr/lunr.js", "src/templates/assets/javascripts/integrations/search/worker/main/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/polyfills/index.ts", "src/templates/assets/javascripts/integrations/search/config/index.ts", "src/templates/assets/javascripts/integrations/search/internal/_/index.ts", "src/templates/assets/javascripts/integrations/search/internal/extract/index.ts", "src/templates/assets/javascripts/integrations/search/internal/highlight/index.ts", "src/templates/assets/javascripts/integrations/search/internal/tokenize/index.ts", "src/templates/assets/javascripts/integrations/search/query/transform/index.ts", "src/templates/assets/javascripts/integrations/search/query/_/index.ts", "src/templates/assets/javascripts/integrations/search/query/segment/index.ts", "src/templates/assets/javascripts/integrations/search/_/index.ts"], - "sourcesContent": ["/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9\n * Copyright (C) 2020 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.9\"\n/*!\n * lunr.utils\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function () {\n return this\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2020 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.empty\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory)\n } else if (typeof exports === 'object') {\n /**\n * Node. Does not work with strict CommonJS, but\n * only CommonJS-like enviroments that support module.exports,\n * like Node.\n */\n module.exports = factory()\n } else {\n // Browser globals (root is window)\n root.lunr = factory()\n }\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport lunr from \"lunr\"\n\nimport { getElement } from \"~/browser/element/_\"\nimport \"~/polyfills\"\n\nimport { Search } from \"../../_\"\nimport { SearchConfig } from \"../../config\"\nimport {\n SearchMessage,\n SearchMessageType\n} from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Add support for `iframe-worker` shim\n *\n * While `importScripts` is synchronous when executed inside of a web worker,\n * it's not possible to provide a synchronous shim implementation. The cool\n * thing is that awaiting a non-Promise will convert it into a Promise, so\n * extending the type definition to return a `Promise` shouldn't break anything.\n *\n * @see https://bit.ly/2PjDnXi - GitHub comment\n *\n * @param urls - Scripts to load\n *\n * @returns Promise resolving with no result\n */\ndeclare global {\n function importScripts(...urls: string[]): Promise | void\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index\n */\nlet index: Search\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch (= import) multi-language support through `lunr-languages`\n *\n * This function automatically imports the stemmers necessary to process the\n * languages which are defined as part of the search configuration.\n *\n * If the worker runs inside of an `iframe` (when using `iframe-worker` as\n * a shim), the base URL for the stemmers to be loaded must be determined by\n * searching for the first `script` element with a `src` attribute, which will\n * contain the contents of this script.\n *\n * @param config - Search configuration\n *\n * @returns Promise resolving with no result\n */\nasync function setupSearchLanguages(\n config: SearchConfig\n): Promise {\n let base = \"../lunr\"\n\n /* Detect `iframe-worker` and fix base URL */\n if (typeof parent !== \"undefined\" && \"IFrameWorker\" in parent) {\n const worker = getElement(\"script[src]\")!\n const [path] = worker.src.split(\"/worker\")\n\n /* Prefix base with path */\n base = base.replace(\"..\", path)\n }\n\n /* Add scripts for languages */\n const scripts = []\n for (const lang of config.lang) {\n switch (lang) {\n\n /* Add segmenter for Japanese */\n case \"ja\":\n scripts.push(`${base}/tinyseg.js`)\n break\n\n /* Add segmenter for Hindi and Thai */\n case \"hi\":\n case \"th\":\n scripts.push(`${base}/wordcut.js`)\n break\n }\n\n /* Add language support */\n if (lang !== \"en\")\n scripts.push(`${base}/min/lunr.${lang}.min.js`)\n }\n\n /* Add multi-language support */\n if (config.lang.length > 1)\n scripts.push(`${base}/min/lunr.multi.min.js`)\n\n /* Load scripts synchronously */\n if (scripts.length)\n await importScripts(\n `${base}/min/lunr.stemmer.support.min.js`,\n ...scripts\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Message handler\n *\n * @param message - Source message\n *\n * @returns Target message\n */\nexport async function handler(\n message: SearchMessage\n): Promise {\n switch (message.type) {\n\n /* Search setup message */\n case SearchMessageType.SETUP:\n await setupSearchLanguages(message.data.config)\n index = new Search(message.data)\n return {\n type: SearchMessageType.READY\n }\n\n /* Search query message */\n case SearchMessageType.QUERY:\n const query = message.data\n try {\n return {\n type: SearchMessageType.RESULT,\n data: index.search(query)\n }\n\n /* Return empty result in case of error */\n } catch (err) {\n console.warn(`Invalid query: ${query} \u2013 see https://bit.ly/2s3ChXG`)\n console.warn(err)\n return {\n type: SearchMessageType.RESULT,\n data: { items: [] }\n }\n }\n\n /* All other messages */\n default:\n throw new TypeError(\"Invalid message type\")\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Worker\n * ------------------------------------------------------------------------- */\n\n/* Expose Lunr.js in global scope, or stemmers won't work */\nself.lunr = lunr\n\n/* Handle messages */\naddEventListener(\"message\", async ev => {\n postMessage(await handler(ev.data))\n})\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Elements\n */\nexport function getElements(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T][]\n\nexport function getElements(\n selector: string, node?: ParentNode\n): T[]\n\nexport function getElements(\n selector: string, node: ParentNode = document\n): T[] {\n return Array.from(node.querySelectorAll(selector))\n}\n\n/**\n * Retrieve an element matching a query selector or throw a reference error\n *\n * Note that this function assumes that the element is present. If unsure if an\n * element is existent, use the `getOptionalElement` function instead.\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element\n */\nexport function getElement(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T]\n\nexport function getElement(\n selector: string, node?: ParentNode\n): T\n\nexport function getElement(\n selector: string, node: ParentNode = document\n): T {\n const el = getOptionalElement(selector, node)\n if (typeof el === \"undefined\")\n throw new ReferenceError(\n `Missing element: expected \"${selector}\" to be present`\n )\n\n /* Return element */\n return el\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Retrieve an optional element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element or nothing\n */\nexport function getOptionalElement(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T] | undefined\n\nexport function getOptionalElement(\n selector: string, node?: ParentNode\n): T | undefined\n\nexport function getOptionalElement(\n selector: string, node: ParentNode = document\n): T | undefined {\n return node.querySelector(selector) || undefined\n}\n\n/**\n * Retrieve the currently active element\n *\n * @returns Element or nothing\n */\nexport function getActiveElement(): HTMLElement | undefined {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement || undefined\n : undefined\n}\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Polyfills\n * ------------------------------------------------------------------------- */\n\n/* Polyfill `Object.entries` */\nif (!Object.entries)\n Object.entries = function (obj: object) {\n const data: [string, string][] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push([key, obj[key]])\n\n /* Return entries */\n return data\n }\n\n/* Polyfill `Object.values` */\nif (!Object.values)\n Object.values = function (obj: object) {\n const data: string[] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push(obj[key])\n\n /* Return values */\n return data\n }\n\n/* ------------------------------------------------------------------------- */\n\n/* Polyfills for `Element` */\nif (typeof Element !== \"undefined\") {\n\n /* Polyfill `Element.scrollTo` */\n if (!Element.prototype.scrollTo)\n Element.prototype.scrollTo = function (\n x?: ScrollToOptions | number, y?: number\n ): void {\n if (typeof x === \"object\") {\n this.scrollLeft = x.left!\n this.scrollTop = x.top!\n } else {\n this.scrollLeft = x!\n this.scrollTop = y!\n }\n }\n\n /* Polyfill `Element.replaceWith` */\n if (!Element.prototype.replaceWith)\n Element.prototype.replaceWith = function (\n ...nodes: Array\n ): void {\n const parent = this.parentNode\n if (parent) {\n if (nodes.length === 0)\n parent.removeChild(this)\n\n /* Replace children and create text nodes */\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i]\n if (typeof node === \"string\")\n node = document.createTextNode(node)\n else if (node.parentNode)\n node.parentNode.removeChild(node)\n\n /* Replace child or insert before previous sibling */\n if (!i)\n parent.replaceChild(node, this)\n else\n parent.insertBefore(this.previousSibling!, node)\n }\n }\n }\n}\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search configuration\n */\nexport interface SearchConfig {\n lang: string[] /* Search languages */\n separator: string /* Search separator */\n pipeline: SearchPipelineFn[] /* Search pipeline */\n}\n\n/**\n * Search document\n */\nexport interface SearchDocument {\n location: string /* Document location */\n title: string /* Document title */\n text: string /* Document text */\n tags?: string[] /* Document tags */\n boost?: number /* Document boost */\n parent?: SearchDocument /* Document parent */\n}\n\n/**\n * Search options\n */\nexport interface SearchOptions {\n suggest: boolean /* Search suggestions */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index\n */\nexport interface SearchIndex {\n config: SearchConfig /* Search configuration */\n docs: SearchDocument[] /* Search documents */\n options: SearchOptions /* Search options */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search pipeline function\n */\ntype SearchPipelineFn =\n | \"trimmer\" /* Trimmer */\n | \"stopWordFilter\" /* Stop word filter */\n | \"stemmer\" /* Stemmer */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document map\n *\n * This function creates a mapping of URLs (including anchors) to the actual\n * articles and sections. It relies on the invariant that the search index is\n * ordered with the main article appearing before all sections with anchors.\n * If this is not the case, the logic music be changed.\n *\n * @param docs - Search documents\n *\n * @returns Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchDocument[]\n): Map {\n const map = new Map()\n for (const doc of docs) {\n const [path] = doc.location.split(\"#\")\n\n /* Add document article */\n const article = map.get(path)\n if (typeof article === \"undefined\") {\n map.set(path, doc)\n\n /* Add document section */\n } else {\n map.set(doc.location, doc)\n doc.parent = article\n }\n }\n\n /* Return search document map */\n return map\n}\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Visitor function\n *\n * @param start - Start offset\n * @param end - End offset\n */\ntype VisitorFn = (\n start: number, end: number\n) => void\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Split a string using the given separator\n *\n * @param input - Input value\n * @param separator - Separator\n * @param fn - Visitor function\n */\nexport function split(\n input: string, separator: RegExp, fn: VisitorFn\n): void {\n separator = new RegExp(separator, \"g\")\n\n /* Split string using separator */\n let match: RegExpExecArray | null\n let index = 0\n do {\n match = separator.exec(input)\n\n /* Emit non-empty range */\n const until = match?.index ?? input.length\n if (index < until)\n fn(index, until)\n\n /* Update last index */\n if (match) {\n const [term] = match\n index = match.index + term.length\n\n /* Support zero-length lookaheads */\n if (term.length === 0)\n separator.lastIndex = match.index + 1\n }\n } while (match)\n}\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Extraction type\n *\n * This type defines the possible values that are encoded into the first two\n * bits of a section that is part of the blocks of a tokenization table. There\n * are three types of interest: HTML opening and closing tags, as well as the\n * actual text content we need to extract for indexing.\n */\nexport const enum Extract {\n TAG_OPEN = 0, /* HTML opening tag */\n TEXT = 1, /* Text content */\n TAG_CLOSE = 2 /* HTML closing tag */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Visitor function\n *\n * @param block - Block index\n * @param type - Extraction type\n * @param start - Start offset\n * @param end - End offset\n */\ntype VisitorFn = (\n block: number, type: Extract, start: number, end: number\n) => void\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Split a string into markup and text sections\n *\n * This function scans a string and divides it up into sections of markup and\n * text. For each section, it invokes the given visitor function with the block\n * index, extraction type, as well as start and end offsets. Using a visitor\n * function (= streaming data) is ideal for minimizing pressure on the GC.\n *\n * @param input - Input value\n * @param fn - Visitor function\n */\nexport function extract(\n input: string, fn: VisitorFn\n): void {\n\n let block = 0 /* Current block */\n let start = 0 /* Current start offset */\n let end = 0 /* Current end offset */\n\n /* Split string into sections */\n for (let stack = 0; end < input.length; end++) {\n\n /* Opening tag after non-empty section */\n if (input.charAt(end) === \"<\" && end > start) {\n fn(block, Extract.TEXT, start, start = end)\n\n /* Closing tag */\n } else if (input.charAt(end) === \">\") {\n if (input.charAt(start + 1) === \"/\") {\n if (--stack === 0)\n fn(block++, Extract.TAG_CLOSE, start, end + 1)\n\n /* Tag is not self-closing */\n } else if (input.charAt(end - 1) !== \"/\") {\n if (stack++ === 0)\n fn(block, Extract.TAG_OPEN, start, end + 1)\n }\n\n /* New section */\n start = end + 1\n }\n }\n\n /* Add trailing section */\n if (end > start)\n fn(block, Extract.TEXT, start, end)\n}\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Position table\n */\nexport type PositionTable = number[][]\n\n/**\n * Position\n */\nexport type Position = number\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Highlight all occurrences in a string\n *\n * This function receives a field's value (e.g. like `title` or `text`), it's\n * position table that was generated during indexing, and the positions found\n * when executing the query. It then highlights all occurrences, and returns\n * their concatenation. In case of multiple blocks, two are returned.\n *\n * @param input - Input value\n * @param table - Table for indexing\n * @param positions - Occurrences\n * @param full - Full results\n *\n * @returns Highlighted string value\n */\nexport function highlight(\n input: string, table: PositionTable, positions: Position[], full = false\n): string {\n return highlightAll([input], table, positions, full).pop()!\n}\n\n/**\n * Highlight all occurrences in a set of strings\n *\n * @param inputs - Input values\n * @param table - Table for indexing\n * @param positions - Occurrences\n * @param full - Full results\n *\n * @returns Highlighted string values\n */\nexport function highlightAll(\n inputs: string[], table: PositionTable, positions: Position[], full = false\n): string[] {\n\n /* Map blocks to input values */\n const mapping = [0]\n for (let t = 1; t < table.length; t++) {\n const prev = table[t - 1]\n const next = table[t]\n\n /* Check if table points to new block */\n const p = prev[prev.length - 1] >>> 2 & 0x3FF\n const q = next[0] >>> 12\n\n /* Add block to mapping */\n mapping.push(+(p > q) + mapping[mapping.length - 1])\n }\n\n /* Highlight strings one after another */\n return inputs.map((input, i) => {\n let cursor = 0\n\n /* Map occurrences to blocks */\n const blocks = new Map()\n for (const p of positions.sort((a, b) => a - b)) {\n const index = p & 0xFFFFF\n const block = p >>> 20\n if (mapping[block] !== i)\n continue\n\n /* Ensure presence of block group */\n let group = blocks.get(block)\n if (typeof group === \"undefined\")\n blocks.set(block, group = [])\n\n /* Add index to group */\n group.push(index)\n }\n\n /* Just return string, if no occurrences */\n if (blocks.size === 0)\n return input\n\n /* Compute slices */\n const slices: string[] = []\n for (const [block, indexes] of blocks) {\n const t = table[block]\n\n /* Extract positions and length */\n const start = t[0] >>> 12\n const end = t[t.length - 1] >>> 12\n const length = t[t.length - 1] >>> 2 & 0x3FF\n\n /* Add prefix, if full results are desired */\n if (full && start > cursor)\n slices.push(input.slice(cursor, start))\n\n /* Extract and highlight slice */\n let slice = input.slice(start, end + length)\n for (const j of indexes.sort((a, b) => b - a)) {\n\n /* Retrieve offset and length of match */\n const p = (t[j] >>> 12) - start\n const q = (t[j] >>> 2 & 0x3FF) + p\n\n /* Wrap occurrence */\n slice = [\n slice.slice(0, p),\n \"\",\n slice.slice(p, q),\n \"\",\n slice.slice(q)\n ].join(\"\")\n }\n\n /* Update cursor */\n cursor = end + length\n\n /* Append slice and abort if we have two */\n if (slices.push(slice) === 2)\n break\n }\n\n /* Add suffix, if full results are desired */\n if (full && cursor < input.length)\n slices.push(input.slice(cursor))\n\n /* Return highlighted slices */\n return slices.join(\"\")\n })\n}\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { split } from \"../_\"\nimport {\n Extract,\n extract\n} from \"../extract\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Split a string or set of strings into tokens\n *\n * This tokenizer supersedes the default tokenizer that is provided by Lunr.js,\n * as it is aware of HTML tags and allows for multi-character splitting.\n *\n * It takes the given inputs, splits each of them into markup and text sections,\n * tokenizes and segments (if necessary) each of them, and then indexes them in\n * a table by using a compact bit representation. Bitwise techniques are used\n * to write and read from the table during indexing and querying.\n *\n * @see https://bit.ly/3W3Xw4J - Search: better, faster, smaller\n *\n * @param input - Input value(s)\n *\n * @returns Tokens\n */\nexport function tokenize(\n input?: string | string[]\n): lunr.Token[] {\n const tokens: lunr.Token[] = []\n if (typeof input === \"undefined\")\n return tokens\n\n /* Tokenize strings one after another */\n const inputs = Array.isArray(input) ? input : [input]\n for (let i = 0; i < inputs.length; i++) {\n const table = lunr.tokenizer.table\n const total = table.length\n\n /* Split string into sections and tokenize content blocks */\n extract(inputs[i], (block, type, start, end) => {\n table[block += total] ||= []\n switch (type) {\n\n /* Handle markup */\n case Extract.TAG_OPEN:\n case Extract.TAG_CLOSE:\n table[block].push(\n start << 12 |\n end - start << 2 |\n type\n )\n break\n\n /* Handle text content */\n case Extract.TEXT:\n const section = inputs[i].slice(start, end)\n split(section, lunr.tokenizer.separator, (index, until) => {\n\n /**\n * Apply segmenter after tokenization. Note that the segmenter will\n * also split words at word boundaries, which is not what we want,\n * so we need to check if we can somehow mitigate this behavior.\n */\n if (typeof lunr.segmenter !== \"undefined\") {\n const subsection = section.slice(index, until)\n if (/^[MHIK]$/.test(lunr.segmenter.ctype_(subsection))) {\n const segments = lunr.segmenter.segment(subsection)\n for (let s = 0, l = 0; s < segments.length; s++) {\n\n /* Add block to section */\n table[block] ||= []\n table[block].push(\n start + index + l << 12 |\n segments[s].length << 2 |\n type\n )\n\n /* Add token with position */\n tokens.push(new lunr.Token(\n segments[s].toLowerCase(), {\n position: block << 20 | table[block].length - 1\n }\n ))\n\n /* Keep track of length */\n l += segments[s].length\n }\n return\n }\n }\n\n /* Add block to section */\n table[block].push(\n start + index << 12 |\n until - index << 2 |\n type\n )\n\n /* Add token with position */\n tokens.push(new lunr.Token(\n section.slice(index, until).toLowerCase(), {\n position: block << 20 | table[block].length - 1\n }\n ))\n })\n }\n })\n }\n\n /* Return tokens */\n return tokens\n}\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Visitor function\n *\n * @param value - String value\n *\n * @returns String term(s)\n */\ntype VisitorFn = (\n value: string\n) => string | string[]\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Default transformation function\n *\n * 1. Trim excess whitespace from left and right.\n *\n * 2. Search for parts in quotation marks and prepend a `+` modifier to denote\n * that the resulting document must contain all parts, converting the query\n * to an `AND` query (as opposed to the default `OR` behavior). While users\n * may expect parts enclosed in quotation marks to map to span queries, i.e.\n * for which order is important, Lunr.js doesn't support them, so the best\n * we can do is to convert the parts to an `AND` query.\n *\n * 3. Replace control characters which are not located at the beginning of the\n * query or preceded by white space, or are not followed by a non-whitespace\n * character or are at the end of the query string. Furthermore, filter\n * unmatched quotation marks.\n *\n * 4. Split the query string at whitespace, then pass each part to the visitor\n * function for tokenization, and append a wildcard to every resulting term\n * that is not explicitly marked with a `+`, `-`, `~` or `^` modifier, since\n * it ensures consistent and stable ranking when multiple terms are entered.\n * Also, if a fuzzy or boost modifier are given, but no numeric value has\n * been entered, default to 1 to not induce a query error.\n *\n * @param query - Query value\n * @param fn - Visitor function\n *\n * @returns Transformed query value\n */\nexport function transform(\n query: string, fn: VisitorFn = term => term\n): string {\n return query\n\n /* => 1 */\n .trim()\n\n /* => 2 */\n .split(/\"([^\"]+)\"/g)\n .map((parts, index) => index & 1\n ? parts.replace(/^\\b|^(?![^\\x00-\\x7F]|$)|\\s+/g, \" +\")\n : parts\n )\n .join(\"\")\n\n /* => 3 */\n .replace(/\"|(?:^|\\s+)[*+\\-:^~]+(?=\\s+|$)/g, \"\")\n\n /* => 4 */\n .split(/\\s+/g)\n .reduce((prev, term) => {\n const next = fn(term)\n return [...prev, ...Array.isArray(next) ? next : [next]]\n }, [] as string[])\n .map(term => /([~^]$)/.test(term) ? `${term}1` : term)\n .map(term => /(^[+-]|[~^]\\d+$)/.test(term) ? term : `${term}*`)\n .join(\" \")\n}\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { split } from \"../../internal\"\nimport { transform } from \"../transform\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query clause\n */\nexport interface SearchQueryClause {\n presence: lunr.Query.presence /* Clause presence */\n term: string /* Clause term */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search query terms\n */\nexport type SearchQueryTerms = Record\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Transform search query\n *\n * This function lexes the given search query and applies the transformation\n * function to each term, preserving markup like `+` and `-` modifiers.\n *\n * @param query - Search query\n *\n * @returns Search query\n */\nexport function transformSearchQuery(\n query: string\n): string {\n\n /* Split query terms with tokenizer */\n return transform(query, part => {\n const terms: string[] = []\n\n /* Initialize lexer and analyze part */\n const lexer = new lunr.QueryLexer(part)\n lexer.run()\n\n /* Extract and tokenize term from lexeme */\n for (const { type, str: term, start, end } of lexer.lexemes)\n switch (type) {\n\n /* Hack: remove colon - see https://bit.ly/3wD3T3I */\n case \"FIELD\":\n if (![\"title\", \"text\", \"tags\"].includes(term))\n part = [\n part.slice(0, end),\n \" \",\n part.slice(end + 1)\n ].join(\"\")\n break\n\n /* Tokenize term */\n case \"TERM\":\n split(term, lunr.tokenizer.separator, (...range) => {\n terms.push([\n part.slice(0, start),\n term.slice(...range),\n part.slice(end)\n ].join(\"\"))\n })\n }\n\n /* Return terms */\n return terms\n })\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Parse a search query for analysis\n *\n * Lunr.js itself has a bug where it doesn't detect or remove wildcards for\n * query clauses, so we must do this here.\n *\n * @see https://bit.ly/3DpTGtz - GitHub issue\n *\n * @param value - Query value\n *\n * @returns Search query clauses\n */\nexport function parseSearchQuery(\n value: string\n): SearchQueryClause[] {\n const query = new lunr.Query([\"title\", \"text\", \"tags\"])\n const parser = new lunr.QueryParser(value, query)\n\n /* Parse Search query */\n parser.parse()\n for (const clause of query.clauses) {\n clause.usePipeline = true\n\n /* Handle leading wildcard */\n if (clause.term.startsWith(\"*\")) {\n clause.wildcard = lunr.Query.wildcard.LEADING\n clause.term = clause.term.slice(1)\n }\n\n /* Handle trailing wildcard */\n if (clause.term.endsWith(\"*\")) {\n clause.wildcard = lunr.Query.wildcard.TRAILING\n clause.term = clause.term.slice(0, -1)\n }\n }\n\n /* Return query clauses */\n return query.clauses\n}\n\n/**\n * Analyze the search query clauses in regard to the search terms found\n *\n * @param query - Search query clauses\n * @param terms - Search terms\n *\n * @returns Search query terms\n */\nexport function getSearchQueryTerms(\n query: SearchQueryClause[], terms: string[]\n): SearchQueryTerms {\n const clauses = new Set(query)\n\n /* Match query clauses against terms */\n const result: SearchQueryTerms = {}\n for (let t = 0; t < terms.length; t++)\n for (const clause of clauses)\n if (terms[t].startsWith(clause.term)) {\n result[clause.term] = true\n clauses.delete(clause)\n }\n\n /* Annotate unmatched non-stopword query clauses */\n for (const clause of clauses)\n if (lunr.stopWordFilter?.(clause.term))\n result[clause.term] = false\n\n /* Return query terms */\n return result\n}\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Segment a search query using the inverted index\n *\n * This function implements a clever approach to text segmentation for Asian\n * languages, as it used the information already available in the search index.\n * The idea is to greedily segment the search query based on the tokens that are\n * already part of the index, as described in the linked issue.\n *\n * @see https://bit.ly/3lwjrk7 - GitHub issue\n *\n * @param query - Query value\n * @param index - Inverted index\n *\n * @returns Segmented query value\n */\nexport function segment(\n query: string, index: object\n): Iterable {\n const segments = new Set()\n\n /* Segment search query */\n const wordcuts = new Uint16Array(query.length)\n for (let i = 0; i < query.length; i++)\n for (let j = i + 1; j < query.length; j++) {\n const value = query.slice(i, j)\n if (value in index)\n wordcuts[i] = j - i\n }\n\n /* Compute longest matches with minimum overlap */\n const stack = [0]\n for (let s = stack.length; s > 0;) {\n const p = stack[--s]\n for (let q = 1; q < wordcuts[p]; q++)\n if (wordcuts[p + q] > wordcuts[p] - q) {\n segments.add(query.slice(p, p + q))\n stack[s++] = p + q\n }\n\n /* Continue at end of query string */\n const q = p + wordcuts[p]\n if (wordcuts[q] && q < query.length - 1)\n stack[s++] = q\n\n /* Add current segment */\n segments.add(query.slice(p, q))\n }\n\n // @todo fix this case in the code block above, this is a hotfix\n if (segments.has(\"\"))\n return new Set([query])\n\n /* Return segmented query value */\n return segments\n}\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n SearchDocument,\n SearchIndex,\n SearchOptions,\n setupSearchDocumentMap\n} from \"../config\"\nimport {\n Position,\n PositionTable,\n highlight,\n highlightAll,\n tokenize\n} from \"../internal\"\nimport {\n SearchQueryTerms,\n getSearchQueryTerms,\n parseSearchQuery,\n segment,\n transformSearchQuery\n} from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search item\n */\nexport interface SearchItem\n extends SearchDocument\n{\n score: number /* Score (relevance) */\n terms: SearchQueryTerms /* Search query terms */\n}\n\n/**\n * Search result\n */\nexport interface SearchResult {\n items: SearchItem[][] /* Search items */\n suggest?: string[] /* Search suggestions */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create field extractor factory\n *\n * @param table - Position table map\n *\n * @returns Extractor factory\n */\nfunction extractor(table: Map) {\n return (name: keyof SearchDocument) => {\n return (doc: SearchDocument) => {\n if (typeof doc[name] === \"undefined\")\n return undefined\n\n /* Compute identifier and initialize table */\n const id = [doc.location, name].join(\":\")\n table.set(id, lunr.tokenizer.table = [])\n\n /* Return field value */\n return doc[name]\n }\n }\n}\n\n/**\n * Compute the difference of two lists of strings\n *\n * @param a - 1st list of strings\n * @param b - 2nd list of strings\n *\n * @returns Difference\n */\nfunction difference(a: string[], b: string[]): string[] {\n const [x, y] = [new Set(a), new Set(b)]\n return [\n ...new Set([...x].filter(value => !y.has(value)))\n ]\n}\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index\n */\nexport class Search {\n\n /**\n * Search document map\n */\n protected map: Map\n\n /**\n * Search options\n */\n protected options: SearchOptions\n\n /**\n * The underlying Lunr.js search index\n */\n protected index: lunr.Index\n\n /**\n * Internal position table map\n */\n protected table: Map\n\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n public constructor({ config, docs, options }: SearchIndex) {\n const field = extractor(this.table = new Map())\n\n /* Set up document map and options */\n this.map = setupSearchDocumentMap(docs)\n this.options = options\n\n /* Set up document index */\n this.index = lunr(function () {\n this.metadataWhitelist = [\"position\"]\n this.b(0)\n\n /* Set up (multi-)language support */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n // @ts-expect-error - namespace indexing not supported\n this.use(lunr[config.lang[0]])\n } else if (config.lang.length > 1) {\n this.use(lunr.multiLanguage(...config.lang))\n }\n\n /* Set up custom tokenizer (must be after language setup) */\n this.tokenizer = tokenize as typeof lunr.tokenizer\n lunr.tokenizer.separator = new RegExp(config.separator)\n\n /* Set up custom segmenter, if loaded */\n lunr.segmenter = \"TinySegmenter\" in lunr\n ? new lunr.TinySegmenter()\n : undefined\n\n /* Compute functions to be removed from the pipeline */\n const fns = difference([\n \"trimmer\", \"stopWordFilter\", \"stemmer\"\n ], config.pipeline)\n\n /* Remove functions from the pipeline for registered languages */\n for (const lang of config.lang.map(language => (\n // @ts-expect-error - namespace indexing not supported\n language === \"en\" ? lunr : lunr[language]\n )))\n for (const fn of fns) {\n this.pipeline.remove(lang[fn])\n this.searchPipeline.remove(lang[fn])\n }\n\n /* Set up index reference */\n this.ref(\"location\")\n\n /* Set up index fields */\n this.field(\"title\", { boost: 1e3, extractor: field(\"title\") })\n this.field(\"text\", { boost: 1e0, extractor: field(\"text\") })\n this.field(\"tags\", { boost: 1e6, extractor: field(\"tags\") })\n\n /* Add documents to index */\n for (const doc of docs)\n this.add(doc, { boost: doc.boost })\n })\n }\n\n /**\n * Search for matching documents\n *\n * @param query - Search query\n *\n * @returns Search result\n */\n public search(query: string): SearchResult {\n\n // Experimental Chinese segmentation\n query = query.replace(/\\p{sc=Han}+/gu, value => {\n return [...segment(value, this.index.invertedIndex)]\n .join(\"* \")\n })\n\n // @todo: move segmenter (above) into transformSearchQuery\n query = transformSearchQuery(query)\n if (!query)\n return { items: [] }\n\n /* Parse query to extract clauses for analysis */\n const clauses = parseSearchQuery(query)\n .filter(clause => (\n clause.presence !== lunr.Query.presence.PROHIBITED\n ))\n\n /* Perform search and post-process results */\n const groups = this.index.search(query)\n\n /* Apply post-query boosts based on title and search query terms */\n .reduce((item, { ref, score, matchData }) => {\n let doc = this.map.get(ref)\n if (typeof doc !== \"undefined\") {\n\n /* Shallow copy document */\n doc = { ...doc }\n if (doc.tags)\n doc.tags = [...doc.tags]\n\n /* Compute and analyze search query terms */\n const terms = getSearchQueryTerms(\n clauses,\n Object.keys(matchData.metadata)\n )\n\n /* Highlight matches in fields */\n for (const field of this.index.fields) {\n if (typeof doc[field] === \"undefined\")\n continue\n\n /* Collect positions from matches */\n const positions: Position[] = []\n for (const match of Object.values(matchData.metadata))\n if (typeof match[field] !== \"undefined\")\n positions.push(...match[field].position)\n\n /* Skip highlighting, if no positions were collected */\n if (!positions.length)\n continue\n\n /* Load table and determine highlighting method */\n const table = this.table.get([doc.location, field].join(\":\"))!\n const fn = Array.isArray(doc[field])\n ? highlightAll\n : highlight\n\n // @ts-expect-error - stop moaning, TypeScript!\n doc[field] = fn(doc[field], table, positions, field !== \"text\")\n }\n\n /* Highlight title and text and apply post-query boosts */\n const boost = +!doc.parent +\n Object.values(terms)\n .filter(t => t).length /\n Object.keys(terms).length\n\n /* Append item */\n item.push({\n ...doc,\n score: score * (1 + boost ** 2),\n terms\n })\n }\n return item\n }, [])\n\n /* Sort search results again after applying boosts */\n .sort((a, b) => b.score - a.score)\n\n /* Group search results by article */\n .reduce((items, result) => {\n const doc = this.map.get(result.location)\n if (typeof doc !== \"undefined\") {\n const ref = doc.parent\n ? doc.parent.location\n : doc.location\n items.set(ref, [...items.get(ref) || [], result])\n }\n return items\n }, new Map())\n\n /* Ensure that every item set has an article */\n for (const [ref, items] of groups)\n if (!items.find(item => item.location === ref)) {\n const doc = this.map.get(ref)!\n items.push({ ...doc, score: 0, terms: {} })\n }\n\n /* Generate search suggestions, if desired */\n let suggest: string[] | undefined\n if (this.options.suggest) {\n const titles = this.index.query(builder => {\n for (const clause of clauses)\n builder.term(clause.term, {\n fields: [\"title\"],\n presence: lunr.Query.presence.REQUIRED,\n wildcard: lunr.Query.wildcard.TRAILING\n })\n })\n\n /* Retrieve suggestions for best match */\n suggest = titles.length\n ? Object.keys(titles[0].matchData.metadata)\n : []\n }\n\n /* Return search result */\n return {\n items: [...groups.values()],\n ...typeof suggest !== \"undefined\" && { suggest }\n }\n }\n}\n"], - "mappings": "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", - "names": ["require_lunr", "__commonJSMin", "exports", "module", "lunr", "config", "builder", "global", "message", "obj", "clone", "keys", "key", "val", "docRef", "fieldName", "stringValue", "s", "n", "fieldRef", "elements", "i", "other", "object", "a", "b", "intersection", "element", "posting", "documentCount", "documentsWithTerm", "x", "str", "metadata", "fn", "t", "len", "tokens", "sliceEnd", "sliceStart", "char", "sliceLength", "tokenMetadata", "label", "isRegistered", "serialised", "pipeline", "fnName", "fns", "existingFn", "newFn", "pos", "stackLength", "memo", "j", "result", "k", "token", "index", "start", "end", "pivotPoint", "pivotIndex", "insertIdx", "position", "sumOfSquares", "elementsLength", "otherVector", "dotProduct", "aLen", "bLen", "aVal", "bVal", "output", "step2list", "step3list", "c", "v", "C", "V", "mgr0", "meq1", "mgr1", "s_v", "re_mgr0", "re_mgr1", "re_meq1", "re_s_v", "re_1a", "re2_1a", "re_1b", "re2_1b", "re_1b_2", "re2_1b_2", "re3_1b_2", "re4_1b_2", "re_1c", "re_2", "re_3", "re_4", "re2_4", "re_5", "re_5_1", "re3_5", "porterStemmer", "w", "stem", "suffix", "firstch", "re", "re2", "re3", "re4", "fp", "stopWords", "words", "stopWord", "arr", "clause", "editDistance", "root", "stack", "frame", "noEditNode", "insertionNode", "substitutionNode", "charA", "charB", "transposeNode", "node", "final", "next", "edges", "edge", "labels", "qEdges", "qLen", "nEdges", "nLen", "q", "qEdge", "nEdge", "qNode", "word", "commonPrefix", "nextNode", "downTo", "childKey", "attrs", "queryString", "query", "parser", "matchingFields", "queryVectors", "termFieldCache", "requiredMatches", "prohibitedMatches", "terms", "clauseMatches", "m", "term", "termTokenSet", "expandedTerms", "field", "expandedTerm", "termIndex", "fieldPosting", "matchingDocumentRefs", "termField", "matchingDocumentsSet", "l", "matchingDocumentRef", "matchingFieldRef", "fieldMatch", "allRequiredMatches", "allProhibitedMatches", "matchingFieldRefs", "results", "matches", "fieldVector", "score", "docMatch", "match", "invertedIndex", "fieldVectors", "ref", "serializedIndex", "serializedVectors", "serializedInvertedIndex", "tokenSetBuilder", "tuple", "attributes", "number", "doc", "fields", "extractor", "fieldTerms", "metadataKey", "fieldRefs", "numberOfFields", "accumulator", "documentsWithField", "fieldRefsLength", "termIdfCache", "fieldLength", "termFrequencies", "termsLength", "fieldBoost", "docBoost", "tf", "idf", "scoreWithPrecision", "args", "clonedMetadata", "metadataKeys", "otherMatchData", "allFields", "options", "state", "subSlices", "type", "charCode", "lexer", "lexeme", "completedClause", "errorMessage", "nextLexeme", "possibleFields", "f", "boost", "factory", "import_lunr", "getElement", "selector", "node", "el", "getOptionalElement", "obj", "data", "key", "x", "y", "nodes", "parent", "i", "node", "setupSearchDocumentMap", "docs", "map", "doc", "path", "article", "split", "input", "separator", "fn", "_a", "match", "index", "until", "term", "extract", "input", "fn", "block", "start", "end", "stack", "highlight", "input", "table", "positions", "full", "highlightAll", "inputs", "mapping", "t", "prev", "next", "p", "q", "i", "cursor", "blocks", "a", "b", "index", "block", "group", "slices", "indexes", "start", "end", "length", "slice", "j", "tokenize", "input", "tokens", "inputs", "i", "table", "total", "extract", "block", "type", "start", "end", "_a", "section", "split", "index", "until", "subsection", "segments", "s", "l", "transform", "query", "fn", "term", "parts", "index", "prev", "next", "transformSearchQuery", "query", "transform", "part", "terms", "lexer", "type", "term", "start", "end", "split", "range", "parseSearchQuery", "value", "clause", "getSearchQueryTerms", "_a", "clauses", "result", "t", "segment", "query", "index", "segments", "wordcuts", "i", "j", "stack", "p", "q", "extractor", "table", "name", "doc", "id", "difference", "a", "b", "x", "y", "value", "Search", "config", "docs", "options", "field", "setupSearchDocumentMap", "tokenize", "fns", "lang", "language", "fn", "query", "segment", "transformSearchQuery", "clauses", "parseSearchQuery", "clause", "groups", "item", "ref", "score", "matchData", "__spreadValues", "terms", "getSearchQueryTerms", "positions", "match", "highlightAll", "highlight", "boost", "t", "__spreadProps", "__pow", "items", "result", "suggest", "titles", "builder", "index", "setupSearchLanguages", "config", "__async", "base", "worker", "getElement", "path", "scripts", "lang", "handler", "message", "Search", "query", "err", "lunr", "ev"] -} diff --git a/site/assets/stylesheets/main.bd3936ea.min.css b/site/assets/stylesheets/main.bd3936ea.min.css deleted file mode 100644 index d533893..0000000 --- a/site/assets/stylesheets/main.bd3936ea.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:initial;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:#0000;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-scheme=default]{color-scheme:light}[data-md-color-scheme=default] img[src$="#gh-dark-mode-only"],[data-md-color-scheme=default] img[src$="#only-dark"]{display:none}:root,[data-md-color-scheme=default]{--md-hue:225deg;--md-default-fg-color:#000000de;--md-default-fg-color--light:#0000008a;--md-default-fg-color--lighter:#00000052;--md-default-fg-color--lightest:#00000012;--md-default-bg-color:#fff;--md-default-bg-color--light:#ffffffb3;--md-default-bg-color--lighter:#ffffff4d;--md-default-bg-color--lightest:#ffffff1f;--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-hl-color:#4287ff;--md-code-hl-color--light:#4287ff1a;--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-del-color:#f5503d26;--md-typeset-ins-color:#0bd57026;--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-mark-color:#ffff0080;--md-typeset-table-color:#0000001f;--md-typeset-table-color--light:rgba(0,0,0,.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-warning-fg-color:#000000de;--md-warning-bg-color:#ff9;--md-footer-fg-color:#fff;--md-footer-fg-color--light:#ffffffb3;--md-footer-fg-color--lighter:#ffffff73;--md-footer-bg-color:#000000de;--md-footer-bg-color--dark:#00000052;--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #0000001a,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0003,0 0 0.05rem #00000059}.md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}aside,body,input{font-feature-settings:"kern","liga";color:var(--md-typeset-color);font-family:var(--md-text-font-family)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a:focus code,.md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent)}.md-typeset a code{color:currentcolor;transition:background-color 125ms}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr;font-variant-ligatures:none}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}@media (hover:none){.md-typeset abbr[title]:focus:after,.md-typeset abbr[title]:hover:after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);font-size:.7rem;left:.8rem;margin-top:2em;padding:.2rem .3rem;position:absolute;right:.8rem}}.md-typeset small{opacity:.75}[dir=ltr] .md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}[dir=ltr] .md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}[dir=ltr] .md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}[dir=ltr] .md-typeset ol li ol,[dir=ltr] .md-typeset ol li ul,[dir=ltr] .md-typeset ul li ol,[dir=ltr] .md-typeset ul li ul{margin-left:.625em}[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{margin-right:.625em}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg,.md-typeset video{height:auto;max-width:100%}.md-typeset img[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child{margin-top:0}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.md-typeset figure img{display:block}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td>:first-child,.md-typeset table:not([class]) th>:first-child{margin-top:0}.md-typeset table:not([class]) td>:last-child,.md-typeset table:not([class]) th>:last-child{margin-bottom:0}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:var(--md-typeset-table-color--light);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.984375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-typeset .md-author{display:block;flex-shrink:0;height:1.6rem;overflow:hidden;position:relative;transition:color 125ms,transform 125ms;width:1.6rem}.md-typeset .md-author img{border-radius:100%;display:block}.md-typeset .md-author--more{background:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--lighter);font-size:.6rem;font-weight:700;line-height:1.6rem;text-align:center}.md-typeset .md-author--long{height:2.4rem;width:2.4rem}.md-typeset a.md-author{transform:scale(1)}.md-typeset a.md-author img{filter:grayscale(100%) opacity(75%);transition:filter 125ms}.md-typeset a.md-author:focus,.md-typeset a.md-author:hover{transform:scale(1.1);z-index:1}.md-typeset a.md-author:focus img,.md-typeset a.md-author:hover img{filter:grayscale(0)}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background-color:var(--md-warning-bg-color);color:var(--md-warning-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}[dir=ltr] .md-banner__button{float:right}[dir=rtl] .md-banner__button{float:left}.md-banner__button{color:inherit;cursor:pointer;transition:opacity .25s}.no-js .md-banner__button{display:none}.md-banner__button:hover{opacity:.7}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.984375em){body[data-md-scrolllock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;position:absolute;right:.5em;top:.5em;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:focus,.md-clipboard:hover{color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:focus code,.md-clipboard--inline:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}@keyframes consent{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes overlay{0%{opacity:0}to{opacity:1}}.md-consent__overlay{animation:overlay .25s both;-webkit-backdrop-filter:blur(.1rem);backdrop-filter:blur(.1rem);background-color:#0000008a;height:100%;opacity:1;position:fixed;top:0;width:100%;z-index:5}.md-consent__inner{animation:consent .5s cubic-bezier(.1,.7,.1,1) both;background-color:var(--md-default-bg-color);border:0;border-radius:.1rem;bottom:0;box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;max-height:100%;overflow:auto;padding:0;position:fixed;width:100%;z-index:5}.md-consent__form{padding:.8rem}.md-consent__settings{display:none;margin:1em 0}input:checked+.md-consent__settings{display:block}.md-consent__controls{margin-bottom:.8rem}.md-typeset .md-consent__controls .md-button{display:inline}@media screen and (max-width:44.984375em){.md-typeset .md-consent__controls .md-button{display:block;margin-top:.4rem;text-align:center;width:100%}}.md-consent label{cursor:pointer}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{float:right}[dir=rtl] .md-content__button{float:left}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{margin:.4rem 0;padding:0}@media print{.md-content__button{display:none}}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-feedback{margin:2em 0 1em;text-align:center}.md-feedback fieldset{border:none;margin:0;padding:0}.md-feedback__title{font-weight:700;margin:1em auto}.md-feedback__inner{position:relative}.md-feedback__list{align-content:baseline;display:flex;flex-wrap:wrap;justify-content:center;position:relative}.md-feedback__list:hover .md-icon:not(:disabled){color:var(--md-default-fg-color--lighter)}:disabled .md-feedback__list{min-height:1.8rem}.md-feedback__icon{color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;margin:0 .1rem;transition:color 125ms}.md-feedback__icon:not(:disabled).md-icon:hover{color:var(--md-accent-fg-color)}.md-feedback__icon:disabled{color:var(--md-default-fg-color--lightest);pointer-events:none}.md-feedback__note{opacity:0;position:relative;transform:translateY(.4rem);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-feedback__note>*{margin:0 auto;max-width:16rem}:disabled .md-feedback__note{opacity:1;transform:translateY(0)}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__inner:not([hidden]){display:flex}.md-footer__link{align-items:end;display:flex;flex-grow:0.01;margin-bottom:.4rem;margin-top:1rem;max-width:100%;outline-color:var(--md-accent-fg-color);overflow:hidden;transition:opacity .25s}.md-footer__link:focus,.md-footer__link:hover{opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.984375em){.md-footer__link--prev{flex-shrink:0}.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.9rem;margin-bottom:.7rem;max-width:calc(100% - 2.4rem);padding:0 1rem;white-space:nowrap}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;opacity:.7}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-footer-fg-color)}.md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-social{display:inline-flex;gap:.2rem;margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .md-input,[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:focus,.md-typeset .md-input:hover{border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem #0000,0 .2rem .4rem #0000;color:var(--md-primary-bg-color);display:block;left:0;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header--shadow{box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.234375em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo img,.md-header__button.md-logo svg{fill:currentcolor;display:block;height:1.2rem;width:auto}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}[dir=ltr] .md-header__title{margin-left:1rem}[dir=rtl] .md-header__title{margin-right:1rem}[dir=ltr] .md-header__title{margin-right:.4rem}[dir=rtl] .md-header__title{margin-left:.4rem}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__option>input{bottom:0}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}.md-meta{color:var(--md-default-fg-color--light);font-size:.7rem;line-height:1.3}.md-meta__list{display:inline-flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.md-meta__item:not(:last-child):after{content:"·";margin-left:.2rem;margin-right:.2rem}.md-meta__link{color:var(--md-typeset-a-color)}.md-meta__link:focus,.md-meta__link:hover{color:var(--md-accent-fg-color)}.md-draft{background-color:#ff1744;border-radius:.125em;color:#fff;display:inline-block;font-weight:700;padding-left:.5714285714em;padding-right:.5714285714em}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{color:var(--md-default-fg-color--light);display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__list{list-style:none;margin:0;padding:0}.md-nav__link{align-items:flex-start;display:flex;gap:.4rem;margin-top:.625em;scroll-snap-align:start;transition:color 125ms}.md-nav__link--passed{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active,.md-nav__item .md-nav__link--active code{color:var(--md-typeset-a-color)}.md-nav__link .md-ellipsis{position:relative}[dir=ltr] .md-nav__link .md-icon:last-child{margin-left:auto}[dir=rtl] .md-nav__link .md-icon:last-child{margin-right:auto}.md-nav__link svg{fill:currentcolor;flex-shrink:0;height:1.3em}.md-nav__link[for]:focus,.md-nav__link[for]:hover,.md-nav__link[href]:focus,.md-nav__link[href]:hover{color:var(--md-accent-fg-color);cursor:pointer}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentcolor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__container>.md-nav__link{margin-top:0}.md-nav__container>.md-nav__link:first-child{flex-grow:1;min-width:0}.md-nav__icon{flex-shrink:0}.md-nav__source{display:none}@media screen and (max-width:76.234375em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}[dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}.md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;right:.2rem;top:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link svg{margin-top:.1em}.md-nav--primary .md-nav__link>.md-nav__link{padding:0}[dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav{background-color:initial;position:static}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.md-nav--secondary{background-color:initial}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.984375em){.md-nav--primary .md-nav__link[for=__toc]{display:flex}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.234375em){.md-nav--integrated .md-nav__link[for=__toc]{display:flex}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav{margin-bottom:-.4rem}.md-nav--secondary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:sticky;top:0;z-index:1}.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}[dir=ltr] .md-nav--secondary .md-nav__list{padding-left:.6rem}[dir=rtl] .md-nav--secondary .md-nav__list{padding-right:.6rem}.md-nav--secondary .md-nav__list{padding-bottom:.4rem}[dir=ltr] .md-nav--secondary .md-nav__item>.md-nav__link{margin-right:.4rem}[dir=rtl] .md-nav--secondary .md-nav__item>.md-nav__link{margin-left:.4rem}}@media screen and (min-width:76.25em){.md-nav{margin-bottom:-.4rem;transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:sticky;top:0;z-index:1}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon{display:none}[dir=ltr] .md-nav--primary .md-nav__list{padding-left:.6rem}[dir=rtl] .md-nav--primary .md-nav__list{padding-right:.6rem}.md-nav--primary .md-nav__list{padding-bottom:.4rem}[dir=ltr] .md-nav--primary .md-nav__item>.md-nav__link{margin-right:.4rem}[dir=rtl] .md-nav--primary .md-nav__item>.md-nav__link{margin-left:.4rem}.md-nav__toggle~.md-nav{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .25s,visibility 0ms .25s;visibility:collapse}.md-nav__toggle~.md-nav>.md-nav__list{overflow:hidden}.md-nav__toggle:checked~.md-nav,.md-nav__toggle:indeterminate~.md-nav{grid-template-rows:1fr;opacity:1;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .15s .1s,visibility 0ms;visibility:visible}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700}.md-nav__item--section>.md-nav__link[for]{color:var(--md-default-fg-color--light)}.md-nav__item--section>.md-nav__link:not(.md-nav__container){pointer-events:none}.md-nav__item--section>.md-nav__link .md-icon,.md-nav__item--section>.md-nav__link>[for]{display:none}[dir=ltr] .md-nav__item--section>.md-nav{margin-left:-.6rem}[dir=rtl] .md-nav__item--section>.md-nav{margin-right:-.6rem}.md-nav__item--section>.md-nav{display:block;opacity:1;visibility:visible}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{border-radius:100%;height:.9rem;transition:background-color .25s;width:.9rem}.md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.md-nav__icon:after{background-color:currentcolor;border-radius:100%;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:transform .25s;vertical-align:-.1rem;width:100%}[dir=rtl] .md-nav__icon:after{transform:rotate(180deg)}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon:after,.md-nav__item--nested .md-nav__toggle:indeterminate~.md-nav__link .md-nav__icon:after{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);margin-top:0;position:sticky;top:0;z-index:1}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link:not(.md-nav__container){pointer-events:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active.md-nav__item--section{margin:0}[dir=ltr] .md-nav--lifted>.md-nav__list>.md-nav__item>.md-nav{margin-left:-.6rem}[dir=rtl] .md-nav--lifted>.md-nav__list>.md-nav__item>.md-nav{margin-right:-.6rem}.md-nav--lifted>.md-nav__list>.md-nav__item>[for]{color:var(--md-default-fg-color--light)}.md-nav--lifted .md-nav[data-md-level="1"]{grid-template-rows:1fr;opacity:1;visibility:visible}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested){padding:0 .6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested)>.md-nav__link{padding:0}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em;opacity:1;visibility:visible}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__list{overflow:visible;padding-bottom:0}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}.md-pagination{font-size:.8rem;font-weight:700;gap:.4rem}.md-pagination,.md-pagination>*{align-items:center;display:flex;justify-content:center}.md-pagination>*{border-radius:.2rem;height:1.8rem;min-width:1.8rem;text-align:center}.md-pagination__current{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light)}.md-pagination__link{transition:color 125ms,background-color 125ms}.md-pagination__link:focus,.md-pagination__link:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-pagination__link:focus svg,.md-pagination__link:hover svg{color:var(--md-accent-fg-color)}.md-pagination__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-pagination__link svg{fill:currentcolor;color:var(--md-default-fg-color--lighter);display:block;max-height:100%;width:1.2rem}.md-post__back{border-bottom:.05rem solid var(--md-default-fg-color--lightest);margin-bottom:1.2rem;padding-bottom:1.2rem}@media screen and (max-width:76.234375em){.md-post__back{display:none}}[dir=rtl] .md-post__back svg{transform:scaleX(-1)}.md-post__authors{display:flex;flex-direction:column;gap:.6rem;margin:0 .6rem 1.2rem}.md-post .md-post__meta a{transition:color 125ms}.md-post .md-post__meta a:focus,.md-post .md-post__meta a:hover{color:var(--md-accent-fg-color)}.md-post__title{color:var(--md-default-fg-color--light);font-weight:700}.md-post--excerpt{margin-bottom:3.2rem}.md-post--excerpt .md-post__header{align-items:center;display:flex;gap:.6rem;min-height:1.6rem}.md-post--excerpt .md-post__authors{align-items:center;display:inline-flex;flex-direction:row;gap:.2rem;margin:0;min-height:2.4rem}[dir=ltr] .md-post--excerpt .md-post__meta .md-meta__list{margin-right:.4rem}[dir=rtl] .md-post--excerpt .md-post__meta .md-meta__list{margin-left:.4rem}.md-post--excerpt .md-post__content>:first-child{--md-scroll-margin:6rem;margin-top:0}.md-post>.md-nav--secondary{margin:1em 0}.md-profile{align-items:center;display:flex;font-size:.7rem;gap:.6rem;line-height:1.4;width:100%}.md-profile__description{flex-grow:1}.md-content--post{display:flex}@media screen and (max-width:76.234375em){.md-content--post{flex-flow:column-reverse}}.md-content--post>.md-content__inner{min-width:0}@media screen and (min-width:76.25em){[dir=ltr] .md-content--post>.md-content__inner{margin-left:1.2rem}[dir=rtl] .md-content--post>.md-content__inner{margin-right:1.2rem}}@media screen and (max-width:76.234375em){.md-sidebar.md-sidebar--post{padding:0;position:static;width:100%}.md-sidebar.md-sidebar--post .md-sidebar__inner{padding:0}.md-sidebar.md-sidebar--post .md-post__meta{margin-left:.6rem;margin-right:.6rem}.md-sidebar.md-sidebar--post .md-nav__item{border:none;display:inline}.md-sidebar.md-sidebar--post .md-nav__list{display:inline-flex;flex-wrap:wrap;gap:.6rem;padding-bottom:.6rem;padding-top:.6rem}.md-sidebar.md-sidebar--post .md-nav__link{padding:0}.md-sidebar.md-sidebar--post .md-nav{position:static}}:root{--md-progress-value:0;--md-progress-delay:400ms}.md-progress{background:var(--md-primary-bg-color);height:.075rem;opacity:min(clamp(0,var(--md-progress-value),1),clamp(0,100 - var(--md-progress-value),1));position:fixed;top:0;transform:scaleX(calc(var(--md-progress-value)*1%));transform-origin:left;transition:transform .5s cubic-bezier(.19,1,.22,1),opacity .25s var(--md-progress-delay);width:100%;z-index:4}:root{--md-search-result-icon:url('data:image/svg+xml;charset=utf-8,')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__overlay{left:-2.2rem}[dir=rtl] .md-search__overlay{right:-2.2rem}.md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;overflow:hidden;pointer-events:none;position:absolute;top:-1rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){[dir=ltr] .md-search__overlay{left:0}[dir=rtl] .md-search__overlay{right:0}.md-search__overlay{background-color:#0000008a;cursor:pointer;height:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}[data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.984375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.984375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.984375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__inner{left:0}[dir=rtl] .md-search__inner{right:0}.md-search__inner{height:0;opacity:0;overflow:hidden;position:fixed;top:0;transform:translateX(5%);transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:0;z-index:2}[dir=rtl] .md-search__inner{transform:translateX(-5%)}[data-md-toggle=search]:checked~.md-header .md-search__inner{height:100%;opacity:1;transform:translateX(0);transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__inner{float:right}[dir=rtl] .md-search__inner{float:left}.md-search__inner{padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}}@media screen and (min-width:60em) and (max-width:76.234375em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem #0000;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.md-search__form{background-color:#00000042;border-radius:.1rem;height:1.8rem}.md-search__form:hover{background-color:#ffffff1f}}[data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem #00000012;color:var(--md-default-fg-color)}[dir=ltr] .md-search__input{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__input{padding-left:2.2rem;padding-right:3.6rem}.md-search__input{background:#0000;font-size:.9rem;height:100%;position:relative;text-overflow:ellipsis;width:100%;z-index:2}.md-search__input::placeholder{transition:color .25s}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width:59.984375em){.md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__input{padding-left:2.2rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input{color:inherit;font-size:.8rem}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}[data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:#0000}}.md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.md-search__icon:hover{opacity:.7}[dir=ltr] .md-search__icon[for=__search]{left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem}.md-search__icon[for=__search]{position:absolute;top:.3rem;z-index:2}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__icon[for=__search]{left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem}.md-search__icon[for=__search]{top:.6rem}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}[dir=ltr] .md-search__options{right:.5rem}[dir=rtl] .md-search__options{left:.5rem}.md-search__options{pointer-events:none;position:absolute;top:.3rem;z-index:2}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__options{right:.8rem}[dir=rtl] .md-search__options{left:.8rem}.md-search__options{top:.6rem}}[dir=ltr] .md-search__options>.md-icon{margin-left:.2rem}[dir=rtl] .md-search__options>.md-icon{margin-right:.2rem}.md-search__options>.md-icon{color:var(--md-default-fg-color--light);opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-search__options>.md-icon:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon{opacity:1;pointer-events:auto;transform:scale(1)}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon:hover{opacity:.7}[dir=ltr] .md-search__suggest{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__suggest{padding-left:2.2rem;padding-right:3.6rem}.md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}@media screen and (min-width:60em){[dir=ltr] .md-search__suggest{padding-left:2.2rem}[dir=rtl] .md-search__suggest{padding-right:2.2rem}.md-search__suggest{font-size:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}[dir=ltr] .md-search__output{border-bottom-left-radius:.1rem}[dir=ltr] .md-search__output,[dir=rtl] .md-search__output{border-bottom-right-radius:.1rem}[dir=rtl] .md-search__output{border-bottom-left-radius:.1rem}.md-search__output{overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.984375em){.md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:var(--md-shadow-z3);opacity:1}}.md-search__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.234375em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){[dir=ltr] .md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem}}.md-search-result__list{list-style:none;margin:0;padding:0;-webkit-user-select:none;user-select:none}.md-search-result__item{box-shadow:0 -.05rem var(--md-default-fg-color--lightest)}.md-search-result__item:first-child{box-shadow:none}.md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.md-search-result__more>summary{cursor:pointer;display:block;outline:none;position:sticky;scroll-snap-align:start;top:0;z-index:1}.md-search-result__more>summary::marker{display:none}.md-search-result__more>summary::-webkit-details-marker{display:none}.md-search-result__more>summary>div{color:var(--md-typeset-a-color);font-size:.64rem;padding:.75em .8rem;transition:color .25s,background-color .25s}@media screen and (min-width:60em){[dir=ltr] .md-search-result__more>summary>div{padding-left:2.2rem}[dir=rtl] .md-search-result__more>summary>div{padding-right:2.2rem}}.md-search-result__more>summary:focus>div,.md-search-result__more>summary:hover>div{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more[open]>summary{background-color:var(--md-default-bg-color)}.md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){[dir=ltr] .md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem}}[dir=ltr] .md-search-result__icon{left:0}[dir=rtl] .md-search-result__icon{right:0}.md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.984375em){.md-search-result__icon{display:none}}.md-search-result__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.md-search-result .md-typeset{color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.6}.md-search-result .md-typeset h1{color:var(--md-default-fg-color);font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}.md-search-result .md-typeset h1 mark{text-decoration:none}.md-search-result .md-typeset h2{color:var(--md-default-fg-color);font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.md-search-result .md-typeset h2 mark{text-decoration:none}.md-search-result__terms{color:var(--md-default-fg-color);display:block;font-size:.64rem;font-style:italic;margin:.5em 0}.md-search-result mark{background-color:initial;color:var(--md-accent-fg-color);text-decoration:underline}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:focus-within .md-select__inner,.md-select:hover .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid #0000;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid #0000;border-right:.2rem solid #0000;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:focus,.md-select__link:hover{color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.234375em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}.md-header--lifted~.md-container .md-sidebar{top:4.8rem}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{scrollbar-gutter:stable;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap:focus-within,.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb:hover,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@supports selector(::-webkit-scrollbar){.md-sidebar__scrollwrap{scrollbar-gutter:auto}[dir=ltr] .md-sidebar__inner{padding-right:calc(100% - 11.5rem)}[dir=rtl] .md-sidebar__inner{padding-left:calc(100% - 11.5rem)}}@media screen and (max-width:76.234375em){.md-overlay{background-color:#0000008a;height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@keyframes facts{0%{height:0}to{height:.65rem}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{display:flex;font-size:.55rem;gap:.4rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0;width:100%}.md-source__repository--active .md-source__facts{animation:facts .25s ease-in}.md-source__fact{overflow:hidden;text-overflow:ellipsis}.md-source__repository--active .md-source__fact{animation:fact .4s ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}.md-source__fact:nth-child(1n+2){flex-shrink:0}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}:root{--md-status:url('data:image/svg+xml;charset=utf-8,');--md-status--new:url('data:image/svg+xml;charset=utf-8,');--md-status--deprecated:url('data:image/svg+xml;charset=utf-8,');--md-status--encrypted:url('data:image/svg+xml;charset=utf-8,')}.md-status:after{background-color:var(--md-default-fg-color--light);content:"";display:inline-block;height:1.125em;-webkit-mask-image:var(--md-status);mask-image:var(--md-status);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-bottom;width:1.125em}.md-status:hover:after{background-color:currentcolor}.md-status--new:after{-webkit-mask-image:var(--md-status--new);mask-image:var(--md-status--new)}.md-status--deprecated:after{-webkit-mask-image:var(--md-status--deprecated);mask-image:var(--md-status--deprecated)}.md-status--encrypted:after{-webkit-mask-image:var(--md-status--encrypted);mask-image:var(--md-status--encrypted)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:3}@media print{.md-tabs{display:none}}@media screen and (max-width:76.234375em){.md-tabs{display:none}}.md-tabs[hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.2rem}[dir=rtl] .md-tabs__list{margin-right:.2rem}.md-tabs__list{contain:content;display:flex;list-style:none;margin:0;overflow:auto;padding:0;scrollbar-width:none;white-space:nowrap}.md-tabs__list::-webkit-scrollbar{display:none}.md-tabs__item{height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__item--active .md-tabs__link{color:inherit;opacity:1}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link:focus,.md-tabs__link:hover{color:inherit;opacity:1}[dir=ltr] .md-tabs__link svg{margin-right:.4rem}[dir=rtl] .md-tabs__link svg{margin-left:.4rem}.md-tabs__link svg{fill:currentcolor;height:1.3em}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}:root{--md-tag-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .md-tags{display:inline-flex;flex-wrap:wrap;gap:.5em;margin-bottom:.75em;margin-top:-.125em}.md-typeset .md-tag{align-items:center;background:var(--md-default-fg-color--lightest);border-radius:2.4rem;display:inline-flex;font-size:.64rem;font-size:min(.8em,.64rem);font-weight:700;gap:.5em;letter-spacing:normal;line-height:1.6;padding:.3125em .78125em}.md-typeset .md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-typeset .md-tag[href]:focus,.md-typeset .md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-typeset .md-tag{vertical-align:text-top}.md-typeset .md-tag-icon:before{background-color:var(--md-default-fg-color--lighter);content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-tag-icon);mask-image:var(--md-tag-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset .md-tag-icon[href]:focus:before,.md-typeset .md-tag-icon[href]:hover:before{background-color:var(--md-accent-bg-color)}@keyframes pulse{0%{transform:scale(.95)}75%{transform:scale(1)}to{transform:scale(.95)}}:root{--md-annotation-bg-icon:url('data:image/svg+xml;charset=utf-8,');--md-annotation-icon:url('data:image/svg+xml;charset=utf-8,');--md-tooltip-width:20rem}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);font-family:var(--md-text-font-family);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}.md-tooltip--active{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,z-index 0ms;z-index:2}.focus-visible>.md-tooltip,.md-tooltip:target{outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{font-weight:400;outline:none;vertical-align:text-bottom;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}code .md-annotation{font-family:var(--md-code-font-family);font-size:inherit}.md-annotation:not([hidden]){display:inline-block;line-height:1.25}.md-annotation__index{border-radius:.01px;cursor:pointer;display:inline-block;margin-left:.4ch;margin-right:.4ch;outline:none;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;vertical-align:text-top;z-index:0}.md-annotation .md-annotation__index{transition:z-index .25s}@media screen{.md-annotation__index{width:2.2ch}[data-md-visible]>.md-annotation__index{animation:pulse 2s infinite}.md-annotation__index:before{background:var(--md-default-bg-color);-webkit-mask-image:var(--md-annotation-bg-icon);mask-image:var(--md-annotation-bg-icon)}.md-annotation__index:after,.md-annotation__index:before{content:"";height:2.2ch;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:-.1ch;width:2.2ch;z-index:-1}.md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);-webkit-mask-image:var(--md-annotation-icon);mask-image:var(--md-annotation-icon);transform:scale(1.0001);transition:background-color .25s,transform .25s}.md-tooltip--active+.md-annotation__index:after{transform:rotate(45deg)}.md-tooltip--active+.md-annotation__index:after,:hover>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}}.md-tooltip--active+.md-annotation__index{animation-play-state:paused;transition-duration:0ms;z-index:2}.md-annotation__index [data-md-annotation-id]{display:inline-block}@media print{.md-annotation__index [data-md-annotation-id]{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);font-weight:700;padding:0 .6ch;white-space:nowrap}.md-annotation__index [data-md-annotation-id]:after{content:attr(data-md-annotation-id)}}.md-typeset .md-annotation-list{counter-reset:xxx;list-style:none}.md-typeset .md-annotation-list li{position:relative}[dir=ltr] .md-typeset .md-annotation-list li:before{left:-2.125em}[dir=rtl] .md-typeset .md-annotation-list li:before{right:-2.125em}.md-typeset .md-annotation-list li:before{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);content:counter(xxx);counter-increment:xxx;font-size:.8875em;font-weight:700;height:2ch;line-height:1.25;min-width:2ch;padding:0 .6ch;position:absolute;text-align:center;top:.25em}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);cursor:pointer;display:block;font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.md-top:focus,.md-top:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;vertical-align:-.5em}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}[dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}[dir=ltr] .md-version__current:after{margin-left:.4rem}[dir=rtl] .md-version__current:after{margin-right:.4rem}.md-version__current:after{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.4rem}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:3}.md-version:focus-within .md-version__list,.md-version:hover .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (hover:none),(pointer:coarse){.md-version:hover .md-version__list{animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{animation:none}}.md-version__item{line-height:1.8rem}[dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.md-version__link:focus,.md-version__link:hover{color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .admonition,.md-typeset details{background-color:var(--md-admonition-bg-color);border:.075rem solid #448aff;border-radius:.2rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid;transition:box-shadow 125ms}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}.md-typeset .admonition:focus-within,.md-typeset details:focus-within{box-shadow:0 0 0 .2rem #448aff1a}.md-typeset .admonition>*,.md-typeset details>*{box-sizing:border-box}.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{margin-bottom:1em;margin-top:1em}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition>.tabbed-set:only-child,.md-typeset details>.tabbed-set:only-child{margin-top:0}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{padding-left:2rem;padding-right:.6rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding-left:.6rem;padding-right:2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-left-width:.2rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-right-width:.2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset .admonition-title,.md-typeset summary{background-color:#448aff1a;border:none;font-weight:700;margin:0 -.6rem;padding-bottom:.4rem;padding-top:.4rem;position:relative}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}[dir=ltr] .md-typeset .admonition-title:before,[dir=ltr] .md-typeset summary:before{left:.6rem}[dir=rtl] .md-typeset .admonition-title:before,[dir=rtl] .md-typeset summary:before{right:.6rem}.md-typeset .admonition-title:before,.md-typeset summary:before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset .admonition-title code,.md-typeset summary code{box-shadow:0 0 0 .05rem var(--md-default-fg-color--lightest)}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .admonition.note:focus-within,.md-typeset details.note:focus-within{box-shadow:0 0 0 .2rem #448aff1a}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:#448aff1a}.md-typeset .note>.admonition-title:before,.md-typeset .note>summary:before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset .note>.admonition-title:after,.md-typeset .note>summary:after{color:#448aff}.md-typeset .admonition.abstract,.md-typeset details.abstract{border-color:#00b0ff}.md-typeset .admonition.abstract:focus-within,.md-typeset details.abstract:focus-within{box-shadow:0 0 0 .2rem #00b0ff1a}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary{background-color:#00b0ff1a}.md-typeset .abstract>.admonition-title:before,.md-typeset .abstract>summary:before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset .abstract>.admonition-title:after,.md-typeset .abstract>summary:after{color:#00b0ff}.md-typeset .admonition.info,.md-typeset details.info{border-color:#00b8d4}.md-typeset .admonition.info:focus-within,.md-typeset details.info:focus-within{box-shadow:0 0 0 .2rem #00b8d41a}.md-typeset .info>.admonition-title,.md-typeset .info>summary{background-color:#00b8d41a}.md-typeset .info>.admonition-title:before,.md-typeset .info>summary:before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset .info>.admonition-title:after,.md-typeset .info>summary:after{color:#00b8d4}.md-typeset .admonition.tip,.md-typeset details.tip{border-color:#00bfa5}.md-typeset .admonition.tip:focus-within,.md-typeset details.tip:focus-within{box-shadow:0 0 0 .2rem #00bfa51a}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary{background-color:#00bfa51a}.md-typeset .tip>.admonition-title:before,.md-typeset .tip>summary:before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset .tip>.admonition-title:after,.md-typeset .tip>summary:after{color:#00bfa5}.md-typeset .admonition.success,.md-typeset details.success{border-color:#00c853}.md-typeset .admonition.success:focus-within,.md-typeset details.success:focus-within{box-shadow:0 0 0 .2rem #00c8531a}.md-typeset .success>.admonition-title,.md-typeset .success>summary{background-color:#00c8531a}.md-typeset .success>.admonition-title:before,.md-typeset .success>summary:before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset .success>.admonition-title:after,.md-typeset .success>summary:after{color:#00c853}.md-typeset .admonition.question,.md-typeset details.question{border-color:#64dd17}.md-typeset .admonition.question:focus-within,.md-typeset details.question:focus-within{box-shadow:0 0 0 .2rem #64dd171a}.md-typeset .question>.admonition-title,.md-typeset .question>summary{background-color:#64dd171a}.md-typeset .question>.admonition-title:before,.md-typeset .question>summary:before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset .question>.admonition-title:after,.md-typeset .question>summary:after{color:#64dd17}.md-typeset .admonition.warning,.md-typeset details.warning{border-color:#ff9100}.md-typeset .admonition.warning:focus-within,.md-typeset details.warning:focus-within{box-shadow:0 0 0 .2rem #ff91001a}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary{background-color:#ff91001a}.md-typeset .warning>.admonition-title:before,.md-typeset .warning>summary:before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset .warning>.admonition-title:after,.md-typeset .warning>summary:after{color:#ff9100}.md-typeset .admonition.failure,.md-typeset details.failure{border-color:#ff5252}.md-typeset .admonition.failure:focus-within,.md-typeset details.failure:focus-within{box-shadow:0 0 0 .2rem #ff52521a}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary{background-color:#ff52521a}.md-typeset .failure>.admonition-title:before,.md-typeset .failure>summary:before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset .failure>.admonition-title:after,.md-typeset .failure>summary:after{color:#ff5252}.md-typeset .admonition.danger,.md-typeset details.danger{border-color:#ff1744}.md-typeset .admonition.danger:focus-within,.md-typeset details.danger:focus-within{box-shadow:0 0 0 .2rem #ff17441a}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary{background-color:#ff17441a}.md-typeset .danger>.admonition-title:before,.md-typeset .danger>summary:before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset .danger>.admonition-title:after,.md-typeset .danger>summary:after{color:#ff1744}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .admonition.bug:focus-within,.md-typeset details.bug:focus-within{box-shadow:0 0 0 .2rem #f500571a}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:#f500571a}.md-typeset .bug>.admonition-title:before,.md-typeset .bug>summary:before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset .bug>.admonition-title:after,.md-typeset .bug>summary:after{color:#f50057}.md-typeset .admonition.example,.md-typeset details.example{border-color:#7c4dff}.md-typeset .admonition.example:focus-within,.md-typeset details.example:focus-within{box-shadow:0 0 0 .2rem #7c4dff1a}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:#7c4dff1a}.md-typeset .example>.admonition-title:before,.md-typeset .example>summary:before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset .example>.admonition-title:after,.md-typeset .example>summary:after{color:#7c4dff}.md-typeset .admonition.quote,.md-typeset details.quote{border-color:#9e9e9e}.md-typeset .admonition.quote:focus-within,.md-typeset details.quote:focus-within{box-shadow:0 0 0 .2rem #9e9e9e1a}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary{background-color:#9e9e9e1a}.md-typeset .quote>.admonition-title:before,.md-typeset .quote>summary:before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.md-typeset .quote>.admonition-title:after,.md-typeset .quote>summary:after{color:#9e9e9e}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.md-typeset .footnote>ol>li:hover .footnote-backref,.md-typeset .footnote>ol>li:target .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentcolor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before svg{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset .headerlink:hover,.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset h1:target,.md-typeset h2:target,.md-typeset h3:target{--md-scroll-offset:0.2rem}.md-typeset h4:target{--md-scroll-offset:0.15rem}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.984375em){.md-typeset div.arithmatex{margin:0 -.8rem}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto;width:-webkit-min-content;width:min-content}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset del.critic,.md-typeset ins.critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}[dir=ltr] .md-typeset summary{padding-right:1.8rem}[dir=rtl] .md-typeset summary{padding-left:1.8rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:.4rem}[dir=rtl] .md-typeset summary:after{left:.4rem}.md-typeset summary:after{background-color:currentcolor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset .emojione,.md-typeset .gemoji,.md-typeset .twemoji{display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset .emojione svg,.md-typeset .gemoji svg,.md-typeset .twemoji svg{fill:currentcolor;max-height:100%;width:1.125em}.highlight .o,.highlight .ow{color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight .cpf,.highlight .l,.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .si,.highlight .ss{color:var(--md-code-hl-string-color)}.highlight .cp,.highlight .se,.highlight .sh,.highlight .sr,.highlight .sx{color:var(--md-code-hl-special-color)}.highlight .il,.highlight .m,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:var(--md-code-hl-number-color)}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:var(--md-code-hl-keyword-color)}.highlight .kc,.highlight .n{color:var(--md-code-hl-name-color)}.highlight .bp,.highlight .nb,.highlight .no{color:var(--md-code-hl-constant-color)}.highlight .nc,.highlight .ne,.highlight .nf,.highlight .nn{color:var(--md-code-hl-function-color)}.highlight .nd,.highlight .ni,.highlight .nl,.highlight .nt{color:var(--md-code-hl-keyword-color)}.highlight .c,.highlight .c1,.highlight .ch,.highlight .cm,.highlight .cs,.highlight .sd{color:var(--md-code-hl-comment-color)}.highlight .na,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi{color:var(--md-code-hl-variable-color)}.highlight .ge,.highlight .gh,.highlight .go,.highlight .gp,.highlight .gr,.highlight .gs,.highlight .gt,.highlight .gu{color:var(--md-code-hl-generic-color)}.highlight .gd,.highlight .gi{border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color--light);box-shadow:2px 0 0 0 var(--md-code-hl-color) inset;display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:sticky;-webkit-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable tbody,.highlighttable td{display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;padding-right:.5882352941em}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset .highlight+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.984375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.md-typeset .keys kbd:after,.md-typeset .keys kbd:before{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"↓";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"←";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"→";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"↑";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"⌫";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"⇤";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"⇪";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"⌧";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"☰";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"⌦";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"⏏";padding-right:.4em}.md-typeset .keys .key-end:before{content:"⤓";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"⎋";padding-right:.4em}.md-typeset .keys .key-home:before{content:"⤒";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"⎀";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"⇟";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"⇞";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"⎙";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"⇥";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"⌤";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"⏎";padding-left:.4em}:root{--md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.md-typeset .tabbed-set>input.focus-visible~.tabbed-labels:before{background-color:var(--md-accent-fg-color)}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-default-fg-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,background-color .25s,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid #0000;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-default-fg-color)}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{margin:0}.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.md-typeset .tabbed-block>.tabbed-set{margin:0}.md-typeset .tabbed-button{align-self:center;border-radius:100%;color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.1rem;pointer-events:auto;transition:background-color .25s;width:.9rem}.md-typeset .tabbed-button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .tabbed-button:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.md-typeset .tabbed-control{background:linear-gradient(to right,var(--md-default-bg-color) 60%,#0000);display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}[dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.md-typeset .tabbed-control[hidden]{opacity:0}.md-typeset .tabbed-control--next{background:linear-gradient(to left,var(--md-default-bg-color) 60%,#0000);justify-content:end;right:0}.md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.984375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-default-fg-color)}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-default-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}:root>*{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color);--md-mermaid-sequence-actor-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actor-fg-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-actor-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-actor-line-color:var(--md-default-fg-color--lighter);--md-mermaid-sequence-actorman-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actorman-line-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-box-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-box-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-label-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-label-fg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-loop-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-loop-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-loop-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-message-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-message-line-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-note-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-border-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-number-bg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-number-fg-color:var(--md-accent-bg-color)}.mermaid{line-height:normal;margin:1em 0}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{float:left}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=ltr] .md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}} \ No newline at end of file diff --git a/site/assets/stylesheets/main.bd3936ea.min.css.map b/site/assets/stylesheets/main.bd3936ea.min.css.map deleted file mode 100644 index 990beed..0000000 --- a/site/assets/stylesheets/main.bd3936ea.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["src/templates/assets/stylesheets/main/components/_meta.scss","../../../../src/templates/assets/stylesheets/main.scss","src/templates/assets/stylesheets/main/_resets.scss","src/templates/assets/stylesheets/main/_colors.scss","src/templates/assets/stylesheets/main/_icons.scss","src/templates/assets/stylesheets/main/_typeset.scss","src/templates/assets/stylesheets/utilities/_break.scss","src/templates/assets/stylesheets/main/components/_author.scss","src/templates/assets/stylesheets/main/components/_banner.scss","src/templates/assets/stylesheets/main/components/_base.scss","src/templates/assets/stylesheets/main/components/_clipboard.scss","src/templates/assets/stylesheets/main/components/_consent.scss","src/templates/assets/stylesheets/main/components/_content.scss","src/templates/assets/stylesheets/main/components/_dialog.scss","src/templates/assets/stylesheets/main/components/_feedback.scss","src/templates/assets/stylesheets/main/components/_footer.scss","src/templates/assets/stylesheets/main/components/_form.scss","src/templates/assets/stylesheets/main/components/_header.scss","node_modules/material-design-color/material-color.scss","src/templates/assets/stylesheets/main/components/_nav.scss","src/templates/assets/stylesheets/main/components/_pagination.scss","src/templates/assets/stylesheets/main/components/_post.scss","src/templates/assets/stylesheets/main/components/_progress.scss","src/templates/assets/stylesheets/main/components/_search.scss","src/templates/assets/stylesheets/main/components/_select.scss","src/templates/assets/stylesheets/main/components/_sidebar.scss","src/templates/assets/stylesheets/main/components/_source.scss","src/templates/assets/stylesheets/main/components/_status.scss","src/templates/assets/stylesheets/main/components/_tabs.scss","src/templates/assets/stylesheets/main/components/_tag.scss","src/templates/assets/stylesheets/main/components/_tooltip.scss","src/templates/assets/stylesheets/main/components/_top.scss","src/templates/assets/stylesheets/main/components/_version.scss","src/templates/assets/stylesheets/main/extensions/markdown/_admonition.scss","src/templates/assets/stylesheets/main/extensions/markdown/_footnotes.scss","src/templates/assets/stylesheets/main/extensions/markdown/_toc.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_arithmatex.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_critic.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_details.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_emoji.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_highlight.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_keys.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_tabbed.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_tasklist.scss","src/templates/assets/stylesheets/main/integrations/_mermaid.scss","src/templates/assets/stylesheets/main/_modifiers.scss"],"names":[],"mappings":"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","file":"main.css"} \ No newline at end of file diff --git a/site/assets/stylesheets/palette.356b1318.min.css b/site/assets/stylesheets/palette.356b1318.min.css deleted file mode 100644 index 141eb5f..0000000 --- a/site/assets/stylesheets/palette.356b1318.min.css +++ /dev/null @@ -1 +0,0 @@ -@media screen{[data-md-color-scheme=slate]{--md-default-fg-color:hsla(var(--md-hue),15%,90%,0.82);--md-default-fg-color--light:hsla(var(--md-hue),15%,90%,0.56);--md-default-fg-color--lighter:hsla(var(--md-hue),15%,90%,0.32);--md-default-fg-color--lightest:hsla(var(--md-hue),15%,90%,0.12);--md-default-bg-color:hsla(var(--md-hue),15%,14%,1);--md-default-bg-color--light:hsla(var(--md-hue),15%,14%,0.54);--md-default-bg-color--lighter:hsla(var(--md-hue),15%,14%,0.26);--md-default-bg-color--lightest:hsla(var(--md-hue),15%,14%,0.07);--md-code-fg-color:hsla(var(--md-hue),18%,86%,0.82);--md-code-bg-color:hsla(var(--md-hue),15%,18%,1);--md-code-hl-color--light:#4287ff26;--md-code-hl-number-color:#e6695b;--md-code-hl-special-color:#f06090;--md-code-hl-function-color:#c973d9;--md-code-hl-constant-color:#9383e2;--md-code-hl-keyword-color:#6791e0;--md-code-hl-string-color:#2fb170;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-kbd-color:hsla(var(--md-hue),15%,90%,0.12);--md-typeset-kbd-accent-color:hsla(var(--md-hue),15%,90%,0.2);--md-typeset-kbd-border-color:hsla(var(--md-hue),15%,14%,1);--md-typeset-mark-color:#4287ff4d;--md-typeset-table-color:hsla(var(--md-hue),15%,95%,0.12);--md-typeset-table-color--light:hsla(var(--md-hue),15%,95%,0.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-bg-color:hsla(var(--md-hue),15%,10%,0.87);--md-footer-bg-color--dark:hsla(var(--md-hue),15%,8%,1);--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #00000040,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0006,0 0 0.05rem #00000059;color-scheme:dark}[data-md-color-scheme=slate] img[src$="#gh-light-mode-only"],[data-md-color-scheme=slate] img[src$="#only-light"]{display:none}[data-md-color-scheme=slate][data-md-color-primary=pink]{--md-typeset-a-color:#ed5487}[data-md-color-scheme=slate][data-md-color-primary=purple]{--md-typeset-a-color:#c46fd3}[data-md-color-scheme=slate][data-md-color-primary=deep-purple]{--md-typeset-a-color:#a47bea}[data-md-color-scheme=slate][data-md-color-primary=indigo]{--md-typeset-a-color:#5488e8}[data-md-color-scheme=slate][data-md-color-primary=teal]{--md-typeset-a-color:#00ccb8}[data-md-color-scheme=slate][data-md-color-primary=green]{--md-typeset-a-color:#71c174}[data-md-color-scheme=slate][data-md-color-primary=deep-orange]{--md-typeset-a-color:#ff764d}[data-md-color-scheme=slate][data-md-color-primary=brown]{--md-typeset-a-color:#c1775c}[data-md-color-scheme=slate][data-md-color-primary=black],[data-md-color-scheme=slate][data-md-color-primary=blue-grey],[data-md-color-scheme=slate][data-md-color-primary=grey],[data-md-color-scheme=slate][data-md-color-primary=white]{--md-typeset-a-color:#5e8bde}[data-md-color-switching] *,[data-md-color-switching] :after,[data-md-color-switching] :before{transition-duration:0ms!important}}[data-md-color-accent=red]{--md-accent-fg-color:#ff1947;--md-accent-fg-color--transparent:#ff19471a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=pink]{--md-accent-fg-color:#f50056;--md-accent-fg-color--transparent:#f500561a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=purple]{--md-accent-fg-color:#df41fb;--md-accent-fg-color--transparent:#df41fb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=deep-purple]{--md-accent-fg-color:#7c4dff;--md-accent-fg-color--transparent:#7c4dff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=indigo]{--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=blue]{--md-accent-fg-color:#4287ff;--md-accent-fg-color--transparent:#4287ff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-blue]{--md-accent-fg-color:#0091eb;--md-accent-fg-color--transparent:#0091eb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=cyan]{--md-accent-fg-color:#00bad6;--md-accent-fg-color--transparent:#00bad61a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=teal]{--md-accent-fg-color:#00bda4;--md-accent-fg-color--transparent:#00bda41a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=green]{--md-accent-fg-color:#00c753;--md-accent-fg-color--transparent:#00c7531a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-green]{--md-accent-fg-color:#63de17;--md-accent-fg-color--transparent:#63de171a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=lime]{--md-accent-fg-color:#b0eb00;--md-accent-fg-color--transparent:#b0eb001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=yellow]{--md-accent-fg-color:#ffd500;--md-accent-fg-color--transparent:#ffd5001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=amber]{--md-accent-fg-color:#fa0;--md-accent-fg-color--transparent:#ffaa001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=orange]{--md-accent-fg-color:#ff9100;--md-accent-fg-color--transparent:#ff91001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=deep-orange]{--md-accent-fg-color:#ff6e42;--md-accent-fg-color--transparent:#ff6e421a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-primary=red]{--md-primary-fg-color:#ef5552;--md-primary-fg-color--light:#e57171;--md-primary-fg-color--dark:#e53734;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=pink]{--md-primary-fg-color:#e92063;--md-primary-fg-color--light:#ec417a;--md-primary-fg-color--dark:#c3185d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=purple]{--md-primary-fg-color:#ab47bd;--md-primary-fg-color--light:#bb69c9;--md-primary-fg-color--dark:#8c24a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=deep-purple]{--md-primary-fg-color:#7e56c2;--md-primary-fg-color--light:#9574cd;--md-primary-fg-color--dark:#673ab6;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=indigo]{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=blue]{--md-primary-fg-color:#2094f3;--md-primary-fg-color--light:#42a5f5;--md-primary-fg-color--dark:#1975d2;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-blue]{--md-primary-fg-color:#02a6f2;--md-primary-fg-color--light:#28b5f6;--md-primary-fg-color--dark:#0287cf;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=cyan]{--md-primary-fg-color:#00bdd6;--md-primary-fg-color--light:#25c5da;--md-primary-fg-color--dark:#0097a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=teal]{--md-primary-fg-color:#009485;--md-primary-fg-color--light:#26a699;--md-primary-fg-color--dark:#007a6c;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=green]{--md-primary-fg-color:#4cae4f;--md-primary-fg-color--light:#68bb6c;--md-primary-fg-color--dark:#398e3d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-green]{--md-primary-fg-color:#8bc34b;--md-primary-fg-color--light:#9ccc66;--md-primary-fg-color--dark:#689f38;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=lime]{--md-primary-fg-color:#cbdc38;--md-primary-fg-color--light:#d3e156;--md-primary-fg-color--dark:#b0b52c;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=yellow]{--md-primary-fg-color:#ffec3d;--md-primary-fg-color--light:#ffee57;--md-primary-fg-color--dark:#fbc02d;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=amber]{--md-primary-fg-color:#ffc105;--md-primary-fg-color--light:#ffc929;--md-primary-fg-color--dark:#ffa200;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=orange]{--md-primary-fg-color:#ffa724;--md-primary-fg-color--light:#ffa724;--md-primary-fg-color--dark:#fa8900;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=deep-orange]{--md-primary-fg-color:#ff6e42;--md-primary-fg-color--light:#ff8a66;--md-primary-fg-color--dark:#f4511f;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=brown]{--md-primary-fg-color:#795649;--md-primary-fg-color--light:#8d6e62;--md-primary-fg-color--dark:#5d4037;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=grey]{--md-primary-fg-color:#757575;--md-primary-fg-color--light:#9e9e9e;--md-primary-fg-color--dark:#616161;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=blue-grey]{--md-primary-fg-color:#546d78;--md-primary-fg-color--light:#607c8a;--md-primary-fg-color--dark:#455a63;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=light-green]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#72ad2e}[data-md-color-primary=lime]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#8b990a}[data-md-color-primary=yellow]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#b8a500}[data-md-color-primary=amber]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#d19d00}[data-md-color-primary=orange]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#e68a00}[data-md-color-primary=white]{--md-primary-fg-color:hsla(var(--md-hue),0%,100%,1);--md-primary-fg-color--light:hsla(var(--md-hue),0%,100%,0.7);--md-primary-fg-color--dark:hsla(var(--md-hue),0%,0%,0.07);--md-primary-bg-color:hsla(var(--md-hue),0%,0%,0.87);--md-primary-bg-color--light:hsla(var(--md-hue),0%,0%,0.54);--md-typeset-a-color:#4051b5}[data-md-color-primary=white] .md-button{color:var(--md-typeset-a-color)}[data-md-color-primary=white] .md-button--primary{background-color:var(--md-typeset-a-color);border-color:var(--md-typeset-a-color);color:hsla(var(--md-hue),0%,100%,1)}@media screen and (min-width:60em){[data-md-color-primary=white] .md-search__form{background-color:hsla(var(--md-hue),0%,0%,.07)}[data-md-color-primary=white] .md-search__form:hover{background-color:hsla(var(--md-hue),0%,0%,.32)}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:hsla(var(--md-hue),0%,0%,.87)}}@media screen and (min-width:76.25em){[data-md-color-primary=white] .md-tabs{border-bottom:.05rem solid #00000012}}[data-md-color-primary=black]{--md-primary-fg-color:hsla(var(--md-hue),15%,9%,1);--md-primary-fg-color--light:hsla(var(--md-hue),15%,9%,0.54);--md-primary-fg-color--dark:hsla(var(--md-hue),15%,9%,1);--md-primary-bg-color:hsla(var(--md-hue),15%,100%,1);--md-primary-bg-color--light:hsla(var(--md-hue),15%,100%,0.7);--md-typeset-a-color:#4051b5}[data-md-color-primary=black] .md-button{color:var(--md-typeset-a-color)}[data-md-color-primary=black] .md-button--primary{background-color:var(--md-typeset-a-color);border-color:var(--md-typeset-a-color);color:hsla(var(--md-hue),0%,100%,1)}[data-md-color-primary=black] .md-header{background-color:hsla(var(--md-hue),15%,9%,1)}@media screen and (max-width:59.984375em){[data-md-color-primary=black] .md-nav__source{background-color:hsla(var(--md-hue),15%,11%,.87)}}@media screen and (max-width:76.234375em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:hsla(var(--md-hue),15%,9%,1)}}@media screen and (min-width:76.25em){[data-md-color-primary=black] .md-tabs{background-color:hsla(var(--md-hue),15%,9%,1)}} \ No newline at end of file diff --git a/site/assets/stylesheets/palette.356b1318.min.css.map b/site/assets/stylesheets/palette.356b1318.min.css.map deleted file mode 100644 index 4627b68..0000000 --- a/site/assets/stylesheets/palette.356b1318.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["src/templates/assets/stylesheets/palette/_scheme.scss","../../../../src/templates/assets/stylesheets/palette.scss","src/templates/assets/stylesheets/palette/_accent.scss","src/templates/assets/stylesheets/palette/_primary.scss","src/templates/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"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","file":"palette.css"} \ No newline at end of file diff --git a/site/assets/wrong-efi/reinstall.png b/site/assets/wrong-efi/reinstall.png deleted file mode 100644 index bfcb207608940f60a74d15ce48f2ab9a28fa50be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19750 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 Kr$urv-u_>z#5;-r diff --git a/site/assets/wrong-efi/rescue-tux-1.png b/site/assets/wrong-efi/rescue-tux-1.png deleted file mode 100644 index 47e7dc9c49457c1cb6e867b2b3370ddf6e623c42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270164 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 qm&c9k(qF9AKtE}5jrk4zZ)qsP+wGv8 zi)*8WOZDw0KT21_pC!%ZlhVl?GpFCxoe#ICOafj4J4ol$vxHgFkbAO8eu7-$Bd>3B zW`5@qoyX?3h00^Z^8QkZ`T#W@5j14#6d_8NIWASy$gL@x!uWhz3JXPoKoI2T<>Y#l z6RFzR@}!r%h>X+rBfhsOzRkEAb!Kgfr!;v1FHw`V57Ba+p}Y0k@bhP0js#7^dX6=V>-?8iK6rHmkSDWKMt7;T-83rsD2KKQJFQ2%BdUb#f&}t zy58GdH9-6M`t4|srL)+C$%wL<0tIX8RSctM{6ULXUIkdu$B@@Yg~AOdY69B z5~B~lhr(b}MqvuLcy<}i$5cKqF1#w_%Jcj1q{}*$v$@(0CYEcny^i9~UYAZr=WshM znAZ`H-}Sma+xs({a>w=(fVg6foEY#{Klxz5Mkpf^qWywIL<~4ha}guL0yG&dUWHD& zRA7HERAh#2+46fJD${Ah+fxm`Ax*(NuwpC|l}P+PK=%Q4`UXuZMM2Bw7LKL_dWb-% z{P(Y`LQ5AB=IY(m)4DeGit)Vd*;_P=h)0#md8Kjff@rK+b=u@`tzt<1Jyz=a@8trH zzR^nNbWz&~^H@(qm5cR_K+lslSUAw7yX6XgER_-{Z}#^o2SD(tnym_aN|5fKEq|D3 zSZq9fd|T1l@N*k&Pr5jvG|wS9S$``7QD0#qKv&^I4E4@%^d_}9fFMkkK5$%xioX4bju;3NXmxIF zbMB0m6&@TkO$|<=tovy9x0O_y5<*XG;HU3xc~x#Vm?_`S+xo=A^IXqUDE~eHcWD?6 zyupv1`~*g0QcQuuiD{JFkOW&NqJ{?SX?F?&WTvkUW&=IdLqhO>{ z7fm9;>C#f?1V$JhI6Rsu;$Q3%MI}1EbcGg_JSF5!pC!Q5Y+YB` zR>*C%a{8XX?U3r(4>o2_)PVFMmMa-Coa-%~K*TG0*sv|B0W9zaH6QS3OIT`)cbZFxoKIt0)BUWkC5-*KdUL^ba?(1=(N;Fbyv_8 zffY`q{9)kIO#(7ww(@LQ!6K~oqWQ2cSGB24o9IpTMyGgDl3xH_u}QGADPD}>*7jT$ z@nWdB-Wv41@O!-;9Qx>%C!rlu+2i4}?Y$>uj-1&y&_8F-Fo;I!B4-UM+*JT`7;|HN zZCiaa8z(O-FE2kUgp0p5?Z0N_vd*1rYI}8KeRbpQ&A*Go*;mR4$)kEN4_!F(&=Nw; z(#6JxPY{hA%X*+!>iOiks-+vZa(pe}6F?yN`m~QeSb}Eil?h%mp3eOGWOOs_*DQ)x zxWJW}O)0JQ^(aTo?mW=U#KpB>+{$ zM5$!!;22qU2c)Z>euyH#N5M$BK#tI^G+?n2OK3Ai44sQS)WoW&hli_g@Lw0vgjEcB zX;sVq?M0Z_s8dBeGt2OJAVcXEF$0(R^D+CEyS+N4T=r%A404e-gq_p3n^Q9suDtZi zgEQ+l4m%q#Wy8jZ&8FuJXD2&Mf;$>SEWb-y$ zIo-H>@VkTPA-tZc2S(8}H;YZK7MOXuUS76O`d&BsRW~=Qh*_;;LT8QFMF6cGnl9k% zVW6zsAGuRfQt}qijejiw8ZvgEjw-AbWgwb6l0}A6&C8pnJ+IB*wj~SyiJzXm_ynz3 zZ2eIVaX~HP!zU@v&yXpi?W6?MH$_Mm{dM!Au^zeopMbws@3#noi{|-;*Hyn`R5D9y zOJE@++MHTBYDzIx%jd~$mr+OJ!Ip0w^B0?UZ?L=g-6F>ApQf~qf3|Ls+E(XIma&UF zVHYke7%2;*NtSLOI&UBLz0zP~0FmparW}D=umk!mQ{wziw${6=eXGk?)sr7`o%)FF&mot_#^cFp9($9Xu zxD|wW7H^p7HG09=QVEmNRZ=>vuVi z-w70y0YE{i*2tF0t1U-rBWKs?wwLWzJ&W33cHJ{~X=H+c9tZ-NJFz!5XDDRJ(rjC_ z%7F_UGqt+q+-UI>`gaa*$FslQ$BF|J`9DE4EeL6h$&rfFgVs^xsQ&dl;$S0L)6qlL zQaSO^;JK>|JCk{Qg`%~UOZAtflanY(<5Zzd%X3?+^AbX|UXosiT4ffzxX^+GbB1(1 zSR#PG-fyT12HxT_P6DKvJWc|X?*|Ez`c_WD;6}Da(wYt66s6IXToAbDrVFO~NPc`yUVc(37GuT(Os5vex=5I)`5^}RwjvGuvC#@;yAsXt z$IVQ?um)=i2fb-9o9Ik&Kab zukC546bP2jc&9j$-oZJwooF8@TQE~#2v<6j35b_--ElOsg zS!bF?lgG}{II)_R_G@KTK<{1SB_dpVrWI?qf8&MDyg8eyRg(D6^ix&3Bx$O(`_ zKHs15kMI3;ItZP}<}F{CA*wv8X}9IWghH&TA2znBqZrcss%dr{+1uRGa-^$s?d}FG z;1^FhJal$;F|=R4zlX;h>U~79^%%RKPc|2jda0(VNv#8qnwagM^Ju1Kq(UQ`tm!6Q`gmR zWFs}vDBuJw-Ve%u1R$iI@`{4%;ge3)2Y5aTyEovOQFp$-j3P94c%~Tz08n45anGad z#);Rn^S6>=!*5#G-~>`|aat@oW)H|(LC;J3IO@fjw6g!$VX*2D^X12}!-1TMlX?71`jJTCWUAZ~;hAKMw;5U61MS=q*3yz%dXYUSC zJ_mcCd2>-x@Ts;G{{MUoFgLe6+lu;%MT^0cq#ts^m zRCVnA_COdk+Rh;xlg#bBruHv`9zXv?s)BFrhGwe6!sm;J=ZniFb`;3?ee0U*lT7ma z4Xj;>6ykDtoc4|N^up#%3(}2fxj(9GQnx0XDwFN!6&9Yp^_C-GlyIS@Gw``T@R6*y zJ6vza5aYYRYua%QfS(;fe=S+3Q6G)m8~yV947Zp19w7fUOlu%0XKRv{YuV}=8DvBq z-`KpNJ_Tbs{1sS4kKOsU@A{IEE*2-41_FhOTV_mINM(FN(qP{K)mdhIBb*y{MlP`C zNQxRvO1HlA_W@?Xa^J^;;%1urBwf(38K@@azUiU&`6SV*F_`q*7Le@8DT?4TfcGN; zu>$SI>SO#m8Um5kzWM9xwVCd9YAQMRNjdhXXnb`2VWu$y!v=j+A!Ph0u?r_mCF#Hw~LnGMw!(I3^!mr1Z31TOG} z6XtbUL;};s^JU>D1FGh;q^mKMtLuvHoPX+>iKA%diQ4-OIkjx6nb72^DJ~zX23sK= zgwn;#AObW?iKGSVnKI?zHgryeE*4Y^7W1ADc;tYN3BbECW_rQB0k>r+l-kKnUd|*G zi0M7vuj(XEbB^rjOHweW^xAS`kf&`sgVCeU2QxayIil5_joNm}ksK!AXFKV2TVC>! zEhLM_T0iX~4ONi~BL4h{d|423k}T$l)GupaByN}{^i5mU-)snbYmc^9ov&E*uZ>DR zwoA*h&@TjBHPnq{ju5(~Urk{w=N?k)N14thzuM&<8-=>u`eeeRz@yh@?|kc87zMgv zUt&}x$`e6SiLe>slpcK&Il69}&4&_k=YGtW)&|>4A^HA{p@Yb%g*sT+g?ZYypv2Ec!JLP-5cua-liqaiEhq` zWGxFH368r!AWO93g5k__Z9%8I)ucgeg@M7`PIbRG!`{=F;GSXg7rhj`65F=d>6k`A ziZAn4JS3az+UjXOZ7nQhGHu%M`IYmou0`#Y^-_05FsNO>36qD5%%BNDL;rDvlg4Xt zo#=p;E)fn7KU~VQZ!v=ePWAfx_J;sXf6or{a8hp4h4#92a4Q4UPxr?)Xav0b)0kv3 zBHUQ7CigX~0IEzwF*st~Pmc$ww5}anIlCTq?ezLkpgl`FH-t8jRCItzfC+c(_$N_v zk5B%{yC5TUBU>LAUmusP?jT-_^Np3eQ=k_c5O5X{P*v*$V{`y-jh;Df;1$%_CIL-{ zTdefsloX&MvnR;T&>i*PTtyx334J3$4INK$i0v(%M9m>2Eg}pwja|Bvd?uF)r0m}M z!;8{@4oq;WZOk zU3@+AEKzZ99C&8f$_taKQhwV{k8cZ>MzXDcHh_ zj^eIEPj4NwWo+D?P)53}D;TDXsiXP3;lYsk zSuzqf1jLC7R7Toohkf^*Pmg}-dPrX@f}=f?=f~RKdu2NB&jl9DRWwP_K*-Ph6jSDe zF)1GR?euEZv9G1?H%asJx5klj#mzvkTUM6uwSD7R?X(I#DI}lps7bJnM5wB?6H?k) zT?jee)nBak^#S@S*r=s1`O5D13$ue8Z{YX+do8V%Iigo9QGX~9sJhb5_jxTykrLtY zoHp=oVuF6r&fHn0(%;`gv-rQ{TOyDnH)Hw;9rAzkJ^vB16%j;dftyBAldlQ7*MfQ( zx^MZSddRols=I?%2q8(2M!I?DW+4<0cQTI2yq|aD?2E6OBe78;hs&D6Uxg&P+xDh+ zyzcEgSFc*>_E`meE~%7#adjjAg!|QLw~gm+6*H;#2CAW$Nz3ku>Cau8qz`HLAW^vo zvi&AY!~96Q85TNHOa0Fu_TjeDDO^+p#2^?H5(}==6F??6z(y*@Z>5_BFNccJt=n`b zG-Z7Hi>_yq29ryCjX)xngpaMW*-j4EAqS!WeYl0_f$}_`p1)#$^iM4W*P5HJK#bXz zVoW8nOK?F#jF~{8qcCvJN7(s%@)$L&K_-?E)Gmk57^~alZmORrQ(CGwi#TJ1kwJ|V z=y80C!jbuyX*byUYD!|1CF$UH78~|`i)^*Y{dItAMBOd3 zfO5k*CzRXOo>4MH8>H$dzqy!@kk}W z4jQ2Etkw8A*(}UQ;6Q8BsB;X~HfNJI+O7B;v{u{tyhXVu%9!fc^fFH^I$mdwa&A0A z3F}||6`$_7%TuN-rjQVSLU?M$%*zwpy@X#|-#j@1!p4x{d-Q9ZotIa5PhcZrZ=L!; z6-&U0QI@UO`41;C)+rd0uW%xk9sNy2P$4fXd;%dIMO;$mQo6*Gex>sS*f znJCtcjko#LRY$f75#47OZlKm_Y0a1?`dyK$1I5-$AS*6D4gw8skwi5=wele2&~AQr zC)1B05G=pw#FEd%SAJA(2xNjDrt7#?r{HT1&N{EXrx4H(aj?o3iFPNX+D_UFKlPSI z_1MlZ%Ter8yRQbY`PCG7F#-TsP~Cm_vRBDqc=1A1gEy&%8-$)0N)r=>{lfIHtl@ONTeIzi*{3l$r1- z)`nlz?PB^Sct(Vc4mp0eh56te-edq4%B)^qjKD(dGCYxG>n(Nx=8hf5($whFMlQXq09 zawGx)pQEIW*Qu>PAZ5~a*;#;YUV8Y#5GvlcM+@w^IO?I{YHOKlSbrIGZ7mGb`3UdQ zPIar0f7MeOKl$5V6c70zzhIhwz+om42uT^cGWGS}=!#tI<=*>i@#{6HE1&ibjs(c{ zTg-qPV&9!sWb5TR*~fmZ%siVa;oZG|1~|mat&?+hPcdS2gfgYutgJsFtUob6uKMvY zo78JgWSt3mHJq<5y{*5kpRJ>VLS8#Q{zu@=2b+_4aGjA{5-qsyVTC7 zVFh0-xtdy7PLBPj>F0y6(6CVPP-9dhdM-zO0^HuRDjin`_uEA$6ypCB*bmRV zaXI{i@8`bfoi=vov&4wFa?mw(oYNk10dl65!xhi@XUl(^S^eJc1vk|76in<{0?ya` zcm&=~dNFJQvKDazD^yDxt7WU zET%W+8U0eM2Z=an;7az< zB%p2NSLp}7&s!?}VYJs@h1$d_BW1pv@+KpM9Zc5D%d23+LV>X`^($ej$|~c!2G-5+r8l1c${rc`?uxQ zed{6CpZ4nC2yVYJ9)zF-bzbkt(7>;N$g{UxjZWM)1c6_EXasoY=A5YII7mV;BnRBx zAP~?yTRvlJyIxNgeCd7P8n|W7Ci(zd#Nz&P_~Q50s`oNGDfqg-AXvdDN7|6f#LWMA zLH2$oxZdgJ)|<2%vj^(3n9Ua0;^O7`=6Wa+1+F(8B`}H|J+FX8^cRZ!@8sBOuG4YN$puA?Bkb=bVwNL|-@P&b+a=@hBRvKJBBQvDwcea^ zzvLlS?q~@te%1cD_$N=o)Pp@O%r9Vbm4g@Vx$FL%`b4lgi#m}SWbzy1TlI^#hoLaa zj0F+&p(%C1RZF;BlMkGaT6e2XW{5NrU8-Uxu_0Qa;d4TbDs!>yPxjqJB;`Tc=rQfb z=dR00up7NTGH8W_Bg23MV_y=hc*dHgzlA?1CYcbB(}^3E4L)TCDYN9r_ow2O;vZ1k z`FY)E+MOSv4K&;}MBz*L?!3xO;Dtd{G?Y*3!^FW0<^ZF{#}YSwcc=2J9#1c|(n-`| z|9tWuNfhc+$v&QwQ&f71R7U>joA*a>Ek?a~@j{vSWDdcaOVBjW|f>AJ$YuBR7j58hlhH`4VehP@9t_pBD}m)w8{|Q z0ma+4SdFxuh}2y>dzJJZ<4EbjxyudXxw{|=6aF&qyNT3OAh8#2gj< z+S!iRY)i%8s=Jx_(7gxMzDJefrL-Ls+z9Bnu?jihG9717L`np4b1k+2mCe5wUe(&B zNQ=GU40j{HV6NM!h(!E_!ShpWHXK08 z0T7o^JaaOz+|z#U$L@OQV`k;Xzpz1a;;zP_s=NAj_jYP`9@f*E&d_21Hurq4cYJ7b zeCRTLb6hX>8~RJrvW}cw1F4^}k&VkN_R^JTk_BT@|Avp7pNq%g)2+;6wVrE3Q�T zh|vFJ{nx9uuVB8BM35A&T-){89`^Uw&W8i7|GoezuB5}YjP9hXdoQW3rn~FmGD2#V zFA%UN5=I_9DKF^hd=8PocG^kGF{VQR5rs}!MO@=gzGQB^*7jSLISIp!8N~X0fl7k? z&(uQloL!4U>wZgXuQuIWw>S5vX09fyPozIT^2=zmt=My*3MN>MyLR;&4Tk)XH2Qi| zL6FhlPy`)6&F^u3=Dg^p&E$f)d$$LBFRLG6`i|UNIN~aBbhyS<<#eeYjIV;JJ#rf2;!Gl z?jH|s955Y~r3wSN0;IV)I+|K5CuINHd|y}VtqSp((1@dX+J)Wz3ecHT{wJ3$1ULb69v=$DZ4gJ)MHR2vqqLlcNB|P}=)-q|yoFm=& zzYsbaMA5d1tr<$Gc*;LON~o(9175y`qo?QL|Ize~!I6Dm*KsoO#J1DH#I|kQwryi# zJDJ#aGSS4gZQF1Eo`1bvr$2Pvs_w3P?m7GHwbx#2=s}4o<nd2Rn6a_3L+FCE&Cl2Yq+>ghpKeop?I{YI$(Tb?g!P9r2EnmpIw!J`@X&B{)|d1j;n9?BurziZ(6j@< zXs>%_00V(2+d>zo1_?oi3h3ENMcU%_Kd&^WwdR|4W5n3R@5I~TNF|ammCAx(TQbY# zd)qs|&fWg{;;bgIKzH1SHtzj?Cp<^M=~i@J*`nqk+DTw84U@}-7r)K%R_4TL1jv~> z&>3@w?FsoW*RT$OXjM)xzD!ZyjuKU4`!EpKSz75?d;U7A8G?Yj?=m_ zz1*Io{a?e&+jB7QxnJ+me!$1p=;FQu)mOHyn#e>C&lqU4CMgmlZRp`ZSY%Hhtup_d zu~z~QNJcCNaMbp(7#S@UtA`Qh?OHW@=q2SCb2)OH*g$e@Dr<^zf>${B;AeRYx1R0h zVH>HVe?>9j-_h~&^%Ht%e^!G8G?HWTztz@QRtea1I*qdZjQazS6@v!j^Xf7|9`B0R z;R-6(Ss_RogT)V>3LF-Lcsn18&eCv_Wq-_CL32x()Av^nOIF3*{ddpstgi7YN@Mn; zLfa#U+9~(#dika(EW4S*%rQN>F{W1yNwi4PI16D0_Wv?}pYE z9=N`(;vf-wbxc8xcQ_X7v(fTn_I@Nj&$Fc{_tJtRan!8c|MlWLMfEv@8EBKjXKZOz zzhwR~!niM|I+{iqy-M>i&f(-E+LZ_R_>vQeoq&-QCS5z_fHQAgg zLj#aGY622apbC|fsz$9$fJS9Ob*HW0RS5Y6nL-}ONAK@yQ2>F?4eW4{nm`2=7m+HL zlIMn{BDO?P*02_Ce$z9ykBc~dX8}jYzwRU&Min8tXwL2!uc|fZ90FoRvv(zxiu6fi z$F4rLCaEN-D6^+braq_79VAvBPfk|>CO8xBN^t`yiZgSo*0~G{3{R4oCBSM!hR)@r zTNYpLKQfezl*5wuZGT7X*_t?1ko=2FP!KF*5WH1{tFT~sg6(ei<0W9d+HdsSsxdYW zvFCnjDBkabUN(uPXi$K_8JUbkf@Nk~u3$U^z|P*=@03pKGR+7AB?cL~x{U`FHxTK; zgdR_F++!&cf6SWr34$3iNXQgLm|u-La=aX zxRITOC(L#$s*p{8zCjGhD>w-3)_o~SE!Xg1sC1FvP>UPt2ck%WxmDOQHw$*OaSeD? z!Y<0yYE2Ej@>p3j%-n-sv0u8l$=ARv7KV`mIr!N_a+cJDD6oQPw(njcSlc z1_S2mzUuE_>R>j-%Y3b=yFF$`GKp_auV4HAgpX-3;fTln`f$~K?Z?a6edps9s#t&# z{uTUO`*Fg)?Z`oggHQqhdq2uAsUEVamy@f_igo#~fn@c=GYkp=+}6#axmzYp{e(C>d@q9ccP23DNCYMd0aYL+8I?%`y4bB&_izkbX+=8 zO9hT&0=~BUo3CIE65#}gJCo^u65B)L=JE*7C=ev0%QXqqW%yRHTGg`;k1hHg4n}^n z+`UaX{PwIt*r zvwiy-W)5QafL$Foo?Cb@(N41lJsdGeA4Oxo30oq>N+!H4VrgZ!v8Si4rzago{A+OM zsfvraH;{*>q4lUiM^QOs!IBwE(WquVcPdL(PC`40DhH%vsPHu4t{^}M_d776<>uvN zXXWThM>^CnB`SytO%B|(m~uHh2%{CS zSgXc-HjG{%5C{hH?;2bO-I+>#GztNu1R^1i)fs(IxeQ0nsaJp z+hjAn%j2>@(dE;y5Nfj3C|EP8ITck>z-rl8FkBR?e+=Xvsg=+v&*IhA)e_tCMG(@C zBGVAL@_!`feeYg8g6`Ka)E!`FxEv+H#{1nd|Lb(t*5DuZ*+n~oi)P=K-N*RvM{$V2 zlxq1cfrC*!|K9TfLfwI0KNX@rI#~xd5U=(8R)jJAc|14(G&k|ekN#n{t&PA*{FOUF zitr@Mr_qDAq)}INNE+B2{$=-Fo$XiYG#Rr}sZf15ur6r$fOTMF>Y8?#eBSG&$J4z3 zN2$F3-uhE%BDI?@ZC4L^u18OWq2Jc_{04BWv#+eX7dHFmH~aopJf}g~5#hmuZNogy zrJv%>@~LNJ?Z%2a5K1T%t;UmG+mgE%@4a6FzKs(H(H0#lU5C=5@kw21&Wrm z0J2uG4R1MMkg<@d{baZ+)gmOii&38~QH0o*Q5wSNX9efb#B*cq;Lv1<%bfE{ai77( zL7}g5V6s0hOUvtKlAD;FB&0oWQA|}?4~QL~O}4Zx;hYqNE0N*GYx~11ww4m9L7JP* zGa9iVoF!%Ae*dFli!E#^yGYFX{k@w0NK}TRPaP$IqpDtdc^8^HSq(&wnwq+9IpyZx z;`)`-ek78NvfJ5~nvf*Qh!FC3Jip9#W6n2@=Cf32fRu6zbS1?QDbX^jAmd--K>X90lYV3mFB%mX zy?$H&w0}Ng>igYdL!${YZEo5Yk#1tvX7{>0@&x?# z+jco|;pzmpbbZI=Ys52gia^IM9D{~CVa;C-*o*-Q*bf-kK??TA>;k<&_$!C(CiGiE zlx>MrS{nBh0RO=C?wwsaeI;g8wOafui`5I5hAfjpi2JOyONmyf9L$t|6(|SOMoZI5 zkF#~A7%n78@Sw;J?n!QE5*qsx`{oWZ!594bkx7A#KH8uYH?#^!8+Ba8n=)(fikb?S zlg^rqSuJMIdQ@kK*Xd-M+ghC6S_D#tfSv_R?qF_$6# zt+V4qU2NPwbeDRNXt$gGb|C-sQO;FqXpQdsL-2X50)K^O zdPqFE%U>tEZv*?J$rjX!Enmj0DPXM4&B^$9yZ7f{etJ52 zZN*i(u@2naX|eadtgN;7e_XV^cI(5Oh|9JDb`Cjy?VY?vn5M>03;4HNoZo*X(Xgu}}t2vAidb2g!z8rT_ zzGcb7bBIsp;Nx>kD@JgwL3kkHf!J9(YgG;B2BPx6QL(Z!bF(wQKfKO09!tM!c6!#~ zIbb>ArO6lu8T=Fq05zU4?87pK$D_x27Y2b5)NchI7HnT8G7^~00T|Uog{BKuAWu7b zN~xwmIUAk?1X0bn0SHhiWo75}0Ieead=wyKTsaVqR5QhMXjUvYIaN`Rqm7_ZL31(i z?F9*h=y|@^GK3p_9Ho<=HJ!$m1~|K_fn!od*`EXn6lvzY?egD+V?KAma_7_Jp&OOS&aYB1sK53(_C?D2I?YIv3Vy=+6kYW*r})HF;vf1uxd4r2CZ@a zH7Z=!n!L=xr<6my3M1{@E!)Ptc@3%;Vaxs30H`a>L^^3omMdyltzyesv;ZE@hqvss z?OVGmOItfz(}-a2OOS5JV?{|j3tY(XMooTI3t2&(x@dLx3w3$ki=a_)Xczz}cWmPe zRkG7GtaSAT?Nxs>Xi4RzN$4DpRM$H@BH5YQf0j+MtKe1BQS$aeF1fHvVPFU~M>!Ra z(uma%galCrMh!)FV+P^afOGScYuTyR-uG|T2T?K+T64Z^ci{Ztgb{mJe~eS%-V~mJ z2NMX82=4%%gyR| zUrl@F|Gx8!8v?*l%DebJ?3R3?eu4{wtNLM}<2er+Db|jlMi0Z9gLNWD33Y;h7}jCY zpzfI9xb5G#fKnU<2ne76SHvO=o$NnT=x9){^_?xWCkPNASM{-a=1uM7s>n3xs1|5jtXj2FQ_l8yhPUpC;h<>N$<1NYVuG zp+gear7zTA4758_PUqlWU7cTEos&w+bbsV_7rHyMqiJZb!9spwfeWKj@RrY)sWde} zGy!Yefn)w|aE>kBG<*6#bbTciVR!qzDIrPye%*jYKBIgiz(f>AxZl;5I0ptyMZ%^< zOq#2&eElNwt9~`TwI1PDzPRV(WPt0V2h)$Fa}+-L61csm zVbyqIdA_`tF6ql78?G$y;D zc*p)NeiP0Q&A&Zk? z)jOrD|7#4Q$el24u%Q@`FE;j8JjG?U3?hi8%f}t9R$&#>T0Z76a^i<$ou=o&|f5P%SzZ;JXuog!6I z=%S@mTVmr@IcfF_OBU@hs&tPOr0H_g@9X09sRa|{f$Ps|!Qy!`{(nIW0Grd|G%MVc zr!MCtRjBa_@5w-(r+j;i4#!vz3`bn@jllWJ7f>5twb!iarM?+OfgRzFEQ|jRuy6UD zZ_r+x-^EYTTKF(^gK`X4k&bx}g$Cj4CwU?5b2LA7SGJ$n-moy@pUzKDZ>@i^cRzPW zgV`B=FRwgtX_fGPs()l@?x^rUc$bwb@=guDHJ;MiF7E~WMXKjh{hq38O8@Nl2Zp;( z@3VdWLcXsepD|x^zRzf1Wd_Sj{R3vDypMXa`Vg@DV!qd;?trt;JV>@q^QUQ$0ANro zm;Xw(Zy__5l>FeZ1wJAe#~nt$?~l8P&#ZR`l(c;~k{yqn*3`0M^s}n87V*sd#@@g& z#^}=W()^Q3J}u$ll1TbwpC~FP*;txf&PWz7Iq-D~s-KWFWAY#X#~+|CWXD|Rdb_Zdfa zC+W6}MjE-lIKEMa>rTP-u|Nc5_m3znT1XNhq$CO^>#0%#MNq_1888QF0#}A@u!2W$ zpF9R0Cb(pi{QLtZO*=bvbvJFTnzgDu5f=V^BpUo*p4Zge3I;L`HX_KCB1N8*;X;u# z3e;--9imljxNydUAQmBfB9PjWc*+WLdJkP{Zsxdk8 z`o3PP&T3CK)g9)DkyN)La_vGsCNS{$pGQ<(PZ;4|xx2N8raIzE@>F zXQ*6?iKJvlL2PoP7;+HMS@yMXn*U>T0G#@KE{yAm2Xe*e(GmYt+UMyBo(eM)T zv=YqUL}QIV#1!D(NYl-(kH=s7yhP(+ofnb+78M0^#hw8x_wL5`b`I>Q(gzfjl)7}i zC%Aa$+`rV!Z^a?-Mx1Qy?oM-nkQN(jBNuC9=4df1yyN}wDiXg>W%uUn)~-r6@03^ zmX&2z@#qXE?gv{fuH!C>Plii-eX&?~h+X~XF)F3WlQd@40)L)SF4M)h9z0pwCDYhy zAP&LKd0>k7TKJL&Oc(1du0A?R*lX_F)X3KpVM_>R&swWiUDK^*TuTbCALLZR)l%GY zG&7mxuiOd>c&yXvatvjJW3|=~+jbqbn5_j4e+=4t1!-C4(+7r8$dD0M^uny;L$j%| z;>&dooO1Yh7`U2l$F4`?&ORJG?0x)ATwiv-I8kh6ztKS5vEd?!4&!@0N$dRx&l6{h zPSBV=XL|KbweNoX$op`&$Bm7dec%{GvoemapR{+IBRCw=4vi~`e=0{Ydi)yv^{>m$eeUVMZiKJKyS^>P{5Ek;24 z^sYe!EJzr&Td*|$q>U8k`t&sx&vW)%hiHpsbHh*>`KQO9=@bAErbA0&I|!_5vR-9d zfLh`{`BQmHSx&n=&>n1s-E28JwH2K?ht}PR{)}zcLvrh1Xve3hE4;{IZ%Y@TL|bmU zggsn7rKov4P_z3Tzve}FbW%#4h3nOYX*z=^mPNu_ z`wk}bdp;Qb6+dpVv!WBI*X#Fb&j0Rjx6wA178Rs${qcHY%*x?>eir_H^X&iL`%Uv;>?i8mVuROeILe_tO&SUl`*vPdQ4)tnq~;Y{d4Sj z0GF=ycSQYEN8xqW6dQ{Z-fe%v(B~cS^&;ElgF?!C)6}%&M~>F%c; zB(TNts^~~vOlWPTOsa}y5lcIZcq5g|4&?c{#c>pbg;187EiGf%xLxn;{HI9t($Qi$CJeOqN`{SmF=MLdbo?G3{KUnq-Rf~UWHV>P zf&bIrp9}sDUfb>Xw75L|3qHN&VLgnCt*HJ+%f-m)^y(9x_Y@K~aO93F5xeb@V+JV> zQvLm-9$o_~$IhkW*No^LWDJ8s8h&)80k(BcLiwl%-CsNW+jObA# zU--X9ykq&vAQNLwH+Ms{Kx-0^Y`3Is^V?S*MD-Cp?PW1sc`~$D;Y|#tvD+lFvinjx zXeBF+pbgdLL?`K%L~-0yZaL|HhMaoIYyDO~CSz_~N~+#$mbD~?`V<$H8yX+64@*>Q zLMs+ZX2J@CJ02nm6QW!N%bO27=_Rcdjk}l*bs`Z9DRcQm6jGAC}}_sA;0cG_|b3m{92Aie-_VleQ!*0y$B`RBh8~H>%YsGec#~ z&a(m$I;G=19hBDAgQugb{`$D)`+D8>onQ(v{8x_pE}ygUy+^yv|9pnjVmvY+Sn!(; z%}KrI>*Ovpez-IUb)FX3m7gm^h;_-uxc2$C-CW<}R5O0$@U~4PFM(}MVW5=I|MT>^ zx5v-F48vt0uUFPc4fh+Q7F72nR)QauJTXLMEuk(oAKvwsk57&GgG7#tpI$>N~r z`?7KSead;@Jxu%wi8ZY^R!d zr3Sd1IA*{se%5~@-S#SSZC+fvY-&`k78LVzGl8l}Z6}wnD{@v?y{7t6#WHTl&_yj* zvL!B!in(+Q*%87vOW+jaL{{X2jN`~QH)&ZkRl9LpH_0=fi(0Z~Tkx5x5~dqLeDx13sq=3-&in?kD zfdn`ZL1|3=edCD8MdVdd=RVeJN*P9#c>a3+mdH9~oX zfp?SAWi?bv43mxy4uAaj`g^IZeznojfg@KdI``R)Z)^-c5+94l&*gJ-6PPe7xI=7D zwKfcNvyouIS?zMQ-aC(eULr03b9V>k0h;xrDujBV?^5B?3LYHFVJ%`FDy+{mcvOND z(OR*}-j19U!Z+vS(U>$&0$x)S;?yXC0pk_ebPW^Y%z%k6SGs6cze+c$>x_#|hB|6O zf(b9CriK~{20637?*F#R%**@fZL5WA%af2Fz=A9^P*A{9vc{OOfM~mTRy|I_55sap zZpXoA$MIpS*#*{QBF}4j)+(6AcUlY9dO?@3Le$x)>j|LdJq@XU&S%CmlhZ66WFtM7dVJ*i)m z>-9Lna;hkPI8RO|GuO-`ybQ3SrEy=gt#3YRdHR(R1Kj>MqDP()+`o@|Umd*6Oj)zF z5K1)$j#m%u?0Wx-#u>(Ouc2;H!u6@o|g~bu$@Hv|< z#Yucl!pCdaySL$bG2LiS@Al?+apF?^3$Vb#`ezlp zT%p)09F0+|6+`KgK{kBrJnVfE9R39MTnXr_XMwcFSdj7XH=@DUP|kyaVg>bl%{DT0 z9X>%ltu?W&c_<08`tD{1;qY7bi#H8*Cp^L6j8$vBEsd$rN=@myJG7M)s4P4Eg$lh; zxpaNB(zk4^E|7>%LHWlZ5f7Ik5mqktde_l}+g`9&YEX8hdD^dgDH_FEk+a5EyB^0L zB?f1&FS^Vo!aRu6a%+&ntp2W{TWdf-1B$Wh!pQ;td?!tbfM>Ur+3xA>W@t&8Gzm9R zT4Lnqv0cCGJJM=AFGrjudB8LpdAp9f-)erGYIdBOmKJ=AHtjfg%$CjN`|;37`E-50 z+S|K)>DXFskBgI!29lANqo1zb=JNVgBK@2ej7yi6I!cTuOtGv(p9d!fzQq1BhA3Bv z1R*d8HlnnyDU6<>=NZgScJ~M^5xcknHqGJw$b&fT>&adJ{OXikgsAuxWL};XDtRtw?81vMr9FKbPuss7<*<%pF^Xs_?w+tytE%7w1 zA=w8(DJ`01+VxfkE8_w?$Hwx1w|sAQ@@DPm&dG#T zhw2usZ)RquvewVo!os0e*19N`5|^8K!?H;7qT%>JI5hV(as={Ww1YJsvSr)fZNU6} zw%_>G!SSBCk)U>Y|DG*t-h?e<;!kk6ST-UpR*eQt4Mb7@%+Y0MQsj#mQ>+aeQ0$`C z-yj(|?6>YgMu}063ZSZ%A$(bFX^9;;%u25(Wj3{e<}9#cu~16}2gAc*VPS70h>rw( zz(35y!@?v3Lw*o>5n*eC87fquK}AnjP0tXjre0K8Ios(@alMfvRRUM;(r*(o5~u_E zD&&dD@{GG%YPzN+lTN7`Wzt)7psU&xEx#YEcQLE!WpYncxh~Ev?ERwgb-$ zphDc6Cl3LPby$j2g$fna;u}$xmX3#ap|pSzpd2i?k8MB(8=3$$I3uuzn8u)!m7P6~ z4$&CtxYCx8kf1!>b9POzW(~e>vHv5?h0ws(#u>SV^r}bo#Qh`5n&~da)d)7_&`OO^ zt*KEfS!ZQ~8d6@~=yj2o#bSBAirKue=4H-U#U6Arao6ct5zohh!CCd3->VKc*f!^C z^^Q~|eAO!#FjQJpa8*A4Efjz3ue=f~i5lr0`hl)`kFWg>zWmT}wl1?DCt>b0hy(^B z@Q-a9d868T83~_v4h$6I=LrIYm$ydhV|xstuNNiOnvO;sJwSY!w0?DT+}`&(-rEZr zJ8WIGp!xT-+1za>dv6!eSdaTT?TSZ(2FKT?tG)29NDyU$Ob6Gxl-M!IU5WRF3qYqXH}8R= zMN!?FepQWp1}VXyG1I>6VW_eHu71qHu)KT$GgGVUC47JXDcx@;N~0_vAPS(ThYJPD z3BnkF-U%ettjLpU^m$xwJ#2qnG8m7dfP}~1d&?FTy~p$2uj#EX0ngiP7MC;Ttpz6- z>veiLq?=~=9NJ4cXts7^wO_-3 zx2*dqobht8E_*50=yf@4>XHs^YeDnVvVyvKUH`tEOm-2{7q9J2^IIegqfP&7S$gn< z&*O!Pn9lxN_#MiNP7O{zMhu)8h(YmoVrWSpISuiApJ!yOqEgBc^1oIMoz-dNtk*Z| zV53u&;GRn-JeC|D0>@CZgAXsBzP7HOw(i!7%rR^-`JfSrczg^VFVouc_9FWXFU!L5 z69@dTT99A!EZ`-v?_Nkzq(A|HAxI4gp|=Amm`!V>5oU@F2KLthsGVPR5;a{17^s66 z)(A5M4$Uw_7-Ew&cQXw9F!NG#^U`CAKWY@ELDJF%hb0m;-9t#aY;6}DTtUV~ZCr8I z`~T4U)Oj*4)gXNS9XOhY)rdBu!Ts`3?TK(f6a$wzlXe^uIuc6P?eFFUR4+De(|CY3 zMI5@4F-w^K9$P9KR2ocz48&AZSDtkkGa|>pg@ZvdHF<3#Y3st%(aOrziy4dxC4pq* zV)A)<0D|M-x=M;>T8uh(*wvy>fWB<&ZTVCS# zl5&H^E@oNTR$BC4RMk+Flg;6nU0MZ~l{b4eG+pR!sMya+lq<#!+uBxanVrww&{}G2 zw!8~;dyhSBLvfj7Wr4e&jvdVIkD%TbuiCI^$5f~6oj<&C`3@<~+8tKuZ%UIjp1Szi zQKw4iWo5UaZbsa7?OemYbb_f>&RaPn1D%=FR|F7IWuRw}0|II? zvT^dVvLQ>#1&>Wc0{IRrlR5Zyt>ag2>-s*sFYTCdj}OmJPtR9nq=LAtJD$16p*lcq z+(V`eA1-Ao45=X@$u8|sANss$Whp_$J>Ydv1*yv7G~{7}9gg6@0A#SRLyb7p42JP~ z!1yn~03$pxQAh(|fGNZjJC$4}13#JwFz|cKeD+Z9R#uL>BpEh{2nI|aMT$qC=61-4 zI`7!o^J{97yVZWP-P`~5>eKXBcVO@&d=jV_sh1DTi-Qq=+%;)GOn3i+3b8^m1WMG* zt7?@fE(=ZxFxJop7$*Oydl~+BkT7cKl%R(%ZUH_Uq87*_%2JRbCPFcO?DTP=bMiF# z-VKiL`-z_o3N+5P|^(*CP4AijQ{?p~U`_K?MP-MH{)@l! zn<>T7c*QfF_7u7>Dm>MGHb7V{s5eUtm4+=)kT?5R2TPm2q@*lDyI(&dJUk)U(Nay# z+$fZ8Ph(e8fM0EBcR2fV=F*rsec1EAot?!(k02rua`U*{+++xg=dxx3xZDw_4}g^) zrZyf_tz11#O+8IL*lJ3(0ic;ej*Mx;f51OAnrALFu>m&T2BF8%;LS?HfN}W920`Vz zEptYUZTPXSD1Fv+absiSy)(1(J}NB|g_={l5xqVdgcPJ;K5$lzYX2BbI4US0D=tC` zzyPrV2-D^?8((^HYDx&U%2_kkHCwUHO_SzyTeYMiqXrEbv&K=QUl|h=Kwl6R9C#>F z;t)pIX|Zw*nv|$^9lpGA%A`{hn(q397%^1q-32eQ6sbQ-aK%k0aXu-gdQ<`;DMN?~>)hTy7^j zyQmCV6D{3rb-;|=V}Z60{q5mvE2D|d;rJUqzQ3m*q5jM~_2MoH(>Gg;)eI(JFpj&8HE)XE?ASJbfX4y$I(Msd*U+4u0s%LaWA zyy^MV(-I{9uA93`^LMDX{7cY+A6c7Ljq7oF943vK7gO9s8rt$z;i&xzCbo2ma&|Rg zsg&lV?pM?8I&Q7wcE7SF%$Ua;@YJ7VYF;KVL^9aZ7)q2*Rk)geB8n}klk7e^aNxz7 z7S_wui%9ceK>>upHn*&(&knmOrv9N$79XzrSls|M)#nCuwP>%(`2wpW|%mSva{r`Es02}HJSb$<6;3Ghbpz>Fl zd-B|4&tDU&6#qGumaA}OOqk5Ax=>iN{j~{bMa58lojwm(mgL%Kng=gMpvR3IJlVt9 zl*!kqctwaDQ~=C+;6ygvHDMAPU@=1A!Nmm*LBxTRYU48;A&gj%g?T%-v4=O8-L;6( z1%p|i&wAL*8#GZQh5EjOy+66SySci(af5(f?l^$-flORnTnv7$;<8`S0Ya%EM~uFE zW{;=waJhXZ4xg@@LxJ!-OMui@KJQ8SA+c4>U#~EZD4|%Fe?JBcix#opE>KIF&BpMP4+f#T_HZPtpvXl$ogXy)lBN%Y zAcg@zU*+Nkspt0yDb#XGBP0GCA9F?6%x&WaN3WBsheYWC+7(dVezTyH{(hGmNb0-! z)DuwDIKRAl%A5uCR1=-ZmZ4BCHv!~Ej3nXCE)1J-dA_-I}F;G#1WqQpAH#| z#}RTneQ=B`wM_h3*IK#?EKWR)y%{#o)A=|^l8zqFlBUgiW6pxF%QS54vjfgqWd;_9 z6-z{MT7-*w_Rhb<1lr#+ab|b_(239z#?uWlF~Gn2eO1 z_6e>7I2QfgonMeea%yE+caoK307tz7&CZp&&ly}f$)GV3q=>}COw6Q+VGPK|T{xj^L_OJ@ z7;y|(`<3d&;l)hZ{+fg=!b=ZHl;gST>uwr=B$bVVOyI2$JEMjAnm3^eU);HXEU zd>ZIebFqiw&0$=i=_>@`BP_fpj$ttH`T4_DteZ3+%p)rDbkT!^ofEgm=k$%aRF22_ z48oiUYC!oN@G}4~#XvvFu-(JT*_te4E)60U?mdk7K)~rUb9u^!HR)|@0t9%-%iIIi zB*9M&%Ko}-RTp(Ksa8*@kW(LCw4OQYnzmo3`rXd2(NI}Y*JlSt+ek^_pC`*mNHm0$ z+WulW)hrqG%9JSRSQ}4fk67?KWf6>3Wokr+Qz5Nn)$$EhR4(cF9TzIxlkjCvkN2bN zCK$7uc!X%k=z2W0{H&+5uU)gXX{r^nm#VPq(g9y!5Iwu4o+ORdP@^gL>(Lk#^ztKBekIU=VGnf~U5bHQGh$@}nOG3<8HWl21|}66>@ADN{2dYs#Uy10uMOUNRKfs1V$pe&;cm`g~r6;DLQLJ?X5?q-QX|6 zzcLEM!wn~En}>q#(6=kQZaZ6en=;APJRAYb@;~DsOVK`Mi+e`lWle7lKwJNeSx07t z&O?==drG2~3)*1UrwCQn&sf=5QhU7rq0aqRpS^hP?)H{bsO~v0#&bl4_F^QMo|)c# zb6C>(Y`#>)2{cJui#3K8-}bm{4~9ls!^`b%ssC>iQh5g5!fr-jHAxqUq^nF;7E8H3 z6ZQnI)9I?ED#`s0UTa=LK)+*zeF1(L&s}pWNbzhIn%K340dh<1Y8)X{Mpmf-#=d(?{ho!$k5Z4I+ZNKDLPJpAqIZyzV?|@vqj)< zU%S1%czAu~)R8ThHg9A`XSQV3sAa1LZf?=Zbxk8B+M__V+2wbAmXbBkY^~gA9qBvDl13zSPCwtm`3qBykRLUX=@EFb-7{2x=e###7V+z z`gR>24e6tI-!JF2^m;wd!{^gIUu%~B?&j+Gjh5U5&V%fz36C!+wEN#L>y@`67y;Yn zm)DL!B>HV=`72|w1>C#6c~%U!qkhsD z)V*pPJ^+Fuv)m|I{W z7Kq$4fveDK>Tu0EfLJj7wGqi9G!`x%5Ptu-;WA_;MHvz6q9|EMj7R0gKRFek2$vxk zWkInNL1oF@3GSDmLfh3~OOPPsV073q@ORG#dJ(HOAO8@mmxvbi`rg_|k!G*e^RGkM zV8Mx;pCaJpdiuMnOevRp`tW?+91A>Zq7@QDt9h_Xs)~#1DxNJ?fu63Z{{$W%MXwZz zaj(ZJe~X*VE%1+Pl5H=1xIV&JTkREBZ0J_f(AE$yAls+d3zCwa3*--~&|b|?R$OW0 zwPAzfEEO&nG>sjw{&iWzC{yu1bZ-@Mk6bwiX?Jf*q!a0{t43>55}nM{iv=t`&`nD& zR>y>zdAD5L>V;-TRYG&2R*vR&gru0!SP|EzwuZ_GF6y0YPgc(RcB^%6g3e?%h{)P_ z2P;i&8*WITfd*ps!MT`uT{Xt@bH49o;1lGD;PuaEmUD%#w?L=hdt$=i1(t! zjcu&440go1Yg!MqRttN~^fgvXVUzH+NiJvXvQ zB_G1`j$u{u>oPg>)^9deF~45qzbU5-{)g96hY&nRc2#OB7ePi&%4=x?b>IYR6uDdaA0hpIgf} zi}ZydYHm`HGdisFB+MMIC(+V?%U2^!Ah&FDX}_wvvbNL` zO^~OTh__J(HTyb@|2j_7|9m>hAJ}ICOV81Mze(aoRW7jUPym!&narb55!C^HWnuws zu9`D|l;EUAGZt-*;K({W@{rmK@wW(mMtPu8yo?F&-L8G_hyHh(|1+Wg)A_cakF}Ru ziqcp;BlgU8sB-vC_3;g*{cbqJ{vcEypIpY`290PVFKl*-pKB{zQ;a(t zF%LT_<~MKDU9W(r$G~b^=rn{+zXzAT>%d7R{X4O2Ir>=!``J8yq1sr|Oo18@p_%zW z;MZ>g%|@^Hycu>Tu)JK`h`FmyPV*7Zmz4LPcTQmB2>-UDVqI)Wwf97JI&0_zwJpfhTnwHb5Nm6(vRzP zIqZMG@qb^2!l^fM27;(DbNasF`oC>|BW=G7V+Z$7FiC-Su3Hqv>Oz*}Q6wzQRKqFOYe>b; z|0A;?tn{U}C)Nnk^kfg6pLeTf*PnMPxnXkIq*e8z`b8OyTvIpiTGBc9mVQ8}!o^&Y zpQ3O~Xz|X!+`?G>S%utQ@q}%o`?Y8&v#%T_ey}NaK3OMxWLdf}Rg$Vy;7vt7V=up% ztciX{-05-dDyLqK-MB9m*#!xqpm#4W$k66o`|U^*ydrk8CBle-R1=DNzB^dIA3d)O z_ho0V-fEwPz7S~oW8J{>7L{wzPldQ=EOAtYCPPbmQ$sh_=VSITp06i+3XN$sXci<~ zb>kZYd=u+JERWDPN5rMgSBV%Zc?y{1B|q=y==_yIE?f?3J6bgjo)4=h#v>52r+oW> zMFrm9`Xw>ABS;vqInK;cLra8cYtvSsOLepM?(>cSKjMRN9j-7aQ@y|l=1=L-@tW{~ z4pAM^w#z|VXyLMPs74^wdX5v=LR9*D%%}x?Q*Z53I6oM8`8;GB7yxcM%7#LK5E7%( zs0l}6jL2Tn{(OebteLZmO9vO%MhNoUn$(pzk_t$Pi7#&pMwI{K;iCTMnfoa~e{c5C z+4Y@wn%DiP+Wx!m^y~m$-p<{=C{`S23|w=SLfC43n5yWk8$c^qv%J_TFpe(K9^LF! zQ~l{tta&iiA*D{HsD-8xHOJjval9a-IA0OUUm5==GpAf>tt*sGQ<@_lukRAtvEozv391CYqpHLGZt^m>W@u+<~GHoId% z7!MI)wT*3B;FN1+{7{%EydL9Du5Gioes-{pA~`~PUV#;8ocubpk%wkJ24 zlWp6YY&X?3O*Pqkvh60@_GH`d{d?E?x6aqToaa90>}y}x&65t@@jN6Ja1c=7U#d1b zT+aV(ypDapWOZ<);VF^t;^D1e!#C!@m=S%HmE;Ijhq)ym53j)} z9y^sW|EZ9=wA*&(yyjw$H6*p|R?x5Eh$%#E1&E%mjI)LR01e)}xEu6Pa4D3b$DJoS z2;hZ9+fz@He>^VoJ*d%M<@LpyA|3n+5N>u%=mq9VEGDk#kB8UBU2pZv2f;fFrL;mcGkJ40$aWZ0$cvcdw7#IZe#6_SVa_i z3@)GdTAz2PM(>u6F8+=tSzuw)U$(rSC!D(6x2K~aBNgj1gZEbdlMp^Y6u~{g{pyyw z$)S>twrA27Vv$7bR~BLvJSC=F@J}FYBOV>9Bf!D1h%OfMXaU+ei=(Pv`;xGae(tgv zOz?2qVav}s9!83Iw-LY0*c)<-|VldlnOTB)S@w&k*X7^{fspjH=rU zNkUW%?-s&hzXpo0xo^I=WmI`N3xs_WccK0@Hovo9p%I?_#a8@wzttA^f`P=z9{c37 z;GLOw6JiOvN%?B(s~7BfD4N7fwz`#Y+l zRpKN?THXi}PtvjiSwrvwvIJ%n%_wTt5_C0YXV%gAfDEdXk30QNI0b^_z+6-jTJ($z z(k8iYh_QA%_oXxTBZu;4kaWS3~Wy!o@9?E7^~h0*fS?d0Xe^oBx7&n-C!&MMZZ$q7(3 zC!c-AvIg^vT)Ma-5%x27^FNzyTv>2-rA%Lmvb@;JAjI!*Gqw-R024`+p;6sw9IpPn zp6h%{-@!}3Q#^PFqyi-17|pr3{KCb@Epgz#pNHHp&&|qqBcWt%B+q(RSm{p zAlGat%A`kw=l3Y~PuAaRF$2pcl07B-;yaIM-LRIF_xvs%M1(F_v2<82PAI)_h9Yso zB0vXu)a72{VC!;F8I@(D-x8x$pFNo+;Ay4^5!dnUNcvDZ;x&$@-|SnEcQzw7GHzGf zOU~!kCss7}7gNcU;NX5vT9o%I*exO=A$B%bziJ2jf;gUBv;C4Jb2-ehxi9KeCtE-; zQklpClj!HyZ;AdIax|q!J-a(6+CMcjEsI=#Hn1V%PG_0cuNIsbxFReV=@LuZ<~>Bn zweYxYx_B1mGknoX(6zHx5c(Qz*py3j61f^S?}(;2*i~qdNHSYGq<&t8--xs5)zBPT zoK1gUA#we4)e4>egc=F19TG}=VEAJX2PCBSvasIg%HLm7-d5VAw*L@ zV{an>F8qK7Nu=;?TtP`OL5V3rscL+pvT*iURTj*cr_Z#nE8y(1|10iGyK!o`qYuZ= zQHm@{wh&{e3|Rts@?=qlP;;1QB-ilD-!M2ZD6lZj#$f+x;`$w`OS*QY2Es97sLgMO zu}9-4{_9AfM^j>m3x;bWj37OYx;80(;on#m34(lwdot!u?w7`ur%PsQjml8_V*p-c zj9-I(DSGC7&xmjHNcCSBE`+QQZCx z!L3g7zFBW8jfFTRXt z0FAm8MUy|XzcAKZWzgjkNbzJ$L6^<#TB8TFA}$A`{drq+mYI~8UZK&xO&2wClO z{(_*2OF%KSS1@2K}4;@dy(n zC2TCdCT0W#9?JGK8460uk~$)UoFEUTJ7qBJZHsWQJxN%PMdVPh86~e9)Z;&82J+;U zy6N*C<1c=be^E{p30+ou5a(@!6U8~=^ub4vEJI}u!Fmq!aWI*RZ#W&B(b}PLFkjwk z(&<^rFfb|DcQ!kZN1|I*qk-(M>`h>yM39f~)zEdQV?1FXLw^zPotP4Cy*f4eWXS^5 zhrNd$C|(9rS>FHdwTzBP`Pb(HjsO2P<&jX{$YZ}R<$B>ZM9wY{a!f%#+<#Lm=&`A;Pt*%yYmbHA9yZm+6{_>DN-mdEc-U`9M`FUkWwKg5W1bMR<^XjjDQ$(L(}6BSFCw36 z1Eg5)S>W&`1^m60ge&{o$WnrfOY+?-YAo0kod(h}1fbex;^Jh?=MG%qL!9rH zgUyB>M9Q6DAlR<8DbVE=6_^x%05_lC-b0qGC>Z(j7ycF}_p4_hZQ|ohM@c$iY;ViX z4nUO1@V~R%uv$&kMuYS-7L=$6${Cqa$4(k>vvf{`87->2Te4Ks8miS<7;Q=t_jacL z7?>ugMjHChp}p*>(`yxKcqUC33~IzPwse$>9x^HQLvWAIJajLh4n9UJ&a{M=FT~7F z7hxBvG>$nrc=t8=Yg;=!I!bmWuPHH%1$~bKi*;^$S8Vvyos3cGQ zQ9o5}(CKOdC)@Elt$K6^>P;G>s8p<{S}kTY$8ogyMD=v-cE z*21{}SCHCmpiH!RlTky+PFcD;fgS4`?mZ7$6Xn-Ga?Wc`dU)CK=sQ%G$r&}JjAwkj zUdXy(Fiir-!Hh@RJ4gaBTs20dBGt~W_+>-hSZpxMk2|h+9JDfS@?l(dTnUCyVK?ZNIigf0Z%u5$bX?q`cmKTnL_Z~Y7U6HYRMp^W?E_)vngpY@~A-A^xuV3%8XdAKcBa!6CLwl&}Wg zaqwVRT-j`{>Z@o{*d~E zv>V@5qhrjuR3oRdti3j%3yAI9E%Eb^3*ENycq@3hqH4*Jptm3A_iy-Ia!D;Ie@GFX z4F!KVgddY2^_WJ?AsBw8h?5|26ZP}S%3elY3ZO`EpQvL)Cn5Rgjihb8vnHbN%Uykm zVh#zRz^Z`PvZ+J&=&JSJ43q{!NTZsW4mZAz!_U><+hv;Jx)&$>N?G`xHsIN-F#>V= z0)vO&3!xf09>d@-=MT`}4-;{X&iM#-OR}l6lx6Efzb&nD&Q5phZrU776m320m%LOa zwm_G5dSi{$D_Vkj)n~@n6e#1;ow`+b%KPo^_wJn}2N$i;Mq zIVF~Wn~}l)28sL@@|WcJ_n1ExYF5C@^AZNzt}332n?*99MwQ4S?SzASityXE0@gC^ zCO`&BTteFA+DNRlMSH0ynz^FI>ShsBl@54`_@z1d#-Z79`{pr!|;B0vcJlk4~#u8Cb0-&I_*U4Zc`11Y$;(x-9B_?NK&POaAMyMIsOS2Vsi>xEi9= z9uJ1huBH^Z7<3|CF@uH|er}eB+u3xRh8o8tbeC}PZQ8|?gR=-~E#41K@HV3yp zSb4qfn%7sEg9}E2+3jb$CuKApLLOx1qT)d7@uij1+XSLzk++2 zKvUOeK&y>81gj+MwmZN%)O;Sj@fRiNFkDro<-67Hzs8J5S}{}_@!E+2OD1YZ7pNdK zD1J7qp5Oo?plU>jydN>T0Ktj%VDLKBq>stjYrHOyJVl9!F9d=%46)=v7_|?3XiDTn zplH#oiD2CA$K18Z{~B*0OYo@%I~OfyHRTX7_C!^<#T&>$Bg zOo2v2W`HBd|6#!@C!m#RUE6R4t-1B$qz3iA)iB^(fVK0*pt^eQ{J#FIAWyRypteR! zwSp|}j@coBb}3kq(c680rDt=bwLtZH405=XLs3?RPm>AX1kGZVuC6-uw@?zj_R70g z+mhdy>N1qJX_W-FE7dY~*kzZKo*93OWceN*#+Q+`LjKbEU!`iGytx}&`HwA(F8!IX zC)N!W0ZrI6@`3jr-u|g1X>K<2@v*e^p-Gl=l)xMmW5L+ehNrQz)QXJs1qQ1#X~r%* z+(k$G#;Dc;{Ke^M;+2n=2Xk!`PELAecKRPf-4%V56#wiv80~LIce!&wy9B0P)(O^! z-%gBQ$N>$$ymVzT%cfE=&Mm(qbA&uenj_8}#!jUTXK5}u zstJ07hzp~fi7OpDx6pamUOvhbF9^E|^OoWIqZ*;=$&ICp7>H^f`!PM^*zPzw&K>ox?OK0~g zQZ?~vCPbu-sp{OQlg82M26y$EK=u`|AwmJ-mqC*P?sILCUMV~+~syB zU^ce!MBH4dTeb@XA38`AK!Ly+wB*zqj&2Y-4b*}p-Jf9j-ynlGXWR}a-``n3f@zwV$K34Hc1wLutYW_VQpGssrNLMXDQ`TqFubP&5#wUyZ& zV3$1_kZBM2Pyk}11f>kd#MbOlnT{e$+!_)@_y^IHMO)Kfa(Uc&)!7}Y1SK&DH8@_V z=BGt(9WSrU%bPKNTT4VEofzSfyO}*4Pdx{=6&_p9M*znHFv#A3>9az>1{>%iO540648DP zim=wl4IWJD_FrX3BsS*CoKQX6f z{cPqpf1Xzw4eQv>@^tP8_R`3Bv(Hw`pC)ruQU_X6MGHKU&kfn8VomDaR6xd2h7v zuTrJ8NVRg^OlK}FZ5~H2>Ax%2#p#pp@xf@GWU08IomPswu$LdCDNl1gd(vp{EicD; z;tjH!Zx;})*=N(sLbCHZxW9ZvC24UxT?Jf;sp7Q<${pJKNf7V5p!PAwnVFfMu9*vQ zGgwq&;U2ayiyTdFm(;|ugWJ}=fv53-CwDe1#0XPBY;xZyV@|1K(Y?E>&OYnZP3j*2 zhz!0jMLsx~rPj0oP0%niE+TRMSanZ%a7A=IH^_5-VHa&v;;7<#Z^|4() zdS9{oCA-M$OS0KI)R=WfI~R&1nduDG2N^~?-_58Yo4900ddrt(TAJ;~Qxw0p+1Mmmdcs``gSs@umP8pJMk?1VW{qy@sf!pj3yOMyML)FERj6b;=_a0*i`0& zecyp6V}LU4udTXvEJCwmTs6}~ve)0!(`&Cv!<=NaV6*^QCJV4%QwKM#ejFMyMF{nC z^=@izT2))EKIe`stow-bmYm<8g&_TjA^o!s4SmiBQ#We_{837rXl((Ciid=v^w*Tb zbJ*nD{T7wDt;&UOj=-nk1f7xF9UUbt!4JpNdYE_6txKiy=_40aZ_H>3&6Vwlu!kIP zq2C`>buKOqNGeKrc-HcHNgEBV-v)_1DkT_=I<=M4)-ueJb|R%ODgVjm9-(J5>yawh1V;MA?0Ar(~#SLI+&4D=3Mjl})+o=rfBA@F5_ z<@fcRs`Dcqb&V6dn9YMuDmpD=fWcowkx_(^y-cp$#=)?$R7?5RNICd!M?=pc4->&~ zINeGQBw4_vv*W?)rkVvsb;7;mu^l6Q7k>#^fgE81Z}K-j>zq)~%hb^?!1Jvyd<>Vx zP|hOET~k{pPTDLjEqvK2;QRAJs#4d>DCdR{(3jmv`0GBr7pEG{iY3?VwAt->|1j@v z?P|%LCPST6rr)LhtshW9-+APBBZ`9qsHUOUCbYGPuGhgH7KPD=zo*t&`#)z_*a}n< zx}$&~3U7t;vN2DOeOPbJ@PKdHlHADEFSSY z`ZuyfmcqIsCE;gRZr;yT!Y!Zk45wQA?1LNr0V3q6Zc?cpEW=nPR+jY^m&dpyn59Wj z)HgIpech{_?=d!ZF7-9ebuz9=1w1Fd43sF%2!J8sYroy;sohSpG8f)@X6BzXyd3xl zo=_0G`ki4lq$VemWy`s<0NNG#Hsyw)yLWGG!f1Sj5}`egySGVm?iiwBP!A@+G6HA$ zKem#@z{s6_c=78O#S0)`WbsRFO9WvO9%0BD3bzP^3hae5W(IVIZ2Bk#R$echhyZSk zgA}x>yp^24f7hmAPXB>(TP7IlRl5AE%s~RUcGtjdM-95pR#b&_!OD@Pr3GI@9Y%V3 zdRBV+g!!|ArgQr^WM_78a9(h4o_|5;>mxD}3MoFGFcR8qHn?p;+z>W1y0KglN3q1t zx}2&@z5TX6vjG6q%4-}nY8z>qq;4xF?j4cOsY=-}RcjC5SHVv_#XDrG^Iv2|4XYZ0 z20S$L|H`aM2WYnP$Oe1B+7xuioyi#RYq}wmVY3+g>p?DG&mwOLoBn8U6!nrXD)VHv zK%?)S-tM`7Ebt60z)8zi{S2&@+a`B0QSM4v&9Sefr)9U8Q0q`riqquNfcBDR)F^D^ zk2V#T)BmnN<83ZLQ6Hff{FIJOsav)W15KSyqi&SEmN;NH%`b%Uh(LnJ_ptc=CdcpT zR!R7+y?qZ<>!k@81@3MZM#i*gBVUC2A+s+(wks98x6JF&+7w-|9FBP|11&Ecdqp^${(@dt<&UrhwK1WZtybt0? z(<@P88;Q^V3q}D`o=B^snVDtOIZ-Y*>QEgiB7%{P^pArLyh-jHji7JU*7~+EsaI?A zC14fL<+^E}AljLsYG|=FRDD5A6*s2!qJDCsbUq2as2UmOs7)R-q3jEHA}xqgu|X6* zow~e)f;)%45>){jOd@9=WKhrrCXbx!l`wCsF0gDr5<{OcD@gdla5_@8>=AI zLYdBjCAVVa=Xw8fmKQ2y2I~tO0rLtA3zz30D}@fB1Rc!6%FN2jqNGr%pa8R^x%A)a zgU_uXiaDv8g3dt%RFOE^69E34-JNT#b|Mr&1mQEq20IcFNC<{ohfG!g-RQgLnM0?m zBOf9*R~f5bG~nrULH7X4)%#U}CUj<)?~JFt-@@ z^@RxDBnM4QxSq@A0-*#PUq!HvkKdK)i+0>qpJ#YK9glGjwCzgc@-##tyM1(O1F7SpH5h%=2J08{ z8Dax~f~c*9r$aL?tjav}ZN>gXXF5X4z^4<;bMjByuZAV6F@_2o5(YliqDNo3Ap8^y zZBOH)>7MDlyq&ZHX-kNWEFKVhLle4woMqkfv=2wa$M)<2Y>6UDWQtTgQEUk(b@STA z!!k0=q_K5^8ado=1g?w;%lZ`w3c>^{+96tC0U)T|#V!R+4y+#Dz!0E6*4XfRl)tq3 zA3dNqZkVoFn+dSt1NN=%SR&%VcRqsko<0UR$n3sD)r|t}unn;@oc-9EKRvZviBeTx zG3kZb8##m<`_R~+Xeik;@RAa_3GibF&DjZsNJ@sz8&=PFKyhdhXf)^v)EKqSR5&Y9 zl4jv?Ucn|k90R~Krb^9>4U^`TNLT?W82){}{ zN~(j+ijvx+p#M@ul4wr5fLdhKVbq-$`$KU4VpUAJn0j=rM;%}OfDC*EL62F94Q zZT0u>7_DZ>%)*QHn|I5TQ`%g06Ea3S=X;#06Om*wtoxrQKbzkqS)x?tJws0dR2IxV zx`tNu*fn&l59}ZxK!vnRuYyY~B%28ERffJE*UsOD>8?4jQ|1?8n3FW9LJQ466V~d- zM)&o$HYY!UI{p4rj)VF>;j8*D05mTQfq}YN-itNfZW#reUNm&&94Ox`49Je!I+WoW z8wsZu!=guB8uNi<4T*={g~gpB=#%fDs%c#YCD}1pY=m4gDD!p%wnQhwH4cPld-9yP z!7paD6M9SC9UkXnub5+xv?+3eUf?M0D<;kEp8SCJI@OT>{${MCgV@k0(yGKZ&`)JJ z6(M|fe13fV?k-Nx?TgdIf37o*Bn1n#vdj&HNa+4fykpU3RB+O98tosuy5DZ-Bv2jq zWCtxFGGyOA2;QF2RlIudQJ<91-_D?-_3b80i^%a)~tQDf?UXi?V<1 z_<~{?KCDhlsZGJ3Ul+x4#R9)|s~yx(87r;x;b&I<1Ja=}D(>qC$+W48en{u#oa`JIuXbB|t|Nf;%`h`PEERGnUtO{>SQqjqEjG0b7&<*U*RTt@ zh&&t|x~L>Wlc6t3%C&czIRyzERNsy^9R}gIA5<9E*Yh&`$$zqi1cZDSN#S5a68mkC zaar_C&kk!=tjr7XdT1w}3`WNTn_~oXP5UjvyQ*FQ* zg{zOKZo{n-cUb4|w_P zv%bSUq%jTR3-oefKoJ-n#Pa zc04k7Ji^)ECHLR1yG=h_eYZxj69@k;x%bNlPGq*2c{&;kx<^}wzYt6-{t{h97c^E> zw@5C_IbXrlWjn1#I>*(BnWKdG%gnAd+Vk)zTX%7dU$)(*tWANF6&{i>^C%{Ck8BeX z$Krw72Bp$7mg&7QbWn&trWvHsPuNtSUr&4^+|x;c_M?XBF}XT0&~ayWcej6V5H^8? zS;VhF-Dy@T=^r9@Hg4eachb#{Mjio9eoi5ukG{0q!znL+lFK=~VJ|x~J3Aoo{~<}Q zS?lKY*-toU0;g`pwDIrv*&h;Y7`e=Um3xQrZW3DOU|;c;A`06Q+gX;>C}4= z(R6z=*g2E`8xbS~nJOanD1D8#xbZ4{=X8Y^%1f`Zl6qeZW83*dNw(CM+N!Sa=D_P+Ri`)jV&c8X4`u|BA}h zE=nVEl{81JtiQH4Hlev5Wn>M!Z4dOMOWo}YkHv(wl{~DFmRU_?SNX|hRl{JYfa%ixfD-e_hV9;xap=s z$8441@8VF_Yrz9Tzh_NV>d`EnFlP8mrTdrjyRVUd325v6cZmeR)cVbZR75+Yn;vUR z`m)9${&eCJrR+^(Ou&9yuxvUusflfg(@E1fJnuT6PIv!E0O}txA)9Sv@+C9(c zZofbFeI%*c@NHS$w@H$=Z2!YLPa;D9_88dWY0Kj6Bm6we$l7stbKCn<1W&m4CZ9@G z<+pGvFd5q@@X5=@?%JhTyF%_)(-2xnt4n51|M7oc_cUtGW0Ze3HG)c?CJv#1_D1h2 z4+1vU*tR5`*eP>Ex+v2R5ifks;{vXQ!C*1Z?woIXV^ce;{`Qvz`r@6@uZ+fc`kDQM z-WeEzMA|rqmOZsC0i>;Brw3Yvj!=uHL3FDVBtoMZffGd;qEO;T3G($5&ngB}G|Py5VBAXthHgR^b(GBRw4>qmgs1 zhua0QTB)V)Zoa;!b~6*_qrh-Ccm5Q)K^huWOiY{VODgEmat*siU4IuBV7>pP{Vx2x zKWW(1k;=?CH+)fWtn!1_*#rgGQWiMZ11f3jVvX^(#A~naR-}5q%j^A!EkQXfk-= z<&{sq3i;48CY0*-!()=QIoak|y(VX#)c=jCnwfBREwMK>LQOouV=xY#R+LV)`t?_Z z*3&*Zyuu3Pdm4XaPEf!Rbpblha@~D1e&|7(#jH5cr1j1cKowy1cDAmPFJQ*J{jDhH zW*t;#%ZV4W*}z0o*Zn^&K;!nhiU9p3gbh6>Z8+H2PjT}s;m6ryH`aH<%JovMfX55g zE#Jq~<_m}4W89*JAyMOs^z~{lcMmXE7b|mRZY63)pYKauAFtJeyDHUF-vNj!H+XaL zu(|bq-u*W5d7E$_v1}dl!o>s`-yg2ycfiNN9uvL4lVKAihOeii9~h)WlB+L1D3g=) zx;a2+$Qye-BmQM(FprW%O7O=Dm*s4wvnFs4Y)CVO&EQ$8YC>sCG5yfSd*;}IUNMTD4JOAsK>EB41G=KTu8^ z3~@?97i^j9MDdfA@<$mMNbeO%Q11ua8L~51n;$+cIxP8nZ4o?wsAmK`PzM{kJMU|# zr0biTptCcLeeP0$_Ccx8t+mhdS5jdj!q^|wlvYy{IRXNtq|rlCro5S2rDnrP!($1l zsW_>Z>js@}P98Qkotn53Dr?L@eBbsu)8y3dIItUV58bH?Xk>CfsVdBCegS9IV6E4X zWDvnCFCzi~P*IWS31mVc>JV;wf8;4~g!$VIh*)OfJDhQ_hWB-)H93D$y%bsfBp|Oi z_$$Lf^XtloENYpxKwq*oVy)TfW8%}`b@j`~)2Z297@C-V0tB#`4dhOt^QXh3Ue&td zGqa*ngEryR5k)J=LydzO=#a5ca%qziKN`zk$s)fgrfAz0quQTc9&et8v-Y3i@D~;* z`?$6@c4k=8zqb4p{^~*Ma}M9XkmKVNmVLSeDj0$i>Yni#7v3IxC~p&}sQM0Si@-zJ zfZUORXFJ^CojQ99UwKA6P_0rO-DnZcCP8GXzF@Al94j&{Q!oGW)EM`^aPPkzz=5tn z6T;ffOg>V9V5_9Af=J&XGE0Wcp(ZSwHxayLzk+3j$MY z%gf#*UhO%5CX-r-2sIFAuXp2oN%63R^c;WngRzo)p`o!sm{6nL>Lct~>JnKBLXZ35B&IwtFFcvtf5JM#qdCfg(L zsiJP_e`S}?9W_rHWDyIyyu|!ALUw8n|NcY8>L|NmF)2AEhYQ!56AA*o`peZxYPaw8 z%F@F_Q@yW1vr~ZkX?=p`qN~zkT?m{C5Vcml`1HOzfhuD7yX^9Iidpb;z3;6oJUkq_ zdTQ^Mbmf4Ha6-57<23N&O6&7!^RK0+8>e0s7n0iOX~2}?UeWCz(xLr7oz|YYKSK>R zjDV_Xd42F7NqS6p7YT|X>ZIb{85hm3KX~C=h&i~ztZ$o?P3wa@lo%mfk+pdFD@SJP9=>Fqb-cyrxToJcTrH*pago&Q)qbFNOiB#mYp3VBQ0xldA!QWvblMYGwpsofG?Hx@*KPAI|9*=7jLmLorB{= zyi$dtf*?}3|9{cr$Pxv;UwcU5o`n8$-6lTbQZuuiqgLL}owJgK1>v#YYK4vl^0(t9 z%OAM5b~H3JHe|L2oIf<$Ju)m<7L8^ckj7GG^>CJ4ok2uLpj{zXBEO1Pef@sxRTJZ@ zq|O-7N%AE4N7jrduGM8cE=d9_nhv;rf?rj=(#h;viN(ecue`T!n|=pU3o;2ZiGfRq z|D>8HAOjQM-pN#q8m{-9VG{$#!u=XFh}_nqn3_`o=Qp@Vn32s#j5HXMw;Zfrj)=>m zh(|{jtPI=Dr|zX^ne4;YkW`2ZT|D(JxzMXSPrZ6@f}N$Cd8&xRNSi!68iYeYqe-g1 zNtrJ+W)L9m^;(I7uZ9aDSw{-z^r=6=6TN$OYR##1adWzUuoT`L=;(QVKG6L$Hd%gA zqmtvT!(pG$!MBaM+R<~BI}ELH zkKe|M!@ZAGUv@FH3DI%sz+9jzCH!Wspx-j9LWjETj^7NXFNo2yQg8XH(X5@t*cp_2 z5u83dzP0_=V|0?zauezwtM?Eu3zRmz_mcoW&u#cpmjMXpbYXVr^0R-4w8QOm^W@xj zL024uP#uj*^rz#NLA!tRfhAGGv$W|4X9?|OcD77WQkgpk28uKVdNHIX%n)0c37#07 z2_7GvRwTh1zX}lZMJ}69)fl2%SyfS0S@GUqE$n}oBfM~V0UCOP>hg+aQXopL4CQ%r zc0*5CtjSU%Mtxz&=mp_k-{VGa`QAxv4EBot?ui}7sclbC#XexzMgJl3lVE1^`*Zl- zBRP&#B{&!nYz}NRou#UfJ4QV8&~6&Et0h5qn^Zltz0)PL&zbx3%KV_ zA2e7vVuMi2mt)l4bvH)hW=w81x=FW5=+*E-a9M)(jtr{B2aAh)Ke%wU`^s zv{1Ku=ZQxJ)_lZ=*WtW&>y$v9FRx1>vKl3}EPt~3L967}wCQe~Jh0xG_97Xa-{{Pk z{hO!y^x72{hB37ui3p}CtMF&CxzEEwHBMb?-`~~Qzb|{0l?s-2j7IkR^2mHaYK?zm z^XIXec$yISp|#QbAbG~o z$YLt90-S`Ts+NUV?7FA2`Vg(yGo+?r7d<=zPJm~gZn3GhDK5*uEyKwnkeab4NmhXh zzMrhp@aL;JA|w8~&yP6bD~OOTO|s@&H@FvH&*;PDMU?(({hodeLH)r>y=HQauII>4 zhO~4G?RblXSHw}E7>E7wz#~ILtEbHTQqZ@M7kJ9 zsue(`@2_T=cXQ}DN-FxzeXS%)Uy)Yp^|zR}8mE;-Z5GsM{mFm`R#n%E#tD+H^qjc_ zyXdrBwP2q?fI)R2fvPmM#V$*C-gCL_&X^Nk(#QpjjIt#W57Xitzt(Z(L4{!vXC^|))J=ribHH3TeBhkhJbs( z;(Ym=OjfJZsfKba(_*LMZTjgHdq%q7V##sY)y^;T{xrA)^!z6Qy7yl$Qzl8W?{fQaDKRL{DFEc-@H(2{MVRKcb_7ee^SgQubAu^<^51gbP| zN+K153PX%~!&mhH}W9Tqc@?A@QLHesTEV}ygdTD!0HWc6u4}sq#r<6Bn_jb~@ zbk6I(exs*~2|^8Er4Xfp)~No;8t4!i;0)VJK_^KOBZJ18*(-l2!-N!gspnqLq>Yng z7G|PcHj|9BxTxv*eGzlynDdb32i0u!%-#+SfH-0cBz(zpj;Gox2@4Sj6xU40v;wRL zf{~@-2y9P!@DR{|x?vo~!L~^u93*m3^`_k)%$-cI@)dlSilre$^mv68jN!D60L4$%-_WZd%INe(qoMSL9C8dpy6=!!W!*2ON%8LeLJU4aJXx&fxXMU+b%hSx-GB zp>h%O{+!&prW!d-XeuKtVCLP)FSQ7rer3`=*q&^7fml%HH_o`eO&Q|?$D2?AAc~f` zU3Xeecb)U;=0eU-P{nY?RbF$q$%v(v`NPV-oW>=i-57mO5S#c4_)!a{F*RNUby!-u zkVtxZz`t2WYQE4r(j`kU+8E34WDh8u>4D^*{tJH5#svn_gR@uIz@O}l)u zs=32lHJG#<@SJ&ryr6LZU9ED$5g&U>%MHK2U*M9*l$SNnsd=62j2EI^kyINLqY(Vg z*OhLK5W^qjU_e$sDVVWR$2AL!uDk8{&Evv6gHZy1NStkrT0HGrYCZSSDP`g(F0Vq2Glry9^IUCCMDFJ07 z()3W%75a{`F^2fX(eKP+tlA&ooIXw-VY^lTD^$$ywjnk!x#A}#G1t(IEviU}lDS#t z{Cfig9nkT;j%Gn;iJOcO*uJtmw@hkXAJtVQGPG>@Pam**kYz z5rNc=jmZlKC&zOK`}6ZN`^z)??@Nyu6eUrlq*7u#hB^B{nE(J zOX$kS**1m?dfiuyQK_b@Yo;_cB=LG=ByCxSL3sD1hehAdko*$Tp5_yyU@9yZ#Q&k( z@{+RCC4iDTX^XQiwi8!z7orJjiD*T_w$zXWi`Y?Jc4RD=i3rED!^)R6sHh(WM#)xd zRd0Lz+t4W4&nV*0pUw9*h9gEf;~gT4AzJkoI8D+c`Par~plhv3#t31D|8NNz93ULk z{wDREBc$PzbJ=egjllD8y9%E-x%rf1TL9+-^!JD7IMrT;U9s%w2=bIJpGk(@FbcKK z+NtZ2uhR~)V~b-UEuP#_`q&rWgk!s4lOLsVROdUj%liPYmWaQmMBF`HsE?TewJ^!NZ|p%UG;>^GhdFfunGhJUcV1 zo_@(-Ces=SfDZx76G|YD{P>k@SPh#;1}_7&AsKS9zLCVi*dm*|dNsg^Ioo2C6kqM~ z4Nw~6vkiH?7*_`k5dzJ!3pz-p4tv)?)1Ob%xsURja&_D|`(iZjRIRh4K7Tmf16nDu!9)p3pr@ z!HKelh&q<7My41Yjg&2?%A1{a6-f>kj(JV`rrelq{Y%H@SG zl(Aqi?xd;T-H|;3&pvhgGsi?~ZK`xrkRSdtN4bZ(UFjDUJF#D6a&XUyKgjo`rxRq* z5{>OJ$x>`;by93PX$b|>1s`IElYxt}(SgfrK4W>LV6$+6pXYJ-Sx5g5H2IL-sJP*B zM|!U`kO~XiVDQ4qyuG3ZKuc{R;ew(Ls9X#$^k3d=>EOL=S7@0z;gS7Tu}^2{B*H## zpNouJm9M|b(!R1`z@2!t0(d1mK=~^~;iAl#_IWOh5&SWmP^qlFUh8{a#ENIPCt{&P z=aTl&G<|1-!D<3F)Uu^$E`N4PU04poEFsF%xSXcfrS;#`-}&`t&#tGx+S&W7J}L_C z(*~fL-obOhj#IYKgXx(l;`oB@ZN>N0Mu+umZz{f3|H1M?H1JtZ;%q9+O0ZsXWceh} z5AiXgKE*C9S9556g^fu5Kbo#7x~{HW$F}XpZP3`ZZ8f&p*hynGR%2rajnUY)Z5wBO z{}^YEeYb?tj~h++j};|;K4u!kD7Lym8|m6zFfCs@KGYHpN^Ty+Uv79^HMNs(^0dDKsYDxmso42l$ro!; zFbT(of~q<6u~n7IDI*_d_J*Lu0}!2k8tB9wseZ;MW%f%`WWIShLT}}b7e|?X&G2a3 zxA(kT`~b+X8m5xdo2tjQ1+I{0SGNL2C0NO`fk@f%Vls=nL|WC8Mx_ou>6D4jsJk#< ztq0fyec8MIP74VOnqYV_)r3?hO^E7G1PIzWUB0M z(>70qi>B&VOWLap2xdB^TNkVs-vElGDS|o<2Gt;d44By;PI58EJfU@513Op<)VLH>o^d|3Kr(j<+ z(~7*;cl7JZ!Zh+Nsc%sY^VoI_%Uf`u7j>1YZw(E*B-(+#rg*@O_!ReVa=&V%>kf|- z@uO*LtIJ(Q?@#?~;NxdW>Hl6bwANp@bfXEmjNLRX*0H>DLQN#Z6R35>g>i52AMGF- zyVTeoxi7DFTFS1I@%BVJuyZ5O%zFRDnT(;}b)7RfOAcjy?=evf>z?}Fv86faRgo;B zl(Vi0QCNgF;Ms{N{5-*Q-kUdES9ZvhTsk5Y9d&mM>)Qk+M&ssL)GpdpAsrYpn`g2O z+)KD(fLZwM931>h0@L(5pY?u+qW!^a5^0fYA@I5@v6w_@{U5vQp=2Q{I_{;9gZ&CB zA{s#rgK6C2@@`1?JQaIZK49%M1^(k975-Kw%iLSC#e5p*;c{KVvGjzCyXvE4@9f9opm*+ab(^3AEVPq^1!^N>Pne;*dSp$$=axRRpLsmk5~H zYU!g&GVF2=%9S5Biu{8ny}j-$6TL{cY~{}gxAIkgwb$6Y2O)J&qnica?^i}lEOx(y zfe)G(V;K5RFO}R4kw>f(`!<aK;dDW_DT)EBGk>k-~AZwD){5|^JQShI9vF_aiYonjnV zY|v^aN1is2S6*ny_^?7ePFkxy7SUSE5R=VpUffyp4FFn5_bbliCst2qs_7_CIav@c zIW4Dzb>0FH;8pyUQWc&;ya}kAeoL9$0Isjgw7u@dMip4_pCn_kyYtafFl>{dXPGj+_XcU%#V+)5j#*A)Y&3Zc3SZXt3=FXH!gq+HBBqBcVpa z+lu6xhZ0@;eNqdVqfI!YWjk>L@-Me`$dqKyfhiH$mC+W@ShFmh2|;7 z)XKY?GZIra<##KncS*Yfcqnub4Ad9!hmns-NsC!#G8wclwih#*akYj)w4m5HG3Iot z$=n{B$?hMm&gy=c2oz%I?NZR_H-^hrdRXLAThMIJ3sE~TaS{#U0pGPFC`zG*GNAwY z!7H-DJ+Y+oJw-Q*RZEdp8GDe*lYj&24uHvYPaUdMN3s4Aj*JNfN3ktV4@Wz%RBhsm zd&=wjC0L|&UO?A}HaX!dneHE#T}uSuA%uwPHQ-AnLLppfHw&^mODk8@C~vl3j|~H= zw`ZN7RR5ewVtweTZS`6ljiFbN!K;F%5eIvHn^Vka|EA`%n9G1RL}v=JCY%O0f(OL! z^Pw{Ilao%cEV8A1vsYQh@YtdXl3xc`x~~dseG+np?}Q;>x4+_G!Y(uqqfOkqAHK^t z43K$01?argP7VH%8+7LRlNMLJ7dv2YXN;MN6KOfS1Sj#KHW7u(HkIpG4l1Z0xPFuQb za|Wnj6Sn;(;f;?zhv$85Y50}R2L|;fC5DdD-Pfd3NSC)Emj6ox|MknB><~@@LxGlX z-3-NZ_WlmoiTo7=Nwu*VVT0A!pX*-yb}rjZ(^PO#VEa(*wp^oel9+gTIel*!pY5KT zb7jkk8c-Fjo&oT%rzlLi8b~2c;vhMJ#`hkQg!}+6rfC%_*;~E@`|Ks zjOGUT5;r~j*+roW>CFB;G*B9t)C8m;$*6-_-jvQ=IU+Nzo-{izF+a=5swY=8YKhkc z=@hOe%1B`)!gWTeU{j*QiKG#tqC0EVPvb>GDLbeb^ve{t-~IV{zH%R*>+?~>)OF>Y zWvs>dtq~Ddk#|Mc@Qxaf=US~Xh5xnsG_OH-^;m4AAry04Azi{ZIQiQw%Cy-UBoFqg zd82#Gg6J}wH}Yl^3vvkt(Zhg2ex)oE_d`A^p|%+B%@2QQ0)mB2)x1)jwzJ0Fl)QG2 zztrkgXvHh4b61_Zx;Ez{8>B9$Zu*VSIxw&9?oSWQuI4Odi)!8{@5PulzAdmVP%Wep z1>LtmrxlRLW}9}E$K|Fgf}wZVSaIC(%qEH$d^?=-^mRK?FZioc_aMB6P8NTPekeFy?HE=_$v``M$%@Ng%F|ibyP}1XaWF{UwGb&f!yc#K8OE%fznB zf6vQru6a@ZEL89Xf~XRw!sW(*PD*{{$3ZM_i%HLs*rLQ5xobXeR|7kRKKmI|Z7Ug9ZGAHq(TrDD~z=6z%DIQDVgU%Fxwj) z!cJhwQv$Y=MgUO$yjTPiuw}$k>Dc8Bub$QWIMS-e59e!5clJ{ube?~)fAIT(@5o3& zuE=#Zj+^;hV68!hBf|HqVHVI51ygpj_6jp24ea1W3MKZRGrnI1KXT9fyiTdBN|+(&ROTrGbia?6Y5mZik^=$ni%u|rYlhr9 zlEeZUD;X~XTZ95<^FZ95XrR`v>bvA8fY7T3I$iE(JaB=2`O@}X{^%2SH}`mD7^)Tav4fY=7nC3rKCv)A}W$%y?-FDO0#Nq%#x!=YW zV&@;rf2~WG7L;gS)#X3d-))Nf^%Z5?jg#CG; z2mKTwR7NE|v*La59(QqOT9Lh*B;Ed#Ba&1XN`wsqrAOz}yIvJC)3NkM%SE+Lhz z2sKTubTw;I?F23lUp05$N^ZVf>?_uE`0TE<4h4Yld3lmxg81KE zz`?evU9}c;eQ8dW*ui?$E1Vl6zcS4KaiF<~G9uL$K)cNhz{rL3=e*0;Ae zrPpwN0d8UeRO&%TKNQLYM75bByJMBjQPho;n~g-n?58qUlX_(+gp zWJEXOg&SJ7R5)>x1%(MqN5QWiq-$L?4$ym0(^5v}6ntIGUA4@UP6Da7b`Fgn}Btts{{@QdglVF-DZ;|Rg8n6Sabg!PUY`zG6DRIrS8t@0}j@u^F0mj_$M zlS$2wGSL7^VL9sIZLYV`ICVY|5%6T2JS^GFotxsPtLemUO=u{|!GXSn1jl~UvgZGI zY5GzZ4^>%>GW6xj&4Cv-bCht=@T%|zHybWxbXbgfM!O@B>30ic z0KMtP<+zxc0oEuVvf+ma=JAYtF+wQur@BzCGhgPXcD7at$0&SqR;!JAG;(JV*9{CH zA~3${`^Zl=0LNRQB%N#Uz(jMw^&L;JCxDG=#Q!n(w0z?08-qeZ0&|BP* zZ#MJsAm&#)IyXgQVnAjb)(g^uSR-s&z;*C{Io;ov40VpCfqut}G@_4GO`-{Wg#d#C zFT4;83eXAW+VdMk12s)pJ%}!IPq6eKewjUCDP5voHM+-Rm z(8agV%SC|B7_po2^AV-7COpO&)oR zVP=D`vtq-%iTwyj_@b7iteN*NC2igXL*puHikPB84v7KAsy#omqF@633X)%wE@Y{G zuL&j(ad%YA!-?Sy^*~bfCawt8!_H;96b%=yc z{sIP^Scc%12aGEve&0whElWm@QT0t;?F+9&HID0g=Q&f(i~V9OX}09D(<6Tlru?Jl z;Ulji@!Xe;)f2zFu7-DNiZY-J#jm~zC>LaStr`$qi%(FQ_dhpX2n3DMaQ%hX!#yhO zUU@lqCH>jn**VY6n$TYaEk_kMRhrYoa^=-cm->eTI@tyfU*c$&GO(SY<~obKM~fm} z4vLz(gqo&gW*2A*<&qE~NboSYLwT*mhe3G%5=41@H7CZ_pj)v(+=}R68U^C{^sIV5 zeI$MQDO@ACRH}Xg0(!}oQx}~<@UxuU=|I(iB3X*ImV_yz!Xcz$$o4desh}(-1U}C% zKdoAyn^8%sIWii12-$LI18?qLN*)_t|Ftd;13z6(!HcYWF910d?smzAMe6yE2#_fr z_#SCarw{Ai9d}g@nuXUaxq^GBA*id=|0$!;O7+ngt%c%3D;xkmx?lgfF6e@wb`yn8 zy;uzg8TuV^iaJUV17M)53wTB58w?xtreac3K#rPzm84I=7mP{j{~}*21=Br=@yh~Oyq#nOqRq|Tx1ZRkCY%HBQ9VtGJM9;ML>LW2sD;#@WYwcTp zFT=^)3(Cu&XNHx6(*xfUd}jgh^_@c5M8%Pf@##F%{nX* zDRY%F?NgN>b^)q}HO|b;GGJs@ixgRQxD*?vl%T&>;-4@wi-tUBDdHJkp%ZdS38Cr4 z)%OZvM~l*`uGglI-SXL&0RDmS7#q&7iS7{^hwVYH_=FbnC@B?o;}{jk6fC!<7gIl= zDZe1R@Q@`-@XUDHjVg;MQ%^H2nJYB-4!^SE+F{$bWNGmyiJR`Md)czz>Sd?bxNmTX zmsH&V@%=v%15<70sA0gj*>s7N)!ilg3fv!1qB(9QsLwygHu}sb3+J!K$UqvRBr0PD zX<)qKt-k>UF-LO~XOm645cpFE+%t*X5-?;e(!Vee?{%`;od@pfdJ1H9ICJU*iHwi^84tTeTKzLfi;q9yL|#y z?c|CFIxKoQXE*N!AO-t7fAE8mKP3uNg{ z6UHs;szporjn2*fR=3^EH-kB9ZYYg5!F0C7LN5hQk;k+0Yeba>U#mk}wx{{X)F}Jf z#Wfr6`(IQ-BAJQpHpUCT>?t8R!q7nSpF)WmLfA2fT|!>qP1CXJRy|0=C0I(a!2&mYv7^o>>#h9_A;lD^9Vi}CQF+hSZfDk(Z*Z)fBgb_;AI!V=_^W8*oC9fYO=KtR#d8+7WzEu z_j$Gq31_wBnox7~DsFrZ%t>V9gAeO0~M8HW83@PXr8SXF5WZPM$ZdqE}IhC^0M$Oakr2H$;zII8whSKTz#k_T{JU|H_%h?p8R)U_4fa zHb!PQ#rdjJ7Zsnl)-bTXDMRm4?%LbHt_+wx$QBTV73r~0yR?I6h z!okgCGb$gOPRQ*RO?C&!s?OAW`*Fh9b$%PWOSBE;aWagJvb7tXV#9@5r0jE@DVu63 z=f#P%aa+ZUDQ{(_pTFyREH-;Y$7>3{#4BvAAxXgAD)D15BXOY!FhST6KmB3oX5A|S z2UzqfCV(s7O+oxE6GTp%8VZs-*X;V(69js&oz{Gw2);RdZu>vCeZKf_v_DKNycEzP zB$`le0W|sR?C9q%;CMn=4h}K-0ZY2k^HQx|FM(Nv;C}1smU%FW_63gO$~q)tI)Vy!$u5KbvmNs;sP5@ zruFH%#D>)W=lSlVUu)gN740}+%J{cciyUN@Ecr3XsOLh%n#3BNQ8+VUcrg<9E6l8_ zLE>U+L@&EbXEix;^@8wJo2U7*;d8gh4qT-0txx^T4gw1jO*}k!pcV zS6!H1?5?c9pOp>2GV$FyrqPZi1@&iJ(%r6KWkT}mb%kl68nK*<#<_S6dzlZpgQWn& zfy|4+JrC_Hd*Cv|G=u_%mR5l+xCio;alX!14Vl->%+=9~WokumsCNKS%IQ{1WTtUM z0UXv~0;nQ>Y9|2F?4_nq55Xu(-3?f!6v&A3>dTN z_+1{(mR(#*a?<(Lue`Zx(th9r9fM^;)0bPd&OWB>R!1OE=>|>MWFR^hE`+nW839F< z2@~KW)Y|O15D+W7FGxK?D=srJhI;>v2fSyUkyCgOip=Zg_Ppx!=r7KA4Du?w-ElZc z0VCKO6rOXk@D_&hFEQovf`#rGiSujk^M*-*Tc2mmuKqZx0e+I)L7#|B_EyJjlizt^ z!nH`S$?p5Kv&|5Obg_7dB^lX%NUG&O1XlM>`dd^;ZM{@iS9b9htmPzO?f=;g=)*JZy&4l&|Jp zPEIse>W@S7%_|e#b3^(1odlSQPfdz}Zn?@i^JhhK{1vRn7W%km>KzgaD=@Y5bt#gr zR>{WAwij*U+!MwX+L?O);+L4fMB+5sxZyorKX?DVE`B_8b-j*$Ug}2%sbuB!9$U3L zlhkC<>`8@x1aD=>9r2R>=a-A{grY>h$!6MVGvu*ufC*bGv_aN!XsWh%BeYos@Wu%N zu}E|}Oe83XKqFcrgwWo|-%RL_p+O%;Q-(F_HuozQ9t#3(Z321~?L_S)d_Dw|ITRMf zj@|?zuGxpt*jNltcj)hT=>PLZ2vGY!Aiphh!ih3(@kLVws{H&JXV4bD|CO=1`TE8i zuO{5?#w6)d+w8$>`*Fwr38C}Tj6%{}fPTn>&#?HJ)z1gBs};UW@aQ)D<4zIiv-7bR z2S^#G>y9bEPXJe1aNZkJ=^J7O!xo5l4BYWRz`}FQ{iqlpLI-KIlp>1tg*c15d9(3n zq1k}KP2KnQZl|39b`IzywJgR^;wxUJY z|0o8G!JW`g)}yJ58zuVV(s4yxpIY62{xW&B_nfqZ9ah~{?$m7b-C}}G(;wNgtWjc*JlqPu7;K9JlAZbTeXD4+N zcdr&v+Ch92s*G$bjsQ~uxtcXt_igDMEt8SfcLqtgXL0nqB*0rD_#a$pWPT5B;D1B*CFEH`Az>xGrRdaj2^Is}Ge(GDjTRL%Sp2l1zeSYK(ZJzr zR`NYuyy&+bJz+a*b{H~4!UNTtrG*`36s!JJ+USS;BwfhAx~B~);F6$#lS4Nd5VzzyFux@#ui$ z<_p{CkZHp3&NKmq@UIv$_L-FnT3w;0Ja1`lZm9PvN3%W=@8o_;t<9oN@hga@9=?rP z_^jM7NzzXpqV*2ULr(dVlK`vw`NWcAdbMo9iA%ase5L>Qu3Zq#{Xc-825ruHt0FDO zd!A-nPMob&{BU!Xv$6g|UOJHYk~}v4265kG z&M~Kpt9A1?ZU6I;SIYyp0;VL(By^bmb(rHV53Wq>OK5dk9k)mfo(-tHcq+7j zAAlU*a&f}ZaR@w>8>c^fnaw~TeBQ3|p>5lVEkp}$a%>k7H-Rmp)HnI+wVSzx3st#S zCal`DKThB!U}~kJ#`iYb@Pk@t2wuN#tM}g_)|?}9t+dQ)aIoOVI)sm5F)y5Y-pO=+ z)oi74$BVL0TyMs#>`|Fq0~-$KXyl%yevtTbn9DbFRj>>P1o#B5w1x1BH6DkK51EB- z^1jQ+nuqmkxkSvuvnCYSIi+n^%Yew9rl`6O!VrThH_IKz%QkHp-5)Tmt=Xq;@K@lJ zxvK_-tzE6Ht<9Usas8Bl(n_lxyZ=b6@A69>+8YUiP(i#Ho7Y_Cl~;~A1fxv@c<#gY zF@4{2s;Dz4(3&_1PT00;@&0w|k>Uujrg=iuF=GHG4(XvdrS1X+2!N$5j8p;S<*Z+* zQwT=fpnkGp3H|4x1O#@cRo?h8jF7@&tqVGWd|ak6uGYWWT~P|en(NVu>?4lzP=y75 z8hG*p@&<>31JJQ!(DDCL*%te-pn;;{(-<3{8}r%v1)o*0d?zj2>`WkVa4er=Ab?~nRQ z7R6?_I@8K~zNJMk8*?|4Q(kWXFE=jk_sUV5Gc(g%UKZJ*mw1j8?PfJmvT@dU>bH$y z#86rD&G)L!V?mSDBNm`zx%|)6YCg7Z$rdyM%!W?Y;FXErvbrxr!$pVUhD~kGtL0G2 zcG!oQjqqxrkRSmEOiy3Xj~*T^go}MZ80W)+5lRILF{^tQM(c?NYMlWTlFFSAdIG*1 zGuv}xE6946`&!_@z~}{%FHQlSTUB%HWX$dkAN3$Jdl;~4%>fEEZb8k<*8s}5r6r)I zBOqbuS|3snLzotD#@@qlG>rel-Y!HHyo+Cvt?|3vXYxBOtpY?4p)OpS0s6GY`QfC! zjr&S(eu`|~MLXs*%YlC_+8mvBwt#06mT8lRy`MX8L$)aI)U+0nMKQB8#N)@j=%wjs zbSZo6XySw@%xI9=_C3)YQ%w6k)*wdqDVVTNIVZuNGA=F@4Drs8cMK8-A++NnXh%l) zC+1|cLqF1=27sQUbyjQROd{k!d@dsb#>qQMEC??;7)_@vUroHMLtcd6dq5?NitK#2uyqrF!BEpzkTH0NZ@b>1KYPkXl+oQfKVex zE+!BS5YMniQpZ^nk7nvaWRU=w94zT-Zka!#kFnATM6*kLpluJGQB$3#pYB~*9UpdZ z^&!rB|G|UL$J(6tRcFvy;Y8Ynzlu7coK04(*rL@uVl)z6U>3Adgu~pqF7(p(VR-9* zSlEEE5JaGA#=5iiH_PVXOFlGF9t-~xMm21_^hpWqv!Y&o4sv&2T`m#WZfOxdb$epe z6^w)hKa7iXG4vQv4?x9vZLRugZ)0QQ(nWg%0nJR%=ZY|l7t!~%ERJ6bM<8y*R})RC zLKKgYt2P>(g`lrhyYk#MZtp*ClAmZmGJN6QgxpgrD?^Mr+7^7dfG9iq8xW8w%9`G9 zih(KJ?hGD7ons3!$YO+KlGKKw`9~LxmX#Bd)(1pmXkH&p?`+PEY<{3%l1fAOT`PI+ zl_LKK`+Wf-U9j%Dhw;|QRcB}%Td2p$!zu)j1qO&^u=_$qZR|pY8@}WPuPL2Ey{O0X zS0faKF|LqGFcMDC~!c> zG3WHw+KiOrt0qAh`IvGZpEx$MR6!S^;cf% zZTN^3C&=`0Pd^2a2BB^U^qIl~NEV2$a{q`uD0*6))|cK2yJ*v z=an6dtRSb+0Dtlr+YV6l^hAH0g)%@zFgrU?uGq8Rp#L+l87D4U zGQsEba@HVeR|s&AV?xAGJu_TVx<08SQ-77d@a!noAZXQ`DR;>%x2mi&@Yt=M{_PZS zRT!sRy@TYrd&oWw_#5BaDEo?+iI1@;aCf4hA#NZk+!|3pqg1#8lfS@!yb(N(rrr8u zm4{c0px9Sw?{5UfCi6kc-w~Hpyp+|bgUam1-~nDEGWDiKSr`30R5VwQ8qdcbi6Uz7 z2$%!~pk%f@Dm^El=fYt`jD;4}@vEvvyt@u;r@>?b6AG486)K9Az%-a-hOce^esxR- z{6jc7k5^D=h3H5eC^RAZw&s8)xPZz~6DmN5c)1rI&}8fwW1#-%60?!#(?Tb$j3RCS z+_*T%7JP5`9R30rXNVlQumZnkX(Ag-Oui86-19!LE7(fFXN5;ii}rbCwb4Ezh-%u2 z;$91c-8UWEmEeV`Ol%z!r*7$GyL7@mhn%Fo%j;`DO33T<;WOxaSLm(-ERNqI%>CB9 zsbHALZ9q=w1RW>bLJwJ6Th6-v>WUtNI+gIBqsosMVvrdu7z8tL)k{MZp^42A*rQec z07nfEKuu{{{a!??o-j;-9_p~9&w>*c-lu`%1ATS?m=-`N%KbY$61`+lWn3bDV3t?3 z8dH`i%K@T&cX)3Gj*KVrY?+|8xc)nz%jb@<^joHE?#~%z-9ung6E_OiG8)kaJ~X1u zjl{ZRDuaK8OjwM{R(n;5A)MuqBXmrEKRzXO*Fj5bmz9+D(b$7eh z>yS=|DdM)FJ>^}MW`uQ{t+D2)UOYQyZev^VlSOiw04RQ)v-8T$uG^l41)UCQaI_#( zq(k%JBUQ~EIJ|GF&4e~U39O`8$zkV$ z6~PRSB7-l-HjvzvI`mj=G@)gn8Dg@(5L zTdjguTm4YX&TS>9FMorZ&KBdDxV|MS_x491c)Ljb#eGK2DHgPNlE_jcMA>CraJ;kon2M01jG(R9oGMv>$ zQ^Jl~cVx?A+n!N485u8`tKz|nVkHa%$Z}Db98M@JJ-ZYJf*F`%a2y!8f}#mq)Z338?B6jp5m>X7kF#+JC$4BC%rQWDc(N@0wf-CiPWF~(|6(kh@m zK__h4b4pEAf))_g1rwyG-1ul5eCQ>N7KH#L`biY_+_rZk0@)miVtBo1VP@K?KRQTi z26y2ldw~oooEY&R(?Bd19MslH-?yw@F{lNFg_A#o^N` zNbD!MAFRmp+((ISSW?_qDMcpI$riIyH&th{D9({tR~#%SbG z%>@?*t6VNzzdH)l^rIr}G^)2oKJV;Au>4^|Wdqvsl4TNGGQVyZu2pl=26*B%>`IBL z^X<_=_63;rLsE!+(kCNAQxawa$+QH^wx^#K>4#3B(grE6B;sA#IU| zIfB{X9-$m9D5o}d1l?n8j?m1|&yp-Ls}?Q}{Ne^Ne`P&Uiq==JPoYNE=9I6@T&G(d zC&x5C$I;X+_mkgzP;mtuR+~+Yl~(>o|42^gI)A7xzctd#&bSr*E^|A{%5KuTM66aGRt+h%6t`~`@{U`z?3F)otS?`9@VDo(XN)#BiAmJj+=4zXm`miN;Uv`_ zoiSJ!F&^uT=*MFVJ4BI^TJoP4`G1E{Cu8QN~uw~Z#$C$A6`;u zYe8IWGbg2L^odk6^1UQPd*TsdR6P)l;6@7;Xr+ zKrS(tGN~8JlgB8si=?>jShcCw?h0!tlrNh)xM#u?qfk=&M7D*3LW*}gR~9IB=D5}4 zes^9Vib6hpNxbd@Ng56)pkQNz!3k42z9SpS7`L}L)HwG|)Lm05~#-3Bs-?(jn z9t>Hd$7%J`g_r!P&#A7^JQ)?x17XS8vcoHdG%|P8u=ixK1X@BE)-*j)_`?6uv0{YS zPnqJ>?YIY&`^uC1|Yc=^bdxCUQ%vyo(M)wPkl<#N>_efq13Ta!cS?|6vk_@*a~hpAwlIR&688s~eN2in6ShJHa4J z{APt6OmF7E~n?LI)j^{iCaHA!~8oK)z&Tq%CM`IF>k8RMnKYu-^x(-kG#+uI6w zUKzRkZ}|OhI03_I`rO@Tjb!>uRKd_K(C!PVj~QvU#efVB0=Uo87>H2fVq(@?eM*{i zxzH8+cdy6C$2Z?EJlGqaX#}5#75!c?b0-gP_20j-_it_YM>}jePFV9KYxLp2!lF2( zOjYc2^zTD}>_&_+QK5qO{A@hM58c0(IuVz-UOW#N(Cb5OxlrzjQi0`WGB3U?j^s@t z;W26a(8k%zAbE5HT?OU#zj|E1ft|umxgEhcf3f6AwTP!vYKCj}r0!6~B16#1pk{;& zEG$Bx!k@=o{5*(S;tyL4U9M{wdeiFx!c67jMD~;`x0n@F%lex`D+Sq(-6LfgJb)yx zc56PzaVswe4`3WVH&{&OR+UAap{JK!cb^k}AFW^*t?;lusP4$pA&T7v^W@8!y{fCL zOHapd)hDfGU(sV4<49HE*N*f(HIOleKVyqB!TZC?@m38c*aYIi|Bk_b+=*SCWO z58JKp5yxjOw0OE6XV&c!LQK$|1_qk$U==Nv6o!kTCL5l@PNqtx%KGD&*sJwq>u{I> zL@D55ArBK_ET_RZ{tXxxWo35`)6V@aA!^DNlElUzL7t=h7&kBY_TfPTi~3pedDZpx z+j^7Z?BAv-Hu=>3ny#0du8;N2)aYlKva1PRLC?n$K?9vEZG()5&|sp)MIhOO2qnBv z6*E7#{d2{^|2A{;gZkm>wdV8U^5eAY_3^W3-+6Lk0tI=CJVQ9MWbpw;ag=IiOv#p; zet=F+KN>bfgLCKr=%?9gvwgIx_OQ`tm%N7QWam7mG%I*;JzgblVqDQIO=HRXzDiD% zF~X0RMSPEcb}5@nU3crZVFJlHVtENDspr~a9IlCvvgX|HIDu4TkcOFf%uCQJ+53!NLcx!p5a+ZdMuAb*a>%_;kxU{kb3>_u*&rK^|q8!ww;Wf zL-G!xH7vI9e!=8h4Pgb~t`}2K5|v(xc5?VY!J)wm%_mHV&RS8|SeB~{kwBRKbiOD6 z@uFI06qldi=K4Qye(rzz-W(ZIRTKvb5o1#t<&ZMv)7K;rpBm zR?mTh*yWl?ePrJH{(9D;T+gl56O80?3W)?FK3CWehBmL>D`cU@a8#__cxHJbeJP(` z;nkyQk?9iOuU=7BX6#qe#tl1mXj6QueyE+f=wO9XCDdxam7-9_=NSZw2X~J6DtEF~ zdA?P&7JjaNk92tRV*iVormjp|@%5`M<%(%#hTi9F@SB84OX%Wxj-*>gTG;`y>^9#T zoB5>gWT1UW05LQtf*;CT<&WV5Jl1Zoc!1}U6^feV3rCfDK5*i0H2QmZL{ z9tMOYxhi29cx%FmviHn*+2rnyF(1rzYb3J0U~O%gDyo0%o7-YOK5-~A0cJc86^ zSH8K{K#-PxM4fhJH2$H@BD@9Z>MuEhr!PK5oTRR2OK5#ac~CG{Q!F!g(D!?Z1Fc%5 z3r4cNf0~L345G7n$4lH2oxgI+@!)&E=2U%ucn&!1t_MCY6#m%|RUXV|Uck;qdvq*u^8jvkli;$9F$LILc}8xpiQ38U3yK$Qjf8icmyL z!wB!W|6>fOJc|2l(=ey?cDQyqP&hmj5wR!;18 zQDXO8{~eK)Pw9H@%os=m&NLnKQty)wAulNn0VW=5++i+onjm`MJ|D+4*r}QxmP7LF)gw-n{v`HTWH|S%MnJv*#Z( z5qI$IHJmYA-`}+yA==(sJz6~46o%`YKG|ZHFyM-XPs@{!mv_m(VM6+Gl!D?@_HkywxCJl~R5T8W_A^S*_dfMU^H_K;naDnJSh z8$T=%q;DD>L7niG0;BtM)CfNdT<{TtJ@zpMTP}8M^J1F|T0gvedl;oD?y8{~pcVGo zP%a?9fqw&c*dQDI{&eS)F-D$FPeOuw8)|r2>3@&=c_BD4QNxVngR`&&ZE}A7?*B5s zd3G_Fbo_SOZ0`S&v}oV?yj|5SAfQNWzvg>7u-=Tfp+C_NWHSnW?${taoO^7TX{G)H zm7kOU1&5}E1M&5x{~t})z@1swEaPNi+n(6Q#I|kQHYc{7iEZ1qJx@5Xo!saB*1Biy zUvSnrySuBZtJq}YFLt$uJ_1YppWa&{8@)`-o}bQ0*GVUe%w>_bJ5?Pkv)Fr9M}jOE z=|X3r?OWD#+T2d(Kio|)8G+YOwNT_6v&x&JIZpv<=VMt8VLtJMtTuZU8D$FLalLdA80aw z4AE_|Yk~vC016MDkB2^vAp|NXAtufiq>GXyOC2_b!1aC5o`L)p_9P zM^2wW(G-7Iy>7MYv%7n@eXX)AODIluhCqN^csqKzfY{^Da#+h_^B57dw(~XwQALf@ z1dS!Z)njjs?zBsMj|3uPi_v&~Z<9dYAM6UdZX0vYYa8a z^iEkaNIkc%na4-#XYEoe0>jLa_f6^V7gp-onRskgvRmyA9dKf{FV@-2>qE)~YIxjd zRHYTTgy--#(+QwgSYf_APL0{Jl=ot}z~BuO!L(A8-qkS!;4Uy}rbq`Y2m`2qf?wSk zaym{T$dC6#+67@qAF6f!Q76=A&R;N;q+I7i<=doA(e2D|eb96w_Y|s?<>Tvu14j50 zbjn_xe6f|V@i1-Ck$e!nSA8xm#QzO!3dz4=Ao414lej6;6c4Yj92^8@j_*R5(2`lv zlADT7QS|a=Q5lI;#eg(tfCb?8(_uBgCV#kzQv=igV?d{_@AYYL#)F}9<``20c;x?{ z&BVsa^1ROVePK-fo~q*H(m(WE3oB^}E@RkS7HzfS&C0(z(zQ%?B;9Bhkc#lvj9>ZP<`J%u3%a}E`|`4TO~~)n z+T=0Vfb7}r1%AB~J_Z@rW9{<9(BKnu0xfBpNNYqMd8V|TGc~&*SF~ z-`z`8fsdOA!S9hVv?Vxu18icf_WLxmiREQcmekLG*%2zqWN@q`;YYf8=RUMM$m-<+ zK_3wFAUk}*aAj{SIT?bS;*{n=tsAbhQ-pHHZwUalYvW2&#qYaXqp*(E(F#Wr-S4uUdY0H>ckTX zrYYp)jV)bSr=Bn-MiAXFo{@9F>%_jn-{B?|+n5e6ZA3B>!dH=<26mmlh}X>xLO`C)K*8jP_W;sCZj<<+%1;WrWC1rh#*pnqd)i%)wqlar0x>*&nN z*(+W!t>b|~|3rmV{MhHmYiX%f#5?q!@9R-6(dpMbgpp>r*GfREKL30=v{2hMM5)|2 zTcHW(l@n4mPPExynlsa9lOfv8vwE8bI)00e?4eR_o{m;TVk|1h#gQ)3A97^P9!Oihy!8Xa#=bm_P~#m7u@+qdR_}-sm-(i*SL@1)Vth1jU5ioISe=hKF#ug2Qto zfwzZOpvcDlS}QDH7Z7exM$%BFrs1Gn=c_*F=2U8%#-e1#4IMW?IDbY5gAN+Pqdj~g z74VV7K)8iR)p~pMnCpA}dW{{qnJF0`>-(5e_&R0$3|gQy0-=g`ZzT-4bv?JVJNNWp z%wkL%9dr147+O&UAHGuZV`H*G-ujZedwx=R9^->E3CmFCo?MZlNm4Znowq z)Nz;5K6B`$oEP@e!YQx!-;$dyHEF2ED`nKMu0qW;x9EdkO06(gb2naG)$8x*s$+dn zZ#&LZ*;;&*i%1H8yZ+a;P=}annpA7MBTn$9ANr59>q=nTokY%{X#hX?@!u@Ds@f_W zMe0ui{PZX@1UIq-C|@qDqHkkIT=a-ng!i(&ueq%s zNKU5LKZ}x!2h8pENBYQf`8RZr=J>-gT2b|I$}J*T<&=k7j4oC=jBxbU5Y3;l*#eh@ajLo(oCL-AGYMRfbcT#^kha!HXT)~cHE>wR5vKDQp5i=UW}Vq!W> zGw$9%ihl&jxJJ|{)6=Xh4m>@5&8~h8EPNTUko<9-n*UD!HEnS}4L_1h?aI3CZb5@`! zFL+m!f1(HKV+uj-PR6dR|9uTU&NF|!;42RD#hVM)E@N`CJp-?+1=anD1^WujWtTTM z9RdkVKmt-Z`YL4eOood1l&73Fl2{3|#dJcP|2(Fly0MW=JV6&%f@MNwh9}`Y5uZ67 zbA(wUF3F}9`UCWLFN#TkIOU&T>h(UtRn9vDy-*>8^NEZk29*&o_z;AEgSP-Q6du%J zNsuCtpt>Fke4V`s-wIjdG*Gzdn8Y)sP;j=3v11Y#A*rNz<2$F1+qOMH{Tu|w+3@S` zr>ERCR1*MeF<{BQZ3>8}@%hI;gUPFwE*C79t52>-|4f!QU78qszT)o)V9cu;y>FzW zZLD^L{~ankph%4j!z@~d4#2je4FU=e>)3-R%mT?2e;Q>0d5M3wHdg+ z2OWI&*YRYWu>Zdn0LHRP#PA)WDpAGRo_wp`p3zTZD+fvLmG=ESfL9jADg{-{v8E2qAdxrF1D1GAF%^=Y=MMS^Pkr)|k&h&{bgRj54IE@RT_&Yg0XF;_PTSi3$##6Z;nl+GPUy6yO^Z#rMbAq< z#VFUB!(E-7t|o40$2-psJAU6EE$pspYlo*#fSyh+TB1%BiTPsP@l63ll%u6mhH~ON9;L z75Q%HBz#S-+x|t@v1{K+FKX$J&Cz3ftCo8!o)kkXdC$C*HrrM0PUsh+GTTEAzk{jbMJY5@ZK$9{^YP% z>D%48y~Fhhzl-c)Iwli!jRW7oN9NHs;Hk7pgkh&6#5FsilzHVwA-OHAX9$X&RyX}} zORVm+^`x2BLajFK#{H`svNU&_5V7Qu%z~Kd9=)8=7YSisAVHckzm8vyf)&KqJ|;qH z+#}a7a7vB5k#boVScDI*_NwALoLD&Hipk?tGWecz%UYI_9A=U`oR~td#tJN%n%{Kd zAm>o>$iNiHH_9iQ7x-4)PI-)RhFKnw^C0Jpyy00*G6;q)xF{uv?+kJFS!xts`EPuH zqD==HUVmKY5Zw?TkTMODjOueUn2 z2CSKtJq@2A#_P+8;K$3!b;PK;H&Y;_5Hf@ix>y{5Jd>s~Yc_v7z}K-oeNvQj_wD8+ z@%Bgf0kD?4LHlt79GKO!%?%J4BV0MG&Ua?nlJ|!2TcR)aJ#nqG+G_6I33hN%^(dVG z4sGj%#(}+YhCl~hA%^ihhPeG5*z1x<@XAH$wC&a3K6@82fG*VI%CV(zY}{WI$=$+! zRp;hGA|amswF+t=2A-h|J1<+?-I6|eSP2rm=Kbt|5G5^xieAIccQLleHux1iZxty- zb_hPFmx0&UA7bQaf|*LwTC~nn8R4^|J3jY)N|pcdGL&zVRd^=ekwS~%(qT)QE_dkM z;meRco3^x(RIMmh(g|8gnkc4KBq7DO5w?er4^2WOECAsL<0&;CQGmn;eNfbALjyW=h++Y`gKGLMn@mRFcZJi*|3iklhIx?uLwjvkc#HqPfVpqJZh%J6Uio z!c)`wSz-M;5uP+{T8slQ{C*kT>EgWJJ>bF`>+-2+Az|R9Hq4OC=D8Opa1wtI+bZ40 zM9{f!p6^S2#ZDPJ<0kL8p@Z6L+{r4{6BB@g>$b3Z`mv>Tis>qI&1)D_SN~}h5`^`y zaV5!WiswR4{j*T%*l<;d!TZh=MG-?v>5nUA06OD1tk@?Qd1&n;#V<9;4$?{lc*U7Q zV9EU;|Dk{0*vE6zdC#Vgul|n0p=ku@143->GElKfxyZK56x|}sm zN~!-Qq;MG#zVxdt$C^|Fqs(TQq&f1MX4uWt`L_vz3AuZHpGNzKTn)X1Tn!F-Oqnfh z0!w-f+UHd`=p=J|+|$%G#|Sd5tJj{djyelr-#y*Lr*Dlip|y|4j}q$IbDMmp;ZVhS z%Q|a4vCicxZ?}Lz(D>S*%J{mCZ z(#xKv1>lIYG|sDbiw-4AcUwFIUlxJ3U+&I-<8&)*Q>r+!^D%I~DtAbZ{;XPRE+x7I z7QVW1bK~FZ_AE}yiIy`+tfxaCGb{@KDv#NC{0)2Q&$sHQWaZ47vtsL#VNJ3Z<)xm+4BGQ()jonW$)`(Kc<9 z$iN?u1b`H#oTe~SS6OwI+U)W1yc};4NF9@B(xz7Z`b2gdn*UjH>)NZhSh@Kb5&{r> zC+g@Z>Doz)!}5%u(@Ug{QeJqVDZmp?RX(~ARXB+np(%nM6ZHL_A@aW|rD8hxA^V_| zD55Kz6Bgtoz-8b8l;?8MHrI)2F7$EqerdR(=eKMQ)rlej>69MQTs|#>cY#E%)!5A| z(NJG(q#-}8H~|7C@=R$KV;uZpgI#g({_7Ds}<-Sz!x$Fwp*5@Yd9l_z)7jCI4d zQ&n9Wqoi_v$tI1D!BZE;Tj@R$@wI#}BoLYqYn$}Ii^lP>Dix?QK#Bt$Th;K#DSceO z-wdu3GQxfo=~j)c#6`zwgp~>>FD3`Nr1ggC{z#>vQB%cGHB&WJHDy8lv8RbJ2jr}0 zXLfqs08cg9#c1~?XmA!vbIbD;g;XXBhZ74;W$~+de4FdsyW8A9Qzl28GnE0$$n4-G zhA<@XLyE{l1!}P=rt++su;Q!*IDz7z7>XcF!-j^)#!R88ieT1?#){%))u0TiKZ(Zf zvu6MC6kElP!7EBXTB{|QU7luCO278Fwx%a3TVpR5gd3eU`%}=BEK>uWxYe}wHYdy* z8+9RVA`~yT>-ilLuWL^E&C$jK{A;L<9)^1cM%8(R4 zI!K)CfWvIUN-5eTnND)D9SF7uL zhv@6*y(QUaPM$_tC<%6Xp$-PrNGlECg_uGURawrU#rc>=1p+^bYiJY9UE~xa4s#SK zk1$#=@2aP+Dpz;fDQcc3FmW3kTx#%ruSxh9;8>?(e@#$uQ{`ydwqD_d%;qq5)t~a8M_2=W@lh<^!I|) zAnRS0y#e~^47isf6T4uJgJTPl;F9ykayD9@N`!fm8pIaYpVxSAvy8{`UZ~(9G1|qq z(^H6`yq>=`e_9w-Ga2+AZ`IDk8Uz;eT64+7ymcg5{Mgw7eZ+W@_ttqNE$%>q^`~R> zbWSYvBJ2&%VfF;acAd`uy^3PjF`DrCI=vw{`3*4bb63v_FWs6#1LrjBX7U9Iq`vR1 zZ{c0<>tZ0e)E)vO43p9DTP%Hxlly&h>-t+N7IfAuc|(>anMbP3cmpVJn>mVh?$xYm zXvsp9PMj{%ECh?k1=lSOwt;7wTCKw}g3*Km8cr=!k92C;V7tZJ3ETRO(b ztH6CkXP|1+mZKqGj?goNtao4Z!|}w?hAnfZtg+)MpEK|IHrT<4!_|d^kAHVc+)_&& zHY|xQ1Q*`YrbZb%rSeQyUR`Yt3kh~)a_hS1eHKY;_XtaO%|q{A4Wy)IIjWeTgI+~P zMP}4BLsuSa<_U<`n6*VM89Q+0m~NGW>aZ5;DA|!*VhLqZoxNDO8Sg$Iz3a}F^Rl;E zX=ttEMVN1yW&hF=;Roh){?jz`)ImZ3vnZ zrCW*=K|cQFXq*S&w<&3&tQk#(Yzf^&YE*S)V<}Bmsa2MC+M}=761&J6!cIZfhW~n2 zUMy67i2w)*GQ{e&ncjc;N5bDP5~N=`oR|)~n(baE5uDfEV@_aW`3EGj;e|>fQ{;d% z(~GUTzOTFId^;ja55(loLTqsf=TuN&N`WxUm>1V9S(NJjPj)sb8c1-$xCK5^fK$gd zDF72E&cZA2h$|1^sgLZnd-N3B?n_2D#R`9dqMDaNYLcATu(5VUSEdk`XLl*3CZ(h% zrlvpz9m)iBV!_AlbFumQ$vDW@GdVK&T# z*Oz~qtm^bDc5pme*<8i?3#hi6+*?id3#${tWLibA~&3-V@USx9>EBVBS8mG!e#nrxFuPD^G+0L9?ePg z-D2zsr@CN%UKcxSK$lMD*M9jHfGAh9{c#gIs;Cn9bQa-s$kJv1wos9cbMVez;jI*nCalu){dud%nU@#H03SC5e}%uoWBA#ehso2&1xRYk8rhF5?RPR`js7JJ5X z=;1~E5fSiQQd$06Rv>W}CtSQ@v=MCVH=IggR~10;YXVyE>y*r(zKg5?Lo5-f>NL|^ z`*~CWbQuJlcjeHblc{BV5$1Sb$`3%r$u{IpJPMEY)j+p{zd`mZgdVhx%yVk+-%)oo z9&;Z)vOsrQ==ntD_{=Oamz+OV%lpz3o7PT%*DLT5=J9fF|E444t(=4+F~kA7Ef7fT zZ|;EPFfIw>WJh>*hq;25ZKv;n_d&N|Ia>UlmV-wMApC1P;Iz**Er*;IWD*By z*~p-VAf~1&w!kK~gf6G%Cbz(*wxkODHH*WDDM37i_JMM5{-RU&E%$G-BTvlhFvv#X`0tK;h^eJ|kg@l%vCd-nL}$|X`47qIKAL(CkVyN(ht{h2UcW0ImyCdIU< zl7`(DR>n*%P0h{cx?YtoT0eh{c9yPsmZ7%0Jc^_izuMP$jsdHRpmJt+O&&*BC2C03 z-(fTB-#!F=7T3o820u?%wFix7{F-8J+U#yq8~>LTh}Gn07{|2h>}KE2A|9UL8GmK@ed@ymkhv2 z5I*M7y@c=A`0zuNT#ht1qZ(|gbFcEO#w28gZn*ZRHMPWS0IG209MQw8Na46B z7t0w^+*^o=g#$g=S>vM@6+NjYe#%NNbi5D1Y88IjfkG zX{zwwV!_Yojgh0mM;~^hNf2Jn6GhK74ui{Ut}*x)zsZ5v9mzZ%q&xR@er^%KoO=^3{F2=!VqJaM}v6U51QeeWRsT|YS*FQ^~dParomdx)pQxu4`OhP-eu+1Go1wsL@mrIYmoq+CEw**EEgvw3S zJ`ij$b@Y%TY?z3ig9HiJ20jIA9YX6cMb%QpWA>T?>o8jm4VqL4A>`2BCnlc|qqLI{ zlclAVDBwr&0#3Kr1?^0l=y`W2#h13|HalNoq-qtR3=UG#DRlPb)L41Co9G}R{P8mV z@8u#kZw32r@Gqe)4*Cog=AG#pdV>~L!l#fP3z@o++SAMAMV%|ZMenj7U2{DW49{$1 zlv?INpF>7n&*ZTjn#&xw^!#x0M6!Oc)yggD<1sT;f?Lg2oQPm@YjAEf*M>%mfw>u5 zqsrMfrcIH@q3eGzkL}z1)+>qS$rUXUx7K)VML9ZU*gj1Pe`y?CMh)1yl^S%@K-Je) zbk>fbojuMBxypkgKN#5u1L;o-v}*f)Cgi#KPwc$QgAGCmLVu)EpoMRg4qQ9Gg7sPn zBJ;3U(NnP?yEG{%I_(2_tZkxsw5yBD&`3J>K$|ZB`edlu`D24n*$tEW*yUCC_{#&y z|33cP+YyyFhT`W6NE2GmKVlH0$Z;lycq(idQBo8ERFr=X`okm;#B>zhl{jir(q&2S zUA!g$Gyodfr{($GiymQsAgVP`1iRGiN!R-I;YFgMie7XkZZX=0C|yX!+9BJ^!u-Yc zcOl?L;CIX%3*A^fWx4}`la`Q;PM5)l)u_@u7Hey#)k12RVdB}8tZXing4;Pv#Hf^v zZ^TuwI*Z*4P6X?5oSS5q7NuiadaBv_>9eK1c8)+cY}-VeSc(CYv$90tOZ?K~jpO1kY{3^-=-SG^+r%4{3 z_uq+JX?x$+27Lx_hBEcf;yDT?syjxzyQUe>9R-O@qoF3?#N!eJgdX(J$ zaj~(fk^gOeG>W8d|FvJ_)~#EPu99l(ZR7X3b-n6=D1TSN!j29%X90!`h8b$2#W~j5 zBhWW@4hP}c7C~Vrh}oh5I>t%|UD*Xsj~rdr`1-MaIK9K^PaMUdY2n zK*XzE5%6b4Sr9^a=Tg6w(vd_WSBMVRld`O^z{65p3Pq@s6!FZJzleHn9n9QJvopxh zM<<`Du3#V0lkn-I2;3-fkh_!9cm3yt5N5?a26I_mVZz2e%z=COXU3pF3=M84r)UK2 zk2)(o3;r`EFJZ4A9}oK0dU59`E-1-tro4#UUPE70pb3YBmU0UQ&oUK z)Rkf&G80fsO(!edj)~|L6)ugT;C@s0te8Yx1-!=zDeD*k#ck&*0Fv-_cp$reN0uno z8kuWi8twV^(n~_{^=j}rRtUNs?ECM=^m<_R_;}O3S1}1>$C^c`A9)bvFX=D^Ea(D8 zjA(lzias*Tls4kmW)Zd#q`0B+geXV0=Owg5neuN(&%;54eIWc4@UkM9avxT}SwM{; zR-q`3GpJIzcZg$7Eg~{CVIY00-OY@O`i6v<@FwJ5L z5=#cWlYY3>ZPTuQQ!q|9>{8E*SDM(o#3hZ<%2Pnj&e^2is zUbr!h5ZD>Ga=P>+0m;A_+Tvv96>u%Y{>x%)4i7Q!DvBmqDx;=_m-|ME{xD0wo2%39 zv#_bh$0oM8{O>^MVd42a%-G&H3aJW3>=8R$9zlc?eyAX2F^gNbuOyu*^Z+~jh%503 z*i=T68dcZqsi@Mh<+8wF2!HjD-dlXHeZL0yJ}fZ$Kix9IkW7o=Cph~0`a1hIcHHv$ zqt>W%Yq>Y@2?|_UV27Ad!%&2Rr660+;{t=Kev~MhilqG0qBIp0L00ux%hd8yY0-w+Ua9)-Ggi^4<;zpKXb~S~@ zIS>6K+GDU0k^-S6q&mGKjm37OCy@vRj&aT;1Q!O$RD$Q%{5Q?Q_CgW6!$*M+RvjtK1PY;ItJAv|a(CK=!p!d!f)aWOf1I9rAPO^&=-Q>ZToNl%p5Dc$P&fl3s>iRj!ydsaOI;4-1?G0L!^zB zuj*B$Eyl^D0PT4;j)q-u&0_a(L`XN*L8?r-xn1|k)+p;uN?XfyxV1#v{7@ZLHaP>+ zz5b({pVo~1r-z|G+WYQSQuL>g+*6H1aan44nrc}}g;)TG6Qreihg@lPbI`ZL8A&Nm zv+2K#D%)o5IqSu(n(eg2^FQ3PM5TVCrDB`O$v`{J=GX`KM_EBv5vX<0C-*#okFPxr z&b%}VYef+3AAeW*#DlSFv;q>)Qz-b>ho9#X$BPuhjX(ma`{|9zBPYgh#;ZseetII( zMZZdQ`{12JQxh7RymKW^qZ*m|`r7(hTNzuw0&jlF;i9hW_}=X;!C7^;o&$*>n z@Pqc!IzcaHk29lzsdE!b>|R~*j^SI|Ou%x)b6*|$lHmJce8AHL(X&=Uts*r#OXl?R zUchtw_f3`aZ(MOnWZj&8C@@>%@g!{&14Yu%KxNDsn+JPN1PJOelr*yG=pzte5Mfv1 z#Bl*uHU&$sgHV8jj)#^KPm`O$b=xe9UuMQkC8=k=&hlRqmQ-f?pmuiz_nm5-D^UL0Las4`Pi%#r3d>4#gs5ojcU=9y_s@S5Q(Y9dRg zN^Gf9=A!BGCt;Z#K)XaQ;qgrUKwX;D$)mgEvG{yGuaEt&Vo^Gg1IX^8==*o>wg@ZU z@l9Qvw8CJJaG|biPDogaGffq&qy}Mc16OD|e8e7)}1foaDPpr;bl4}u@n{DJlE#T6Q)lJE=t@qq6TN!02B zvZDKbB?OWY?YJ2*CUl_y^1MqRy5A7|j+7_h)2g2OxN&y7aQmt;4^o@PT5@6Zap)z ztF=BiLhx0#01pb;ZStYd@tE(ErFuNAsv6plwm%=q_5}Rf7`oI2a#o)#mU>o8<4Q|y zn0p2~2Danbswm3RG&ndq)R1i9FB&<#o7Eum;Le>++6b6^ZPt2jzFSO6IlZ_WCIF-WkUxLj$s<^MeOy_9?(z-Of(iG7+@rnRAXHx(+aXnoBS-_~)A|h=@2ABE9~Z?2?R=nZ zCzIYbuJJFo6HiM%5fW4s1e@Gn0;{v59v#RxWcgI7EZLHnZgzY94({&md%h<*-<2Kqr7$LPB5yCNLXe2zp`2BpfDuV1nls+S8!_=obDCOPZBfDQOl12`LVH zP1Vymuo0*gYHt69yG}@VP@AKq^OWTdF9@y6p<+~jYG*Zs-b2x5 zybBd9ejqPPa6&M>{PxeC{`kYFIKD#aT2y$hmI$$@g}1|8Gp}rCRyAAt>NMWvt@Id; z%{8bsoIJHs`RpwD{rf}V8#^`?y@gPKaMWfhBQmguC))%897?Q0SO%2?vB4|ylFU|u z{=Jx*_%wt%rz%MVegWM2owZE-$6O)#!Y6Q}Fe>UXHa8@MKMg}zXm5LPrXwsHeuzcG za{dWIPX%62YFK`CjpOe|lx@yADuEFUsAwWnD0LLE)RnVXjXLYd;!tkQqjSd~lP)zn zd|0r4{@(fHBLKYyxROmBCS0gVU0o+=5YYSevM@9jPskiI&dh)eDthx4Dk*B)H_%RW zO3WkHtH{kQA0wLzP3aNI3f7XTvC(f7-;jyJn-g9nGt@|i8;TqOd2N}3X!_*fAO;^Q z)Ay@uB&GY`By~%?;gE0EC50FZsm>`|N=D4ojossBmpsCYfQV*%*$iwUM(0#~TW4+B8f zC!(Dc=561}=w}ds{4dUMQvyb%^;^1upNntv`$@p<^-!Wx`qqi_JA?L8Q<(0AYSgVO zjeF8G*3qtgz!?_)Tq7M?)QebKm1;tin3P&1>Ce9Jwt)AK=(_7|{T@G?N8lcz*C+IK zJ>Aq(Cwbz8sd2;l^Pd0xPMZOi^Q*7`Bds(suxl8Yhs@tQx{vO5RQF(#O3Io5V!W65 zZjo?MJ!}z%dOsr?NM(Z`)H2Ex z=@!5B$4lZ(CR!}A{rkqQ?;*g0ei82@h580D&E4aVt=J>gc5vGKM~;wAHIkk*p7}E9 zQKv+YC>V;qCwC**!NRPu&`@6Gv&?&l1!p!_E)aR zV|i)K))L0K^|W9eVzF@(TU$js{_lK73KH3s*4p{%a(gB8c8_GsBrUNLAuG>?w3uzo zacIwvqivtQ@bq`=RHK&?K|e3_y6|@J!{O_3R7$&euL&{&vL#5c$FOyET z|Ge|pWv2*D#10y;*BO$dra`Z9K?M%<`R^s5)z)qzJgC@t}|7oNP zg(`8CS6(je89DO&zWYAvzTfXA<@6m5Ou)HvC2a-#P@^qq-yj)XU4VUI%oZRGV*tza zlVr8HBD@ykK5Q(0wfE)jU0EzE6E`!HP)|>YXT%t^mbttXv7y%Tm zQ9!vd`8kB9CKtL?je7a|G%IYsGehR$?Q$HHqRhU@0J_ni?9269BsEGaQgJpGE-pAc znjaO;M-tWBEU2Q%N)dK0B^yv|F!~xOw_=%>@*LDw5MzH)J=M%OhgikUIOw4DB&Z7t zbuzENCLw@ww_r%6mz+{>v)LigquR!}_yolUxG#5;@jU&qQECyXhidrczhj<^H%G|V z`5aNEaFt&2HlSgTVvi!Th{1p*y7^VH;W{B1Dy*Z zY3D`~8+ileK>U|KYOJ-y_7)-dAw+Ys`@WwH)S3J+!X7;?-=l>A-qLatX7>^jnZkwM zQrq3z_JfVp#K<6_MmWNJ{(_91FUF}r)7GeluJqZXmdjkUy6c8DEK|*JBkVyYcoK9V z>R5{xUR#k>SsC^pvxE`dSPKm!;u%yZnt-nFc-u>Sa+|kT_>onsfua5LBx=J%P;-Hw z5AJO-I2gC}{i@T9GMBtLi*swLt!=e>(S3Qts4%DgmpmK(#bE($W{6pzPr2q&Nt(N> z?v&#$(p+SLfW^a}%Y~O9)$Nu6HxZn?;oI+1LiaP-ceN>t$|`1-ey>mrdcpEtOEvfG zmb?K|KRln^K3;U#yV- zGZ{II8pk|9(C%WqkIMxwt?{L1)UD3Hdbh-8AxV_{g6C(0@)&datKhovvBpWaiA5KUdSZYgd2^^(L+S!>T$F@?~Y*PumRg+QTGm$Ma{)+=5mZ z5m|ih8ld28$@`w$Ep*R7G@?tbMZqB@jZgrY6Z*vJ-N?ycnESJYBU33O&R_{thIgai z4uicLssi#=mo$}2b8o%(`{56%6%Zc}ANWTn;0wM~+}@1!Jqb&r27I&cFcMPu6u{6) z;POB}Q%2?k@0Wdv!TMWGbW3Qa#3qx}O^KMz?aUW#9Yfbz?O$GXvXlPm+{l-oSGWDt945QA9AMMwPq-3mh!M7`(vN8F}&WqA~-Oy{w!$pkVMxHm(DA$K!IME$^H)zH+evG70Y#oj&!bkyJrmtO#7# zmIXcIi%aH`CRO=W3KF0F_}+e&nR#}$ky?_OTC$Pdw%6(PP7nNRh5gW)h}$6t_-C1b zhUR>C5h@cKsO}1p<0?UA=g{l%#fssjWEz7?s9=KswJhD9PQ;i8-1T&+=>P436y%j?Y{*W03CeeB~4v;ybD93bZQGgkibp)XNmYFR!*=sa_hs$ zHystk@?pgn7JrXbG08G{3>dMv904qF-%p37Gi%`Adr85~0@)wGc$2NXT9T}AYJB5;XcIp@ z&&Ct_uwjl-bS77tPQ`FLYpZ4>`4%(mZjs);je z@-Ok_{!;%aHmXyhCZ3k}7Wg`hAPTq}OJ=P~X8jiQxqif#axd}nUu%J_0cQzX&P>$` zrWm)1qTJYF-68X~csH_JS-Q$^vEl7PT59StH)*oPn@x~w{28T2m#a-$7z835;nVKk z_r8xvE(!u;3RXem4<$o9RAFAJB*$mABjnA9TOS=G&M!-_bai+Q>EQJSyxP{d zg|N?FQ_~@7Q1Ua*^Qhubae@Tqz|*r4b|=Q5uC3a83O3lFj=}dHXy_7#46F#Ka1N)W*#~ilHW$7k&KXBrR37?@b z-{?7{m2f!;Kj1Gg(GItFj)ZaTM#JrdfZLS(FtA2~@HAoKnbo(EfN;OF?*ssw6oQLi zYa5Y*BY{gtQ}buCvRB z>@Z_*M?|+jBsdLPW_2eZIk)dA_Z`J82_?XWXx&`$-eB1o9jqs;u@uw)|FXMLm*umiOuS$BC82iDI{0=Qa=0YLi>q)(EEQWgd8G6%Kuir-Qea5BT^gk;xSxmrIU)H{TFW(UEq)ZUZNHIRT~5!-zuroF^X3=opiO#^KIexjExn>9zO1D#yK{g)b?1 z7b%GMb$?Qr2l6upOl3~P>3Ghv&!0}?@3%OIGft0}Uj+GM->_494SH!=OJm8BRmo0=5->QV;47xH+1ol@C!)UaU`XZh$e^VVqP-e$lo zi+voJ79OSz7mgzsRM)q4p(E#t7LpL2Xp?{{+|P8|`Mj2UdO&9`NrE6)Kr*szt@~s8 zeqklI_6lNP&4xCfZcD92l~QNi6mHrkgJ9F;EpDUMj*XC>gSRKm%3c2{QXgXMMY+Vs zUr>j!>&7o!dGta@yzZKZ4D^FWBtjG1H!=oi-4-Ij>CrFMs@V0eIq07ttYL=bL9h9p$ID zqwH7#sHjbe{NGn^GzdrJms*q8uce9@Qj+{&nx50^BH}=zf|_Exf*lbViKY;9tQ`UG zPfw_8Z$~~w*l-~MTJ^ihqpGz!-3|c(H+SQ^9N^59hAiqePKN8<)ym`W5SPdKZ1(~h zL*2Goj=gAu2uU4w*58b*97+N~2!;GrSHLv`7rYKh?-%xAT8IU1d;Q zU9eo1#ogTr9xP~Zw*bK*xVyW%J3)h62<{$W@!;<6?(T2DSM?s;A5>Ahb?e@9&dhZ8 zOgCkv31ne}3!|lLla1H=Hpg~i=;P&dhk8&Cy0~?iJiI8tMuqpT?2LIW$Ddekte=4F zw?#U#TM&*w-lY3&0u!GoX>Zj@EZp%!h3zSZBEMBZ>L&Bw>}PRv=gUe0`JsdyFbFU* zpD8?%`#QlB`115U$gtsTN@hvvHig~J_g;3s_M^#&r`s~8;lTErrT%7h)0EE zk{=i3g%sK3#7OV*9?a{+I`M6!E=X;VVWUmZE5&hmY2#5&H`l}-sQt)M1WEFg?wXsg zCn6?=Q`iN=jxg0yBb%)}pHp{WXvP0p(EN1a|GP4R$GyhDrB6tP2+tv+s@{< zS9c_Rd)+F?@ewxh#NdxtQfH3Rn*`eStJ#^r!7_o2WUFS)narpiNX>e@S!d|hZF3VM zofU`u0FKpW%kuKKY^v1-KgHlPg`PF54-@kPxY)}UWa2p)kK8bU`C1<7BNU%dQZGid zqZ?_m3yL@5x)E^A2i8MrPLkyj!GLE3-os^Hz|MWs+9rDS&ig%|KJl(GEgWMp=B2+d@~8S_pNkU*lh2Mw`gF3k2nji&egg>N%r*skklMC-Cp?MsZw%8nSgF2bPl z%`_^F+3)84?rH^%YgxB_PE0#|&!8jl3r<$)z@ERyxhJ%^E?Ht9=QkG@7vzS!76bc1 z;p+IDR>tf(1&`DSU~_`df!qK2_Tl4M|HD@F$^N>3Xh9m#{A;Z>TyD(k z%Vl;#9431Qx&{1W)0x}XINSKDCr0Egu=J)Z`hb>gqv4JI zEgADe@ie+h4W~`)2>@wG4cm*tu9ft|0rB(a%haDRs3O){cFvz^yImD1|1dN6Of(L>q z5JU+{6cyWhffXy;-m(&&%K3JAF6LoOdfG2GqPNt(}w4qT9wPb zrIi27Xh@Z@3^n4^s6gDlk+k8;%nnDx`!!~mhDrztq!F)rfwNO=U9byc9bzo*qGopi0_UK!`9VMf5-Fg!%P9bceR^-7YX?Ax5xE zpm{<~`#y+fg5){yL9y$@$gVNMqo`>Z>C+~3$kq#9{qsZ z%UGxU_mI5K6Hng}*SAD~Unm78KJ2viX7gBIxI%nRn}7HX!{lYUYuJN#09ugUozO0H z(^+TSvyk#OX#?k~6JNNLJbLfviw6gDY|c1u(l7(}4=Gr&uwc7E@*UCDQ-F||PsQ0< zt?4FD(c60>NSn63>);K~-+EE;Md(m?D{e#(xqIfPz<2LcRr0O8dpK{eqjB>9)HbQx zBTk>?n|$Aa7Z|?h)tRk#75thH!)&s40yiPd-qSncjYyYC|FEp^$+h_N#GKPW?cAFJ z(s-4|>N9_jf9Hemo}SL2%f8vC$kLlqleTm+}OL2jENwA4>bV$_Lp)E+X)5=zq? zS}J=^6k5zQzki!Uu7MKfSVdhE{8ZEUmQ$rA#SM4g2^1j9e~D&q<#8Uw#k=(2Dd#}I zlU=C!yS3{oMRk&$QDxkzAX_!wGAccwozrcnzTPvc8bj!)?N!Wbbn`X z3qoo_AfRjw6Vfn%8XhPFe;7zwpElBzk_PCWoH;kl!wx)n`n~714mn{_?rBph3Lz*V75)P>_9C?LrqN`n->`Yg`k(!wHH}T0Qs))#iJIz z2a6Kjfm{dwS2C)s?FVs-pTUnR?rT82N1*`#$S%(Ap#b=WkIYV5%H4m|`W-peU01BmdIm%6Yu$k{%6@>ICE(HHSXao3{aZ)N zn{a9CLjd+H+?xF;3D3T*TwlTfJQ=)Op9L~;cN~VYzx7k^mYtT30RQ`Z#yQcQUiE9! z(so{={mJ@a{NXQR_G^K+mvH9QMbBiqGNX8?H}XWq=2KbkQRfx=EZ+;%f z49pvOjG5@lL#!eEAbOlBFXT!!))GPYfb=>mp^J+oi;G}VOJL(DVT&szNT{bS+R$W- zQAZbB)KN#6;vEC?ker_aQo0bqP{JV0ea->H4#91MN?}nu`zV-!_X1;=!U`fCmc-*t%-V43CQEei%%VZX5~w4 z|GJ6(Cf2s0H{q}PvRH?XOcY(qP5kyRF@&#bixruJ^3*WgJ_FTKJdZD|V}m_NMDpjE zbzOUh2Zjw|3`d_x{H8n>7~?-VyvO;r_W^S!UWbu(n=L`P9NK&;Sw$stRpsX+0o?_Z zUe?%7(;ro)-Y($?@dpHf<~UlaCQ7Li5~)c;ChU+$z+URYl`>xPCG=ZW(vX_zr_w*P z36B4qZC7SB($1@yg&rSw6b0XRN@AN9PO~mYHMxzstL;QnauE&UC@9h5iUFzIlkVm%U`~4%egF)e(TE7`Jk+1=|Ib z5l6+(=xMCPz3`k^!Be7~gSM)J7fAf@Lw|nZ2cM?GrSE8_nuew?LNi4q(UlbxIjq*36C(nJkYC%I zg}U5dqEi~@hrM1(;aawq2OZB)sY@w~DKdp=B12u7Dj-VZKkg3pfeIRVLnbFaM{ZFz zD-!5Nh9vp|eVR}^p$EkM5ru5FR=nx@z1;DW^H9Q@6xTdLfk;39;IgUc56f<*Hfl`$46kf;V;Yk^>PRTvbXb5+02EIi8=+7MEY>w_OYN){KtS zf5Pvuv-K=pu=C2n3ZuOU{uDwLGGQ`(^zDa|iNrqg+Ml^^GpCupGp=i_F7%=R0&5HZ4jDaZph>WjdzN8KQV8bu(cjY#@6CZw^H|Fh>oXTx24%&T7OV|Qoc zb*uTq)vvX_hTVq!fC|Gi0!Sm5&XlN(yGM*KdUD1S>gvn*<=z7WIdUxqvgDx9i=le2 zVL>^VdC3$?Fgq9};dVy#v3s$L(%tC0Npz-H_ntlnl#!S^v5RPs*%G~~1S+PgP7S{X zR|z=?1hBlw{IdQDoDvv5bWg9n$SLlV3jR$yx_@S(-9y^*=@f?-%cedGPvz3XLcdU*eO`1e`XZdP4-zX^hdxx*bY2#PY^3@`KS(Y!FWGgcWF zuVlMH1~RRB14p}kU3@~ED{zVJA7wIDL^GKq`5o%{xN$wS?2e0i+QjBW6;-Y%4O^Wc zvIIqNQB*0SU|Ucl?EJCC-Q@JtX~9x-bZVvDVP)0a@%uq0cjt4o|9i9l)5J&W4k*qO z0odDg>Q-+3%M88cHUx%M4n9qx1hGGe{E`D%yHcTJ-AQM}RsK7$Co<{xKPz_n66Gjx zE&qfQGEW$~_;eBgp1ucN51u6i@?BWBUa9N##LWjhYdeVJy<47Y=t&vh%D#WQYrDTz zZnkfDd2_>;6f}o5&{8+iiaY?t;o(Ejz=4NeFdF~Hy)Pd!iEQ>(Jianvh#}9Za>LGK zNAy6+;i~w-{`WHkXjaH;6Xj3DK|)88&XU+>+C|(Q9zt{KLmJ@TbTb(3PA95S%MNpc z6~*0VtQFpAq;ZM0TGXuH2j{{rn@DxZ! zJ}?+Ru0p)WJ0ETjmK=^*(`xUXE8bqgT#+}@IZ{_rbZ>_Q@$5!@<&cR_T|9Is^eEi( zX_WfTr|9Clw{^U^G=7CtOxvf~ZA`9hpJNz_}mlW;p zr~k_-MkD)Ycjs1m2FIwqg;Q!pfQOVA4U*nv40>Q-Nz^cj`=w3R5%VzPT0#C>!kAta zBWkahSQXe$*!C4bjbrjNo!R)eEQqwnQ3t4WXpc?_zn#3#1RVw;U(LH&JqX6fRcPy$ z<$#GGYU~hf8JvD(FW*C&uduc!nmU7`C{+i|?S7Xgrq0e(Da=Jl!?PI>t~X8pHJxN( z#&xFYjNIXFp*GETRP3mb}N}VI`&FaMr4gDV2DbZo=yI3RyXvG>yvZ= zxhxZu7@gZFRN(<_9z31ROs#zT3Y!;6Vd2dgsX1S&Z6+;6Fab~<9a~-=Dl4C_BWK<6 zfxnszgxY&aoR(m!lq#-;ZK8zj3CWVe_B7+}1U4RCJ5BFwXAUzZyU0Ka_^29Kail+B zc04b=Ab#5I@$+fDXTmvcMLeJGYcJ_t1}Wkx*pO^-mpNv?kRyl5mGW$-^l}?4Og>}Y zZJ;gw`e4Q<4Ix62c*;9s%)e*<0+op9t{d@Ef$6(r zUqsr-f9s;4*d_kl|7qyL|9+4AMt?m$9uf6I95W-N=UZ&aZ<=d}x~R4WO}e};zN8aUU1$VwSwlH(-4OUT-lqj#8P!m#b&{>b;&akjj+~FVK{XP2yH+~ot zH1-!dvuzFjTn{L}JKi~Y7ZevrZRuAHxyh&8(e)nvx3P~$Wl+rl3<+Q{~LPA0xMeDNyxsphe9HDdAZdO)CURF*Hmlh;*!jFI zaqIi5+yA(m&qH$o1W*fOIyxef>50(SyO)Cl6CDi^{Q}_RJZd7EP!|gMqpL*JxoYPF zI;-c+76J~8?Qn{bo#=O^OSZ!>M z126QwyNE!76v#J5w$O2Sx6f5O*)`8F=wa0G>FVVRXFtLW#YvS!A0bv63Z^t=t&vuO z8M2>L=tUAdl#HHw&AmY(TPCp%{3Xj2drmmi$_U?RVb_bpf)Wst3)%N$V zW995wl=elLW#jgxXWSoY#l*#Nl6=8QX)``<_{pUOvUZcnnP9 zI0BkOC;OKt466!msj&S)l7N@9gzjhJ+wjBHkdDAj{Bmi@7>_jqgv}XB)&@=lgf6VM=y{Z>bJ@$mzanhJ|HaGo}{obQ0y!ov~wFJ?M9+ zoVMwxqrM%IDS-zIc`~=#9Lmdd6!WF%Ar8LcoLcy>t4dYNbQxNOVwt+5)y9S>M7Fa( zu4ESi(S=j;hd9zinM0LviJijLFYNpy#lqnd9C6OdwU_3d<=%B+x z`c+`$P&>Oy#!_0Z1qyrz>~&Hs1Sq3}s!lxgChop++|r})C~Wia=8nZ_$nB)8YJQ^q zRHsZyRH_b?MMnpQP4aYLFEN-YTAE01X)Od zQ$eJ^vu(fNQBpDrHn@wJLcyt>E;fOuS(AE@ZNb)CF1pMr;Gg z0~e7DJ&X-fp0uaBCIetmYU{7p%A*zn7es=?XFybxt}r3cU!J!~*^H0~gTh$%r=Bs1 zx(1$E(DZ&`%*m{q*WA2ZzF7F7zG2{_4)YYT?_MJjyvYb_vI76HMH7k#(mq31d;r(@ zF1<>=v|v!_DM@Y=mV_QG$E|%l-)#6?m2B{5l?(jRzPR^V%OL|{2auy{nN;a!x82V_ zMQe0AA6>hvswt_dC2{tgK4Tm61{$_PR2?_|D)qvB2~jvtcr(MGVwFse6`$>sv7^E2pMZVU2pEUK*L_r`N7%2; zHTO5YNkad9njI5Nt61N;3^D$#u3%=VhIF>fWv}Qj91lo#kbNo~HgD8nW@BUHWaIU< zb30yLI;xGlG5&b~#qNMR&dLNfb1t^2691DsM(xzkw{&_ITHF}gKSwU!QvBmHo-Ii% zD%X#zUlVWQrp7d~37{G#6furA3%7V4s@|Zz%_#^(l3lv}EhWL1bicQjWYLak+61Ex z-@8akTpBn{*n|EXWg*;< zkfNArLRty6>v1#QxG*Ei0HtyzC{m?~Glw>Wxlneh*uz356-&@WMq)m5&1WWvOQvYa zm>8EFME5_Go`E|3uMuOz?9c~J3=p;mB>$DDU_mx>V>(M34Chc}5;&CdVnkM1UHQMa zHNr+Qs0=}`mn5oI4`kx|8j7+OADGeQYW36%RJ``X`0LW{_wnlk_ak0yHCwp<;ypp-3w=mCB2u=Yeg1xKF4o-N^6TFpz zxA|vkvJT4_%-4z-5(5$p9&Jy5Y#v->l$~GjhJT~j_Oj54cf zak1;xS#N^}g+$I6#o}N6{*pvaJ8`}JMx_6GyrXFE^Liw|lHWw+pIn3N5jU!Eu+hr( zHkJD}=HB(e!mGFYWK0)xwAB3DeB)P6$JO}VjnK^4Dui?CEqS z6kITdQWSYyFwM?MxD?VRt2qAl6#EZ>*WC^tiuqbl&3|lNb-W%~KeDXWpKED=kVJ~o zDA;l8xch4IOQdrEpo#eQx#bPi^~$f{j6)GAO_$DOSQcZ0*@_J!rBtN!B#vB%XhuCW248Yij-?07CMz#6E>1{cPb0HQFD;0AnD)%<-$A0P^U4cv(KF2L6rd z6ZI1&;l2$Yv2pj=w&PXbelp=r>tz2alM?;IF)IL5RE=J`+^_T(z1oDFtg`aYUKcAj zjmq;Mwzj2B^A~JR0MCja3`M4cNb2)^Rpue<&Y$|Wc_I%~_H>?yGhCW}C}{jvj!IKs zjXXNuT{=PTt+mO*%tnU|p;t9WO!=aC?!SMx;3A2dAwP%@2Jv$fHys>G0m}{vvgI-op)RlOijf zHTbw;v~Azbu!)^M0;$q2FPiJbF2>7^s=zuD`?i|p2~o840Z$+v0%QN+S1HH>K~(j- zzA#{>bjkJNr^F|%0J$QzUIY+3OU`u!7k|L5wJTP_hQMHX{!?t3eu==SCZ|GhVn199 zTen_s_dYpaTe-PGQrySm=KA%U1QrVZ`zT}aU$3p{Mx?Z=*!Yye0fyph>IsPB<|ro- zAV9}Y2Yt5-dG~m+FHL{_@w(g|vRL#QOwewuYlxrkc>&Uv(w1%3*NnL&((_kaiML3~CWG8azbeO4YDFM&g(#)YZ zKUr;=?0eiM=S$Cw^0b`_L&HZj?R(I+UvNBM3V%%?;2?au2h{WNgZ(1N15Ub^t^w{S zF0nlLE$bqM(17FuYw(T51i069SLI(Zt2$T{ivF&~{K&QY!H_p%JI=ZF_Q|or9xV6HeimehDpGv@$cZ;Q(gtLjIx|wOQv?Urd1C_ zKgQ}KFTIuvTiNkRvmnSyEdY?W z`2}7eg14wTcmjOUYl)iL-HFf+<*#4W)9a}1u)?ab&12OZ36|XK!?KnHF$PQsON*6? zlJdFjZT;i3Wh&?bHA9s^b)juU$c>BRXf`BuAYaxf1UGU? zXJk#=;@INYDU=eai~;lnr*zAr*Q3`b$R-S1RSaI8jt1 zH}L#6+V@AO$6b|)k7t&ecexPMdus0;mCYGCKeGM{G7l8%u7QE-txWjm_6PYO#ezp@ zY=8VNOdfb$n^#z(5705?s%^5VX$`xqkm%Kfh$eE@=;>eJ%aCutDqKQTf-GFzy#wWi zg+D>8q9KF^BNXsndSJcUpmZe7B9s#sgieuqr+V~l=#qTNe0%HB5!q2O+3>xuJqxb^ zK;;tLTgF3fdT#R$ohR?5lV#VDdR#Ocv=yI7xn9+4ndggC$+C5>*^$H(z1!d7cMX9q z|5F;BPO=tp%-&VyyU(lRK`x=UU9?=kYsdN>EYK*4^iE*syh~6K z)+Ub$=J!v>FO%|z`+*sT1;^btC*&X~2`-o%f#ql-PkN2x+mmos5}SkHrTa=_g$r=S z96yD*JWp$mxg%|ovWNz~f`=(zS;r4f;gTr~(sl8QmwF3vINB6Zx-&pDvMpTE@l^xe z<#0C*j3X4O!B3q0T7y5;WZ|FHv&5GhrVfF^$|B1BOO6eLN<)Q7g;5|i%H4>9A66 z7d7+QwMfcM2FsRI?buUtmzP+}ev>}yp|?QrXr@f*y`&>xz~ot@MDC@Z;07Th4T*+* z6R&J=he+@h#uYo|22@XA3b@p}H$8;`plLlxmiORL13=aFc-9;Hl0X;1hN=4|k&bjI z5cCc||Mk@Mk>*vu-#-(*{?CM6rvJ76EYJa;kwy}$a)LD zG-xX0h=!4df!xigC|`8nlIG||_4KMfc))(LHFCU?>RiJg>Mb;w8>^@)U@NfF{I@d} z(g&Uo^t&AfqXxMK#U2_Kcx^@V^<|N%4yzQ@id=iC3ZMer8II=PGcFQ2aJe-ea5xac zL!a5${9BZ9Ia=N@IQj^E#~;|y)u#Fhx0Uc0@Xq@!Vam5zeX8RNn6+o2(`?1KYd`pA2>sNnxaPg{gHIG)DUY& zLO*05ad{)p8EL@h)l2n_#}jIgjLJn4=+W042tg~{g1|Sv59gJNolo1%52VZ+zBSWF zE_}KpH)4PSVeH7K!?$Qi-^Kdq65|(h7FtZp&lyHbKU?=BRrS;{h2BdYwziA)-?t%? z)6zbQ%|Tv55yuaLKe{E6F7$z735sOuopiaPqJa#?1(5pXa?JQq5LISO#k#;+IOY34 z@=WpbKZ`Oe5*v~W!p&Wb9wk$ub_K=;b~t1@Juhk9zR_=BC8xR}cAAmHLyMEc3|89+ z{=T($-Vu>{Bx|Y8b6L_0U9jes$5JZ{DRK18&vZJ&f`~}U^YNYYo+>V1qBywTp5Wp| zG#^jGv~l50^1p6C{5u!3m#(;N0XvGre1B2#K@`eh4Bj3OD)eEvTu! z$k0Zj_Aei!ys$r9WRb#RpP8|Ya9}}p)1NXXkdbq9a^SUDL^z-hK zJOo-24_%Em>}Q2ggb{#volt2|hEw{Wt!A3lg9M)V<1QXm09>Bn5B>aiwl;U8Qmpja zzNpv5#Lalsa{GXq8Y=@BR!mI<^A9}gaTFfB9fV_l;S;%rPVqxcQBcqSX#s3oeL8r` z9U9h?l*z@VMFc`nAxuXITlhVS1N$t2h57e)`eC8iw-tL#NGznd;iCCKCF<(lw}T?q zgx77bH#$4`=L@(B*4194sc?0%D|lK8F#3Cq-=Jl(E^>VAtjkdi?TvL0yUKjOvew5x zOaBk2<`{7CM+b^3@9JtZ=ZtW9gZ$yWKK`uekj3c6{g4H9z3f~5B{ZE%a5HK^P}t#W z-}c5uloYyC0;9CP*gbTEz2HFtBvbqhQ4pHvuPmLq9gmDKj*N^voclOG+;cOYoXs^V zz<-bWCM!!@oRP7Vk&#iZ!J^;c^+`YLA0Dlu8}fftFpnVH&j~!8!JnV5=Ci$2a9Ea0skjD>%26*e;vcn}bw z*^qD1f+BO3F+fbVFnMi-8Yc!vT3I0HBWtY;E$h3ma1x@I@7HET|G~Cxa&h#Yt4TJa zt+nQ<=_7H3pAzu=p!ddBeUj`ZFU=+KN`$zbVNbt`AKCoQTI%{P@Gkhzo#qf^6;x8< zpD%4BD!1pnQoQmQkIJD{mx;(kDKNj&2`>Q+8w$>k$-`vwR>7p0a-pr*(e zr}@I0ilt?@pqEAN9F+Ar#_`)^^P}B_TuFP`GS}E90f=?tDye9IwA1>3tec{O>u9|bz}sthon)uc`3U89-_t+~#DH&8==uOX$}o9_reCz<_-7$7sO?5!eM6$HfA zO+f3x37>NO7UU;6I{Bv)jdgZPeT)8lxGH+4Vc{EhA6w}MOByuL*#~tn5}dM0k`PLn z)Yt)cxF)uP#UU80VNdG8%!i7dzWDxLcaql~fFtNfb`Lw6BGyrjK|!~TgmYda_|^6n z4+=;KfvS!erS6=Uvn*7_Ts9i(4a8gI579P{F7G_7b;J)S01gbwc-;{O{fn3RLIe93 zQ>~5M9juTZoFeAJS3K!1n5{)ex^{>5LzZq!l=0)yl6(cRf2j9yPK5YSqPP|8>qPHIs z{g8~#JusH3B>y(WfG+E6w6r~ZK5q0s_95Kx%wQV<;l9cQ4aJ{S%(Mv{zt=SXx1Fw6 zJ`q*W6?XaXKUq|Bhxd!F520T~H+N0e?S{J-UJWs=YKOSgP;;*aP{fI< zkY9y_X0xk7?c1L#j$FS3zelyIRoDQrclxQOwQL(4tx<_S12%agAUGux(oEQ1pAcFa zdYH!r<#6jkJ8?Dd7d3W0Q19dz7e5(eW{7d(%I8TQSjw&uHD*LB&~i2RmZ^UyzrdmU zpGp07tEyn`uMQX6`)OCDp;Jf&UAk(*z&&+-LlkSrFe6hkZD^r2U#qbm6_hYLt0SmJ zFrh|c#xQenx+)9Ja(Q~!&li8;<8~qPwjL}g_0S$xO|K)mx8dFXyv}DlgC`_w#@H&V zr3T_gUv4X>CIqsm93xlIN#e7f%E|b<@qj{jzxO(@_nl&Bc~bgYzM*+sclG`VZ}dB* zXsP58Y`Q`)`_Q0f3BUlKV}O}o1qpMvhdywl9Pk@bjfS=GG!qK7@;zRe4JCn?Oyp8aVLBLo{Dky#?2zK1*{xPoc zaN&2ixwRS`uBg6XrAu|`gDAWkNtYm(Hm=*|aSl<1A57#{$4x{e4QD|L;H}HQeSc2f zKb92hTDQqQ9>e2>-o+*^?>fnpC(+{}%8J`%rd2J>lxAM|L^v^rH)2^WrumwhxH}pv zln`u+Pzdp|`E=>?9dV`q?Gq@ulQX#4Oh(nkoVE&XVep55o24wUYIO6M;F2GN`he@` z57mayD_RIWA;lZ+jHS9ufl!^Uy)V&ShmKG+PF^XJk~ah`d;Od9TiRAjtvpnKW#Kw3 zRKr323Ipb~CCArb7>AG(3S>ub)HT6%!RV8N0-c!&*VUPU8Usy_mKc`v{3U1#9{2ZY zMZd>v=L43`?h^v;UbPtoMYF=IjPo24-0tb zELF2<>c=P6ca4ozrc1vq;qnQ>d}WfTWf)#9Kk5JVJbHaBzA@g5tlt}QenF$VmZmcl z{Unp}<%OSuzqq@5jt4GJT1W6x%Jq=!r;<-Of`ftPaGhU1F4td!U);&~TfP1L>ets7 zPh0dhJw)0^5cuue=6~+phZFVHj=JRk8rQ&al~9YIuKf#s>Nbd#1BmK10xZC1V9kIP zg1?;C7FXe4$J*SdS|bN&4_Qz&aR{C^3TEYF0Ab-BDNR<2veXm8hlNkHm-HqZ68CGm z+Lf+{@rKM)HE=wBPcB*XveJR90IYC5?+%{mIZ_PQ&DK@12d-l>F@JuZ?h7s@H~k*q zx4%K|=AM~`5CH)25&IFF2PTW~MW{4>GJeL3_j5}n)Bs6)99ZOmwC#a>p8_W*PIgqR zO!#O(aDdLk8~kYMfEWQVn+z{ahjGrrmMRf>Cj9*YSMd%#x~JRkVF7=f?~8==L7~uT z${#7#SJ?>FJyAOH&kydXx!ZDZ{KsE1{qRP&&7D5k%^9f>%`cRX*g(9+4TR7V$W~2Q zlP$P6I$|lf+lzz|l6v1Am#=v5txABiC0u5jwihYuyU50%>Lh_2%~L#aM_<+Jmn^tW za{XRU6ouaBUY)G{=oQE*A}h)qijAsNNBwTM+y$R6`HX+!4VEx>{KIhi3%=^Z56Obf6Y% zYNmci#cbD)9~5fSL`qw;qN3=>1{L60YuX2yC(2BV684WWmQYbrdJ@2FO;m1PA(~`N zm_J72G5cJ+2tm3~^oRfSOy2l1BKycHenP@B)J(-uDcxPvtoos#7WLz6HpZN8Yp0D$ z^JnAp_v}plS4X?j7mreF-h9g$zpjmo2Z8FdHd|56fW%@>nZFP3cSG~fvnymRkuJaR za70$8r$Zo~xCIQ<`K$;jwn)Sjz)ey{oK#B3rv@D+6S)*NdGF)jTwZ5-?q>m*ft@NchPho%!zjC`bqkxknBoA@RkvqUWjqO0$Hjdn!(dI3lAt#1M(ho1`<=!S!B&%S+ zFx^$B&`98c6NC{YpgoMbrjW|WEo|&oLS%MEc$46X?O2#!*gBacD|ALGWmJTzNf)~Y zYQiW}=uxfdhww^IM0ozea%4V#vpCrHSTp1)UbS0B?(@mwAF>^sx)#GEY&7SCMd(9ued0r<@Qh>GE*Tdxe2VJ_BvGM@WxOI4-z6&DPn6m0p+-ik zLR$!?5lh*8zVw0UbFyibB(zqu!%udewRD8q%X1+*+c)%RP7uXFGz1^2--$>qV+Y~U zDE-@P);BD~d1zf4=J z9$-gr$!E9pgbIR$x2>ngP4=jXl-XC8eDF1_U~B9iB&r$j-G*lL6h|Kn(6Eq|gC1m1 z>EVGBD3Fr3WE*N9(m8ATIpf=&^HXiTu{m?Z4@1Sw<>A8qaD9KsIb*Ir-`2J;11&;X zHt&kSpfo@| zj^Hjqjn(D7r|BO1tflJ5r-64^WVEo2A1Q76GiFW)=qenyt*k zwZQ>1Ju+KP`G z5{(r)C{yDz3E0Pc9?^UwQ1{2JR$Py444cP8XIF&I|A|Mgf$yA`B zseqTq!TB4X`}qp9tIjaG1JgiRXsy-Nbboysb5@7P-dc3p#-7KP=~x*QD>72p=j5^_ z9gzj^0bZ8OC5+OK3hx^S0iARZK#i1`gJ=xV6r(O8S+a-q9w60SrKClb znlFPBpL%6M;7ioJ{~s^9J408LpE=9Q))m%%Q$t*&3K3Gc;YCjPBUJdXEr&!PJP-pUdMJkr)inS8 zaf`EL&1BF6YH^7^9pxYKDAclsA!Iq{KLaShVEZ;|F`6Wc;w zwf}XHHVPsld`|Ab%wZiir{q)Uayd$i~wy2uY_meC|+`s?;)s|R+pjL@`g2K7OouK4v z#4Qdy`yXW9RqVw%JozE9Tv2zzxp?meawjVbAyG4xDi3@aR0{0X;MEfApyU9qs7GvN zJZ~}w0K|IYHzhfxC#krwLBW@fPr6*gc#oJ_`L1O9z(uo(FF?^m{_q|?=`Nt@=0C}~ z3&EIm^~H7{_Xp#2GS>{h@fKGe9DJl2b+5neKLWT=eKBS2^dqkfMa6HJWxIkK>#jnl zX%qS5Z|9(0l)mn#U!V_i``T-wKX!Uwl*ju&oP1o)1vj>%%|HHjh@}%w{nt36BJ?y> ziKMaK>2Y_4_jU1eL;+LObtSjI%g!9xYq=4Ii#)kf1dflfCZ8Rnb#-SbM zlDQr*_WYE>=niICSp6Xsy$Ry5#DqnkxQUCU1f{Aq;q_(fxDX4RTlztqje;8Li0E6syI3N=4f%uKnwE zGEe0HvGJ~$+$mj-HV_1MCqU}qXr_`deJLOq$*H@-rlSSur2U+3AYZOI0XX)~jULy##}K_N~-0Yg+noiR(u(PLkC z#_etXczOAF8<|2pPc<(D(HFtAvD)bt+i1^!N=O#JUbS;B z{ean*y=eVM-zUj>tCICjR>*UoN}vRYK%w9Yncb7$S-sM-rh@x|u3Y!MPHD%;+O-{U z|AQ5eYY)~RFEUs3mAcLOk1uR{gMe<+6V9)WuZQ0;R7LNYmiUbHFWK9}8aWPXn?>VwwqzT@3IX6loTPbu^~%tJJZYvpP7 zLNu`XrP6~`51WwnW^9xnp$xtEHHs5}FTM3@vLV^mN^!6zk+vFgPiam6h^>@L_b&_&*0K%M`h&G&Jc|j{Dvi zcsdrV+Cr(S$uJb-T@w&`+|3o+)$g~tq1!NhgWN-oHNHZn-O;b2BX&6Rn7f-L8gO(K zV4VbLi@c1loR-iTbIVB=Do{qS=5_JBHMY2i@=`GN$ORLPbUQg5w?R+{yI0`D z(yF8c5^Y-eL-Qi>!qG#~BhW*!LD9qT67)B?n?JPnDdt~_Q7c>+mxtayebA)C?RV>h zH6phI+lkdszql7pT<%*>djX8|rPeGBdTsN~Cn_&cL3#gldL#W~x2wOu-gS1KM%GK~ zO74G6hMGLcqHI1;K)Fa9d+%Yx{eHahqLC~99xiZAOEbJ?yzwi6N?_UUZ+@alQ*XSOQfdFtE|?C?>3H&GDMCs&X|g}?kpSF~ z{X)~?zY?lK*nM4S!$G%r$wE*5oy3kp!W}^-$cBQ$IAA^>v%5Os1;$K-)d1fDwwL9u z1Z_SX@xVcNoCEgNbBJX(@2^VV#oHa&di@oYeu6a;VNl^8(U!0<4th)#yW-A#F#6Y%TKmp4zj~6yaAB)5!)uJodpVA!D%+!z~HMm8` z^kwJlk8`E!W!WEV9W@@)*7Fvf4cQL+HA#mcAk2lEyi3cHfvzqsqaZHXxI3hLg>V7f z_PbIn2qYUt0he>?wl=l&XWgVy%bv5VlX1w6hbW^dOTKEc=9}i)RM{nuZ^|6I1%04{ zwtdw;9AM5hD&+Pl+Ni?;&zoeqitbVmevwOAp9RkNx^}pazqh|$e8GK?I#}uB`gbyN`gPIr48@T zh07cj^A&b;RQIirhes$vO2avNH99Zq+y~47Yb<3uayv3Jeh~7(Wg9THntWkG z#8W_QhPfR5K6wKhe#`k69380}8hJp>!hT%nRSEuVZ4SvRsLj~ga7)Zx=#!14I)w{c z`LjCW5&xSo)=|o+-q!LElHYc=hsxW1`Z!^HmP) zp|ZV)D){z8uTt}*me}^qV6rqVDfpqJpyzS#@q>|znVXrJCYq^Bw}C`D6``)%-^cl8 zA>er^pgH!lZPWFXf$1$zs3};LkO2xHLK@O<{0J%5RV@#m;v-@*_2&5rR+^z4rDEY& zF|S&)V_sr{41`+0*BfB9UOXA^PfpKYmG&bArlQNjL-qx3 z7h;rz!kwP*3^u-bZ(O+BF1Iw}0!324YsXV&SJg<}rpY!DI;z~|o1 zjusgLGetoLjuu(^J68 zJesB!))Kv2SO0KY@#;hql?8hd(iAcT<54H|&PZBLdIBylJ3-4<$hjR{@3^0H)n7z=Dva+#sM{0&B*t6P;8@ zh+Fi1kIzFXprP5PlfIn1Y*}_J$h~V^b?D+iXQ)!|?Ti$$fEEfpY&@*TX`@;p20z=ugv*!kviFi=t1iQag@_~0!AOSz4 z1Z9zA>p!+rRC%u!%XT*&uVlQf&_1OPeFcGjSg1tCd1qVQK>??;75nn8e&x(`@@3=l z&E)e|2(kKG^TltiBSOvP;lwUzKj(ylVI}5t~_TusGkO8DsZ6DgXG5ZtOdgV&mo`^z*n@ke=rP{7;RVFKP-k1022vj6_>m6HF1 z$L0H(VfR^>X*XOK45D<&|8W6;Ti$yQUzZKuBR+4p(wEAe7|%oY(7Y{KzC3O;7l>nA3gv+l=hlTd%fT`;U=Y&ey|sb*trk6f@hQvO(?WxwJZ!@`WBAR#)S1({J^%%+Q? z19QPYEad-%u!%2O+yudI?>^`At>B#tDlAIRcsDV{7shcogv2P9_&GW;5JXlDE0<#J ztGxc>S)j|*Z9LDt>aUaCGL-L#J&!x0%EsYl665r5JOb(?SAmfYEn$~ot?g?|nJM>} ziZfQv#(n2@K`w%e7sze416Yw+TXt-#dJX!e6OLi`$gcnpnOtyfR4~L0s;>}SaG@bG zGo^Yl!0!V+QyGLN4#fIRAl_Z?jr^zPcg=6c;u}cC&lzd`z`~0MY99}=!tx*=xJiZv z1(lEr<83!M1dR`j$^B6U?>Y=f{%p-d7Krb)C(i8@Iwz_M_aQjg|e;o582Zh0}!tA_}J zs)H^^7eL2mRfc{SB>=A;^jkliz67GT=eZD}fR|^S0zdyYbt^lyUbU3x%CUZ%woTvj zCH#`T@&X&$Q5AAogd%V*9gwPMA@p`NfGYGBVhmk2#Vyu%Z3$l%XJg@XPR|a#YODaM z<|Iufj;2Pg{Jny8_)&$jMq1iZWv*_o*skxH=wFgR03C9VR=@Q=v$E{czPvgGuPVtBrG+_FQV$Uh)zl1~YWz zz3R2POylkO_wgq*DD0C$-U`eZ2PIg#Zw8U|K?DbO*>ArRA=-+Hi%Lv;Zo|ex$HKOr zCe;!Ge{9^_#3_RAt}0RTDme6IELs9x)*kehZ~2*yTuLIe*O-jh*!;hYxqydCZ+sUT zmKgi#ioIat>iXW#e^>McV-$YyV1F`wcOda;y3C4#`^lf8EZ=_Ha2rz|Cl)CpOX>o( z!Q*;pl(C(g-Xjts!&_>?H zX2hAw|3{Oo!L>QksbWCjMLOb4e&ffU?mB@C(ut@`?#jL5ke*73ugIZjm(A^T=7pyON9CDO&=Jws5L@-RePBh#!-mByJ z17Umi=45j@;CV{uV+1xKW{ZDwmn$){D$4V0b z>?^fW{w_hDhM9i@f1A2F61YkXb|x%_Qy7xYPe2JJJM5bf6Mzv2SI^BQiusVe7}1qW zN?a%rZa5sMZ$I48?cTU@-u1M^SCO+oH9G5~tT0}6QI%318A@q)OQN_Ru>EN5)S@q5 z-0-B()0ZRrj)o!D?jMh2Mha&{06Cz8>_JrWXPs{_d5Yo&Dr(tb<87_?S-X}we+-$} z({ToO8V}KTnCB4l&C*=u4paUm!}VJPjJsCeD<{mvJbZ({eT*^k>pB%x|+BQ zGgufR$h3f^;0ggG1m|0Rj#m|&jF!d@S&{_luTR+%1ND=5(yrn6mY!K#0nKCHL$xVf@a`i5T&L5-N_7M9Abg=yM3V>YRxM%wlQPB zO}|~xtC2s&&48BL3WGbFBC;a#d4#2q_{|v=} z*y~9A8$G%o=Se6F3cIne4ko_nmj4du~LF#zC~_n?g#1hphC+ky~?+DG+P`H?&F=CcPVPe@reOq*9( z>P>l3F{+>#YR7AeaOY7Al%*e!;62b9@gQFOQ63ORuNb#`XW8tw3w!0eu%`9Xmg#Oo zGE>&?e!PRY`}U-?sxG16*IP2?yL|`?_7f2zH)>vW0y+vac6}eBFVmHtQmVLY$s$-| zC^|j;--=p$w&YYuYw6dfzFWN*SR&}}GEt{dAwPoAL8Fa;zT-&`4PU!$ES3NTOi&6b zJOl`cf_QdS^ZM6yEE#t>^-S2<@~qi-8aFT6l&9zLfiE9K_A3$Y3Y!K_#1_*TMP1w$ zXwy5m%H%^}$v9v~;)kb!=KRIEPDmygfoEfYhqL+@;WM7%$D_*qfe5_K+k)U2zX?Gw z0&UP;n)LpQ`H!#bRO>M7-k8Lk8Ac3`+#&j+r;PvZBrS}&?MWpIbv3_J}YkNy{!MbQ5bqz-*z%m#{Z`8TZ1JdGD}+~?e1 z+sn-nU8&;i47|QaDQO)TsMQH?k$U1Ph{3su!e6fY^}Lh-i?Em7qq&xe14IPO+y)0a z_1Gk&i}mZzT;kSR>BO6&qo@3!@g_Kk>UB9=<#_LYS++YUbChaMQKg%SVhpFx{{X@%d13MV+d;Tp>RqH@qWw zIIqHM%p3p}6!k#9ASiO;>;Oq$UYIaouyzfEg&>8Ygl(DC9C@HPOOiWEC)l=AMgx&n z;9sv@ee=gL!10GQz+d`O&5^n(RSA7ytC`>ryM*wjAS$8wkcAlNW<&gw#GkI(_mb~} z;eIhE9!Z|Ng=nn7*i|22;s8t8tZPvjcjTd~i*oA0Y&o14mZL0Mb@26$>;Va=h&sXU z0v*R>Tub2iFK6a5u*1?XZqcyN&B3SGM{B)DAg*9QE7XBZFiJi1$bZEyCU4Zr2z?wP zRO{bHcUFBsi<*eh<7kefb-f0-HFAkV!!uZ3c;K`3V4U3BvHoiE(~HJy)M^y=Sk)4o zLP~+rTDh%zc+Ac4o`faC5dxRVk0t-^X447O7SU+2{VteC^~*nW>wE3Pf=?P-RJ6JH`rL zfJ!bIq-{tD6osP<7Otd$Uw7!*pe*OuYqrqps+?PrPDec&e;%X1od^2vMTGy>kd(Qr zK_Qk({hWd)p-sffL1>--sXN6HpAh^rBh6Rg9{>xA=DX;1x^ zMRx5TumAQ%HMajBC{LTMQXBNX#(W6@W4^=f zu}RSr))%xaX>?yN&vu~v!VudL66ebn1YH+3oT2sn>8&q-SB$bHT(1zhw7oR@1b6|m zF2}1v$XQ9#4u+GI@3^%Zg4$quk$sSZ;7MEGt+i|_KA|-V6tLZJvrd&GyoF9%jBpwr z5@!_I?QJpEl;;Jr{@JP>za zzo?N!&zg>wlF3YZO9V}cECaf(K zQQ12e|58TXLU0G-eJKs5k=2oxr>3dyIPj%))D2n-Kcrho!>l0d;|9ZKZ~#$w>QprZ zI@|ac`?t@rfC>mY@ka^~2uB$s@D!&W-WWwTjE>}1teT3tIE(wqWaXNWzn!PF!}6ic z;vb!k#p7@T?e0(n*x#h5#sv)5v`FumrH{t+51vbUBHLizu{~mc{L^<^@I$g(hb$7v zEzNoC^Yyforj@20eb@YBk7$5@fF3L1YB855vO@@lDRMVGN0=Y59;O$mirE+PosJXx zpj~#{+S=5j3rYT@GxV)6vvSS8{q!g>Zi7E4da_|AKAw;^3<8DJ_psqiZ&dbIf{(>> zheRL34&6e8(EDsSvOqck-bz*+BJjcOVJ`NpnGgg$>CxR6 zfK8y_)18OyO+C#1-UtJM{P)074LLrzg!DmNpPD{ek^8=zP_` zFZld<5=i2tphWFrF`e7#bV`M|?rvA9!%&x|t3Pm|c8dFrRqf^GzIk4$P}qpR_y(=L zSAgPZfeZ@Yl<0)SM0Y?9oI?f)!k5mHN3CiF>IdUSWCn5uufSEnkx6cOPxnDFqppYP zhwI13R)WW!-jT%#|K{itl;?ioO&}XX?mn97b z&_Wu|?;4DWM2ZxI@&fC+^<|-{02nPZMj6I6eOzSUh&f?V^V%lOGAAnh!e1;3Sy`7` zBb9!N$`1Thfg*URbvsmkhPs2d#F*oZ+6r?hydl*HnBy{U=Ti?#1)i6@oUvvbiV=qM z0_kj#II4v=weJ}yi{c(}g&-W8F9#e3D#;v$X@uu`B9{CXK7;LvyW6OHqWVPlP&7W- zCils>VW1pLZVZM0psgJ7OIno=zKlbN*NprI<2-+E{m}Z-7g>1k!KNIG`^PgMZ;KWM0a%;@tI#O?+1d>0U+hA7 z%+LGxxtR34ZoT3jpOa*9*ahw%*379&e|`S8xD2?`ZpXEAGhUTGfpD}398wkR;L?PV zh&u@l?_5%P_AmgE`~zQapY}9qxMt7n;d}t{NV|VzatXre1=k>6+rEed(qATd^RT9N zI~#v@{Vojpk)inKjN}Sx+1*dbDE2H3pa4fR5)ZdhyHY#SrBO2XQ-iK@{o(R__Ntz4 zGgI60uvgF8&AR47P!10sJZH?x3L>7qDpJ?QZk@;^A?Z=drtHtiJy6HksRPMV{2lu)wD7L+3-2G0wywnp-TQJ#O-J3(?5!!!9jdH8~c z`tM~L*I9~W`yw=uw)5eiGdsp#(92$$ZpWPiv?7DX z!GdKUcFh+hegUU)`i{h(%{t+s2`*jz81O``zsgdNqAx46IJ4)obC zAKEoE(CjfbpsU{qoMD_{#38Vj5EHttx~_PyRvmNJ48K}{gy7raiC{>C?@e*RIF#6~ z9wr+SdBreUY?#=pp^TFeoN7Th?~?V8vglqN2OMz-VQ{~$*wIJeuMeRa#Fz`S4^K2? z{nx8iX3d5N!{XZ~7+;rH!TunyIG0!KaE9fERQ+B~8h6OL&FC*cOW-(QKr5`~ z0AKwzbSQ54Cf^rGg6>zVQCcuJ!gpc7YMl|hG3yPF&y@U%V&*+x*zxfBs}M)(1XGC^ z87D~nX<-VPhH7+o`JNL1`%G+*ZqCsBDfhLd9^176I08i~Z3({la|~Tm9g}JijbMaUGC08C6Y937 z<2rejf`ASZq8*eRr99KX_4YFedX)7B5A#pEBLGJ+G3f4r&SouaPf|ZMVGffuQB-s< zIj}In!mUWT-S=6xh*=!fy7z(XihqmUZuxo{`l?k&Pd2h}NL}Gug*0@KJMV^KTiZ7g zCEu;Rb()M*wggSquqL(KFvyv!zn-jBqr0UORcX%0J9lpbR$J}_BW^ENXUf!6&073r z2AQ(@nSaV8t>m5aG4BL_yBU4?v4+rzoZ+ZQB3E2EOmeZ8fOHtjva40Swhg$3eu{#m zO~P>DDXug!5mgOMleK9fYh~y)ea*#~Mq9q~l<#%DUO#WERmc-89ZU}2VVtQ;m0gsq zGUa;@L-5ij?=udi^GEo*JlnZdHHQKwY2I8GVJG@=G?pV20Z2&P&?ZAjE{{eg`m`6! z#~6$F5NT0ZhY$vH9({yIRbHjAVbOOL76I=i$|k`RRMOu4ozd6 zxu@chvs{FA-gTHx#H3hMCLP?Aas(i95VAXnnEt1*tjM&;*Z^1Snv}$Y4os{B+=(Qw z2e?WoLUuW$9t=wLG4I7xVyFYoak1pC7xI#5~9um%oV{WB1lGy(?)Gn{yFQ&xs9a+glMA7IC)s6nNRxpqHfQr-J9`tUrAQWNRy5Jz(Y+7e%B`oDt$GgT=L=s|ylqZc&@?bxNTj?Q?)FUp7^TxmD z97X^mgZ6k@bVcjJ7Jj5;addI_3%*e7=1Q%1mr7y1_y1XlP8*?-#I zDM4>n&oRreHxW8y{2qGCm+pik@VHR0q~hDT0y0ab>gYg@oN1)PreZSbpUl1Wz9f*7 znG>GM^ct6b-TY3SEj`$=srf&sC^??TTM(a{-xGRObQsE)DmrSH*{0=%fpqY}teI2! zxYIpe3O=`;RPa60J`{>;*j7uGi)QOC(E2I6I@X{LQZl#|wqU{!7$bviS6_4YEGuRq zD4vqj-@<~CRxh4{_m(0)&4p7MlO54mz)%*}#OYY9MlJ`v&$+F)G;}#A%OyUSd7FKc z8XH&KQ$k285@4z-*)O19qPs8z2}{_{W8c}i$~wpt(jD(_juB%;^M)p^8`@aY6`!S0 zXbVD>CWd<3gL+t@fESq*s<>qirchMSa$5#FdF}*{r@m{sF}*!bUk*GH@V#IoN)VnU zen~)?#d@(Ri@Nc6vhDGZO28aad2)|KGrfn9;t(1GX7tXtQL@*z|o&IC5kMNT9D(|Zw2;(4^A@XxhFu(XOC3aPuz%Pu>-8wH@EMZ)&Gj6 zV!haV*8R)1tLin9_+u7IX`Em0LZ`Z&+ek|5uTYQpPgJ;2P#l?Yj(VA}rzt%UQ$7j$ zU1Uzp1Tzs$(OPD_zhg(TNXz_3(eQgdLjW&T-I+Ee2oFBDl6fuNJVV{Ax~1$E@2WZW zFAOCcKU;D*=Go=vn{7uL^=2$;M*zdG`}62VC*uCrjgHSJabGp+{^PnxHhmxXu#RI5av7Xt7 z5i4Rzi%2U?nPZCR5%4fs1y<=j7;v$Bd?zpYhqIh=^GKfA5nx%8-!9NLaSy2>xBufK zkvCiW07#|H5ca4Usgt`~F$@F=xGX*NN07N;xuL}Y1tC#j1n&gj{Xq$frf4-ix?zwtVo zDttqqFwu2=s=|lbp4&(*l;3d|6O3z!8f~#6b&BYCB3IGMLsX&FMLraeeg(bhf|?E9 z&EX;ggSbe`Ro;Q%?=n8Zr4j;IP{_z0Vb-a>c+9?8CkSLKo9u6ielRo>7rj?Fc>LXv zG3Z+nk~nUwkLea)?IA@622U#FJ}p=HMX#3oy?(QO1<@b2M=T&jpM_jgZdpKBqY#R2or^ud6d`;V5j6Q#g$FIi5w;6)z zvuk=;#ZRxL<`8)P^YBH0pd%=0y-&J)qj>%4h`4J~;QzP)N**~iwdcTi{M4L^*2LLF z*{f@S`hMi=k}5z&>yqeK)r%QYY{{R0U$K0jaSH^5E&rBQj#9Ef{&-o?>IRu0IMe15 zi1Z~YkmXR2L*WuZP_F4xMyS=cJ*&cdSX`CATH-U?`nwY(OE28J9%Z<6e8?AJVrCMM z{iOg5%iUMFsYQ|qVdORD7;%@NSfoawIhly3QZP>JEH^s1^?cd0j)m%2U)`~?8&W!y!0KcgS)?-{Yt3;#ZC^mORe^PAH zsK&}Lx4Kljn$G)pJOSP@us=FsHslZm@3qeQXkG^tOMJgYy zs4u>Y^bcv!GZpiT*3}fvFm8TO1Vb>Ka4~1EN*6hvdU#>r&q!oZLh#oH2eDywL_+w% z{r)jT6>%0%XLI6QQh967#xm5eaRWegk+4GHX%W1>Ss&aFn~Jc_{61qxJ};uE`NXEg zWXsKv%*d0JzXu*jhmD(cnQ-_`Aaxoqknx1W4D%wt3vw_53*>>gThSzx3pw#Ib5ZtB z5GDJPxdA5sooUxZ+Ut-x=wCk!Rp_4+;90&qS|<%}YcL10ugb6Hzx zE#*2!MYM%8dIc`rKYFe=Y+3aEwnsmY3xnGTCEKInreMzNm%x6`PmqbU;qTEcVf;0J zQ9pn+Oj1IV&~kjatX^<*i3Xvxo+MAL(9KE@ge zK9thUv^C7M@d)w>2=Z|Wa|j4?Vn?{>u@S|nRgd3RqBJ+3Ro+p1Klh1+p7z00pT?zO z%!Jp3`<$JT;WoRs>h!ftpK&FyPMX_2vwCk0Uk+*vsoUb~rHav1;i~Q=Ppa8b+IbJSVv# zR$z(@Wn&TGWFZ@Bbf#zJFzdlqxx>X)lp(Fc%^ z9QW%vIrXr=d)8`I@?BgYOT!7%P%6bf8t{r9V-<+*aGn%AK7^l72R+YHtF&*B^NIuE zFgtXm^TQf|F7SCHNBm%gbQ@%UoP4yXQsxgTOORL+D=XnLZT?H@Tt1J)dzN_W8QYB%0sS`jlP9X{@XSCtdvfeO zq57K@_sFNwE$~NsqwB&Cyv^66{AaT?Jks#7?*ix+b4Xhaz%IBgNlte{Ny3UBQf_{0woR_zI>*S*DEk`i-7!fx83dOa_vW zwz~RjCmQ26i{sWUOFx%%zRJymjiqgD_FGIkOrOqcm1uzo`YEuDI$&xuMM`J>!mf;d z%xPz>O)?P%mV_#%47!90I^};JoT=jfeWr`krr=NhgV~F+63|nq?!@NLwkjb;H2@SDOK$+u?ufHX8(Rk41 zmnrL(dCpF3m-m5xGR{Pf)6r?(pv3;|_usMEOg~@|@B%R$x9ni;N9>q@2hoyYzf);c zl}Pl;)QizcV?jZo3TAN9?bI#Ark#R`M|_H&o;~#h2@UyR>-RtJ;%LRAd$eTZ!SpnZ zePGwv8VwiYX^-=)p{0_rr4ya8WN(fiFT598r2@< zserD4mWG!eBRa%s9(CpAL}-I42j6W(cv7(TnAq{-U*Ic{=tN|N<%Jo92}8kQNT9yX z*TnnlOOdBWe}_Do7peDFpSV%b^EOc=5}gFgjPhjYRB@`_<@@T@7jy(S&?-&xA^Bxh zy_*^?r3QjBY!Y|alNB7@Ab3!M<;7zzwN2ke)F(g-e_0`@ki-c_mS~k3-J--`-1v=v zZ=LBM(mz*JjB3j_mPi(g84(6ye32XaT*o&^PY98a3ex|;YV>kYK{VN0mL~Hv({|39 z&CgPbe-x@XoJ8;nO{~j4D}qpSS!`UbD;^Gd$dKZ~yX+OfmO$}3+E5-80YiVwejBor z+2KNLP(iSM=(ly(f~P{~g)~`3Qt(MAjY+zt1bc9#j~*FUe8p(V6!N-2`GZk}_RNn6 z%-!=y>}eG!5&U%+;g96kC}sE7B&JM4ne-`=aG?xw=VWObaaSUEkeQK?p#mh^T-}Z6`5b}H>L5yy z)Y=VSuyUhE&(oQvh2Sf=hkW&|QV&(lkyxQlFkk!pi@Om{-PTLhWhMklhx2)yoTfqP z?q_GSW3N^N!fAe+7*CYr*bU4UT`~dHM_R>5@BXhjocebBXakxg2=f!_1 zABtYoej#OYTHC4XR@kv7?exh)f5ocSU}=lioFT8g#1{LQCYPfqG8MqVfuKmT{z(zF z760!Lv}KV_*q)CDbQ6h@k-qdr&d#TDUQf%uR>NXqlgq4E&j!dR_H7Mbp}vAd z^@U!vZ|COmSSJ6p$`?gE^NV-$#FBJsxP^awZKAP4BWH9FSNvJ-4yVY?nSa8JklP^Z zFZ*i@T<^=uX^i6UMc=`Tb*Fc8`C3fq_pH)`+xK?(P4`^}6G;nR9RG*YopZhUH<18cmE(X|;dJIe&6LN^R zF1NQXL#lo?>UF7_6QwO0YX~{$QGgqs?!@_s2&o9kVT2IV=id$DdJ2P!Gynpn6K`3S zgw1kK-y2bRIm^niq`9QJONFg&t|>4{ARU;S! z*kcv*5gE596qrx=)M}O$zRy!TkXZ?r{PX9vJedGL<1ldIp%WV!0!PQ(k$(~Vvv~6d zPtE27ViV z?$yB$$Ga}H!2vv67MRcL0&bZ!+jv$@#MqP`SXY{@FxyU6gZ&4NDgIoKMjlzM5I~wE z_4LlcM}e4OrW-W&9?cu{!j1O^nHlp*N@19|lz$F5_ro#M!-|0N&ey`oM9`f~aKT0t zWF~aB)Yfoko^W+uB_Sgd+ydd&h$&+A`n8p_-_SL10+d$L3H!L;0-MT5r~UFhYj-l; z=Fh&QUwRYmp+u4+)KaMNl)vh`AvlF4N@qa-$ff$nIB(tR!GvGR4XY3JSWF zo>L3F!|n6Xb?ITg^u>nBxOSI18FW!-*`r5WsN?^53J2hi-!WKyX}kS5{UKe30bsSn zW$-_wQ)%^|`Aq%{ci|{S*`Il}kaDH?{NAUNj+i97e42i4bX61W+*JB(~o zTAho9g{ZCfj|8xZdI>Yxi=($$jk<$d)@Adwf#>leaE08Eqg$x73(+b0ldT?`a>D~)1OIuMt7N#izm>KbN|N97|5CL(+m`P;(z*5s=3Hg;h`!AxZCc;M0RPge+ z1_7Y_!rCQF{J+7$GLwAB5V%%jUH**$J7&nl%F4;z$=KfA-rnB5cH@3EoJmeRee_7W zHgN_SH311VAvXTsh~&*)%Hc5ej7%fl*O`fYf7l|PrAjs&mk#<6iiz=(5f@bA8N9N^ zV;w_ZuPs)-sd%Zd&w}np-{d{n`S*Mm#h06J=UsCfmhItOKpt1N+`K&PnzX;j66@{6 zcOn7d9~iWv(TPz$VpVAu)|yVGD;;cIY!jqB6vDxw9_N0~KdWVZrmIl39mNMwgdx6v z1gof2jF0oDEpAMfZ$A1Fsno`1MD$RXb&FbxTKbe7HsW>7oh;kvp5{#5*O+gG9PS;^ z(Wjs&?9H@iW1+KIVs5qjq2=32^CWh$d}R zPlN{kGkq*hw$?LYqF#iBZF)nJ2Q%0&K*|(Lo~!;F*b!S2_MB*y@kP*^=ta<)!S!{; z{*M;CshP%DQErHF{|bZBzgH1@w9v>)wJwng-a@dIPql-V`?R}roxPjV@T2$nuwvW% zv6l+241^N_dVNm=t#p>+bhAtT^6hK4dDDhvYnOf7Wmf{&(we|)jh=h@qw?)K06=pakl>323JM(VcWx9x^6mzV+zTDgclOstrn$7=GR}O}1g)OYt7jgPG z&l%D@axGa1+O>wQl?vu+k!Z=9jjK=BVi2r@SY!qpRBrPBTsPjg`iR@B597O2OhO+| z9>kv)Dc0oGoW%7EjSL2pRu)PZeuw8NBZ?pYRw@gahyR`~%;?Z1WQ^}+$zKmPJoml| zeGaUyHsT}_&$i^)aM{;+8C0meu2d%UZ~?fB)U#;5QEgf+vH$#>7|B>_%a+lat8ugC z=)*gpx{Dm3$ADivxLLv0aFoJ#c?l7GfWHD}o_?Fa`R7+T$y-{&!6szLJ z&=}9Zm@OB`GuX(>s*^CZFtkORmYVw2~mGxIQCRhRt zZys+RD@>fUGLXi%RX!CKZ~E`+$oQ=fA}s1YA@x!Vb%iBk`>c3z5OFsaRA1OOfHj&@ z#iZnZv6jPt6yytb75mSqWGDY0LS!PC)r4swhpEuFWXV3SUsi;kWnP zAg3chCro7_W~ZO+0<(IkS>amAJ)x_Qk?`2CEwltI1QPPP1j2=ILE7Q!RS^Mju7w&rKDX7}E(-+Juk?s?>lBrC-Pv-`!P zNknEc;a(teSp?PV56YeQ#B`|etya~}qJ^XLdnhvzQD7+3k`p4&%{{VnOI5+pB|vTP zN9T+UuTzOh=m`9AxyW*q84XR2h!(CLjO4^6R*gOPA9p^xw%gf*F=I8<>eT2v z0oub!sZMQc?p-x;Ev0eyrMHLv0Uzs^9w#4)a@XFEmxSIXB%Nl+v41Shr-NXTh*@s^bR6)y96a>Wj4(D?-q2=&2Gr)K_sFTvq#$p zUnE%M30pWht*`jCkR&4F(h9Xh&fSoqp~$JKB(BI#nj6ZP`Q2xPPgMpi>Jv?4c(K=*byJ(gq)4qHPYAEvR>yCw)2HrfNYW>i z8KI^^Km01;U(r?t_zB!w8XIpKY}3Na4ij=&7!J*}e)oc2-s^ST_%{4;y>1|LOtS8H zgaWqb{FsM%mSePSW+K&Snb(Ne@g{Ip8@V-DsTgr_V0~8>j==-t7WKG=gU)U+Y3(u7~#>I z-jYX@Crn=E2zk4I9Q_5GhEJH=QI8n(RNcmq@x+NOJRn# z``S7Axs?A!zrp-v`1` z=N%gC)AV(Vs;ZjHM;}sGo(SSDeQKsc!ys#oA0XlscZ~8lPTpS7H?+h#igm<+(neEi z_nw|!x2D_!5 zAhy|~SVWy(b((y`{jm!xRSDiKqxgoQX#f8uL}Bm)f~quf;bCcfdTIP*_2uN`rKM_1 zuj^$>vD>i5M`qE(^#?nzUUqJ7cJ6AEhr9LV$wz zbZKuS*unZ;J&xxu!KV*=c^@52z3{=Ce3y6Jhhe+YMRx+n;|ysLF34-(FKIRt z8Fe*4v|zXxd}cR-95GU;-~0yAUI@ZFh3mi*C$Nl zf#qi9`R+Wr%C0I-6|%$1nX_Wq=$&z*ABv6~Wgx!D84MAJLY19aQLHZ70XIc}IkUwb zDGU@s>qGq(_$~|+^vm_RvuKX*@})JeiOq|;X>H^)I+EN_(!Xl)@5+gLr$FVK6fR~j z1PtIoG2`<8@$`=2kwwe*aEysDv8{w(U%8V`5tqPppY29oy*Gw(<78zx#jp z)91r^`ct2My7sDCt7_@1kMe|y;Hh*LpX4Rks~-=`GPl@Gw1k;c6Qje>G4s^ZE(TrR zvr<;TFj9Qa_@W?|Afr6{=9{pGSb^OOt7yi07;B(Jt#O3T=cbE`+Q5X4(7?yDgk8}I zm4R|HX${Lm{hzfDKN^GG8=aDLU2|&a|8V{3dePtijD$2|W*1z`wq`bTK)dPpdQ{OE z;Cpf|e4vN56Gy5tzR%e1yI(BKoa_2PovDWjNu;frp2P>(y`p*M8E$Cg9_5Ki}mp4Klx%hBS1KK#26*%#I zU5`+}_J~e*eDSJgWmp!`gcQfm2#XvYbK%tYmWFhtDyN_MJ9S;iBv+?Xh`%2`xw6c% zLr}BK@n2-22F;ac?g9gweWU%~U|Y%Z`u5=#oE1$ux4z=|5*czb7zsno<5Px%wB?+M z1QOuPfYWG+wqtLn4;}?wFloWL*!ck=pm%VL+hP4LJ|i2i0eeDOD}%&QDGA78GtdDOn`-mGUjfKx@PsGn-j;$(64{>#2T(tWD~X zJBKza+cghJR$B6(^+xuS?WM7!OAlnw?(q)1x8+Vx!%a`esk(Q-qfY0^AevB&-9JRj z7jWB~-}|?`_fN~*E6Fvkp1XSQ6|bSap$wn&@-=OUBFhvIC>P8>*y~vp>=Yy! z?<33NYneC5{rSdo0Bw1E|L=bKxOgo>ErBQ{j+(B3Wzr9H+$8*VEluiA=lU#L%X$Z@ zb@P02D6aSG)L5(J;`f^xBE|f;rHV{ZVMj1+#SJ5ehYPUarKGVkOW|+HtGl(!4a-}+ zQ=d=m`m=QUd!vQDp)8T3k=N`t$uEcb(!LY;6{Aj(UNvu$b4jc8Hl)ow9ZC;l&m+v*vn6K>kZ!h;%meGp#*km4$ zvxSRqC}P))mD=gKO-W;L3~^$9`7CEu~C9DdmYC&{9!Y>OuOUddMtJ;tDaXI z+fMvJhFB|eLQxp~fhTl)KEOMEEvuaNl`~WI02{_&B+0n_3~VDxS&XA0Wi~1R-qiez zv3`NXTX6N5;^w!?U^g59-czw75jXMGkQ z=xlF$Pnl!@GAxdLk)v8IM7y*$qBcUrM6e{z{ttLmh#i=W%JrMaVm zd&-jp4*#XUf+y;=#&WQR?>%&;Oq`P}dQ7``YW9rSq>5qh0&7b5Q_Wc~mRHxii(Oy8 z$#Zamp5k#{5Y`=hZ2d}gK-O-0pW7rCxL*=g7*KHO<_ibN)Xqz}&ecN{K#emvVBYRhZ}X0ls)Q*>qQRMQ_IAi{pC1 zB}XC)>RRTTqW=zxrc2MqgyrWOOTKKF)=vLmc9pGe&+pC-rCn8c+6N-v1x7!%Gkzx* zGq;4(sQuFH1t}$4xCv%&5-B-6W|P0c*Ov4>=5`ryG~uj*;W|jo@N#`wf#xDU5|;P# z=o`84-%Oj~HIwSBtm6_8h1wHn9?@!RstypyPhYI&e!A0Q3psoeIro_ymRyppq+~O|-`L#zdFtbA ziUYq&iQroru)8=+DA)sR{k>kfK;So(db9t%Mn*l)EW0NjAz z_Cu3{pqnjK5xViRjgMe@hr7+%UJ6lpiRBGLcJc`JgI~vWqO@g>DO95~Dme{T= z#*b7g_|1eA75e+4)xP44Fmf~>zm;=febUws!w2#GBT-Bz9cYFBZtpYXjU5zEd+hJ? zYIU$7kA_CNrbeA!htvLSn9V>Hmw>osSs!p{h!!YiY591To5{x$a5nu`52#Ip}tA40pav4q^y7e1R?>_-08o88m+^Lnn#)_hFmXMFnYtTxVef zN1K|}f+qi57+c4h)&H~;Z`~^vOHMHE z1J9YmguYbau`~h_8%l9qi@Krlpz)aC(?S3^1LW*{;Wrs)MjZn>-FM<{{0y80o7$+dmp3?vIKP8@;iz#~}P3HZE~|F|jSYni@QGCU3+ z%tg-DeR4N*Y-}9jP%SV`l3(p>F?BSaS1(qtMTg@E>Tth3sL8{96l_~ws9E@*pV@svEu2y)^z&2jLka_D&5(jXxdL+3!aY5?QqfX3NI5K zcf+*HcUEBA77Qx^o(VMwm=ltrbd$&0-MBo&B`5q{R+N6xw#tFyL5Ez@_;*`*lSq)v z#-_fY)(bIiweZ{Y|6s2p&Xh7_*?!pAVZf(izQ6zT+!RX$MwqAf4-PJt{bsa{%+F(K z(s5z|e$T5jB>fXY@t;-=0-QgLl1*0v-V%DWwLvLgRJN-eYxTQbK)3yg(H!-bA3kJ( z_`9*&|0-G^C(l!#48b0&S!&xFE%gf`lYM>1L#g(j=H9XDU#@&Rn!{Ov`nLo?a!vso zI{{6pT0kSeon<1+L+Y9)Bk}4{(yW)z!9a3};*0{}(y5gkM8@1xXNQLtmNe(JqUhZi zt3h&Qxf+KQM_K)MAvmG$bq%H5v+S}Q1^5|)kt-qdrv;nF+>ToZC>~WcFBpTNouK{D zpw63t?G8mM<(hC*j_0Yi;xzY+moEM?=gUN&)<^q_P1<(YArMj1zbBi{pfGnm-TsMY z_?LX%2y~vGZ@u}SmZS;_q&Yc4PYD5^m!&<;Een@E26*JLN6Cs)0Y5*+dfsA$xg;FD zFQYUm0)GJ6AF7%kCf1sDiseUrRvt7FK}z;+yCYny-@X|}%BybJznJGFs+0_~rWlhY zn`f}De(MC`yvx^Nz353|hlz4TX3c+RvRGX)&Lif!{Yl?OC93Dd{8Sre1cZk*0cOY| z*CR+6qDY zW&gWIRd1T0+U8b|n<_PH^*X%wZ~Av;!Jh|(0W`!w8diQmflf=akKw520a{v`A@Fq* zww>O7#vQm_k3Z+aCzt`(>E?cX(`;UWF5z}D7L)66Se)ShkeqL`qWA2hMA&*3i@q~I zvJ2{YSy{rxW!BUA^+hx?48`~DJF3F&^c~09#C#uq`~~b`TYWSkVaq1~`>dnVD<4#_Vw-_#P2idPa=NuWAxad{a>iEq_v@hAR32A6h0~((6hx z%*O4dJCPgTOuXJu;!$N;nVb|{Bb4xq#r-%1IV-D`O&0=fAnyg*He91IB+0^9#hA7u z&`AX4pC7lsTtQ13!A-)Sl0!k}f_--9bsljt&-VUZhtS3o3*0X94=H@oC4Vz(2zv~8 zD^K=$Fnl_RK{E8K|EpoBZ7Y$Kq6iLpDmAT}{GjkZ`msJ=tc2o9E=s)j4;S_U8o zkM%>19%Lg3_<2P{K3zdoCu}d3U*<+3FEvI#RFqW$o9zZ+GjT}q*+Ob@ zIx^c1$MQDQ$8XJShnD!9$p>!m)98;fga6n!5RdSf25(>BU4i!5fxKj1DsXA_fSg*H ziap)*Lq0^bTx=korSWk8ukW_TjRX&?iKj#16wp>fzJlnWr!~xUkbAGJW#IqeJpW$; z3J|pI-5`gx^Opa3w`t-Ez1}5*U6V^@;&AuiHiOnvkdBtNw*G<}V|wG`1wVW16s8#Ns%aSL zG|qTA+?X^^*yPli>GP+xIS9=}_?InzqzSt_0G0M@PkF~8fFa0-R*MaOjI4AE_6jN% zxtJaKwf@0ae1Hz;H*wL7Q8u&v!=Gc50lzI99}UwXPG>#bh)W*XDMX=fUVtMkP)a4O zdUJ$Df>i5rw|g3CS${TDpgVL2B!5i(kAE0D8RymY=k6^RGv1`%z;la=@RUQfL}g`Q zOW_tYi{LMXsdOXJvb%N|$J6my=99e2QK@L5-g8r2gVQCYo4egh|!QU-#r`I_; z)H*Kd`fmyER`HtZVP&E7;pVtvNQz=V-yMY(c1p0_L+yKrw@x9NlbRak zFqZa0z^a&KnPsI+uv37UZ@zCNO+Ssu5VVM#>R1L8*10&>&<7jn?#+b~eB(J)kIK-Y z#HMrgw))QX6MslBWVX{P-6Y=ySN5o|C9R*Uv{ton?Jru4?_~U_5cwxTi^DH;IoO$6 z(Z?glU+};8q5%9}$l(tWY@Ho+^dv@`nl>oSExr z!w=MB_HlDvfjP5#jb*Ed37P5$3R07;_m2k@#sTMkR-qZ;d_Aq}%RZKO^6#&Gq zQ0Sgt&YPWg`Uf7*lku9MYn$%ha8j@?2<(AJzgA*12!FHs|HHsH6)XAnKX4!{;(^pLSzbcvw+uLiGihF7D-S<{B)&hj^)8Tpq<(0;@c7vzhV|P- zTfb8h*=FvxJXXBZ7dz4HRQK%afEvp7O1jq1i`T%6%_iwM^blsf1hy&>CBeEhQ=!!sAZLqeyPLB|qMdU@6GR$q#D$EKEIcmaq(T~sJqeq zv36hWrRKy$V_MA$Ft z^E%o*ah_{|?IWS6%6J%yIMx7ec3>K6uv@DqUgJVG&gj4WtFRVpjw~Pw;X3(UJ~|qgyI)VvIlwx?2`_l?=$MaS3MKN7moqnIB#Ot)Vs(7PHjFvTZ{`f?OTU4l6h^b2 z@)7KyN6HvQdWeNhRs}u{J`EdOJeAl}-VsRueWNZDeob%^hmo!G=4J1(Vk7$0e#LIE zhKoL$BT^p6HN1P4z|7r@DAf7w&o)0B1=mxTVo#0y|K%Lp^_>v4=haN>PdCEvC#|2y zOFidcC`Ss&MMNp@`l+>3!U6zO8*)cw8FLs`?hgI`wZCJ5HQuU*0V*;WD@Ref6<1M_Qn9K|Qd9W0qD- zpeaDi;FE2)^h!+)OC8*1W|TNHOrQ6D3}Q6OuAg;?9x@v@ z&rN7gzbYIr|37WBT6)&i_Vcv{Z=n2-{T^b%{8_hKYDA;blBDfLh1VT06K0crR599< za~ho8uGg-|e0XCa{3z- z!$cI_DIC6#{%e>Q3%?0=yk$t8kM>ON1Jfi2ag~)0vlg_gCqRsPJRsd^g0o@}h8C%J zs-5P;E)SksAt_mAnL@MU|A9%g6dx!pFjY0v%xGxPbF+U>h_vLuR9)xTqK`iqqPHnK z!sov;UXN97Sypao@qmn?*wta)lQ>SylR1LpcDRImeIjM+UcCP-J9^|v8nEM$b?JB2 z_$c(WTi)IlkUQg+?CihuG}H6J^7*!&z62Ic*~RKj}E*UNi`docF~q|m9Y9^Z9O{s zmsM@-++V@=unCZ7ejBn}xtAUknNnnikc~8nNBRBFFa-s$mv{eWl$Fl#0IPe!(Lo;#j)1!%;n!lrH}|Ba7vHMyfHl^0%At)cVHa@ym4Fe|8d|_1hDC_`?tEI(luC;e`6~1fIa@{F*TSePvd-K328f5Bhl>G$B|b z9O&%3MV%>d`?Miyqc!kdt*{D9ZzQbz90 zfXDII%iK(mr_1F>a=;S?R!a*3F7vvM;U=p1<4jU2B-8HR?Xyea5q5NZS(N_0Kc4Jn zdJw71F@_*BVia3nJ56YA}o7WvA?p>8IM z<7GvTqeLLH&OPoM5D-B@@DKgcBk96}@xR0lnA(}1_J17A;9H;|+8Gqp40N7+($+zGer!n^e90BvLJpD3v#}<6|F- z);{o7vjwZJ9BLBn`?(T5e@*q)Z)pwl4)ZaYlACTn&+;XwqZeGXz3<^=ZwWjuyJiV| zpX8mZuT-N+s~6K(u9<8}*Y=O}zj|I|3E$%Y3www&9wh^{;Tq+IczJ(bU1b7Vp2Yk= zk}E9=mFTe(⩾)kPU5Kb!&VQbfv6 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⩔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

dC?0AAS{#d6G9#BS0$n3MG#>jWIE#F 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 diff --git a/site/assets/wrong-efi/wrong-efi-screen.png b/site/assets/wrong-efi/wrong-efi-screen.png deleted file mode 100644 index c47da9ccabd98e9f5a847586936f8725d8d33918..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23888 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 Bv1I@N diff --git a/site/index.html b/site/index.html deleted file mode 100644 index 010268d..0000000 --- a/site/index.html +++ /dev/null @@ -1,1816 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux

-

About Documentation

-

This is EuroLinux community-driven documentation.

-

We welcome your contributions to EuroLinux!

-

You can:

- -
-

Info

-

As EuroLinux is in Open Core model there are also additional documentation -for our customer that are available at EuroLinux Support -Portal.

-
-
-

Info

-

You can find our online Enterprise Linux Man pages server here -https://man.docs.euro-linux.com.

-
-

How documentation is organized?

-

Documentation is organized in the following manner:

-
    -
  • JumpStarts - Installation guides with extras
  • -
  • HowTo - How To guides on various topics
  • -
  • Release Notes
  • -
-

How to contribute

-

We love your input! We value transparent and easy to contribute projects, that's -why we choose GitHub. You can contribute to this project with:

-
    -
  • Proposing a new topic that should be described
  • -
  • Discussing the current state of the docs
  • -
  • Reporting a bug
  • -
  • Submitting a fix
  • -
-

We Use GitHub with GitHub Flow. All changes are made through pull requests.

-

Pull requests are the best and well-established way to propose changes. The -GitHub Flow that allows us to provide reviews and discussion about documentation/code -is described in detail here.

-

Use our specially crafted issue templates: EuroLinux Open Docs issue from a -template to -contribute a topic you would like to see.

-

If you want to contribute with code (we keep documentation as code), do the -following:

-
    -
  1. Fork the repository and create your own branch from master.
  2. -
  3. It would be great if you could test your changes with mkdocs (described in - detail in Setup environment locally)
  4. -
  5. Write/Apply your changes and commit to your branch.
  6. -
  7. Create a pull request!
  8. -
-

GitHub Labs

-

If you are new to Git VCS (Version Control System) or GitHub, you can visit -GitHub Learning Lab, especially First Day on GitHub -course. GitHub -courses are free, interactive and put stress on practical aspects.

-

Tools

-

We are using mkdocs with mkdocs-material to build and style our -documentation.

- -

Setup environment locally

-

Because MkDocs is Python based, you need at least these installed to run this -documentation locally:

-
    -
  • python3 (3.6+)
  • -
  • pip
  • -
  • virtualenv
  • -
-

First, let's create a virtualenv, so you don't bloat your system-wide python -environment: -

virtualenv -p /usr/bin/python3 venv
-

-

Then activate virtualenv

-

Bash: -

. venv/bin/activate
-

-

Fish: -

. venv/bin/activate.fish
-

-

Now you are ready to install MkDocs and other Python packages: -

pip install -r requirements.txt
-

-

After it serving documentation on your host is as easy as running: -

mkdocs serve
-

-

To build documentation invoke: -

mkdocs build
-

-

It will build documentation and save it into site directory

-
-

Please don't include site directory in pull requests

-

Because we deploy this documentation with GitHub Pages, the site -directory is not gitignored

-
-

Markdown cheat sheet for this project

-

We created simple cheat sheet for MkDocs markdown syntax with extensions -enabled in this project. It can be found -here.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/jumpstarts/8-jumpstart/index.html b/site/jumpstarts/8-jumpstart/index.html deleted file mode 100644 index 6d1c985..0000000 --- a/site/jumpstarts/8-jumpstart/index.html +++ /dev/null @@ -1,2204 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8 Jump Start - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8 Jump Start

-

This document contains the necessary information to set up your first EuroLinux -8 installation.

-

System Requirements

-

x86_64 (64 bit AMD/Intel architecture)

-

Minimal and recommended requirements are following:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceAbsolute minimal requirements for cloud deploymentMinimalRecommended
Logical CPU111
RAM768MB or 512MB with swap space1 GB1.5 GB per logical CPU
Storage5 GB (excluding swap)10GB20GB
-

Logical CPU means Physical CPU (including Hyper-Threading) or vCPU (virtual -CPU).

-
-

Warning

-

It might be impossible to install EuroLinux on a system that does not meet -recommended requirements.

-
-

aarch64 (64 bit ARM architecture)

-

Minimal and recommended requirements are following:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceAbsolute minimal requirements for cloud deploymentMinimalRecommended
Logical CPU111
RAM1 GB or 512MB with swap space2 GB2 GB per logical CPU
Storage5GB10GB20GB
-

About absolute minimums for cloud deployment

-

During our internal testing, we were able to boot and use very basic and -already installed services on Virtual Machine with only 256 MB of RAM. However, -without additional memory or at least swap space available, things like -updating the system will result in actions of Kernel Out of Memory (OOM) -Killer.

-

You can try it yourself with EuroLinux Vagrant -boxes and following Vagrantfile:

-
Vagrant.configure("2") do |config|
-  config.vm.box = "eurolinux-vagrant/eurolinux-8"
-
-  # Explicitly disable vbguest because we are using rsync
-  if Vagrant.has_plugin?("vagrant-vbguest")
-      config.vbguest.auto_update = false
-  end
-
-  config.vm.provider "virtualbox" do |vb|
-    vb.memory = "256"
-    vb.cpus = 1
-  end
-  config.vm.provider "libvirt" do |vb|
-    vb.memory = "256"
-    vb.cpus = 1
-  end
-end
-
-

It's also possible to install EuroLinux on less than 5 GB of space, but it also -requires extra attention.

-

All absolute minimums for cloud deployments described above are not officially -supported by EuroLinux.

-

Secure boot

-

At the moment, EuroLinux does not support secure boot. The full secure boot -support is planned at the end of Q1/beginning of Q2 2022.

-

How to install EuroLinux 8 from ISO

-

Where can you obtain ISO?

-

We distribute EuroLinux in a responsible open core model. Because of that, you -might download EuroLinux from different sources. The two primary sources are:

- -

The only difference is that Customer Portal keeps older versions, when CDN, -that is used for mirroring, keeps only two of the latest ISOs for each version -to save space (single EuroLinux AppStream ISO might take up to 10 GB).

-

If you are running a huge deployment, you might consider setting up your own -mirror and download ISOs from Intranet.

-

How to check ISO integrity

-

During download, many things can happen - from a network or sending host -failure to single-bit error. To check if ISO is undamaged, there are two -mechanisms in place.

-
    -
  • For each EuroLinux ISO there's a file with its checksums and appropriate - digest algorithms. Its name says, which algorithm was used to calculate the -cryptographic digest. For example, you can browse -https://fbi.cdn.euro-linux.com/isos/ -and read the sha1sums.txt file.
  • -
-

When the ISO download is completed, you can invoke the sha1sum command on the -ISO file and check if checksums match.

-
[Alex@SpaceShipEL8 Downloads]$ sha1sum EL-8.3-x86_64-20210624-appstream.iso 
-6a8abaaebe288553ec8568bd9de3f5fda5f1ddb5  EL-8.3-x86_64-20210624-appstream.iso
-
-
    -
  • The second mechanism for checking ISO integrity is built-in inside the - installer itself. When you start the installation, use the Test this media & - install EuroLinux 8 entry:
  • -
-

Installation 1

-

After booting up, the ISO checking process will start.

-

Installation 2

-

Installation with GUI

-

Because even a minimal installation uses a GUI the whole process is simple and -straightforward. EuroLinux 8, as well as previous versions, uses Anaconda -installer that clearly informs the user what needs to be done in order to -install the system.

-

First, you have to choose the language that will be used during installation: -Installation 3

-

After configuring the installer language you should see a menu similar to:

-

Installation 2

-

Anaconda installer LOCALIZATION section:

-
    -
  • Keyboard - this section allows you to setup keyboard layouts, including - the default keyboard layout, additional layouts and key combination to switch - between them.
  • -
  • Language support - additional languages packages that should be - installed.
  • -
  • Time & Date - configure the date, time zone, enable NTP and NTP servers.
  • -
-

Anaconda installer SOFTWARE section:

-
Configuring source of the installation
-

Here you might configure the source of your installation. By default, the -system installs from the ISO image itself. This is one of the officially -supported ways to install EuroLinux.

-

If you enable a NIC (Network Interface Card) in the Network installer -section, you might add additional EuroLinux repositories and/or other -repositories. If you add EuroLinux repositories, the installer will -automatically download newer version of the packages.

-
-

'certify-' prefix

-

Since EuroLinux 8.6 the 'certify-' prefixes in repo URLs and names are no -longer used. These names and URLs were used before we started distributing -our system in the open core model. These URLs are and will be kept as the -symbolic link for backward compatibility. They can be used in some older -parts of the documentation.

-
-

EuroLinux 8 repositories:

-
    -
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/BaseOS/os
    - Name: BaseOSProd
  • -
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/AppStream/os
    - Name: AppStreamProd
  • -
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/PowerTools/os
    - Name: PowerToolsProd
  • -
-

For EuroLinux 8 beta:

-
    -
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/beta-BaseOS/os
    - Name: BaseOSBeta
  • -
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/beta-AppStream/os
    - Name: AppStreamBeta
  • -
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/beta-PowerTools/os
    - Name: PowerToolsBeta
  • -
-
-

Limited support.

-

Hybrid network installation from both ISO and public repositories -is not our primary goal in the QA process. Packages in EuroLinux -repositories are regularly updated, and it might be impossible to -install a system from an external source. Depending on the state of the -upstream, we might not fix a potential issue.

-
-

Below you can see an example configuration that was used to install a system:

-

Adding additional repositories

-

After changing the installation source, you will have to confirm Software -Selection.

-
Software Selection
-

Software Selection allows you to customize which packages will be installed. -You might choose from base environment groups like Server with GUI, -Workstation or Minimal. You can also install additional package groups.

-

Software selection section

-

Anaconda installer SYSTEM section:

-
    -
  • Installation selection allows choosing on which disk the system will be - installed. If you want to have a fully encrypted system, you should enable - encryption in this step.
  • -
  • KDUMP allows choosing if KDUMP (Kernel crash dump collection mechanism) - should be enabled.
  • -
  • Network & Hostname - you can configure your system networking here
  • -
  • Security policy - you can setup an additional openscap policy here
  • -
-

Anaconda installer USER SETTINGS section:

-
    -
  • Root Password - by default, the root user is disabled. If a user is - created in User Creation section, the root account can stay disabled
  • -
  • User Creation section allows creating a regular user in the system. If - the Make this user administrator option is checked, the root account can be - disabled.
  • -
-

After applying all the necessary changes, the installation can be started -with the "Begin Installation" button.

- -

You need at least the following partitions.

-
    -
  • /boot for Linux kernel and init ramdisks - 1GB
  • -
  • / (root partition) - at least 10 GB (a very minimal system might use as - little as 2GB - but it requires extra attention and is not officially - supported by EuroLinux)
  • -
-

For UEFI, an EFI system partition is also required.

-
    -
  • /boot/efi - at least 100MB
  • -
-

If your storage allows it, the following partitions are also highly -recommended:

-
    -
  • swap - 1GB or more depending on the system RAM and workload. Swap is also - required for hibernation. Depending on the workload of the system, it should - be at least as spacious as system RAM.
  • -
  • /home - at least 1GB - but in most cases, if / can be as big as 80GB, - then /home/ usually takes the rest of the free space
  • -
-

Installing EuroLinux in basic graphic mode

-

Suppose there is a problem loading/running your graphics card driver (it might -results in a black screen/error message or graphical artifacts). It's possible -to install EuroLinux in basic graphics mode.

-

To do so, choose Troubleshooting on the welcome menu, and then Install -EuroLinux 8 in basic graphics mode.

-

From this point the process is identical to a standard installation with GUI.

-

Installing EuroLinux in text mode

-

To install EuroLinux in text mode:

-
    -
  • Boot EuroLinux ISO
  • -
  • Press Esc to stop installation options selection timeout
  • -
  • Press Tab
  • -
  • Add inst.text to the end of the kernel boot command line
  • -
  • Press Enter
  • -
-

Text Install 1

-

Before running the installation you have to provide all the necessary -information (represented as ! in selection). It's a good idea to refresh the -menu with R+Enter command shortly after the installer started.

-

Text Install 2

-

After customization you are ready to start your installation.

-

Text Install 3

-

Other possibilities

-

EuroLinux can also be installed in the following manner:

-
    -
  • Automated installation with a kickstart file.
  • -
  • Installation with PXE
  • -
  • Installation via VNC
  • -
-

Please consult upstream documentation about these topics.

-

Using EuroLinux

-

From this point, you can use EuroLinux as any other RHEL™ based distribution.

-

Submitting a Request for Change

-

We truly care. If there is something that you believe could/should be -changed/improved in the EuroLinux distribution and does not break compatibility -with the upstream project, then drop us the issue on GitHub! All contributors -are extremely welcome.

-

EuroLinux Distro Bugs and -RFC

-

Submitting a Bug report

-

We decided that submitting bug reports should not involve -registration into some nasty miserable software. At the very same -time, we know that most open-source developers have GitHub profiles. -This choice makes the decision making and work as transparent as -possible. That's why we decided to use it as the primary way to -submit bugs.

-

EuroLinux Distro Bugs and -RFC

-

This repository allows you to stay in direct contact with EuroLinux -developers.

-

Other ways to submit a bug report

- -

Security/confidential bug report

-

Please use the e-mail provided above.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/jumpstarts/9-beta-jumpstart/index.html b/site/jumpstarts/9-beta-jumpstart/index.html deleted file mode 100644 index 56ac37b..0000000 --- a/site/jumpstarts/9-beta-jumpstart/index.html +++ /dev/null @@ -1,2165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 9 Beta Jump Start - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 9 Beta Jump Start

-

This document contains the necessary information to set up your first EuroLinux -9 Beta installation.

-

System Requirements

-

x86_64 (64 bit AMD/Intel architecture)

-

Minimal and recommended requirements are following:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceAbsolute minimal requirements for cloud deploymentMinimalRecommended
Logical CPU111
RAM1 GiB or 768 MiB with swap space2 GiB1.5 GiB per logical CPU
Storage5 GB (excluding swap)10GB20GB
-

Logical CPU means Physical CPU (including Hyper-Threading) or vCPU (virtual -CPU).

-
-

Warning

-

It might be impossible to install EuroLinux on a system that does not meet -recommended requirements.

-
-

About absolute minimums for cloud deployment

-

During our internal testing, we were able to boot and use very basic and -already installed services on Virtual Machine with only 340 MiB of RAM. -However, without additional memory or at least swap space available, things -like updating the system will result in actions of Kernel Out of Memory (OOM) -Killer.

-

You can try it yourself with EuroLinux Vagrant -boxes and the following -Vagrantfile:

-
Vagrant.configure("2") do |config|
-  config.vm.box = "eurolinux-vagrant/eurolinux-9"
-
-  # Explicitly disable vbguest because we are using rsync
-  if Vagrant.has_plugin?("vagrant-vbguest")
-      config.vbguest.auto_update = false
-  end
-
-  config.vm.provider "virtualbox" do |vb|
-    vb.memory = "340"
-    vb.cpus = 1
-  end
-  config.vm.provider "libvirt" do |vb|
-    vb.memory = "340"
-    vb.cpus = 1
-  end
-end
-
-

It's also possible to install EuroLinux on less than 5 GB of space, but it also -requires extra attention.

-

All absolute minimums for cloud deployments described above are not officially -supported by EuroLinux.

-

Secure boot

-

Since EuroLinux 9 Beta is a pre-release version and not ready for production -use, Secure Boot support has not been implemented.

-

How to install EuroLinux 9 Beta from ISO

-

Where can you obtain ISO?

-

We distribute EuroLinux in a responsible open core model. Because of that, you -might download EuroLinux from different sources. The two primary sources are:

- -

The only difference is that Customer Portal keeps older versions, when CDN, -that is used for mirroring, keeps only two of the latest ISOs for each version -to save space (single EuroLinux BaseOS ISO might take up to 8 GB).

-

If you are running a huge deployment, you might consider setting up your own -mirror and download ISOs from Intranet.

-

How to check ISO integrity

-

During download, many things can happen - from a network or sending host -failure to single-bit error. To check if ISO is undamaged, there are two -mechanisms in place.

-
    -
  • For each EuroLinux ISO there's a file with its checksums and appropriate - digest algorithms. Its name says, which algorithm was used to calculate the -cryptographic digest. For example, you can browse -https://fbi.cdn.euro-linux.com/isos/ -and read the sha1sums.txt file.
  • -
-

When the ISO download is completed, you can invoke the sha1sum command on the -ISO file and check if checksums match.

-
$ sha1sum EL-9.0-x86_64-20220225-minimal.iso
-73d39d443e27414085f7107fa21dd214d28b8730  EL-9.0-x86_64-20220225-minimal.iso
-
-
    -
  • The second mechanism for checking ISO integrity is built-in inside the - installer itself. When you start the installation, use the Test this media & - install EuroLinux 9 entry:
  • -
-

Installation 1

-

After booting up, the ISO checking process will start.

-

Installation 2

-

Installation with GUI

-

Because even a minimal installation uses a GUI the whole process is simple and -straightforward. EuroLinux 9, as well as previous versions, uses Anaconda -installer that clearly informs the user what needs to be done in order to -install the system.

-

First, you have to choose the language that will be used during installation:
-Hint: since the Anaconda installer on EuroLinux 9 activates a network -connection automatically if applicable, it also determines the default language -by the automatic location detection feature - in this case you can see that -Polish has been automatically chosen. -Installation 3

-

Since this is a Beta release, we might need to confirm that we are aware of -this fact and that this release should not be used in production.

-

Pre-release software

-

After configuring the installer language you should see a menu similar to:

-

Installation 2

-

Anaconda installer LOCALIZATION section:

-
    -
  • Keyboard - this section allows you to setup keyboard layouts, including - the default keyboard layout, additional layouts and key combination to switch - between them.
  • -
  • Language support - additional languages packages that should be - installed.
  • -
  • Time & Date - configure the date, time zone, enable NTP and NTP servers.
  • -
-

Anaconda installer SOFTWARE section:

-
Configuring source of the installation
-

Here you might configure the source of your installation. By default, the -system installs from the ISO image itself. This is one of the officially -supported ways to install EuroLinux.

-

If a NIC (Network Interface Card) has been enabled in the Network & Host -Name installer section, you might add additional EuroLinux repositories -and/or other repositories. If you add EuroLinux repositories, the installer -will automatically download newer version of the packages.

-

EuroLinux 9 Beta repositories:

-
    -
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/certify-beta-BaseOS/os
    - Name: BaseOS
  • -
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/certify-beta-AppStream/os
    - Name: AppStream
  • -
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/certify-beta-PowerTools/os
    - Name: PowerTools
  • -
-
-

Limited support.

-

Hybrid network installation from both ISO and public repositories -is not our primary goal in the QA process. Packages in EuroLinux -repositories are regularly updated, and it might be impossible to -install a system from an external source. Depending on the state of the -upstream, we might not fix a potential issue.

-
-

Below you can see an example configuration that was used to install a system - -in this case the default 'Minimal' repository has been provided as the only -one:

-

Adding additional repositories

-

After changing the installation source, you will have to confirm Software -Selection.

-
Software Selection
-

Software Selection allows you to customize which packages will be installed. -You might choose from base environment groups like Server with GUI, -Workstation or Minimal Install - since we are demonstrating with the -minimal ISO image, only the last option is available. You can also install -additional package groups.

-

Software selection section

-

Anaconda installer SYSTEM section:

-
    -
  • Installation selection allows choosing on which disk the system will be - installed. If you want to have a fully encrypted system, you should enable - encryption in this step.
  • -
  • KDUMP allows choosing if KDUMP (Kernel crash dump collection mechanism) - should be enabled.
  • -
  • Network & Host Name - you can configure your system networking here
  • -
  • Security Profile - you can setup an additional openscap policy here
  • -
-

Anaconda installer USER SETTINGS section:

-
    -
  • Root Password - by default, the root user is disabled. If a user is - created in User Creation section, the root account can stay disabled
  • -
  • User Creation section allows creating a regular user in the system. If - the Make this user administrator option is checked, the root account can be - disabled.
  • -
-

After applying all the necessary changes, the installation can be started -with the "Begin Installation" button.

- -

You need at least the following partitions.

-
    -
  • /boot for Linux kernel and init ramdisks - 1GB
  • -
  • / (root partition) - at least 10 GB (a very minimal system might use as - little as 2GB - but it requires extra attention and is not officially - supported by EuroLinux)
  • -
-

For UEFI, an EFI system partition is also required.

-
    -
  • /boot/efi - at least 100MB
  • -
-

If your storage allows it, the following partitions are also highly -recommended:

-
    -
  • swap - 1GB or more depending on the system RAM and workload. Swap is also - required for hibernation. Depending on the workload of the system, it should - be at least as spacious as system RAM.
  • -
  • /home - at least 1GB - but in most cases, if / can be as big as 80GB, - then /home/ usually takes the rest of the free space
  • -
-

Installing EuroLinux in basic graphic mode

-

Suppose there is a problem loading/running your graphics card driver (it might -results in a black screen/error message or graphical artifacts). It's possible -to install EuroLinux in basic graphics mode.

-

To do so, choose Troubleshooting on the welcome menu, and then Install -EuroLinux 9 in basic graphics mode.

-

From this point the process is identical to a standard installation with GUI.

-

Installing EuroLinux in text mode

-

To install EuroLinux in text mode:

-
    -
  • Boot EuroLinux ISO
  • -
  • Press Esc to stop installation options selection timeout
  • -
  • Press Tab
  • -
  • Add inst.text to the end of the kernel boot command line
  • -
  • Press Enter
  • -
-

Text Install 1

-

Since the Anaconda installer on EuroLinux 9 activates a network connection -automatically if applicable, it also determines that we can start VNC or use -text mode entirely. Since we are demonstrating the text mode installation, we -choose the latter option.

-

Text Install - VNC prompt

-

Before running the installation you have to provide all the necessary -information (represented as ! in selection). It's a good idea to refresh the -menu with R+Enter command shortly after the installer started.

-

Text Install 2

-

After customization you are ready to start your installation.

-

Text Install 3

-

Other possibilities

-

EuroLinux can also be installed in the following manner:

-
    -
  • Automated installation with a kickstart file.
  • -
  • Installation with PXE
  • -
  • Installation via VNC (as mentioned above)
  • -
-

Please consult upstream documentation about these topics.

-

Using EuroLinux

-

From this point, you can use EuroLinux as any other RHEL™ based distribution.

-

Submitting a Request for Change

-

We truly care. If there is something that you believe could/should be -changed/improved in the EuroLinux distribution and does not break compatibility -with the upstream project, then drop us the issue on GitHub! All contributors -are extremely welcome.

-

EuroLinux Distro Bugs and -RFC

-

Submitting a Bug report

-

We decided that submitting bug reports should not involve -registration into some nasty miserable software. At the very same -time, we know that most open-source developers have GitHub profiles. -This choice makes the decision making and work as transparent as -possible. That's why we decided to use it as the primary way to -submit bugs.

-

EuroLinux Distro Bugs and -RFC

-

This repository allows you to stay in direct contact with EuroLinux -developers.

-

Other ways to submit a bug report

- -

Security/confidential bug report

-

Please use the e-mail provided above.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/jumpstarts/9-jumpstart/index.html b/site/jumpstarts/9-jumpstart/index.html deleted file mode 100644 index 93f9b6c..0000000 --- a/site/jumpstarts/9-jumpstart/index.html +++ /dev/null @@ -1,2152 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 9 Jump Start - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 9 Jump Start

-

This document contains the necessary information to set up your first EuroLinux -9 installation.

-

System Requirements

-

x86_64 (64 bit AMD/Intel architecture)

-

Minimal and recommended requirements are following:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ResourceAbsolute minimal requirements for cloud deploymentMinimalRecommended
Logical CPU111
RAM1 GiB or 768 MiB with swap space2 GiB1.5 GiB per logical CPU
Storage5 GB (excluding swap)10GB20GB
-

Logical CPU means Physical CPU (including Hyper-Threading) or vCPU (virtual -CPU).

-
-

Warning

-

It might be impossible to install EuroLinux on a system that does not meet -recommended requirements.

-
-

About absolute minimums for cloud deployment

-

During our internal testing, we were able to boot and use very basic and -already installed services on Virtual Machine with only 340 MiB of RAM. -However, without additional memory or at least swap space available, things -like updating the system will result in actions of Kernel Out of Memory (OOM) -Killer.

-

You can try it yourself with EuroLinux Vagrant -boxes and the following -Vagrantfile:

-
Vagrant.configure("2") do |config|
-  config.vm.box = "eurolinux-vagrant/eurolinux-9"
-
-  # Explicitly disable vbguest because we are using rsync
-  if Vagrant.has_plugin?("vagrant-vbguest")
-      config.vbguest.auto_update = false
-  end
-
-  config.vm.provider "virtualbox" do |vb|
-    vb.memory = "340"
-    vb.cpus = 1
-  end
-  config.vm.provider "libvirt" do |vb|
-    vb.memory = "340"
-    vb.cpus = 1
-  end
-end
-
-

It's also possible to install EuroLinux on less than 5 GB of space, but it also -requires extra attention.

-

All absolute minimums for cloud deployments described above are not officially -supported by EuroLinux.

-

How to install EuroLinux 9 from ISO

-

Where can you obtain ISO?

-

We distribute EuroLinux in a responsible open core model. Because of that, you -might download EuroLinux from different sources. The two primary sources are:

- -

The only difference is that Customer Portal keeps older versions, when CDN, -that is used for mirroring, keeps only two of the latest ISOs for each version -to save space (single EuroLinux BaseOS ISO might take up to 8 GB).

-

If you are running a huge deployment, you might consider setting up your own -mirror and download ISOs from Intranet.

-

How to check ISO integrity

-

During download, many things can happen - from a network or sending host -failure to single-bit error. To check if ISO is undamaged, there are two -mechanisms in place.

-
    -
  • For each EuroLinux ISO there's a file with its checksums and appropriate - digest algorithms. Its name says, which algorithm was used to calculate the -cryptographic digest. For example, you can browse -https://fbi.cdn.euro-linux.com/isos/ -and read the sha1sums.txt file.
  • -
-

When the ISO download is completed, you can invoke the sha1sum command on the -ISO file and check if checksums match.

-
$ sha1sum EL-9.0-x86_64-20220613-appstream.iso 
-d78eebb3472ddff2dcaf110907e42ccee0367f70  EL-9.0-x86_64-20220613-appstream.iso
-
-
    -
  • The second mechanism for checking ISO integrity is built-in inside the - installer itself. When you start the installation, use the Test this media & - install EuroLinux 9 entry:
  • -
-

Installation 1

-

After booting up, the ISO checking process will start.

-

Installation 2

-

Installation with GUI

-

Because even a minimal installation uses a GUI the whole process is simple and -straightforward. EuroLinux 9, as well as previous versions, uses Anaconda -installer that clearly informs the user what needs to be done in order to -install the system.

-

First, you have to choose the language that will be used during installation:
-Hint: since the Anaconda installer on EuroLinux 9 activates a network -connection automatically if applicable, it also determines the default language -by the automatic location detection feature - in this case you can see that -Polish has been automatically chosen. -Installation 3

-

After configuring the installer language you should see a menu similar to:

-

Installation 2

-

Anaconda installer LOCALIZATION section:

-
    -
  • Keyboard - this section allows you to setup keyboard layouts, including - the default keyboard layout, additional layouts and key combination to switch - between them.
  • -
  • Language support - additional languages packages that should be - installed.
  • -
  • Time & Date - configure the date, time zone, enable NTP and NTP servers.
  • -
-

Anaconda installer SOFTWARE section:

-
Configuring source of the installation
-

Here you might configure the source of your installation. By default, the -system installs from the ISO image itself. This is one of the officially -supported ways to install EuroLinux.

-

If a NIC (Network Interface Card) has been enabled in the Network & Host -Name installer section, you might add additional EuroLinux repositories -and/or other repositories. If you add EuroLinux repositories, the installer -will automatically download newer version of the packages.

-

EuroLinux 9 repositories:

-
    -
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/BaseOS/os
    - Name: BaseOS
  • -
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/AppStream/os
    - Name: AppStream
  • -
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/CRB/os
    - Name: CRB
  • -
-
-

Limited support.

-

Hybrid network installation from both ISO and public repositories -is not our primary goal in the QA process. Packages in EuroLinux -repositories are regularly updated, and it might be impossible to -install a system from an external source. Depending on the state of the -upstream, we might not fix a potential issue.

-
-

Below you can see an example configuration that was used to install a system - -in this case the default 'Minimal' repository has been provided as the only -one:

-

Adding additional repositories

-

After changing the installation source, you will have to confirm Software -Selection.

-
Software Selection
-

Software Selection allows you to customize which packages will be installed. -You might choose from base environment groups like Server with GUI, -Workstation or Minimal Install - since we are demonstrating with the -minimal ISO image, only the last option is available. You can also install -additional package groups.

-

Software selection section

-

Anaconda installer SYSTEM section:

-
    -
  • Installation selection allows choosing on which disk the system will be - installed. If you want to have a fully encrypted system, you should enable - encryption in this step.
  • -
  • KDUMP allows choosing if KDUMP (Kernel crash dump collection mechanism) - should be enabled.
  • -
  • Network & Host Name - you can configure your system networking here
  • -
  • Security Profile - you can setup an additional openscap policy here
  • -
-

Anaconda installer USER SETTINGS section:

-
    -
  • Root Password - by default, the root user is disabled. If a user is - created in User Creation section, the root account can stay disabled
  • -
  • User Creation section allows creating a regular user in the system. If - the Make this user administrator option is checked, the root account can be - disabled.
  • -
-

After applying all the necessary changes, the installation can be started -with the "Begin Installation" button.

- -

You need at least the following partitions.

-
    -
  • /boot for Linux kernel and init ramdisks - 1GB
  • -
  • / (root partition) - at least 10 GB (a very minimal system might use as - little as 2GB - but it requires extra attention and is not officially - supported by EuroLinux)
  • -
-

For UEFI, an EFI system partition is also required.

-
    -
  • /boot/efi - at least 100MB
  • -
-

If your storage allows it, the following partitions are also highly -recommended:

-
    -
  • swap - 1GB or more depending on the system RAM and workload. Swap is also - required for hibernation. Depending on the workload of the system, it should - be at least as spacious as system RAM.
  • -
  • /home - at least 1GB - but in most cases, if / can be as big as 80GB, - then /home/ usually takes the rest of the free space
  • -
-

Installing EuroLinux in basic graphic mode

-

Suppose there is a problem loading/running your graphics card driver (it might -results in a black screen/error message or graphical artifacts). It's possible -to install EuroLinux in basic graphics mode.

-

To do so, choose Troubleshooting on the welcome menu, and then Install -EuroLinux 9 in basic graphics mode.

-

From this point the process is identical to a standard installation with GUI.

-

Installing EuroLinux in text mode

-

To install EuroLinux in text mode:

-
    -
  • Boot EuroLinux ISO
  • -
  • Press Esc to stop installation options selection timeout
  • -
  • Press Tab
  • -
  • Add inst.text to the end of the kernel boot command line
  • -
  • Press Enter
  • -
-

Text Install 1

-

Since the Anaconda installer on EuroLinux 9 activates a network connection -automatically if applicable, it also determines that we can start VNC or use -text mode entirely. Since we are demonstrating the text mode installation, we -choose the latter option.

-

Text Install - VNC prompt

-

Before running the installation you have to provide all the necessary -information (represented as ! in selection). It's a good idea to refresh the -menu with R+Enter command shortly after the installer started.

-

Text Install 2

-

After customization you are ready to start your installation.

-

Text Install 3

-

Other possibilities

-

EuroLinux can also be installed in the following manner:

-
    -
  • Automated installation with a kickstart file.
  • -
  • Installation with PXE
  • -
  • Installation via VNC (as mentioned above)
  • -
-

Please consult upstream documentation about these topics.

-

Using EuroLinux

-

From this point, you can use EuroLinux as any other RHEL™ based distribution.

-

Submitting a Request for Change

-

We truly care. If there is something that you believe could/should be -changed/improved in the EuroLinux distribution and does not break compatibility -with the upstream project, then drop us the issue on GitHub! All contributors -are extremely welcome.

-

EuroLinux Distro Bugs and -RFC

-

Submitting a Bug report

-

We decided that submitting bug reports should not involve -registration into some nasty miserable software. At the very same -time, we know that most open-source developers have GitHub profiles. -This choice makes the decision making and work as transparent as -possible. That's why we decided to use it as the primary way to -submit bugs.

-

EuroLinux Distro Bugs and -RFC

-

This repository allows you to stay in direct contact with EuroLinux -developers.

-

Other ways to submit a bug report

- -

Security/confidential bug report

-

Please use the e-mail provided above.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/jumpstarts/cloud-jump-start/index.html b/site/jumpstarts/cloud-jump-start/index.html deleted file mode 100644 index 99e2356..0000000 --- a/site/jumpstarts/cloud-jump-start/index.html +++ /dev/null @@ -1,1848 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Eurolinux on clouds Jump Start - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

Eurolinux on clouds Jump Start

-

This document contains the necessary information to create Your own EuroLinux instance on cloud You prefer.

-

Amazon Web Services (AWS)

-

AWS was launched in 2006 and has since grown to become one of the largest cloud computing platforms in the world, with millions of customers and clients ranging from startups to enterprises.

-

How to create EuroLinux instance on AWS

-
    -
  1. Check our products on AWS Marketplace and select Your favourite.
  2. -
  3. Click "Continue to Subscribe" and then "Continue to Configuration"
  4. -
  5. Select version, region and click "Continue to Launch"
  6. -
  7. Configure the instance as You prefer. Remember to select or create new key pair - it's necessary to create secure connection with instance.
  8. -
  9. Click "Launch"
  10. -
  11. To get the ip of this instance, go to the EC2 console and select "Instances"
  12. -
  13. Click on Instance ID of the newly created instance and copy ip address
  14. -
  15. You can log into instance using the ssh comand with -i key-file.pem option
  16. -
-

Microsoft Azure

-

With its strong focus on security and compliance, Azure has become a popular choice for organizations in regulated industries such as healthcare and finance, as well as for government agencies.

-

How to create EuroLinux instance on Microsoft Azure

-
    -
  1. On the Azure Marketplace page, click "Get It Now" and accept the service terms.
  2. -
  3. You will be redirected to the Azure portal, where you will see a "Create" button after logging in.
  4. -
  5. In the "Basics" section of the virtual machine settings menu, pay special attention to the "Administrator account" section, where you will choose the type of authentication and enter a username that you will use to log in to the machine.
  6. -
  7. Completing the creation of a typical virtual machine requires simply filling in the required fields in the "Basics" section. Then move on to "Review + create" and click the "Create" button.
  8. -
  9. Your virtual machine will be created along with all the resources needed for it to function properly. To connect to it, simply select it and use one of the connection options (SSH, RDP, or Bastion) offered by Azure.
  10. -
-

Google Cloud Platform (GCP)

-

GCP is designed to allow developers and businesses to build, deploy, and run applications and services on Google's infrastructure.

-

How to create EuroLinux instance on GCP

-
    -
  1. Make sure you have gcloud tool and all its components installed.
  2. -
  3. Log into your GCP account via gcloud tool
  4. -
  5. Choose or create a new project.
  6. -
  7. -

    Run the following command in the console: -

    gcloud beta compute instances create [instance-name] --zone=[zone-name] --machine-type=[machine-type] --subnet=default --image=[image-url] --boot-disk-size=[disk-size]
    -

    -

    Where: -* [instance-name] is the desired name for the virtual machine. -* [zone-name] is the zone where the virtual machine will be created. -* [machine-type] is the type of machine to be created. -* [image-url] is the URL of the image. -* [disk-size] is the size of the boot disk.

    -

    For example to create EuroLinux 8.6 instance in a us-central1-a region, type: -

    gcloud beta compute instances create eurolinux-server1 --zone=us-central1-a --machine-type=n1-standard-1 --subnet=default --image=https://www.googleapis.com/compute/v1/projects/eurolinux-cloud/global/images/eurolinux-8-6 --boot-disk-size=10GB
    -

    -
  8. -
-

Alibaba Cloud

-

Alibaba Cloud, also known as Aliyun aims to provide reliable and secure cloud computing solutions for businesses and organizations around the world, with a focus on serving the Asia-Pacific market.

-

How to create EuroLinux instance on Alibaba Cloud

-
    -
  1. Go to Alibaba Cloud Marketplace and select your favorite EuroLinux operating system image.
  2. -
  3. Review the product description and then click the "Choose Your Plan" button. You will now be redirected to the Aliyun console page where you will continue creating the instance.
  4. -
  5. Configure the instance to meet your needs. At this point, you can also change the payment type to subscription.
  6. -
  7. In the System Configurations tab, select or create a "Key Pair" that will allow you to access the machine.
  8. -
  9. Finally, accept the terms and create the instance by clicking "Create Instance". After a few minutes, your instance should be ready to use.
  10. -
-

OpenStack

-

OpenStack provides a flexible and customizable platform that can be used for a variety of cloud computing needs, from web hosting to big data processing to scientific computing.

-

Important: It is a cloud-generic images.

-

How to create EuroLinux instance on OpenStack

-
    -
  1. Download Your favourite EuroLinux image in qcow2 or raw format. For example: https://fbi.cdn.euro-linux.com/images/EL-9-cloudgeneric-2023-03-19.qcow2
  2. -
  3. Login to the OpenStack dashboard.
  4. -
  5. Click on the "Create Image" button in "Compute" -> "Images" section.
  6. -
  7. Fill in the required information and upload this image to OpenStack.
  8. -
  9. To Launch Your instance with image You have just created simply click "Launch Instance" in "Compute" -> "Instances" section and fill the required informations.
  10. -
  11. Make sure You create Your own key-pair and attach it to this instance.
  12. -
  13. To log into Your EuroLinux instance copy the IP address and using the ssh comand with -i key-file.pem option, login as root to newly created machine.
  14. -
-

Important: EuroLinux 9 have the root login without-password enabled by default, which means You have to assign the key-pair to Your instance to login.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/jumpstarts/container-jumpstart/index.html b/site/jumpstarts/container-jumpstart/index.html deleted file mode 100644 index a4100a5..0000000 --- a/site/jumpstarts/container-jumpstart/index.html +++ /dev/null @@ -1,1769 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux Containers JumpStart - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux Containers JumpStart

-

Basics

-

Using EuroLinux container images is easy. We provide multiple containers and -their versions. The most important are base images for EuroLinux 7 (with FBI -[Free Base Image] repository) and EuroLinux 8 (with complete repositories - -EuroLinux 8 is freely available). All EuroLinux container images are OCI -standard container images. You can download them from two primary sources:

- -

EuroLinux images can be run with any OCI standardized container runtimes such -as runC (Docker/Moby project) or crun (Podman/Buildah/CRI-O).

-

To download the image:

-

Docker Hub: -

docker pull eurolinux/eurolinux-8
-

-

Quay.IO: -

podman pull quay.io/eurolinux/eurolinux-8
-

-

To run a container that will be removed after process exit. You might use: -

docker run -rm -ti eurolinux/eurolinux-8
-

-

Inside the container, you can check the system version -

bash-4.4# cat /etc/el-release
-EuroLinux release 8.5 (Tirana)
-

-

To detach the container from the console, add -d flag to docker/podman run command.

-

docker run -rm -ti -d --name eurolinux eurolinux/eurolinux-8
-
-then run: -
docker exec -it eurolinux bash
-
-to enter the console of a container.

-

Other containers

-

As a company, we create and support multiple containers, including other -Enterprise Linux distributions. For example, we provide:

- -

Other containers that we build are:

-
    -
  • Oracle Linux
  • -
  • Scientific Linux
  • -
  • CentOS and CentOS stream
  • -
-

You can visit our organization page on the Docker -Hub to find all containers that we -officially support.

-

Older Versions

-

If you want to use the previous version of the EuroLinux container, you must -find the desired tag. Example for EuroLinux 8:

- -

Request for Change/Comment and Bug report repository

-

You can request a change, leave a comment or report a bug in this EuroLinux -containers RFC repository.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/jumpstarts/rpi/index.html b/site/jumpstarts/rpi/index.html deleted file mode 100644 index e73b9e3..0000000 --- a/site/jumpstarts/rpi/index.html +++ /dev/null @@ -1,1925 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux for Raspberry Pi Jump Start - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux for Raspberry Pi Jump Start

-

About images

-

EuroLinux Raspberry images are made for Raspberry Pi 4 model B. The system is -EuroLinux 9. The minimal images could work with older Raspberry Pi 3. But we -won't support it even with 'best effort' as Raspberry Pi 3 does not meet -the minimum hardware requirements for Enterprise Linux 9 or Enterprise Linux 8.

-

The basic credentials are the following:

-
    -
  • user: root
  • -
  • password: raspberry
  • -
-
-

SSH Root login disabled

-

SSH root login is disabled by default on EuroLinux 9.

-
-
-

Raspberry only

-

The Raspberry Pi images also won't work with other ARM-64 computers as RPI -images are specially tailored for this particular hardware.

-
-

Downloading and checking the images

-

Firstly choose the image from -https://fbi.cdn.euro-linux.com/images. -The Raspberry Pi images have the rpi-TYPE(where TYPE can be minimal or -gnome) in their names. You can download the image with wget, curl or with -your browser.

-

It's advised to check the image integrity by comparing checksums. The SHA256 -checksums can be found at -https://fbi.cdn.euro-linux.com/images/sha256sum.txt

-

Example download and checksum comparison:

-
wget https://fbi.cdn.euro-linux.com/images/EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz
-sha256sum EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz
-curl -s https://fbi.cdn.euro-linux.com/images/sha256sum.txt | grep EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz
-
-

asciicast

-

Flashing the MicroSD card

-

With the image downloaded now, it's time to flash your MicroSD card. There are -multiple options, you can use:

-
    -
  • Raspberry Pi Imager, which requires manual compilation for the most platforms
  • -
  • Balena Etcher comes as AppImage so works with nearly every Linux distribution
  • -
  • dd program, which is the most CLI-friendly way, but is also recommended for - experienced users
  • -
-

We recommend Balena Etcher as dd might destroy the system partition or other -important data if used without proper experience.

-

Balena Etcher

-

Balena Etcher is one of the most popular and easy-to-use programs that allow -flashing the SD cards for Raspberry Pi. It can also create other bootable media -like USB sticks and more. Firstly download the AppImage from the official -Balena Etcher website - -https://www.balena.io/etcher/ (Download for -Linux x64).

-

Most file managers will run AppImage when chosen and clicked. To run it from -the command line firstly change the permissions then run. -

chmod 755 balenaEtcher-1.13.1-x64.AppImage
-./balenaEtcher-1.13.1-x64.AppImage
-

-

The process itself is straightforward. There is plenty of documentation/videos -about the Balena Etcher, so we trust that in case of any troubles you will be -able to find a solution on your own.

-

dd

-

dd is a program that is older than Linux Kernel itself :). It is one of these -little tool that makes Linux/Unix powerful. It can be used to flash the memory -card by writing output to the memory card device.

-

Firstly insert the memory card into the slot. Then check with the dmesg device -file that is corresponding.

-

The dmesg will inform about partition: -

[ TIME] scsi 0:0:0:0: Direct-Access     Generic  Mass-Storage     1.11 PQ: 0 ANSI: 2
-[ TIME] scsi 0:0:0:0: Attached scsi generic sg0 type 0
-[ TIME] sd 0:0:0:0: [sdX] 250347520 512-byte logical blocks: (128 GB/119 GiB)
-[ TIME] sd 0:0:0:0: [sdX] Write Protect is off
-[ TIME] sd 0:0:0:0: [sdX] Mode Sense: 03 00 00 00
-[ TIME] sd 0:0:0:0: [sdX] No Caching mode page found
-[ TIME] sd 0:0:0:0: [sdX] Assuming drive cache: write through
-

-

Where sdX is your SD card. To write you first need to decompress the image with -the xzcat command and then pipe output to the dd (writing to the device -requires root privileges, that's why there is sudo). -

xzcat /path/to/image/image.raw.xz | sudo dd status=progress oflag=sync bs=4k of=/dev/sdX
-

-

For example: -

xzcat ~/Downloads/EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz | sudo dd status=progress oflag=sync bs=4k of=/dev/sda
-

-

Booting from USB.

-

EuroLinux 9.1 can be natively booted from USB on Raspberry Pi 4. You should -flash your USB stick/disk in the same manner that you flash a micro SD card.

-
-

Early-produced RPI 4 might require firmware update.

-

Early-produced Raspberry Pi 4 might require a firmware update before booting -the system from the USB.

-
-

Wifi setup

-

Wifi adapter works out-of-box. It's trivial to configure it from a desktop -(Gnome). To configure the WIFI from the console you can use the following -commands.

-

Firstly find the SSID (WIFI name) that you want to use:

-
nmcli d wifi list
-
-

Then you can provide a password on the command line (note password will be -saved in bash command history)

-
nmcli d wifi connect WIFI_NAME password PASSWORD
-
-

or if You want to be prompted for the password

-
nmcli d wifi connect WIFI_NAME --ask
-
-

asciicast

-

Note that your RPI will automatically connect to the WIFI after reboot.

-

Disable the powersave mode on the Raspberry Pi WIFI card

-

The Raspberry Pi WIFI card by default enters powersave mode when there is not -much going on. Some users reported a problem with broken SSH sessions and other -closed connections due to this feature. To disable power save mode use the -following command

-
iw wlan0 set power_save off
-
-

The problem with this solution is that this state won't survive system reboot. -To fix that issue during startup you can add a network manager dispatcher -script that will disable power_save on boot. Put the following script:

-
#!/usr/bin/env bash
-
-interface=$1
-event=$2
-
-if [[ $interface != "wlan0" ]] || [[ $event != "up" ]]
-then
-  return 0
-fi
-iw wlan0 set power_save off
-
-

into the /etc/NetworkManager/dispatcher.d/iw-wlan0-disable-powersave.sh, then -add the execution permission

-
chmod +x /etc/NetworkManager/dispatcher.d/iw-wlan0-disable-powersave.sh
-
-

Enabling the I2C (I²C - Inter-Integrated Circuit)

-

To enable i2c you have to add the i2c_arm with flag on as dtparam to the -/boot/config.txt

-
dtparam=i2c_arm=on
-
-

The following script can be used:

-
echo 'dtparam=i2c_arm=on'  | sudo tee -a /boot/config.txt
-
-

We also recommend installing i2c-tools.

-
sudo dnf install -y i2c-tools
-
-

After this changes, you have to reboot the system to start i2c.

-

Enabling SPI (Serial Peripheral Interface).

-

To enable SPI you have to add spi with flag on as dtparam to the -/boot/config.txt

-

dtparam=spi=on
-
-The following script can be used: -
echo 'dtparam=spi=on'  | sudo tee -a /boot/config.txt
-
-After this changes you have to reboot the system to start SPI.

-

Feedback

-

If You want to leave feedback/request for change/bug report on EuroLinux -Raspberry Pi images please use the https://github.com/EuroLinux/raspberry-pi-build repository.

-

If believe that something important from the documentation is -missing don't hesitate to create issue in this documentation repository.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/jumpstarts/vagrant-jumpstart/index.html b/site/jumpstarts/vagrant-jumpstart/index.html deleted file mode 100644 index 537bd00..0000000 --- a/site/jumpstarts/vagrant-jumpstart/index.html +++ /dev/null @@ -1,1828 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Vagrant Jumpstart - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

Vagrant Jumpstart

-

Introduction

-

Ever wanted to create a development environment that is guaranteed to -work flawlessly on several developers' workstations without the It -works on my machine! excuses?
-Well, now you can! Just get Vagrant, write your specification and share -it with coworkers!

-

Requirements

-

Vagrant will be managing the virtual machines of the backend provider -of your choice. If you find -out it's not listed, consider checking if there's a plugin-based -implementation.
-Make sure you have a supported provider installed - we'll be using -VirtualBox in this guide. You can use our VirtualBox installation -guide as a reference.

-

Installation on EuroLinux 8

-

Simply run these commands and you're ready to go:

-
sudo dnf config-manager \
-  --add-repo=https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
-sudo dnf install vagrant -y
-
-

EuroLinux Boxes

-

A box is a format that defines: an image of an operating system with -preinstalled software, a provider for that image and its version - it's -a ready-made appliance for that provider to run.
-This appliance works the same across people's workstations, which most -likely will have differences in configuration and potentially different -providers or even operating systems. That is as long as they use a -provider, which the box is built for.

-

EuroLinux Vagrant boxes are available at: -https://app.vagrantup.com/eurolinux-vagrant
-Let's use the box eurolinux-vagrant/eurolinux-8 as an example.

-

Box details

-

See the details of the -box - -multiple providers, that the box has been built for, are listed along -with the box versions and build dates. When writing your specification, -you'll be able to choose from them as you wish.

-

Run the box

-

Here's a basic procedure for running a Vagrant environment (a virtual -machine, which uses our box) in a separate directory:

-
mkdir el8-vagrant
-cd el8-vagrant/
-vagrant init eurolinux-vagrant/eurolinux-8
-vagrant up
-vagrant ssh
-
-

You should now be connected to the machine and able to perform your -desired operations inside it.
-Go ahead, play around, install your favourite developer tools, build an -awesome, advanced, multi-component application and be sure everyone's -able to deploy it on their workstations without any hassle!

-

What about the specification mentioned earlier? - Vagrantfile

-

Once you've ran the commands above, you'll have a Vagrantfile in the -el8-vagrant directory.
-Take a look, what's inside. You'll be greeted with an introduction, -references and lots of common options along with comments explaining -them:

-
  # The most common configuration options are documented and commented below.
-  # For a complete reference, please see the online documentation at
-  # https://docs.vagrantup.com.
-
-

As you've already ran the box as explained in the previous section, you -can see that there's no necessity to tweak anything inside -Vagrantfile. The parameters that you can tweak, e.g. the virtual -machine's memory or the amount of CPUs you should adapt to your work - -e.g. if you need additional resources for developing/running your -application, go ahead and increase them. Once that's done, check out if -they can be reduced once you know your software resource requirements.

-

Depending on the task you want to achieve, whether it be a ready-made -appliance or a base virtual system that gets provisioned with your -application and its dependencies or something else, that's when -changes to the specification must be made - e.g. the additional -provisioning procedure shall be written.

-

As the comment quoted above says, refer to the comments the Vagrantfile -provided for common options explanation. Once you know their purpose, -try them out! Get comfortable with them and read Upstream's -documentation for additional info, tips -and more advanced, cool possibilities - such as a multi-machine -infrastructure defined in -a single Vagrantfile.

-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/jumpstarts/wsl/index.html b/site/jumpstarts/wsl/index.html deleted file mode 100644 index eef268e..0000000 --- a/site/jumpstarts/wsl/index.html +++ /dev/null @@ -1,1749 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux on WSL Jumpstart - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux on WSL Jumpstart

-

This guide provides a quick overview of setting up EuroLinux on Windows Subsystem for Linux (WSL).

-

Prerequisites:

-
    -
  • Windows 10 (Windows 10 version 1709 or newer for "legacy" WSL. Version 2004 or newer for WSL 2) or Windows 11
  • -
  • WSL/WSL 2 installed (we strongly recommended WSL 2 for better compatibility and performance)
  • -
  • Administrative privileges on your Windows system
  • -
-

Enabling WSL

-

Follow the official Microsoft documentation to enable WSL: https://learn.microsoft.com/en-us/windows/wsl/

-

About EuroLinux on WSL

-

EuroLinux company provides EuroLinux version 9 for WSL. The system is based on Red Hat -Enterprise Linux 9 and is compatible with it. We used our base container image. The official -repository is located https://github.com/EuroLinux/wsl it also contains the build scripts and -latest documentation/releases.

-

Import and install EuroLinux for WSL

-
    -
  • -

    x86_64 -

    wget https://github.com/EuroLinux/WSL/releases/latest/download/el9-x86_64.tar -o el9-x86_64.tar
    -wsl --import EuroLinux-9 "$env:USERPROFILE/EuroLinux-9" .\el9-x86_64.tar --version 2
    -wsl -d EuroLinux-9
    -

    -
  • -
  • -

    aarch64 -

    wget https://github.com/EuroLinux/WSL/releases/latest/download/el9-aarch64.tar -o el9-aarch64.tar
    -wsl --import EuroLinux-9 "$env:USERPROFILE/EuroLinux-9" .\el9-aarcch64.tar --version 2
    -wsl -d EuroLinux-9
    -

    -
  • -
-

Feedback

-

To provide feedback, request changes, or report bugs, please visit our official -RFC/Bug repository at -https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc. -Your input is highly appreciated!

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/knowledge-base/el6-jdk-install-failure/index.html b/site/knowledge-base/el6-jdk-install-failure/index.html deleted file mode 100644 index a723af1..0000000 --- a/site/knowledge-base/el6-jdk-install-failure/index.html +++ /dev/null @@ -1,1702 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Unable to install java-1.7.0-openjdk on EuroLinux 6 - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

Unable to install java-1.7.0-openjdk on EuroLinux 6

-

Scenario

-

An attempt to install the latest version of java-1.7.0-openjdk.x86_64 as part of the EuroELS subscription fails with a message like:

-
Error in PRETRANS scriptlet in rpm package 1:java-1.7.0-openjdk-1.7.0.261-2.6.22.1.el6_10.x86_64
-error: lua script failed: /usr/libexec/copy_jdk_configs.lua:272: attempt to index global 'file' (a nil value)
-
-

Solution

-

The package java-1.7.0-openjdk.x86_64 expects that the directory /var/lib/rpm-state/ exists. Still, this might not be the case on every installation.

-

Please create this directory manually:

-
# mkdir /var/lib/rpm-state/
-
- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/knowledge-base/eurolinux-6-vault/index.html b/site/knowledge-base/eurolinux-6-vault/index.html deleted file mode 100644 index 4c2f4e9..0000000 --- a/site/knowledge-base/eurolinux-6-vault/index.html +++ /dev/null @@ -1,1739 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Accessing EuroLinux 6.10 Vaulted Repositories - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

Accessing EuroLinux 6.10 Vaulted Repositories

-

EuroLinux 6 ELS EOL 2024-06-30

-

EuroLinux 6 reached its end of life on 2020-11-30; EuroLinux 6 ELS -reached EOL on 2024-06-30 and is no longer supported. This means critical -security updated are no longer provided, making your system highly vulnerable -to security threats.

-

Upgrading might not always be possible due to reasons like replicating a -specific production environment in development, supporting legacy systems, or -strict software compatibility requirements. In such cases, while accessing the -vaulted repositories is an option, be aware of the inherent security risks.

-

EuroLinux 6 vault

-

Using the following gist is a straightforward way to access the EuroLinux 6 -vault:

- - -

Or manually add the following to /etc/yum.repos.d/eurolinux-6-vault-repos.repo:

-
[eurolinux6-base]
-name=Eurolinux 6 Base Vault
-baseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/6/6.10/BaseOS/x86_64/os/
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux
-
-[eurolinux6-extras]
-name=Eurolinux 6 Updates Vault
-baseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/6/6.10/Extras/x86_64/os/
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux
-
-

If the GPG key is not present on your system, you can add it with the following -command:

-
curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux https://fbi.cdn.euro-linux.com/security/RPM-GPG-KEY-eurolinux
-
-

Removing subscription packages

-

Previously, due to EuroLinux 6 repositories being paywalled, a subscription was -required. This involved tools like rhn_register or el_register alongside -the EuroMan service or a local mirror. With EuroMan's sunsetting alongside -EuroLinux 6 ELS EOL, these subscription-related packages are no longer -necessary (unless using custom Spacewalk/EuroMan Forman/EuroMan). You can -safely remove them using the following command:

-
sudo yum remove -y rhn* subscription*
-
- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/knowledge-base/eurolinux-7-vault/index.html b/site/knowledge-base/eurolinux-7-vault/index.html deleted file mode 100644 index 68a3744..0000000 --- a/site/knowledge-base/eurolinux-7-vault/index.html +++ /dev/null @@ -1,1773 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Using EuroLinux 7 from vaulted repositories - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

Using EuroLinux 7 from vaulted repositories

-

EuroLinux 7 EOL 2024-06-30

-

EuroLinux 7 reached its end of life on 2024-06-30. It means no further updates, -including security updates, will be available. We strongly recommend upgrading -to EuroLinux 8 or later as soon as possible. However, you may still need to use -the older version for development, legacy, and compatibility reasons.

-

EuroLinux 7 vault

-

Using the following gist is a straightforward way to access the EuroLinux 7 -vault:

- - -

Or manually add the following to /etc/yum.repos.d/eurolinux-7-vault-repos.repo:

-
[eurolinux7-base]
-name=Eurolinux 7 Base Vault
-baseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.9/os/
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7
-
-[eurolinux7-updates]
-name=Eurolinux 7 Updates Vault
-baseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.9/updates/
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7
-
-

The GPG key should be available in the system, but if it is not, you can add it -with the following:

-
curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7 https://fbi.cdn.euro-linux.com/security/RPM-GPG-KEY-eurolinux7
-
-

EuroLinux 7.8 and 7.7

-

As a bonus, you could also use even older versions of EuroLinux 7.8 and 7.7, -which contain only updates up to the last minor release of the given version. -Sample content of the .repo files are below:

-

For EuroLinux 7.8: -

[eurolinux7-base]
-name=Eurolinux 7.8 Base Vault
-baseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.8/os/
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7
-
-[eurolinux7-updates]
-name=Eurolinux 7.8 Updates Vault
-baseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.8/updates/
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7
-

-

For EuroLinux 7.7: -

[eurolinux7-base]
-name=Eurolinux 7.8 Base Vault
-baseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.7/os/
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7
-
-[eurolinux7-updates]
-name=Eurolinux 7.8 Updates Vault
-baseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.7/updates/
-gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7
-

-

Removing subscription packages

-

Since the EuroLinux 7 repositories were behind the paywall, you used to need -the subscription that used rhn_register or el_register commands and ancient -EuroMan service or local mirror of the system. EuroMan was sunsetted with -EuroLinux 7 EOL.

-

You can confidently remove the subscription-related packages (as long as you -are not using custom Spacewalk/EuroMan Forman/EuroMan) with the following -command:

-
sudo yum remove -y rhn* subscription*
-
- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/knowledge-base/eurolinux-8-10-efi-problem/index.html b/site/knowledge-base/eurolinux-8-10-efi-problem/index.html deleted file mode 100644 index aac6d5c..0000000 --- a/site/knowledge-base/eurolinux-8-10-efi-problem/index.html +++ /dev/null @@ -1,1916 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Black Screen After update to EuroLinux 8.10 - EFI problem - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

Black Screen After update to EuroLinux 8.10 - EFI problem

-

Background

-

We are deeply sorry to inform you that one of the packages in EuroLinux 8.10 -created a severe mistake in the boot configuration. The package grub2-efi-x64 -was copied from a never-released beta repository, and it was not supposed to be -there in that version.

-

If you updated your system:

-
    -
  • before May 28th, 13 CET
  • -
  • and you are using EFI
  • -
-

The following error might appear after booting your system.

-
error: file `/EFI/eurolinux/grubx64.efi` Not Found.
-
-

and other similar errors, like:

-
StartImage failed
-
-

Generally speaking, the system won't boot into the bootloader (GRUB). -Depending on your UEFI software, you might see different error messages.

-

Depending on your UEFI software you might be able to boot system normally. If -you can boot system you can fix the problem by reinstalling the grub2-efi-x64 -package.

-

Example message screen

-

When this problem does not occur

-
    -
  • If you are using a VM that does not use EFI you won't have this problem
  • -
  • If you are using legacy BIOS and the system was installed as legacy BIOS
  • -
  • Container images and other images
  • -
-

Update after May 28th, 12 CET

-

If you are updating your system with a repository synced after May 28, 13 CET, -you should not have this problem. The package was removed and overwritten from -the repository, and the proper package was added.

-

Updated but not rebooted system

-

If you updated but have not rebooted the system -> please reinstall the -grub2-efi-x64 package and kernel packages:

-
sudo yum clean all
-sudo yum reinstall -y `kernel*` `grub2*`
-
-

ISO files

-

The ISO files were updated, and the previous ISO was removed. The new ISO is -supposed to be released today (May 28th).

-

Revert from backup/snapshot

-

If you can, please revert from the backup or snapshot to version 8.9. The -update process now contains overwritten, updated and proper packages, and this -problem will not occur.

-

Rescue system with wrong EFI from a live CD.

-
    -
  1. Download LiveISO CD
  2. -
  3. Change boot order (if necessary)
  4. -
  5. Mount ISO/Create ISO on the pendrive
  6. -
  7. Start system from ISO
  8. -
  9. Mount the EFI partition
  10. -
  11. Copy the EFI files
  12. -
  13. Run system normally
  14. -
  15. Reinstall kernel-core and grub2-efi-x86
  16. -
-

Download LiveISO CD

-

One of the smallest ISO and well-known projects is Rescatux. You can download -it from: -https://sourceforge.net/projects/rescatux/files/rescatux-0.74/rescatux-0.74.iso/download

-

You can use different ISOs, such as our Desktop Live or Ubuntu.

-

Change the boot order (if necessary)

-

Changing the boot order might be necessary for both VM and Physical Machines.

-

Mount ISO/Create ISO on pendrive

-

Mount rescue ISO to a VM. For physical machines, create a bootable pendrive -with the ISO. The process is similar to creating a bootable pendrive for -installation.

-

After mounting or inserting the pen drive, start the rescue/live CD system.

-

Starting rescuetux or other livecd

-

You can safely start Rescuetux or another live CD. The process is similar to -getting a standard desktop. You can safely skip any questions and programs and -get straight to the terminal.

-

Rescue 1

-

Find and mount the EFI partition

-

Finding an EFI partition is quite straightforward use one of the following commands:

-
sudo lsblk
-
-

Example efi partition output

-
/dev/nvme0n1p5: UUID="2A1E-AC26" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="6b15bd77-bb2e-4393-9fbb-445625660679"
-
-

or

-

lsblk -f
-
-Example EFI partition output

-
vda1 vfat               776-93D0
-
-

After finding the EFI partition, mount it to a temporary location. In the -example bellow, we are using /mnt as a temporary location, and partition is -the /dev/vda1

-
sudo mount /dev/vda1 /mnt
-
-

Confirm the EFI partition is mounted correctly and contains EFI directory

-
cd /mnt/
-ls
-
-

The output should contains at least an EFI directory

-
EFI
-
-

Copy the EFI files

-
sudo cp -r /mnt/EFI/redhat/* /mnt/EFI/eurolinux/.
-
-

Reboot system

-

Depending on the live CD/ISO you used, you might need to reboot the system or exit the live CD.

-

sudo reboot
-
-in most cases, is enough. You can also shut down the system with shutdown -h now.

-

Before starting the EuroLinux system, remember to remove the rescue/LiveCD ISO -ISO or pendrive.

-

The whole process is as simple as the one on the screenshot:

-

Rescue 2

-

Running the system and reinstalling the packages

-

After rebooting the system you should be able to boot into the system in normall state. You can now reinstal the kernel -and grub packages.

-
sudo yum clean all
-sudo yum reinstall -y `kernel*` `grub2*`
-
-

Reinstall

-

Summary

-

Once more, we are deeply sorry for the inconvenience. The bug skipped our -testing and escaped into the public as we were changing the test structure to -support new features, including Secure Boot for EuroLinux 9.

-

We are working on improving our testing process to avoid such mistakes in the -future.

-

If you have any questions or need help, please contact us at support at -euro-linux.com. We will dispatch an engineer for a one-on-one session to assist -you.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/knowledge-base/eurolinux-capabilities-and-limits/index.html b/site/knowledge-base/eurolinux-capabilities-and-limits/index.html deleted file mode 100644 index b40ef9d..0000000 --- a/site/knowledge-base/eurolinux-capabilities-and-limits/index.html +++ /dev/null @@ -1,2156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux Linux distribution capabilities and limits - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux Linux distribution capabilities and limits

-

This document describes the technology capabilities and limits for EuroLinux 6, -7, 8 and 9. Some are theoretical, as they are connected with source -code/projects -used in the system. Minimal limits represent limits for the systems for which -support is generally available by the EuroLinux company. Our dedicated -solutions like:

-
    -
  • system rebuilds with Gaia build stack
  • -
  • EuroLinux container images
  • -
  • EuroLinux cloud images
  • -
  • EuroLinux for edge computing
  • -
  • EuroLinux ARM 64 for IoT
  • -
  • containers running on the EuroLinux container platform or any other - Kubernetes-based platform
  • -
-

might run and be supported on the less resources than described in this document.

-

The theoretical limit (connected with a version of the software used) is marked -as (LIMIT), when limit supported and tested by upstream is provided as -default for EuroLinux. TBA means - To Be Announced.

-

Minimum logical CPU

-

All systems, physical or virtual, require at minimum 1 logical (physical or -virtual) CPU core.

-

Maximum logical CPU

- - - - - - - - - - - - - - - - - - - - - - - - - - -
ArchitectureEuroLinux 6EuroLinux 7EuroLinux 8EuroLinux 9
x86_64448 (4096)768 (5120)768 (8192)1792 (8192)
ARM64XX256512 (4096)
- - -

Minimum memory

-

These requirements are only for systems supported as VMs or Physical hosts. In -most cases, it's possible to run a system without complications on less memory. -The minimum requirements have been provided below because it might not be -possible to support systems with less memory.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
ArchitectureEuroLinux 6EuroLinux 7EuroLinux 8EuroLinux 9
x86_64Minimum 1 GiB, 1 GiB per logical core is recommendedMinimum 1 GiB, 1 GiB per logical core is recommendedMinimum 1 GiB, 1.5 GiB per logical core is recommendedMinimum 1.5 GiB, 1.5 GiB per logical core is recommended
ARM64XX2GiB2GiB
- - -

Maximum memory

- - - - - - - - - - - - - - - - - - - - - - - - - - -
ArchitectureEuroLinux 6EuroLinux 7EuroLinux 8EuroLinux 9
x86_6412TB (64TB)12TB (64TB)24TB (64TB)48TB (64TB)
ARM64XX1.5TB (256TB)1.5TB (256TB)
- - -

Minimum required disk space

- - - - - - - - - - - - - - - - - -
EuroLinux 6EuroLinux 7EuroLinux 8EuroLinux 9
1Gib Minimum, 5GiB recommended5 GiB Minimum, 20 GiB recommended10 GiB Minimum, 20 GiB recommended10 GiB Minimum, 20 GiB recommended
-

File systems and storage limits

-

All filesystems in this document support ACL (Access Control List).

-

Ext3

-

Ext3 is mostly a legacy filesystem. Please use Ext4 or XFS.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureEuroLinux 6EuroLinux 7EuroLinux 8EuroLinux 9
Maximum File Size2TiB2TiB2TiB2TiB
Maximum Filesystem Size16TiB16TiB16TiB16TiB
Maximum Subdirectories or files in directory32000320003200032000
Maximum symlink depth8888
-

Ext4

-

Ext4 is the default filesystem for EuroLinux 6.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureEuroLinux 6EuroLinux 7EuroLinux 8EuroLinux 9
Maximum File Size16TiB16TiB16TiB16TiB
Maximum Filesystem Size1EiB1EiB1EiB1EiB
Maximum Subdirectories or files in directory65000/unlimited with dir_nlink option65000/unlimited with dir_nlink option65000/unlimited with dir_nlink option65000/unlimited with dir_nlink option
Maximum symlink depth8888
-

XFS

-

XFS is the default filesystem for in EuroLinux 7, 8 and 9.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureEuroLinux 6EuroLinux 7EuroLinux 8EuroLinux 9
Maximum File Size8EiB8EiB8EiB8EiB
Maximum Filesystem Size16EiB16EiB1PiB1PiB
Maximum Subdirectories or files in directoryunlimitedunlimitedunlimitedunlimited
Maximum symlink depth8888
-

GFS2

-

Global Filesystem 2 is part of EuroLinux Resilient Storage and High -Availability add-ons that are freely available with subscription or free -available in the Open Core model.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureEuroLinux 6EuroLinux 7EuroLinux 8EuroLinux 9
Maximum File Size8EiB8EiB8EiB8EiB
Maximum Filesystem Size8EiB8EiB8EiB8EiB
Maximum Subdirectories or files in directoryunlimitedunlimitedunlimitedunlimited
Maximum symlink depthunlimitedunlimitedunlimitedunlimited
-

Kernel and the most important components versions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureEuroLinux 6EuroLinux 7EuroLinux 8EuroLinux 9
Base Linux Kernel version2.6.343.104.185.14
Package ManagementRPM/YumRPM/YumRPM/Dnf, FlatpakRPM/Dnf, Flatpak
System InitUpstartsystemdsystemdsystemd
Base GNU C Library (glibc) Version2.122.172.282.34
Base (First) GCC version4.4.74.8.58.2.1 (updated in newer versions)11.2.1 (might be updated in the future)
Base (First) LLVM versionXX7.0.1 (updated in newer versions)13.0.0 (might be updated in the future)
Default DesktopGnome 2Gnome 3Gnome 3Gnome 40
Office SuiteLibreOfficeLibreOfficeLibreOfficeLibreOffice
Default Web BrowserFirefoxFirefoxFirefoxFirefox
Default Mail ClientThunderbirdEvolution or ThunderbirdEvolution or ThunderbirdEvolution or Thunderbird
- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/knowledge-base/eurolinux-vault-policy/index.html b/site/knowledge-base/eurolinux-vault-policy/index.html deleted file mode 100644 index 26a6864..0000000 --- a/site/knowledge-base/eurolinux-vault-policy/index.html +++ /dev/null @@ -1,1781 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux Vault and Archiving Policy - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux Vault and Archiving Policy

-

Vault - vault.cdn.euro-linux.com

-

The idea of the vault is simple - it stores older or archived versions of the -software packages (mostly RPMs) and allow to create and maintain the -environment that requires old versions of the packages, specific libraries or -cannot or even must not be updated.

-
-

Warning! Security considerations

-

Due to their nature, the old versions of the software contain security -vulnerabilities. Many of them have ready and easy to use exploits. Using -unsupported versions of software is a dangerous practice, especially -when system is running in the public networks.

-
-

Vault's initial and last version for minor releases

-

From version 8.6 and 9.0 we decided that we will provide three versions for -each minor release (minor release is for example EuroLinux 8.6 -> 8.7 -> 8.8), -of the vault. The first one is the initial state of the release, then there is -current state (for living release), the third one has '-last' and it's the last -snapshot before a new minor release. This idea originated from community -feedback. For example in case of EuroLinux 8.7 (that in time of writing this -documentation is the latest minor release):

- -

If there is no version with -last suffix it means that this version is a -newest minor release or the -last was not created.

-

Vault for the current version

-

For your convince EuroLinux Vault also keeps the track of the current version -of the EuroLinux as a symbolic link to the newest minor release. The -symlinks are 8 for version 8 and 9 for version 9.

- -

These repositories are updated regularly in the same manner as main/mirrors -repositories.

-

EuroLinux sources on vault.cdn.euro-linux.com

-

We used to provide sources for EuroLinux on GitHub. Unfortunately, due to -GitHub's limitations, it wasn't as feasible in long run. Each source needed to -be repacked on the client system and source wasn't signed.

-

We decided to go with a friendlier and more standarized direction after -receiving feedback from the community and clients. Since version 8 we deliver -the sources as .src.rpms. It's a better solution in many ways, and the -advantages include:

-
    -
  • All source packages (sources used to build EuroLinux and other Enterprise - Linux distributions) are securely signed cryptographically
  • -
  • The src.rpm is native format for distributions that leverage RPMs. It allows - to use common toolchains like mock, rpmbuild, EuroLinux Gaia, Open Build - Service, Koji and much more
  • -
  • It's easier to mirror repositories
  • -
  • It's also easier to maintain
  • -
-

The source can be found at -https://vault.cdn.euro-linux.com/sources/eurolinux/.

-

Bug tracker

-

If you encounter any missing sources or problem with vault, please don't -hesitate to contact as via e-mail (support[at]euro-linux.com) or fill bug in -our distro bug -tracker. If you -are our client you can contact us on the support site or with sale -representative.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/knowledge-base/unable-to-find-requested-software/index.html b/site/knowledge-base/unable-to-find-requested-software/index.html deleted file mode 100644 index 2b95910..0000000 --- a/site/knowledge-base/unable-to-find-requested-software/index.html +++ /dev/null @@ -1,1773 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Unable to Find Requested Software - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

Unable to Find Requested Software

-

Environment

-
    -
  • EuroLinux 7
  • -
  • EuroLinux 8
  • -
-

Issue

-

An error occurs during a search for missing components. A similar message is -shown by GNOME Software:

-
-

Unfortunately, the [...] you were searching for could not be found. Please -see [...] for more information.

-
-

Missing Package

-

The package you are searching for is not available in EuroLinux base -repositories.

-

Missing Codec

-

The codec you are searching for is not available in EuroLinux base -repositories due to licensing reasons or patent encumbrance.

-

Missing Hardware Support

-

A kernel module or a driver is not available in EuroLinux base repositories -due to licensing reasons that prohibit redistribution or is not yet in the -upstream Linux kernel.

-

Missing Font

-

The font you are searching for is not available in EuroLinux base -repositories.

-

Missing MIME Support

-

An application that supports operations on your file with its MIME type is not -available in EuroLinux base repositories due to them being supported -exclusively by a third party application or an application that runs only on a -platform different than EuroLinux.

-

Resolution

-

If you would like to request for a certain component availability, please -contact us.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.10/index.html b/site/release-notes/8.10/index.html deleted file mode 100644 index c5ab4ab..0000000 --- a/site/release-notes/8.10/index.html +++ /dev/null @@ -1,1840 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8.10 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8.10 Release Notes

-

This version’s code name is Bucharest - the capital of Romania, also known as “Paris of the East”.

-

Major changes in EuroLinux 8.10.

-

Security

-

Key security-related highlights:

-
    -
  • OpenSSL adds API-level protection for RSA PKCS #1 v1.5 decryption process.
  • -
  • libkcapi delivers new functions and tools.
  • -
  • stunnel provides many new SSL-related features.
  • -
-

Programming languages, web and database servers

-

Later versions of the following application are now available:

-
    -
  • MariaDB 10.11
  • -
  • nginx 1.24
  • -
  • PHP 8.2
  • -
  • PostgreSQL 16
  • -
  • Python 3.12
  • -
-

The following components have been upgraded:

-
    -
  • Git LFS to version 3.4.1
  • -
  • Git to version 2.43.0
  • -
-

Compilers and development tools

-

Updated performance tools and debuggers

-

The following performance tools and debuggers have been updated:

-
    -
  • elfutils 0.190
  • -
  • Valgrind 3.22
  • -
-

Updated compiler toolsets

-

The following compiler toolsets have been updated:

-
    -
  • GCC Toolset 13
  • -
  • Go Toolset 1.21.0
  • -
  • LLVM Toolset 17.0.6
  • -
  • Rust Toolset 1.75.0
  • -
-

Java implementations in EuroLinux 8

-

The EuroLinux 8 AppStream repository includes:

-
    -
  • The java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit.
  • -
  • The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime -Environment and the OpenJDK 11 Java Software Development Kit.
  • -
  • The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime -Environment and the OpenJDK 17 Java Software Development Kit.
  • -
  • The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime Environment and the OpenJDK 8 Java Software Development Kit.
  • -
-

Batteries repositories

-

Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 3000 packages for each buildroot.

-

Known issues

-
    -
  • The AppStream is is about 15GiB. After long discussion and feedback we - decided to keep it RHEL like way, where AppStream ISO is so full because it - can be used to mount repositories used for mirroring and system. We are - sorry but current state (mostly modularity) make things extremely hard to - manage without breaking user experience.
  • -
  • Due to evolution of build process update for SCAP Security Guide are delayed now. They are going to be delivered soon.
  • -
-

Gaia build system

-

We are currently using Gaia 3.0 and preparing 4.0 with branding kit.

-

Container and cloud images

-

You can use the following publicly available images for EuroLinux 8:

- -

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.3/index.html b/site/release-notes/8.3/index.html deleted file mode 100644 index 510b546..0000000 --- a/site/release-notes/8.3/index.html +++ /dev/null @@ -1,1803 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8.3 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8.3 Release Notes

-

Dynamic programming languages

-

Later versions of the following components are now available:

-
    -
  • Node.js 14 - module nodejs stream 14
  • -
  • Perl 5.30 - module perl stream 5.30
  • -
  • PHP 7.4 - module php stream 7.4
  • -
  • Ruby 2.7 - module ruby stream 2.7
  • -
  • Java 11 with OpenJDK - new version of Open Java Development Kit (OpenJDK) - is now available as standalone rpms packages.
  • -
-

Web and Database servers

-

Later versions of the following components are now available

-
    -
  • nginx 1.18 - module nginx stream 1.18
  • -
-

Compiler toolsets

-

The following compiler toolsets have been updated in EL 8.3:

-
    -
  • GCC Toolset 10 - software collection gcc-toolset-10
  • -
  • LLVM Toolset 10.0.1 - module llvm-toolset
  • -
  • Rust Toolset 1.45.2 - module rust-toolset
  • -
  • Go Toolset 1.14.7 - module go-toolset
  • -
-

Security

-
    -
  • -

    EuroLinux 8.3 provides Ansible roles for automated deployments of - Policy-Based Decryption (PBD) solutions using Clevis and Tang. New - version of the package rhel-system-roles adds an Ansible role for - EuroLinux logging through Rsyslog.

    -
  • -
  • -

    The USBGuard framework now provides:

    -
      -
    • its own SELinux policy
    • -
    • notification for user in GUI
    • -
    • multiple enhancement and bug fixes
    • -
    -
  • -
-

General updates and improvements

-
    -
  • Git was updated to version 2.27
  • -
  • Squid was updated to version 4.11
  • -
  • The Tuned system tuning tool has been rebased to version 2.13. This - version adds support for architecture-dependent tuning and ability to use - multiple include directives.
  • -
-

Identity Management

-

The Rivest Cipher 4 (RC4) cipher suite, the default encryption type for users, -services, and trusts between Active Directory domains in an Active Directory -forest, has been deprecated in EuroLinux 8. For compatibility, this -release introduces cryptographic subpolicy named AD-SUPPORT to enable -support for this deprecated encryption type. The new subpolicy allows you to -use RC4 with EuroLinux IPA and SSSD Active Directory.

-

The web console

-

The cockpit web console provides an option to switch between superuser -access and limited access from inside of a user session.

-

Desktop and graphics

-

The Direct Rendering Manager (DRM) kernel graphics subsystem has been -rebased to upstream Linux kernel version 5.6. It provides a number of -enhancements over the previous versions, including support for new GPUs and -APUs.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.4-beta/index.html b/site/release-notes/8.4-beta/index.html deleted file mode 100644 index 64023fc..0000000 --- a/site/release-notes/8.4-beta/index.html +++ /dev/null @@ -1,1811 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux Beta 8.4 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux Beta 8.4 Release Notes

-

Dynamic programming languages

-

Later versions of the following components are now available:

-
    -
  • Python 3.9 - module python39 stream 39.
  • -
  • SWIG 4.0 - module swig stream 4.0
  • -
-

Web and Database servers

-

Later versions of the following components are now available:

-
    -
  • Redis 6 - module redis stream 6
  • -
  • PostgreSQL 13 - module postgresql stream 13
  • -
  • MariaDB 10.5 - module mariadb stream 10.5
  • -
-

Compiler Toolset

-

The following compiler toolsets have been updated in EL 8.4:

-
    -
  • GCC Toolset 10 - software collection gcc-toolset-10
  • -
  • LLVM Toolset 11.0.0 - module llvm-toolset stream rhel
  • -
  • Rust Toolset 1.49.0 - module rust-toolset stream rhel
  • -
  • Go Toolset 1.15.7 - module go-toolset stream rhel
  • -
-

There is new a module containing Persistent Memory Development Kit (PMDK):

-
    -
  • PMDK - module pmkd stream 1_fileformat_v6
  • -
-

Security

-
    -
  • IPsec VPN provided by Libreswan now supports TCP encapsulation and - security labels for IKEv2.
  • -
  • The OpenSCAP packages have been rebased to version 1.3.4, - scap-security-guide has been rebased to version 0.1.54.
  • -
  • The fapolicyd framework now provides integrity checking, and the - RPM plugin now registers any system update handled by either the - YUM package manager or the RPM Package Manager.
  • -
-

General updates and improvements

-
    -
  • EuroLinux 8.4 offers now Subversion 1.14. It's packed as the module - subversion with stream 1.14. The 1.10 stream remain the default module that - contains this package.
  • -
  • New module eclipse. This module has Eclipse IDE but is commonly used - to build Java related packages.
  • -
  • -

    The nmstate packages provide a library and the nmstatectl command-line - utility to manage host network settings declaratively. Nmstate is a - network API for hosts and is fully supported in EuroLinux 8.4. The Multi-protocol - Label Switching (MPLS) is an in-kernel data-forwarding mechanism to route - traffic flow across enterprise networks.

    -
  • -
  • -

    The iproute2 utility introduces three new traffic control actions.

    -
  • -
  • EuroLinux 8 kernel now uses proactive compaction that regularly - initiates memory compaction work before a request for an allocation is made. - Therefore, latency for specific memory allocation requests is lowered.
  • -
  • EuroLinux 8 kernel has now a new implementation of a slab memory controller - for control groups.
  • -
  • EuroLinux kernel now supports the time namespace feature. It allows changing - date and time inside the Linux containers.
  • -
  • EuroLinux 8 kernel now supports the Error Detection and Correction (EDAC) in - 8th and 9th generation Intel Core Processors.
  • -
  • There are changes in the pacemaker resource agent - it now can detect - failures asynchronously and inject a failure into Pacemaker - immediately without waiting for the following monitor interval.
  • -
-

Batteries

-

Batteries repository contains packages that are needed to rebuild distribution -but are not included in upstream repositories. Right now, this repository -includes more than 2000 packages for each buildroot.

-

Multiple batteries were updated for this release there including:

-
    -
  • mdds
  • -
  • meson
  • -
  • spirv-headers
  • -
  • fontforge
  • -
  • multiple python packages
  • -
  • modules for bootstrapping python39
  • -
-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.4/index.html b/site/release-notes/8.4/index.html deleted file mode 100644 index 4bde4cc..0000000 --- a/site/release-notes/8.4/index.html +++ /dev/null @@ -1,1890 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8.4 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8.4 Release Notes

-

Dynamic programming languages

-

Later versions of the following components are now available:

-
    -
  • Python 3.9 - module python39 stream 39.
  • -
  • SWIG 4.0 - module swig stream 4.0
  • -
-

Web and Database servers

-

Later versions of the following components are now available:

-
    -
  • Redis 6 - module redis stream 6
  • -
  • PostgreSQL 13 - module postgresql stream 13
  • -
  • MariaDB 10.5 - module mariadb stream 10.5
  • -
-

Compiler Toolset

-

The following compiler toolsets have been updated in EL 8.4:

-
    -
  • GCC Toolset 10 - software collection gcc-toolset-10
  • -
  • LLVM Toolset 11.0.0 - module llvm-toolset stream rhel
  • -
  • Rust Toolset 1.49.0 - module rust-toolset stream rhel
  • -
  • Go Toolset 1.15.7 - module go-toolset stream rhel
  • -
-

There is new a module containing Persistent Memory Development Kit (PMDK):

-
    -
  • PMDK - module pmkd stream 1_fileformat_v6
  • -
-

Security

-
    -
  • IPsec VPN provided by Libreswan now supports TCP encapsulation and - security labels for IKEv2.
  • -
  • The OpenSCAP packages have been rebased to version 1.3.4, - scap-security-guide has been rebased to version 0.1.54.
  • -
  • The fapolicyd framework now provides integrity checking, and the - RPM plugin now registers any system update handled by either the - YUM package manager or the RPM Package Manager.
  • -
-

General updates and improvements

-
    -
  • EuroLinux 8.4 offers now Subversion 1.14. It's packed as the module - subversion with stream 1.14. The 1.10 stream remain the default module that - contains this package.
  • -
  • New module eclipse. This module has Eclipse IDE but is commonly used - to build Java related packages.
  • -
  • The nmstate packages provide a library and the nmstatectl command-line - utility to manage host network settings declaratively. Nmstate is a - network API for hosts and is fully supported in EuroLinux 8.4. The Multi-protocol - Label Switching (MPLS) is an in-kernel data-forwarding mechanism to route - traffic flow across enterprise networks.
  • -
  • The iproute2 utility introduces three new traffic control actions.
  • -
  • EuroLinux 8 kernel now uses proactive compaction that regularly - initiates memory compaction work before a request for an allocation is made. - Therefore, latency for specific memory allocation requests is lowered.
  • -
  • EuroLinux 8 kernel has now a new implementation of a slab memory controller - for control groups.
  • -
  • EuroLinux kernel now supports the time namespace feature. It allows changing - date and time inside the Linux containers.
  • -
  • EuroLinux 8 kernel now supports the Error Detection and Correction (EDAC) in - 8th and 9th generation Intel Core Processors.
  • -
  • There are changes in the pacemaker resource agent - it now can detect - failures asynchronously and inject a failure into Pacemaker - immediately without waiting for the following monitor interval.
  • -
-

How to update from beta

-

The beta repository has an updated package el-release, that contains production -repositories. Upgrading from EuroLinux 8.4 beta to 8.4 is as simple as running:

-
sudo yum update -y el-release
-sudo yum update -y
-
-

Branded packages

-

Multiple packages have names changed due to branding, including:

-
    -
  • redhat-backgrounds -> el-backgrounds
  • -
  • redhat-indexhtml -> el-indexhtml
  • -
  • redhat-logos -> el-logos
  • -
  • redhat-logos-httpd -> el-logos-httpd
  • -
  • redhat-logos-ipa -> el-logos-ipa
  • -
  • redhat-release -> el-release
  • -
  • redhat-release-eula -> el-release - we include EULA in release package
  • -
-

All these packages have proper RPM provides declaration.

-

The list of the packages that are changed due to branding includes, among the -others:

-
    -
  • abrt
  • -
  • anaconda
  • -
  • anaconda-user-help
  • -
  • anacondafirefox
  • -
  • cloud-init
  • -
  • crash
  • -
  • httpd
  • -
  • httpd
  • -
  • initial-setup
  • -
  • ipa
  • -
  • liberport
  • -
  • libguestfs
  • -
  • libreoffice
  • -
  • nginx
  • -
  • opa-ff
  • -
  • opa-fm
  • -
  • openscap
  • -
  • osinfo-db
  • -
  • python3
  • -
  • redhat-rpm-config
  • -
  • scap-security-guide
  • -
  • skopeo
  • -
  • sos
  • -
  • subscription-manager
  • -
  • thunderbird
  • -
-

Batteries

-

Batteries repository contains packages that are needed to rebuild distribution -but are not included in upstream repositories. Right now, this repository -contains more than 2000 packages for each buildroot.

-

Multiple batteries were updated for this release there including:

-
    -
  • mdds
  • -
  • meson
  • -
  • spirv-headers
  • -
  • fontforge
  • -
  • multiple python packages
  • -
  • modules for bootstrapping python39
  • -
-

Other notable changes

-
    -
  • Because we changed the business model to open core, there is no longer a need - to use FBI (free base image) repositories as they are a subset of entire - repositories. FBI repos are removed from the el-release package.
  • -
  • EuroLinux 8.4 is first version that can use BaseOS-all, AppStream-all and - PowerTools-all repositories that contain all packages produced during - build process. However, these packages are not supported by upstream or - EuroLinux.
  • -
  • EuroLinux by default uses Docker Hub instead of Quay.
  • -
-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.5-arm64/index.html b/site/release-notes/8.5-arm64/index.html deleted file mode 100644 index 73bb72f..0000000 --- a/site/release-notes/8.5-arm64/index.html +++ /dev/null @@ -1,1972 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8.5 Release Notes for ARM 64 (aarch64) - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8.5 Release Notes for ARM 64 (aarch64)

-

EuroLinux 8.5 is the first version of EuroLinux that provides ARM 64 General -Availability. We have to update the Gaia build system in the customers' sites -for this release. This version code name is Tirana - the capital city of -Albania.

-

Below you can find the essential changes in EuroLinux 8.5 GA release for -aarch64 architecture from EuroLinux 8.4 Beta for ARM64.

-

Dynamic programming languages, Web and Database servers

-

New versions of the following components are now available:

-
    -
  • Ruby 3.0 - module ruby stream 3.0.
  • -
  • nginx 1.20 - module nginx stream 1.20
  • -
  • Nodejs 16 - module nodejs stream 16
  • -
-

Compiler Toolset

-

The following compiler toolsets have been updated in EL 8.5:

-
    -
  • GCC Toolset 11 - software collection gcc-toolset-11
  • -
  • LLVM Toolset 12.0.1 - module llvm-toolset stream rhel
  • -
  • Rust Toolset 1.54.0 - module rust-toolset stream rhel
  • -
  • Go Toolset 1.16.7 - module go-toolset stream rhel
  • -
-

Security

-

Most of the security features are connected to rebased/updated versions -of the packages. The most crucial security changes include:

-
    -
  • rsyslog - now support OpenSSL
  • -
  • OpenSCAP framework - added new profiles and multiple changes and enhancements
  • -
  • cryptopolicies were updated - these system-wide cryptographic policies from this - version support different policies for different backends (scoped policies)
  • -
-

High Availability and Resilient Storage

-
    -
  • High Availability and Resilient Storage modules are not supported on ARM64 - architecture. This is in line with upstream policy.
  • -
-

General updates and improvements

-

Among the others, the following packages were updated and enhanced:

-
    -
  • NetworkManager was updated to 1.32.10 from 1.30
  • -
  • OpenIMP was updated to 2.0.31 from 2.0.29
  • -
  • acel was updated to 3.1 from 2.8
  • -
  • bluez was updated to 5.56 from 5.52
  • -
  • chrony was updated to 4.1 from 3.5
  • -
  • cockpit was updated to version 251.1 from 238.2
  • -
  • crypto-policies was updated to 20210617 from 20210209
  • -
  • dnf was updated to 4.7.0 from 4.4.2
  • -
  • elfutils were updated to 0.185 from 0.182
  • -
  • freeipmi was updated to 1.6.8 from 1.6.6
  • -
  • gnutls was updated to 3.6.16 from 3.6.14
  • -
  • ibacm was updated to 35.0 from 32.0
  • -
  • libmodulemd updated to version 2.13.0 from 2.9.4
  • -
  • libreswan was updated to version 4.4 from 4.3
  • -
  • main GCC was updated to 8.5.0 from 8.4.1
  • -
  • opencryptoki updated to version 3.16.0 from 3.15.1
  • -
  • rsyslog was updated to version 8.2102.0 from 8.1911.0
  • -
  • sssd was updated to version 2.5.2 from 2.4.0
  • -
-

New packages

-

Among the others, the following packages were added to this release:

-
    -
  • adwaita-qt5
  • -
  • ansible-collection-microsoft-sql
  • -
  • ansible-collection-redhat-rhel_mgmt
  • -
  • ansible-freeipa-tests
  • -
  • ansible-pcp
  • -
  • compact-hwloc1
  • -
  • coreos-installer
  • -
  • dotnet6.0
  • -
  • eth-tools
  • -
  • java-17-openjdk*
  • -
  • libadwaita-qt5
  • -
  • libcap-ng-python3
  • -
  • libcomps-devel is now included in PowerTools
  • -
  • libvoikko-devel - is now included in PowerTools
  • -
  • mobile-broadband-provider-info-devel is now included in PowerTools
  • -
  • modulemd-tools
  • -
  • pcm
  • -
  • python3-cloud-what
  • -
  • python3-libstoragemgmt
  • -
  • python3-pyghmi
  • -
  • qt5-qtserialbus-devel is now included in PowerTools
  • -
  • resource-agents-paf (resilient storage)
  • -
  • rsyslog-openssl
  • -
  • samba-vfs-iouring
  • -
  • sblim-gather
  • -
  • sblim-gather-provider is now included in PowerTools
  • -
  • sevctl
  • -
  • stratisd-dracut
  • -
  • tesseract
  • -
  • tss2
  • -
  • udftools
  • -
  • unicode-ucd-unihan
  • -
  • xapian-core and its development packages are now included
  • -
-

How to update from beta

-

The beta repository has an updated package el-release, that contains -production repositories. Upgrading from EuroLinux 8.4 beta for ARM64 to 8.5 GA -is as simple as running:

-
sudo yum update -y el-release
-sudo yum update -y
-
-

Branded packages

-

Multiple packages have names changed due to branding, including:

-
    -
  • redhat-backgrounds -> el-backgrounds
  • -
  • redhat-indexhtml -> el-indexhtml
  • -
  • redhat-logos -> el-logos
  • -
  • redhat-logos-httpd -> el-logos-httpd
  • -
  • redhat-logos-ipa -> el-logos-ipa
  • -
  • redhat-release -> el-release
  • -
  • redhat-release-eula -> el-release - we include EULA in release package
  • -
-

All these packages have proper RPM provides declaration.

-

The list of the packages that are changed due to branding includes, among the -others:

-
    -
  • abrt
  • -
  • anaconda
  • -
  • anaconda-user-help
  • -
  • anacondafirefox
  • -
  • cloud-init
  • -
  • crash
  • -
  • httpd
  • -
  • initial-setup
  • -
  • ipa
  • -
  • libreport
  • -
  • libguestfs
  • -
  • libreoffice
  • -
  • nginx
  • -
  • opa-ff
  • -
  • opa-fm
  • -
  • openscap
  • -
  • osinfo-db
  • -
  • python3
  • -
  • redhat-rpm-config
  • -
  • scap-security-guide
  • -
  • skopeo
  • -
  • sos
  • -
  • subscription-manager
  • -
  • thunderbird
  • -
-

Batteries

-

Batteries repository contains packages that are needed to rebuild the -distribution but are not included in upstream repositories. Right now, this -repository includes more than 2100 packages for each buildroot.

-

Multiple batteries were updated for this release there, including:

-
    -
  • Bootstraps for rust-toolset
  • -
  • Bootstraps for go-toolset
  • -
-

Gaia build system

-

Gaia build system was updated in all interested parties' environments. We had -to select/order (with current long delivery times)/install hardware for -aarch64. We also changed the rebuild policy. None of our customers was -interested in using RHEL as a buildroot for their own Enterprise Linux forks. -It means that EuroLinux must be released faster, but at the very same time, we -can exclusively focus on providing EuroLinux in the early stages and thus -release it faster. We also decided that the next version will be released -asynchronously with more batch compilation. Batch compilation is scheduled for -EuroLinux 9.0 and 8.6.

-

Other notable changes

-
    -
  • EuroLinux 8.5 is the first version that can use baseos-all, appstream-all - and powertools-all repositories that contain all packages produced - during the build process. However, these packages are not supported by upstream - or EuroLinux. They are intended for developers to build their own solutions.
  • -
  • EuroLinux reverted the previous changes that made DockerHub the default - container image registry. We observed other RHEL clones and decided that - keeping default might be more suitable for users.
  • -
-

Currently missing features

-

Container and cloud images

-

We will work on broader support for cloud/container images based on EuroLinux -8.5 for arm including:

-
    -
  • New container images on DockerHub and Quay.io
  • -
  • AWS images for Graviton processors
  • -
  • New Vagrant Boxes - note that HashiCorp does not provide an aarch64 build for - Vagrant. Still, Linux distributions like Fedora delivers it so, it's achievable - and usable.
  • -
-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.5/index.html b/site/release-notes/8.5/index.html deleted file mode 100644 index cd3b95d..0000000 --- a/site/release-notes/8.5/index.html +++ /dev/null @@ -1,1951 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8.5 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8.5 Release Notes

-

EuroLinux 8.5 is the first minor release created in a continuous way. It was -also the first version when we deployed our engineer to remote sites (in most -cases virtual) to provide support for organisations that rebuild RHEL/EuroLinux -from sources with Gaia build system. This version code name is Tirana - the -capital city of Albania.

-

Below you can find the essential changes in EuroLinux 8.5 release for x86_64 -architecture. The aarch64 GA release is slightly delayed. Release notes for -aarch64 will be provided in a separate document.

-

Dynamic programming languages, Web and Database servers

-

New versions of the following components are now available:

-
    -
  • Ruby 3.0 - module ruby stream 3.0.
  • -
  • nginx 1.20 - module nginx stream 1.20
  • -
  • Nodejs 16 - module nodejs stream 16
  • -
-

Compiler Toolset

-

The following compiler toolsets have been updated in EL 8.5:

-
    -
  • GCC Toolset 11 - software collection gcc-toolset-11
  • -
  • LLVM Toolset 12.0.1 - module llvm-toolset stream rhel
  • -
  • Rust Toolset 1.54.0 - module rust-toolset stream rhel
  • -
  • Go Toolset 1.16.7 - module go-toolset stream rhel
  • -
-

Security

-

Most of the security features are connected to rebased/updated versions -of the packages. The most crucial security changes include:

-
    -
  • rsyslog - now support OpenSSL
  • -
  • OpenSCAP framework - added new profiles and multiple changes and enhancements
  • -
  • cryptopolicies were updated - these system-wide cryptographic policies from this - version support different policies for different backends (scoped policies)
  • -
-

High Availability and Resilient Storage

-
    -
  • cmirror was updated to version 2.03.12
  • -
  • corosync was updated to version 3.1.5
  • -
  • pacemaker was updated to version 2.1.0
  • -
  • resource-agents-paf package was added to HA an RS repositories
  • -
-

General updates and improvements

-

Among the others, the following packages were updated and enhanced:

-
    -
  • NetworkManager was updated to 1.32.10 from 1.30
  • -
  • OpenIMP was updated to 2.0.31 from 2.0.29
  • -
  • acel was updated to 3.1 from 2.8
  • -
  • bluez was updated to 5.56 from 5.52
  • -
  • chrony was updated to 4.1 from 3.5
  • -
  • cockpit was updated to version 251.1 from 238.2
  • -
  • crypto-policies was updated to 20210617 from 20210209
  • -
  • dnf was updated to 4.7.0 from 4.4.2
  • -
  • elfutils were updated to 0.185 from 0.182
  • -
  • freeipmi was updated to 1.6.8 from 1.6.6
  • -
  • gnutls was updated to 3.6.16 from 3.6.14
  • -
  • ibacm was updated to 35.0 from 32.0
  • -
  • libmodulemd updated to version 2.13.0 from 2.9.4
  • -
  • libreswan was updated to version 4.4 from 4.3
  • -
  • main GCC was updated to 8.5.0 from 8.4.1
  • -
  • opencryptoki updated to version 3.16.0 from 3.15.1
  • -
  • rsyslog was updated to version 8.2102.0 from 8.1911.0
  • -
  • sssd was updated to version 2.5.2 from 2.4.0
  • -
-

New packages

-

Among the others, the following packages were added to this release:

-
    -
  • adwaita-qt5
  • -
  • ansible-collection-microsoft-sql
  • -
  • ansible-collection-redhat-rhel_mgmt
  • -
  • ansible-freeipa-tests
  • -
  • ansible-pcp
  • -
  • compact-hwloc1
  • -
  • coreos-installer
  • -
  • dotnet-build-reference-packages
  • -
  • dotnet-sdk-3.1-source-built-artifacts
  • -
  • dotnet-sdk-5.0-source-built-artifacts
  • -
  • dotnet5.0-build-reference-packages
  • -
  • eth-tools
  • -
  • flatpak (i686) included in PowerTools
  • -
  • java-17-openjdk*
  • -
  • libadwaita-qt5
  • -
  • libcap-ng-python3
  • -
  • libcomps-devel is now included in PowerTools
  • -
  • libvoikko-devel - is now included in PowerTools
  • -
  • lpsolve (i686) is now included in PowerTools
  • -
  • mobile-broadband-provider-info-devel is now included in PowerTools
  • -
  • modulemd-tools
  • -
  • pcm
  • -
  • python3-cloud-what
  • -
  • python3-libstoragemgmt
  • -
  • python3-pillow (i686) is now included in PowerTools
  • -
  • python3-pyghmi
  • -
  • qt5-qtserialbus-devel is now included in PowerTools
  • -
  • resource-agents-paf (resilient storage)
  • -
  • rsyslog-openssl
  • -
  • samba-vfs-iouring
  • -
  • sblim-gather
  • -
  • sblim-gather-provider is now included in PowerTools
  • -
  • sevctl
  • -
  • stratisd-dracut
  • -
  • tesseract
  • -
  • tss2
  • -
  • udftools
  • -
  • unicode-ucd-unihan
  • -
  • xapian-core and its development packages are now included
  • -
-

How to update from beta

-

The beta repository has an updated package el-release, that contains production -repositories. Upgrading from EuroLinux 8.5 beta to 8.5 is as simple as running:

-
sudo yum update -y el-release
-sudo yum update -y
-
-

Branded packages

-

Multiple packages have names changed due to branding, including:

-
    -
  • redhat-backgrounds -> el-backgrounds
  • -
  • redhat-indexhtml -> el-indexhtml
  • -
  • redhat-logos -> el-logos
  • -
  • redhat-logos-httpd -> el-logos-httpd
  • -
  • redhat-logos-ipa -> el-logos-ipa
  • -
  • redhat-release -> el-release
  • -
  • redhat-release-eula -> el-release - we include EULA in release package
  • -
-

All these packages have proper RPM provides declaration.

-

The list of the packages that are changed due to branding includes, among the -others:

-
    -
  • abrt
  • -
  • anaconda
  • -
  • anaconda-user-help
  • -
  • anacondafirefox
  • -
  • cloud-init
  • -
  • crash
  • -
  • httpd
  • -
  • initial-setup
  • -
  • ipa
  • -
  • libreport
  • -
  • libguestfs
  • -
  • libreoffice
  • -
  • nginx
  • -
  • opa-ff
  • -
  • opa-fm
  • -
  • openscap
  • -
  • osinfo-db
  • -
  • python3
  • -
  • redhat-rpm-config
  • -
  • scap-security-guide
  • -
  • skopeo
  • -
  • sos
  • -
  • subscription-manager
  • -
  • thunderbird
  • -
-

Batteries

-

Batteries repository contains packages that are needed to rebuild the -distribution but are not included in upstream repositories. Right now, this -repository includes more than 2100 packages for each buildroot.

-

Multiple batteries were updated for this release there including:

-
    -
  • Bootstraps for rust-toolset
  • -
  • Bootstraps for go-toolset
  • -
-

Gaia build system

-

Gaia build system was updated in all interested parties' environments. We also -changed the rebuild policy. None of our customers was interested in using RHEL -as a buildroot for their own Enterprise Linux forks. It means that EuroLinux -must be released faster, but at the very same time, we can exclusively focus on -providing EuroLinux in the early stages and thus release it faster. We also -decided that the next version will be released asynchronously with more batch -compilation. Synchronization was especially problematic in this release as -there was a lot of holidays in Poland.

-

Other notable changes

-
    -
  • EuroLinux 8.5 is the first version that can use baseos-all, appstream-all - and powertools-all,high-availability-all, resilient-storage-all - repositories that contain all packages produced during the build process. - However, these packages are not supported by upstream or EuroLinux. They are - intended for developers to build they own solutions.
  • -
  • EuroLinux reverted the previous changes that made DockerHub the default - container image registry. We observed other RHEL clones and decided that - keeping default might be more suitable for users.
  • -
-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.6-beta/index.html b/site/release-notes/8.6-beta/index.html deleted file mode 100644 index e9638e7..0000000 --- a/site/release-notes/8.6-beta/index.html +++ /dev/null @@ -1,1992 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8.6 Beta Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8.6 Beta Release Notes

-

EuroLinux 8.6 is the first minor release with a full-fledged beta available -before the General Availability of the upstream version (RHEL 8.6). The Beta -version will allow releasing EuroLinux 8.6 GA faster. We decided to publish -x86_64 and corresponding x86_64, i686 open buildroots for this beta. The GA -version will release all supported arches simultaneously.

-

This version’s code name is Kyiv - the capital city of Ukraine.

-

Dynamic programming languages, Web and Database servers

-

New versions of the following components are now available:

-
    -
  • New: PHP 8.0 - module php stream 8.0
  • -
  • New: Perl 5.32 - module perl stream 5.32
  • -
  • New: Maven 3.5 - module maven stream 3.5
  • -
  • New: Log4j:2 - module log4j stream 2
  • -
  • PostgreSQL 10 - module postgresql stream 10 was rebased to PostgreSQL 10.19 from 10.17
  • -
  • PMDK 1_fileformat_v6 - module pmdk stream 1_fileformat_v6 was rebased to version 1.11.1 from 1.9.2
  • -
-

Compiler Toolset

-

The following compiler toolsets have been updated in EL 8.6:

-
    -
  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.58.1 from 1.54.0
  • -
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 13.0.1 from 12.0.1
  • -
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.17.7 from 1.16.12
  • -
  • GCC-Toolset-11 - toolset gcc-toolset-11 has multiple updates and was rebased to version 11.2
  • -
-

Containers

-
    -
  • New Containers Tools module containers-tools stream 4.0
  • -
  • Containers tools module containers-tools stream rhel was heavily updated
  • -
-

Security

-

Most of the security features are connected to rebased/updated versions -of the packages. The most crucial security changes include:

-
    -
  • semodule now supports the --checksum option for verifying SELinux policy modules versions
  • -
  • OpenSSL 3.0 support in opencryptoki, among others
  • -
  • OpenSCAP supports OSBuild Blueprint as a remediation type and several command-line option improvements
  • -
  • SCAP Security Guide - authselect for rules that harden PAM stack and more precise xccdf_org.ssgproject.content_enable_fips_mode rule implementation among others
  • -
-

General updates and improvements

-

Among the others, the following packages were updated and enhanced:

-
    -
  • Git was updated to version 2.31 from 2.27
  • -
  • 389-ds-base (Directory Server) was updated to 1.4.3.28
  • -
  • Libreswan was updated to 4.5
  • -
  • PCP was rebased to version 5.3.5-8
  • -
  • OpenSCAP was updated to 1.3.6
  • -
  • grafana and grafana containers were rebased to the newer versions
  • -
  • SCAP Security Guide was updated to 0.1.60
  • -
  • authselect was updated to 1.2.2
  • -
  • bind was updated to 9.16.23
  • -
  • fapolicyd was updated to 1.1
  • -
  • libcap was updated to 2.48
  • -
  • lsvpd was updated to 1.7.13
  • -
  • opencryptoki was updated to 3.17.0
  • -
  • pcsc-lite was updated to 1.9.5
  • -
  • powerpc-utils was updated to 1.3.9
  • -
  • samba was updated to 4.15.5
  • -
-

New packages

-

Among the others, the following packages were added to os repository for this release:

-
    -
  • aardvark-dns
  • -
  • adwaita-icon-theme-devel
  • -
  • ansible-core
  • -
  • ansible-test
  • -
  • bind9.16
  • -
  • bind9.16-chroot
  • -
  • bind9.16-devel
  • -
  • bind9.16-dnssec-utils
  • -
  • bind9.16-doc
  • -
  • bind9.16-libs
  • -
  • bind9.16-license
  • -
  • bind9.16-utils
  • -
  • coreos-installer-dracut
  • -
  • fdo-admin-cli
  • -
  • fdo-client
  • -
  • fdo-init
  • -
  • fdo-manufacturing-server
  • -
  • fdo-owner-cli
  • -
  • fdo-owner-onboarding-server
  • -
  • fdo-rendezvous-server
  • -
  • fence-virtd-cpg
  • -
  • fwupd-devel
  • -
  • gdm-devel
  • -
  • gdm-pam-extensions-devel
  • -
  • glibc-gconv-extra
  • -
  • gnome-shell-extension-classification-banner
  • -
  • gnome-shell-extension-dash-to-panel
  • -
  • greenboot-default-health-checks
  • -
  • hostapd
  • -
  • libgcab1-devel
  • -
  • libguestfs-appliance
  • -
  • libnbd-bash-completion
  • -
  • libpinyin-devel
  • -
  • libqrtr-glib
  • -
  • libselinux-static
  • -
  • libss-devel
  • -
  • libtpms
  • -
  • libtpms-devel
  • -
  • libuser-devel
  • -
  • libvirt-wireshark
  • -
  • libxmlb-devel
  • -
  • lmdb-devel
  • -
  • maven-openjdk17
  • -
  • nbdkit-gzip-filter
  • -
  • nbdkit-nbd-plugin
  • -
  • nbdkit-tar-filter
  • -
  • nbdkit-tar-plugin
  • -
  • nbdkit-tmpdisk-plugin
  • -
  • netavark
  • -
  • NetworkManager-initscripts-updown
  • -
  • nftables-devel
  • -
  • nginx-mod-devel
  • -
  • nmstate-devel
  • -
  • nmstate-libs
  • -
  • osbuild-composer-dnf-json
  • -
  • osbuild-luks2
  • -
  • osbuild-lvm2
  • -
  • pcp-pmda-denki
  • -
  • pcp-pmda-mongodb
  • -
  • php-pecl-xdebug3
  • -
  • multiple perl-* that are in perl 5.32 modules
  • -
  • prometheus-jmx-exporter-openjdk11
  • -
  • python38-resolvelib
  • -
  • python3-bind9.16
  • -
  • python3-dnf-plugin-modulesync
  • -
  • qatlib-tests
  • -
  • qatzip
  • -
  • qatzip-devel
  • -
  • qatzip-libs
  • -
  • qemu-kvm-docs
  • -
  • qemu-kvm-hw-usbredir
  • -
  • qemu-kvm-ui-opengl
  • -
  • qemu-kvm-ui-spice
  • -
  • rig
  • -
  • rsyslog-mmfields
  • -
  • rust-std-static-wasm32-wasi
  • -
  • shadow-utils-subid
  • -
  • shadow-utils-subid-devel
  • -
  • sshpass
  • -
  • stress-ng
  • -
  • swtpm
  • -
  • swtpm-devel
  • -
  • swtpm-libs
  • -
  • swtpm-tools
  • -
  • swtpm-tools-pkcs11
  • -
  • virt-v2v-bash-completion
  • -
  • virt-v2v-man-pages-ja
  • -
  • virt-v2v-man-pages-uk
  • -
  • webrtc-audio-processing-devel
  • -
  • weldr-client
  • -
-

Branded packages

-

Multiple packages have names changed due to branding, including:

-
    -
  • redhat-backgrounds -> el-backgrounds
  • -
  • redhat-indexhtml -> el-indexhtml
  • -
  • redhat-logos -> el-logos
  • -
  • redhat-logos-httpd -> el-logos-httpd
  • -
  • redhat-logos-ipa -> el-logos-ipa
  • -
  • redhat-release -> el-release
  • -
  • redhat-release-eula -> el-release - we include EULA in release package
  • -
-

All these packages have proper RPM provides declaration.

-

The list of the packages that are changed due to branding includes, among the -others:

-
    -
  • abrt
  • -
  • anaconda
  • -
  • anaconda-user-help
  • -
  • cloud-init
  • -
  • crash
  • -
  • firefox
  • -
  • httpd
  • -
  • initial-setup
  • -
  • ipa
  • -
  • libguestfs
  • -
  • libreoffice
  • -
  • libreport
  • -
  • nginx
  • -
  • opa-ff
  • -
  • opa-fm
  • -
  • openscap
  • -
  • osinfo-db
  • -
  • python3
  • -
  • redhat-rpm-config
  • -
  • scap-security-guide
  • -
  • skopeo
  • -
  • sos
  • -
  • subscription-manager
  • -
  • thunderbird
  • -
-

Removed packages

-

The following packages were removed:

-
    -
  • rhc and related packages
  • -
  • insights-client and related packages
  • -
-

Batteries

-

Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 2500 packages for each buildroot.

-

Multiple batteries were updated for this release including:

-
    -
  • Bootstraps for Perl 5.32
  • -
  • Updated mesa batteries
  • -
  • Smaller packages that broke buildroot
  • -
-

About 420 packages were updated for x86_64 buildroot alone.

-

Gaia build system

-

We are still working on Gaia 3.0.

-

Known bugs

-
    -
  • This is a Beta release!
  • -
  • openscap will probably not work
  • -
  • There is ambiguity when it comes to SCAP profiles naming that will be resolved for - 8.6 GA GitHub Bug Report
  • -
  • After installation, the first kernel might report EuroLinux 8.5 -> updated - kernel should report 8.6 beta.
  • -
  • evolution-mapi was wrongly linked against older samba. The solution is yum reinstall -y evolution-mapi as we updated the package in-place
  • -
  • dhcp-client was wrongly linked against older bind-export-libs. The solution is yum reinstall -y dhcp-client as we updated the package in-place
  • -
-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.6/index.html b/site/release-notes/8.6/index.html deleted file mode 100644 index 745693a..0000000 --- a/site/release-notes/8.6/index.html +++ /dev/null @@ -1,1972 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8.6 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8.6 Release Notes

-

Since EuroLinux 8.6 was first minor release with a full-fledged beta available -before the General Availability of the upstream version (RHEL 8.6), the Beta -version allowed us to release EuroLinux 8.6 faster.

-

This version’s code name is Kyiv - the capital city of Ukraine.

-

Dynamic programming languages, Web and Database servers

-

New versions of the following components are now available:

-
    -
  • New: PHP 8.0 - module php stream 8.0
  • -
  • New: Perl 5.32 - module perl stream 5.32
  • -
  • New: Maven 3.5 - module maven stream 3.5
  • -
  • New: Log4j:2 - module log4j stream 2
  • -
  • PostgreSQL 10 - module postgresql stream 10 was rebased to PostgreSQL 10.19 from 10.17
  • -
  • PMDK 1_fileformat_v6 - module pmdk stream 1_fileformat_v6 was rebased to version 1.11.1 from 1.9.2
  • -
-

Compiler Toolset

-

The following compiler toolsets have been updated in EL 8.6:

-
    -
  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.58.1 from 1.54.0
  • -
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 13.0.1 from 12.0.1
  • -
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.17.7 from 1.16.12
  • -
  • GCC-Toolset-11 - toolset gcc-toolset-11 has multiple updates and was rebased to version 11.2
  • -
-

Containers

-
    -
  • New Containers Tools module containers-tools stream 4.0
  • -
  • Containers tools module containers-tools stream rhel was heavily updated
  • -
-

Security

-

Most of the security features are connected to rebased/updated versions -of the packages. The most crucial security changes include:

-
    -
  • semodule now supports the --checksum option for verifying SELinux policy modules versions
  • -
  • OpenSSL 3.0 support in opencryptoki, among others
  • -
  • OpenSCAP supports OSBuild Blueprint as a remediation type and several command-line option improvements
  • -
  • SCAP Security Guide - authselect for rules that harden PAM stack and more precise xccdf_org.ssgproject.content_enable_fips_mode rule implementation among others
  • -
-

General updates and improvements

-

Among the others, the following packages were updated and enhanced:

-
    -
  • Git was updated to version 2.31 from 2.27
  • -
  • 389-ds-base (Directory Server) was updated to 1.4.3.28
  • -
  • Libreswan was updated to 4.5
  • -
  • PCP was rebased to version 5.3.5-8
  • -
  • OpenSCAP was updated to 1.3.6
  • -
  • grafana and grafana containers were rebased to the newer versions
  • -
  • SCAP Security Guide was updated to 0.1.60
  • -
  • authselect was updated to 1.2.2
  • -
  • bind was updated to 9.16.23
  • -
  • fapolicyd was updated to 1.1
  • -
  • libcap was updated to 2.48
  • -
  • lsvpd was updated to 1.7.13
  • -
  • opencryptoki was updated to 3.17.0
  • -
  • pcsc-lite was updated to 1.9.5
  • -
  • powerpc-utils was updated to 1.3.9
  • -
  • samba was updated to 4.15.5
  • -
-

New packages

-

Among the others, the following packages were added to os repository for this release:

-
    -
  • aardvark-dns
  • -
  • adwaita-icon-theme-devel
  • -
  • ansible-core
  • -
  • ansible-test
  • -
  • bind9.16
  • -
  • bind9.16-chroot
  • -
  • bind9.16-devel
  • -
  • bind9.16-dnssec-utils
  • -
  • bind9.16-doc
  • -
  • bind9.16-libs
  • -
  • bind9.16-license
  • -
  • bind9.16-utils
  • -
  • coreos-installer-dracut
  • -
  • fdo-admin-cli
  • -
  • fdo-client
  • -
  • fdo-init
  • -
  • fdo-manufacturing-server
  • -
  • fdo-owner-cli
  • -
  • fdo-owner-onboarding-server
  • -
  • fdo-rendezvous-server
  • -
  • fence-virtd-cpg
  • -
  • fwupd-devel
  • -
  • gdm-devel
  • -
  • gdm-pam-extensions-devel
  • -
  • glibc-gconv-extra
  • -
  • gnome-shell-extension-classification-banner
  • -
  • gnome-shell-extension-dash-to-panel
  • -
  • greenboot-default-health-checks
  • -
  • hostapd
  • -
  • libgcab1-devel
  • -
  • libguestfs-appliance
  • -
  • libnbd-bash-completion
  • -
  • libpinyin-devel
  • -
  • libqrtr-glib
  • -
  • libselinux-static
  • -
  • libss-devel
  • -
  • libtpms
  • -
  • libtpms-devel
  • -
  • libuser-devel
  • -
  • libvirt-wireshark
  • -
  • libxmlb-devel
  • -
  • lmdb-devel
  • -
  • maven-openjdk17
  • -
  • nbdkit-gzip-filter
  • -
  • nbdkit-nbd-plugin
  • -
  • nbdkit-tar-filter
  • -
  • nbdkit-tar-plugin
  • -
  • nbdkit-tmpdisk-plugin
  • -
  • netavark
  • -
  • NetworkManager-initscripts-updown
  • -
  • nftables-devel
  • -
  • nginx-mod-devel
  • -
  • nmstate-devel
  • -
  • nmstate-libs
  • -
  • osbuild-composer-dnf-json
  • -
  • osbuild-luks2
  • -
  • osbuild-lvm2
  • -
  • pcp-pmda-denki
  • -
  • pcp-pmda-mongodb
  • -
  • php-pecl-xdebug3
  • -
  • multiple perl-* that are in perl 5.32 modules
  • -
  • prometheus-jmx-exporter-openjdk11
  • -
  • python38-resolvelib
  • -
  • python3-bind9.16
  • -
  • python3-dnf-plugin-modulesync
  • -
  • qatlib-tests
  • -
  • qatzip
  • -
  • qatzip-devel
  • -
  • qatzip-libs
  • -
  • qemu-kvm-docs
  • -
  • qemu-kvm-hw-usbredir
  • -
  • qemu-kvm-ui-opengl
  • -
  • qemu-kvm-ui-spice
  • -
  • rig
  • -
  • rsyslog-mmfields
  • -
  • rust-std-static-wasm32-wasi
  • -
  • shadow-utils-subid
  • -
  • shadow-utils-subid-devel
  • -
  • sshpass
  • -
  • stress-ng
  • -
  • swtpm
  • -
  • swtpm-devel
  • -
  • swtpm-libs
  • -
  • swtpm-tools
  • -
  • swtpm-tools-pkcs11
  • -
  • virt-v2v-bash-completion
  • -
  • virt-v2v-man-pages-ja
  • -
  • virt-v2v-man-pages-uk
  • -
  • webrtc-audio-processing-devel
  • -
  • weldr-client
  • -
-

Branded packages

-

Multiple packages have names changed due to branding, including:

-
    -
  • redhat-backgrounds -> el-backgrounds
  • -
  • redhat-indexhtml -> el-indexhtml
  • -
  • redhat-logos -> el-logos
  • -
  • redhat-logos-httpd -> el-logos-httpd
  • -
  • redhat-logos-ipa -> el-logos-ipa
  • -
  • redhat-release -> el-release
  • -
  • redhat-release-eula -> el-release - we include EULA in release package
  • -
-

All these packages have proper RPM provides declaration.

-

The list of the packages that are changed due to branding includes, among the -others:

-
    -
  • abrt
  • -
  • anaconda
  • -
  • anaconda-user-help
  • -
  • cloud-init
  • -
  • crash
  • -
  • firefox
  • -
  • httpd
  • -
  • initial-setup
  • -
  • ipa
  • -
  • libguestfs
  • -
  • libreoffice
  • -
  • libreport
  • -
  • nginx
  • -
  • opa-ff
  • -
  • opa-fm
  • -
  • openscap
  • -
  • osinfo-db
  • -
  • python3
  • -
  • redhat-rpm-config
  • -
  • scap-security-guide
  • -
  • skopeo
  • -
  • sos
  • -
  • subscription-manager
  • -
  • thunderbird
  • -
-

Removed packages

-

The following packages were removed:

-
    -
  • rhc and related packages
  • -
  • insights-client and related packages
  • -
-

Batteries

-

Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 2500 packages for each buildroot.

-

Multiple batteries were updated for this release including:

-
    -
  • Bootstraps for Perl 5.32
  • -
  • Updated mesa batteries
  • -
  • Smaller packages that broke buildroot
  • -
-

About 420 packages were updated for x86_64 buildroot alone.

-

Gaia build system

-

We are still working on Gaia 3.0.

-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.7-beta/index.html b/site/release-notes/8.7-beta/index.html deleted file mode 100644 index 70b6cf9..0000000 --- a/site/release-notes/8.7-beta/index.html +++ /dev/null @@ -1,1978 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8.7 Beta Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8.7 Beta Release Notes

-

EuroLinux 8.7 is the first beta release for x86_64 and aarch64 beta published -concurrently. The Beta version will allow us to provide EuroLinux 8.7 faster.

-

This version’s code name is Brussels - the capital city of Belgium and the -heart of European Union.

-
-

Older modules removed

-

In this beta we noticed that a lot of modules were obsoleted or removed, we -are waiting for GA version to confirm that there will be a mechanism that -should allow smoother migration between modules or that these modules will -be available.

-
-

Dynamic programming languages, Web and Database servers

-

New versions of the following components are now available:

-
    -
  • New: Ruby 3.1 - module ruby stream 3.1
  • -
  • New: Mercurial 6.2 - module mercurial stream 6.2
  • -
  • New: Node.js 18 - module nodejs stream 18
  • -
  • Redis 6 - module redis:6 was updated from version 6.0 to 6.2.7
  • -
-

Compiler Toolset

-

The following compiler toolsets have been updated in EL 8.7:

-
    -
  • New: GCC-Toolset-12 - toolset gcc-toolset-12
  • -
  • New: Dotnet 7.0 - Dotnet 7.0 packages
  • -
  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.62.1 from 1.58.1
  • -
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 14.0.0 from 13.0.1
  • -
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.18.4 from 1.17.7
  • -
-

Containers

-
    -
  • Containers tools module containers-tools stream rhel was heavily updated
  • -
  • Containers tools module containers-tools stream 4.0 was heavily updated
  • -
  • Containers tools module containers-tools stream 3.0 was mostly removed
  • -
  • Containers tools module containers-tools stream 2.0 was mostly removed
  • -
-

Security

-

Most of the security features are connected to rebased/updated versions of the -packages. The most crucial security changes include:

-
    -
  • NSS no longer support RSA keys shorter than 1023 bits and won't work with such keys.
  • -
  • Updated SCAP security guilde with new sysctl, pampwquality, grub2 rules.
  • -
  • fapolicyd rebased to 1.1.3
  • -
-

General updates and improvements

-

Among the others, the following packages were updated and enhanced:

-
    -
  • QT5 toolchain and utilities were updated from 5.15.2 to 5.15.3
  • -
  • Opencryptoki was updated to version 3.18.0 from 3.17.0
  • -
  • Libva was updated to version 2.13.0 from 2.5.0
  • -
  • Chrony was updated to version 4.2 from 4.1
  • -
  • Unbound was updated to version 1.16.2 from 1.7.3
  • -
  • Fapolicyd rebased to 1.1.3 from 1.1
  • -
  • Mariadb-java-client rebased to version 2.7.1 from 2.2.5
  • -
  • open-vm-tools rebased to 12.0.5 from 11.3.5
  • -
-

New packages

-

Among the others, the following packages were added to os repository for this -release:

-
    -
  • Multiple qt5-docs packages
  • -
  • aardvark-dns
  • -
  • anaconda-widgets-devel
  • -
  • aspnetcore-runtime-7.0
  • -
  • aspnetcore-targeting-pack-7.0
  • -
  • dotnet-apphost-pack-7.0
  • -
  • dotnet-hostfxr-7.0
  • -
  • dotnet-sdk-7.0-source-built-artifacts
  • -
  • egl-utils
  • -
  • frr-selinux
  • -
  • fstrm-utils
  • -
  • gcc-plugin-annobin
  • -
  • gcc-toolset-12
  • -
  • gcc-toolset-12-annobin-annocheck
  • -
  • gcc-toolset-12-annobin-docs
  • -
  • gcc-toolset-12-annobin-plugin-gcc
  • -
  • gcc-toolset-12-binutils
  • -
  • gcc-toolset-12-binutils-devel
  • -
  • gcc-toolset-12-binutils-gold
  • -
  • gcc-toolset-12-build
  • -
  • gcc-toolset-12-dwz
  • -
  • gcc-toolset-12-gcc
  • -
  • gcc-toolset-12-gcc-c++
  • -
  • gcc-toolset-12-gcc-gfortran
  • -
  • gcc-toolset-12-gcc-plugin-devel
  • -
  • gcc-toolset-12-gdb
  • -
  • gcc-toolset-12-libasan-devel
  • -
  • gcc-toolset-12-libatomic-devel
  • -
  • gcc-toolset-12-libgccjit
  • -
  • gcc-toolset-12-libgccjit-devel
  • -
  • gcc-toolset-12-libgccjit-docs
  • -
  • gcc-toolset-12-libitm-devel
  • -
  • gcc-toolset-12-liblsan-devel
  • -
  • gcc-toolset-12-libstdc++-devel
  • -
  • gcc-toolset-12-libstdc++-docs
  • -
  • gcc-toolset-12-libtsan-devel
  • -
  • gcc-toolset-12-libubsan-devel
  • -
  • gcc-toolset-12-runtime
  • -
  • gtk3-devel-docs
  • -
  • idm-pki-acme
  • -
  • idm-pki-base
  • -
  • idm-pki-base-java
  • -
  • idm-pki-ca
  • -
  • idm-pki-kra
  • -
  • idm-pki-symkey
  • -
  • libasan8
  • -
  • libdhash-devel
  • -
  • libestr-devel
  • -
  • liblockfile
  • -
  • libstoragemgmt-nfs-plugin
  • -
  • libverto-libev
  • -
  • make-latest (currently make43)
  • -
  • make43
  • -
  • make43-devel
  • -
  • open-vm-tools-salt-minion
  • -
  • openslp-devel
  • -
  • pam_wrapper
  • -
  • poppler-qt5
  • -
  • python-ldb-devel-common
  • -
  • python-sphinx-latex
  • -
  • python3-babeltrace
  • -
  • python3-cairo-devel
  • -
  • python3-idm-pki
  • -
  • python3-lasso
  • -
  • python3-ldb-devel
  • -
  • python3-talloc-devel
  • -
  • redhat-cloud-client-configuration
  • -
  • ssd-idp
  • -
  • systemd-resolved (technology preview)
  • -
  • tuned-profiles-postgresql
  • -
  • xmlstarlet
  • -
  • xxhash
  • -
  • yara
  • -
-

Branded packages

-

Multiple packages have names changed due to branding, including:

-
    -
  • redhat-backgrounds -> el-backgrounds
  • -
  • redhat-indexhtml -> el-indexhtml
  • -
  • redhat-logos -> el-logos
  • -
  • redhat-logos-httpd -> el-logos-httpd
  • -
  • redhat-logos-ipa -> el-logos-ipa
  • -
  • redhat-release -> el-release
  • -
  • redhat-release-eula -> el-release - we include EULA in release package
  • -
-

All these packages have proper RPM provides declaration.

-

The list of the packages that are changed due to branding includes, among the -others:

-
    -
  • abrt
  • -
  • anaconda
  • -
  • anaconda-user-help
  • -
  • cloud-init
  • -
  • crash
  • -
  • firefox
  • -
  • httpd
  • -
  • initial-setup
  • -
  • ipa
  • -
  • libguestfs
  • -
  • libreoffice
  • -
  • libreport
  • -
  • nginx
  • -
  • opa-ff
  • -
  • opa-fm
  • -
  • openscap
  • -
  • osinfo-db
  • -
  • python3
  • -
  • redhat-rpm-config
  • -
  • scap-security-guide
  • -
  • sos
  • -
  • subscription-manager
  • -
  • thunderbird
  • -
-

Removed packages

-

The following packages were removed:

-
    -
  • rhc and related packages
  • -
  • insights-client and related packages
  • -
-

Maven 3.8

-

Maven 3.8 - module maven stream 3.8 was not introduced in this beta. -Currently upstream didn't provide modules metadata for -javapackages-tools:202201 and javapackages-bootstrap:202201 that are required to -build Maven 3.8. The default profile for javapackages-tools:202201 is available -in the Red Hat CodeReady-Builder repository but there is no modular metadata or -RPMs.

-

We manage to create this module in not reproducible way and in worst case -scenario we will provide specially crafted VM to build it for orgs that are -using Gaia Build System. We decided not to put this module as we are rebuilding -EuroLinux multiple times and not reproducible rebuilds are next to impossible to -maintain.

-

Batteries

-

Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 2500 packages for each buildroot.

-

About 30 packages were updated for x86_64 buildroot.

-

Gaia build system

-

We are currently using Gaia 3.0 alpha.

-

EuroLinux 9.1 beta

-

As we released a brand new EuroLinux Desktop we are working on better test -integrations with EuroLinux 9. This process takes time. We should deliver -EuroLinux 9.1 beta before EuroLinux 9.1 GA.

-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.7/index.html b/site/release-notes/8.7/index.html deleted file mode 100644 index 2b77c0c..0000000 --- a/site/release-notes/8.7/index.html +++ /dev/null @@ -1,1972 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8.7 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8.7 Release Notes

-

This version’s code name is Brussels - the capital city of Belgium and the -heart of European Union.

-

Dynamic programming languages, Web and Database servers

-

New versions of the following components are now available:

-
    -
  • New: Ruby 3.1 - module ruby stream 3.1
  • -
  • New: Mercurial 6.2 - module mercurial stream 6.2
  • -
  • New: Node.js 18 - module nodejs stream 18
  • -
  • Redis 6 - module redis:6 was updated from version 6.0 to 6.2.7
  • -
-

Compiler Toolset

-

The following compiler toolsets have been updated in EL 8.6:

-
    -
  • New: GCC-Toolset-12 - toolset gcc-toolset-12
  • -
  • New: Dotnet 7.0 - Dotnet 7.0 packages
  • -
  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.62.1 from 1.58.1
  • -
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 14.0.0 from 13.0.1
  • -
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.18.4 from 1.17.7
  • -
-

Containers

-
    -
  • Containers tools module containers-tools stream rhel was heavily updated
  • -
  • Containers tools module containers-tools stream 4.0 was heavily updated
  • -
-

Security

-

Most of the security features are connected to rebased/updated versions of the -packages. The most crucial security changes include:

-
    -
  • NSS no longer support RSA keys shorter than 1023 bits and won't work with such keys.
  • -
  • Updated SCAP security guilde with new sysctl, pampwquality, grub2 rules.
  • -
  • fapolicyd rebased to 1.1.3
  • -
-

General updates and improvements

-

Among the others, the following packages were updated and enhanced:

-
    -
  • QT5 toolchain and utilities were updated from 5.15.2 to 5.15.3
  • -
  • Opencryptoki was updated to version 3.18.0 from 3.17.0
  • -
  • Libva was updated to version 2.13.0 from 2.5.0
  • -
  • Chrony was updated to version 4.2 from 4.1
  • -
  • Unbound was updated to version 1.16.2 from 1.7.3
  • -
  • Fapolicyd rebased to 1.1.3 from 1.1
  • -
  • Mariadb-java-client rebased to version 2.7.1 from 2.2.5
  • -
  • open-vm-tools rebased to 12.0.5 from 11.3.5
  • -
-

New packages

-

Among the others, the following packages were added to os repository for this -release:

-
    -
  • Multiple qt5-docs packages
  • -
  • aardvark-dns
  • -
  • anaconda-widgets-devel
  • -
  • aspnetcore-runtime-7.0
  • -
  • aspnetcore-targeting-pack-7.0
  • -
  • dotnet-apphost-pack-7.0
  • -
  • dotnet-hostfxr-7.0
  • -
  • dotnet-sdk-7.0-source-built-artifacts
  • -
  • egl-utils
  • -
  • frr-selinux
  • -
  • fstrm-utils
  • -
  • gcc-plugin-annobin
  • -
  • gcc-toolset-12
  • -
  • gcc-toolset-12-annobin-annocheck
  • -
  • gcc-toolset-12-annobin-docs
  • -
  • gcc-toolset-12-annobin-plugin-gcc
  • -
  • gcc-toolset-12-binutils
  • -
  • gcc-toolset-12-binutils-devel
  • -
  • gcc-toolset-12-binutils-gold
  • -
  • gcc-toolset-12-build
  • -
  • gcc-toolset-12-dwz
  • -
  • gcc-toolset-12-gcc
  • -
  • gcc-toolset-12-gcc-c++
  • -
  • gcc-toolset-12-gcc-gfortran
  • -
  • gcc-toolset-12-gcc-plugin-devel
  • -
  • gcc-toolset-12-gdb
  • -
  • gcc-toolset-12-libasan-devel
  • -
  • gcc-toolset-12-libatomic-devel
  • -
  • gcc-toolset-12-libgccjit
  • -
  • gcc-toolset-12-libgccjit-devel
  • -
  • gcc-toolset-12-libgccjit-docs
  • -
  • gcc-toolset-12-libitm-devel
  • -
  • gcc-toolset-12-liblsan-devel
  • -
  • gcc-toolset-12-libstdc++-devel
  • -
  • gcc-toolset-12-libstdc++-docs
  • -
  • gcc-toolset-12-libtsan-devel
  • -
  • gcc-toolset-12-libubsan-devel
  • -
  • gcc-toolset-12-runtime
  • -
  • gtk3-devel-docs
  • -
  • idm-pki-acme
  • -
  • idm-pki-base
  • -
  • idm-pki-base-java
  • -
  • idm-pki-ca
  • -
  • idm-pki-kra
  • -
  • idm-pki-symkey
  • -
  • libasan8
  • -
  • libdhash-devel
  • -
  • libestr-devel
  • -
  • liblockfile
  • -
  • libstoragemgmt-nfs-plugin
  • -
  • libverto-libev
  • -
  • make-latest (currently make43)
  • -
  • make43
  • -
  • make43-devel
  • -
  • open-vm-tools-salt-minion
  • -
  • openslp-devel
  • -
  • pam_wrapper
  • -
  • poppler-qt5
  • -
  • python-ldb-devel-common
  • -
  • python-sphinx-latex
  • -
  • python3-babeltrace
  • -
  • python3-cairo-devel
  • -
  • python3-idm-pki
  • -
  • python3-lasso
  • -
  • python3-ldb-devel
  • -
  • python3-talloc-devel
  • -
  • redhat-cloud-client-configuration
  • -
  • ssd-idp
  • -
  • systemd-resolved (technology preview)
  • -
  • tuned-profiles-postgresql
  • -
  • xmlstarlet
  • -
  • xxhash
  • -
  • yara
  • -
-

Branded packages

-

Multiple packages have names changed due to branding, including:

-
    -
  • redhat-backgrounds -> el-backgrounds
  • -
  • redhat-indexhtml -> el-indexhtml
  • -
  • redhat-logos -> el-logos
  • -
  • redhat-logos-httpd -> el-logos-httpd
  • -
  • redhat-logos-ipa -> el-logos-ipa
  • -
  • redhat-release -> el-release
  • -
  • redhat-release-eula -> el-release - we include EULA in release package
  • -
-

All these packages have proper RPM provides declaration.

-

The list of the packages that are changed due to branding includes, among the -others:

-
    -
  • abrt
  • -
  • anaconda
  • -
  • anaconda-user-help
  • -
  • cloud-init
  • -
  • crash
  • -
  • firefox
  • -
  • httpd
  • -
  • initial-setup
  • -
  • ipa
  • -
  • libguestfs
  • -
  • libreoffice
  • -
  • libreport
  • -
  • nginx
  • -
  • opa-ff
  • -
  • opa-fm
  • -
  • openscap
  • -
  • osinfo-db
  • -
  • python3
  • -
  • redhat-rpm-config
  • -
  • scap-security-guide
  • -
  • sos
  • -
  • subscription-manager
  • -
  • thunderbird
  • -
-

Removed packages

-

The following packages were removed:

-
    -
  • rhc and related packages
  • -
  • insights-client and related packages
  • -
-

New vault policy

-

With feedback from community we decided to add the -last to the EuroLinux 8.6 -vaulted versions that represents the last snapshot of the EuroLinux 8.6. More -about vault policy here.

-

Smaller base repositories

-

Until now we keeped all produced versions of the same package in base -repositories. Upstream policy is to keep only selected versions and the rest in -the vaults. It is reasonable as saves a internet bandwith, and put much less -stress on the mirroring sites. From EuroLinux 8.7 we will aim to use upstream -schema for packages.

-

Older packages are still available at EuroLinux Vault.

-

Installation from baseurl with .treeinfo

-

EuroLinux 8.7 is first release that officially supports the installation from -URL leveraging .treeinfo files.

-

Batteries

-

Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 2500 packages for each buildroot.

-

About 30 packages were updated for x86_64 buildroot.

-

Gaia build system

-

Gaia build system is still in the 3.0 alpha.

-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.8-beta/index.html b/site/release-notes/8.8-beta/index.html deleted file mode 100644 index dc4d058..0000000 --- a/site/release-notes/8.8-beta/index.html +++ /dev/null @@ -1,1990 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8.8 Beta Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8.8 Beta Release Notes

-

This version’s code name is Sofia - the capital city of Bulgaria. The Beta -version will allow us to provide EuroLinux 8.8 faster.

-

Major changes in EuroLinux 8.8 Beta:

-

Dynamic programming languages, Web and Database servers

-

New versions of the following components are now available:

-
    -
  • New: Python 3.11 - available as regular RPM packages
  • -
  • New: Nginx 1.22 - available as a module
  • -
  • New: PostgreSQL 15 - available as a module
  • -
  • New: Swig 4.1 - available as a module
  • -
  • New: jaxb 4 - available as a module
  • -
-

The following components have been upgraded:

-
    -
  • Git 2.39.1
  • -
  • Git LFS 3.2.0
  • -
-

Updated performance monitoring tools

-

The following performance monitoring tools have been updated in EuroLinux 8.8:

-
    -
  • PCP 5.3.7
  • -
  • Grafana 7.5.15
  • -
-

Kernel version

-

EuroLinux 8.8 Beta is distributed with the kernel version 4.18.0-477.

-

Compilers and development tools

-

The following performance tools and debuggers have been updated in EuroLinux 8.8:

-
    -
  • Valgrind 3.19
  • -
  • SystemTap 4.8
  • -
  • Dyninst 12.1.0
  • -
  • elfutils 0.188
  • -
-

Compiler Toolset

-

The following compiler toolsets have been updated in EL 8.8:

-
    -
  • GCC Toolset 12
  • -
  • LLVM Toolset 15.0.7
  • -
  • Rust Toolset 1.66
  • -
  • Go Toolset 1.19.4
  • -
-

Security

-

The most crucial security changes include:

-
    -
  • The Libreswan IPsec implementation was rebased to version 4.9.
  • -
  • Rsyslog TLS-encrypted logging now supports multiple CA files.
  • -
  • The systemd-socket-proxyd service now runs in its own SELinux domain due to an update to the SELinux policy.
  • -
  • The OpenSCAP security compliance utility was rebased to version 1.3.7.
  • -
  • With the fapolicyd software framework, you can now filter the RPM database.
  • -
-

General updates and improvements

-
    -
  • Podman now supports events for auditing.
  • -
  • The Container Tools packages have been updated.
  • -
  • The Aardvark and Netavark network stack now supports custom DNS server selection.
  • -
  • Podman Quadlet is now available as a Technology Preview.
  • -
  • The container-tools:3.0 module stream has been deprecated.
  • -
  • The CNI network stack has been deprecated.
  • -
-

New packages

-

Among the others, the following packages were added to os repository for this -release:

-
    -
  • bind9.16-dnssec-utils
  • -
  • cifs-utils-devel
  • -
  • ecj
  • -
  • ipxe-bootimgs-aarch64
  • -
  • libnetapi
  • -
  • libsndfile-utils
  • -
  • libtraceevent
  • -
  • libtraceevent-devel
  • -
  • libtracefs
  • -
  • libtracefs-devel
  • -
  • libwpe
  • -
  • libwpe-devel
  • -
  • libxdp-devel
  • -
  • libxdp-static
  • -
  • lmdb
  • -
  • mpdecimal
  • -
  • mpdecimal++
  • -
  • mpdecimal-devel
  • -
  • mpdecimal-doc
  • -
  • nss_wrapper-libs
  • -
  • perl-Mail-AuthenticationResults
  • -
  • procps-ng-devel
  • -
  • python3-bind9.16
  • -
  • python3-scour
  • -
  • python3.11
  • -
  • python3.11-Cython
  • -
  • python3.11-PyMySQL
  • -
  • python3.11-attrs
  • -
  • python3.11-cffi
  • -
  • python3.11-charset-normalizer
  • -
  • python3.11-cryptography
  • -
  • python3.11-debug
  • -
  • python3.11-devel
  • -
  • python3.11-idle
  • -
  • python3.11-idna
  • -
  • python3.11-iniconfig
  • -
  • python3.11-libs
  • -
  • python3.11-lxml
  • -
  • python3.11-mod_wsgi
  • -
  • python3.11-numpy
  • -
  • python3.11-numpy-f2py
  • -
  • python3.11-packaging
  • -
  • python3.11-pip
  • -
  • python3.11-pip-wheel
  • -
  • python3.11-pluggy
  • -
  • python3.11-ply
  • -
  • python3.11-psycopg2
  • -
  • python3.11-psycopg2-debug
  • -
  • python3.11-psycopg2-tests
  • -
  • python3.11-pybind11
  • -
  • python3.11-pybind11-devel
  • -
  • python3.11-pycparser
  • -
  • python3.11-pyparsing
  • -
  • python3.11-pysocks
  • -
  • python3.11-pytest
  • -
  • python3.11-pyyaml
  • -
  • python3.11-requests
  • -
  • python3.11-rpm-macros
  • -
  • python3.11-scipy
  • -
  • python3.11-semantic_version
  • -
  • python3.11-setuptools
  • -
  • python3.11-setuptools-rust
  • -
  • python3.11-setuptools-wheel
  • -
  • python3.11-six
  • -
  • python3.11-test
  • -
  • python3.11-tkinter
  • -
  • python3.11-urllib3
  • -
  • python3.11-wheel
  • -
  • python3.11-wheel-wheel
  • -
  • rtla
  • -
  • samba-dc-libs
  • -
  • samba-dcerpc
  • -
  • texlive-translator
  • -
  • tomcat
  • -
  • tomcat-admin-webapps
  • -
  • tomcat-docs-webapp
  • -
  • tomcat-el-3.0-api
  • -
  • tomcat-jsp-2.3-api
  • -
  • tomcat-lib
  • -
  • tomcat-servlet-4.0-api
  • -
  • tomcat-webapps
  • -
  • tpm2-pkcs11
  • -
  • tpm2-pkcs11-tools
  • -
  • wpebackend-fdo
  • -
  • wpebackend-fdo-devel
  • -
-

Branded packages

-

Multiple packages have names changed due to branding, including:

-
    -
  • redhat-backgrounds -> el-backgrounds
  • -
  • redhat-indexhtml -> el-indexhtml
  • -
  • redhat-logos -> el-logos
  • -
  • redhat-logos-httpd -> el-logos-httpd
  • -
  • redhat-logos-ipa -> el-logos-ipa
  • -
  • redhat-release -> el-release
  • -
  • redhat-release-eula -> el-release - we include EULA in release package
  • -
-

All these packages have proper RPM provides declaration.

-

The list of the packages that are changed due to branding includes, among others:

-
    -
  • abrt
  • -
  • anaconda
  • -
  • anaconda-user-help
  • -
  • cloud-init
  • -
  • crash
  • -
  • firefox
  • -
  • httpd
  • -
  • initial-setup
  • -
  • ipa
  • -
  • libguestfs
  • -
  • libreoffice
  • -
  • libreport
  • -
  • nginx
  • -
  • opa-ff
  • -
  • opa-fm
  • -
  • openscap
  • -
  • osinfo-db
  • -
  • python3
  • -
  • redhat-rpm-config
  • -
  • scap-security-guide
  • -
  • sos
  • -
  • subscription-manager
  • -
  • thunderbird
  • -
-

Removed packages

-

The following packages were removed:

-
    -
  • rhc and related packages
  • -
  • insights-client and related packages
  • -
-

Batteries

-

Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 3000 packages for each buildroot.

-

About 150 packages were updated for x86_64 buildroot alone. We also added some -of the packages (like python3.11 for i686) to the publicly available open -buildroots.

-

Known issues

-
    -
  • Due to compose error LibreOffice is available in the older version than one - available in the RHEL 8.8 beta. The new version will land in main repos shortly.
  • -
-

Gaia build system

-

We are currently using Gaia 3.0 beta.

-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.8/index.html b/site/release-notes/8.8/index.html deleted file mode 100644 index 43429ec..0000000 --- a/site/release-notes/8.8/index.html +++ /dev/null @@ -1,1990 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8.8 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8.8 Release Notes

-

This version’s code name is Sofia - the capital city of Bulgaria.

-

Major changes in EuroLinux 8.8:

-

Dynamic programming languages, Web and Database servers

-

New versions of the following components are now available:

-
    -
  • New: Python 3.11 - available as regular RPM packages
  • -
  • New: Nginx 1.22 - available as a module
  • -
  • New: PostgreSQL 15 - available as a module
  • -
  • New: Swig 4.1 - available as a module
  • -
  • New: jaxb 4 - available as a module
  • -
-

The following components have been upgraded:

-
    -
  • Git 2.39.1
  • -
  • Git LFS 3.2.0
  • -
-

Updated performance monitoring tools

-

The following performance monitoring tools have been updated in EuroLinux 8.8:

-
    -
  • PCP 5.3.7
  • -
  • Grafana 7.5.15
  • -
-

Kernel version

-

EuroLinux 8.8 is distributed with the kernel version 4.18.0-477.

-

Compilers and development tools

-

The following performance tools and debuggers have been updated in EuroLinux 8.8:

-
    -
  • Valgrind 3.19
  • -
  • SystemTap 4.8
  • -
  • Dyninst 12.1.0
  • -
  • elfutils 0.188
  • -
-

Compiler Toolset

-

The following compiler toolsets have been updated in EL 8.8:

-
    -
  • GCC Toolset 12
  • -
  • LLVM Toolset 15.0.7
  • -
  • Rust Toolset 1.66
  • -
  • Go Toolset 1.19.4
  • -
-

Security

-

The most crucial security changes include:

-
    -
  • The Libreswan IPsec implementation was rebased to version 4.9.
  • -
  • Rsyslog TLS-encrypted logging now supports multiple CA files.
  • -
  • The systemd-socket-proxyd service now runs in its own SELinux domain due to an update to the SELinux policy.
  • -
  • The OpenSCAP security compliance utility was rebased to version 1.3.7.
  • -
  • With the fapolicyd software framework, you can now filter the RPM database.
  • -
-

General updates and improvements

-
    -
  • Podman now supports events for auditing.
  • -
  • The Container Tools packages have been updated.
  • -
  • The Aardvark and Netavark network stack now supports custom DNS server selection.
  • -
  • Podman Quadlet is now available as a Technology Preview.
  • -
  • The container-tools:3.0 module stream has been deprecated.
  • -
  • The CNI network stack has been deprecated.
  • -
-

New packages

-

Among the others, the following packages were added to os repository for this -release:

-
    -
  • bind9.16-dnssec-utils
  • -
  • cifs-utils-devel
  • -
  • ecj
  • -
  • ipxe-bootimgs-aarch64
  • -
  • libnetapi
  • -
  • libsndfile-utils
  • -
  • libtraceevent
  • -
  • libtraceevent-devel
  • -
  • libtracefs
  • -
  • libtracefs-devel
  • -
  • libwpe
  • -
  • libwpe-devel
  • -
  • libxdp-devel
  • -
  • libxdp-static
  • -
  • lmdb
  • -
  • mpdecimal
  • -
  • mpdecimal++
  • -
  • mpdecimal-devel
  • -
  • mpdecimal-doc
  • -
  • nss_wrapper-libs
  • -
  • perl-Mail-AuthenticationResults
  • -
  • procps-ng-devel
  • -
  • python3-bind9.16
  • -
  • python3-scour
  • -
  • python3.11
  • -
  • python3.11-Cython
  • -
  • python3.11-PyMySQL
  • -
  • python3.11-attrs
  • -
  • python3.11-cffi
  • -
  • python3.11-charset-normalizer
  • -
  • python3.11-cryptography
  • -
  • python3.11-debug
  • -
  • python3.11-devel
  • -
  • python3.11-idle
  • -
  • python3.11-idna
  • -
  • python3.11-iniconfig
  • -
  • python3.11-libs
  • -
  • python3.11-lxml
  • -
  • python3.11-mod_wsgi
  • -
  • python3.11-numpy
  • -
  • python3.11-numpy-f2py
  • -
  • python3.11-packaging
  • -
  • python3.11-pip
  • -
  • python3.11-pip-wheel
  • -
  • python3.11-pluggy
  • -
  • python3.11-ply
  • -
  • python3.11-psycopg2
  • -
  • python3.11-psycopg2-debug
  • -
  • python3.11-psycopg2-tests
  • -
  • python3.11-pybind11
  • -
  • python3.11-pybind11-devel
  • -
  • python3.11-pycparser
  • -
  • python3.11-pyparsing
  • -
  • python3.11-pysocks
  • -
  • python3.11-pytest
  • -
  • python3.11-pyyaml
  • -
  • python3.11-requests
  • -
  • python3.11-rpm-macros
  • -
  • python3.11-scipy
  • -
  • python3.11-semantic_version
  • -
  • python3.11-setuptools
  • -
  • python3.11-setuptools-rust
  • -
  • python3.11-setuptools-wheel
  • -
  • python3.11-six
  • -
  • python3.11-test
  • -
  • python3.11-tkinter
  • -
  • python3.11-urllib3
  • -
  • python3.11-wheel
  • -
  • python3.11-wheel-wheel
  • -
  • rtla
  • -
  • samba-dc-libs
  • -
  • samba-dcerpc
  • -
  • texlive-translator
  • -
  • tomcat
  • -
  • tomcat-admin-webapps
  • -
  • tomcat-docs-webapp
  • -
  • tomcat-el-3.0-api
  • -
  • tomcat-jsp-2.3-api
  • -
  • tomcat-lib
  • -
  • tomcat-servlet-4.0-api
  • -
  • tomcat-webapps
  • -
  • tpm2-pkcs11
  • -
  • tpm2-pkcs11-tools
  • -
  • wpebackend-fdo
  • -
  • wpebackend-fdo-devel
  • -
-

Branded packages

-

Multiple packages have names changed due to branding, including:

-
    -
  • redhat-backgrounds -> el-backgrounds
  • -
  • redhat-indexhtml -> el-indexhtml
  • -
  • redhat-logos -> el-logos
  • -
  • redhat-logos-httpd -> el-logos-httpd
  • -
  • redhat-logos-ipa -> el-logos-ipa
  • -
  • redhat-release -> el-release
  • -
  • redhat-release-eula -> el-release - we include EULA in release package
  • -
-

All these packages have proper RPM provides declaration.

-

The list of the packages that are changed due to branding includes, among others:

-
    -
  • abrt
  • -
  • anaconda
  • -
  • anaconda-user-help
  • -
  • cloud-init
  • -
  • crash
  • -
  • firefox
  • -
  • httpd
  • -
  • initial-setup
  • -
  • ipa
  • -
  • libguestfs
  • -
  • libreoffice
  • -
  • libreport
  • -
  • nginx
  • -
  • opa-ff
  • -
  • opa-fm
  • -
  • openscap
  • -
  • osinfo-db
  • -
  • python3
  • -
  • redhat-rpm-config
  • -
  • scap-security-guide
  • -
  • sos
  • -
  • subscription-manager
  • -
  • thunderbird
  • -
-

Removed packages

-

The following packages were removed:

-
    -
  • rhc and related packages
  • -
  • insights-client and related packages
  • -
-

Batteries

-

Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 3000 packages for each buildroot.

-

About 150 packages were updated for x86_64 buildroot alone. We also added some -of the packages (like python3.11 for i686) to the publicly available open -buildroots.

-

Known issues

-
    -
  • Java packages requires build with portable java version. We need a little bit more time - to compile it in reproducible manner.
  • -
-

Gaia build system

-

We are currently using Gaia 3.0 beta.

-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.9-beta/index.html b/site/release-notes/8.9-beta/index.html deleted file mode 100644 index 802e505..0000000 --- a/site/release-notes/8.9-beta/index.html +++ /dev/null @@ -1,1947 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8.9 Beta Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8.9 Beta Release Notes

-

This version’s code name is Monako - a sovereign city-state in France. The Beta -version will allow us to provide EuroLinux 8.9 safer and faster.

-

Major changes in EuroLinux 8.9 Beta:

-

Kernel version

-

EuroLinux 8.9 Beta is distributed with the kernel version 4.18.0-513.

-

New versions - Programming languages, Web and Database servers

-

New versions of the following components are now available:

-
    -
  • New: NodeJS 20 - available as a module
  • -
  • New: GCC Toolset 13 - availabile as a software collection
  • -
  • New: Java-21-OpenJDK - available as rpms
  • -
-

Compilers and development tools

-

The following performance tools and debuggers have been updated in EuroLinux 8.9 beta:

-
    -
  • Valgrind 3.21 from 3.19
  • -
  • SystemTap 4.9 from 4.8
  • -
  • elfutils 0.189 from 0.188
  • -
-

Compiler Toolset

-

The following compiler toolsets have been updated in EL 8.9 beta:

-
    -
  • LLVM Toolset 16.0.6 - from 15.0.7
  • -
  • Rust Toolset 1.71.1 from 1.66
  • -
  • Go Toolset 1.20.6 from 1.19.4
  • -
-

Updated performance monitoring tools

-

The following performance monitoring tools have been updated in EuroLinux 8.9:

-
    -
  • Grafana 9.2.10
  • -
-

Security

-

The most crucial security changes include:

-
    -
  • Kernel 4.18.0-513.1.1 support AutoIRBS.
  • -
  • OpenSCAP rebased to 1.3.8
  • -
  • SCAP ANSSI-BP-028 security profiles updated to version 2.0
  • -
  • Perl module HTTP::Tiny verifies SSL/TLS certificate by default.
  • -
-

General updates and improvements

-
    -
  • Postfix now supports SRV DNS records.
  • -
  • iproute updated to version 6.2.0
  • -
  • sos updated to version 4.6
  • -
-

New packages

-

Among the others, the following packages were added to os repositories for this -release:

-
    -
  • avahi-tools
  • -
  • gcc-toolset-13
  • -
  • gcc-toolset-13-annobin-annocheck
  • -
  • gcc-toolset-13-annobin-docs
  • -
  • gcc-toolset-13-annobin-plugin-gcc
  • -
  • gcc-toolset-13-binutils
  • -
  • gcc-toolset-13-binutils-devel
  • -
  • gcc-toolset-13-binutils-gold
  • -
  • gcc-toolset-13-dwz
  • -
  • gcc-toolset-13-gcc
  • -
  • gcc-toolset-13-gcc-c++
  • -
  • gcc-toolset-13-gcc-gfortran
  • -
  • gcc-toolset-13-gcc-plugin-annobin
  • -
  • gcc-toolset-13-gcc-plugin-devel
  • -
  • gcc-toolset-13-gdb
  • -
  • gcc-toolset-13-libasan-devel
  • -
  • gcc-toolset-13-libatomic-devel
  • -
  • gcc-toolset-13-libgccjit
  • -
  • gcc-toolset-13-libgccjit-devel
  • -
  • gcc-toolset-13-libitm-devel
  • -
  • gcc-toolset-13-liblsan-devel
  • -
  • gcc-toolset-13-libquadmath-devel
  • -
  • gcc-toolset-13-libstdc++-devel
  • -
  • gcc-toolset-13-libstdc++-docs
  • -
  • gcc-toolset-13-libtsan-devel
  • -
  • gcc-toolset-13-libubsan-devel
  • -
  • gcc-toolset-13-offload-nvptx
  • -
  • gcc-toolset-13-runtime
  • -
  • gtk-vnc2-devel
  • -
  • gvnc-devel
  • -
  • java-21-openjdk
  • -
  • java-21-openjdk-demo
  • -
  • java-21-openjdk-demo-fastdebug
  • -
  • java-21-openjdk-demo-slowdebug
  • -
  • java-21-openjdk-devel
  • -
  • java-21-openjdk-devel-fastdebug
  • -
  • java-21-openjdk-devel-slowdebug
  • -
  • java-21-openjdk-fastdebug
  • -
  • java-21-openjdk-headless
  • -
  • java-21-openjdk-headless-fastdebug
  • -
  • java-21-openjdk-headless-slowdebug
  • -
  • java-21-openjdk-javadoc
  • -
  • java-21-openjdk-javadoc-zip
  • -
  • java-21-openjdk-jmods
  • -
  • java-21-openjdk-jmods-fastdebug
  • -
  • java-21-openjdk-jmods-slowdebug
  • -
  • java-21-openjdk-slowdebug
  • -
  • java-21-openjdk-src
  • -
  • java-21-openjdk-src-fastdebug
  • -
  • java-21-openjdk-src-slowdebug
  • -
  • java-21-openjdk-static-libs
  • -
  • java-21-openjdk-static-libs-fastdebug
  • -
  • java-21-openjdk-static-libs-slowdebug
  • -
  • libvma-utils
  • -
  • marisa-devel
  • -
  • python3-tomli
  • -
  • unifdef
  • -
-

Branded packages

-

Multiple packages have names changed due to branding, including:

-
    -
  • redhat-backgrounds -> el-backgrounds
  • -
  • redhat-indexhtml -> el-indexhtml
  • -
  • redhat-logos -> el-logos
  • -
  • redhat-logos-httpd -> el-logos-httpd
  • -
  • redhat-logos-ipa -> el-logos-ipa
  • -
  • redhat-release -> el-release
  • -
  • redhat-release-eula -> el-release - we include EULA in release package
  • -
-

All these packages have proper RPM provides declaration.

-

The list of the packages that are changed due to branding includes, among others:

-
    -
  • abrt
  • -
  • anaconda
  • -
  • anaconda-user-help
  • -
  • cloud-init
  • -
  • crash
  • -
  • firefox
  • -
  • httpd
  • -
  • initial-setup
  • -
  • ipa
  • -
  • libguestfs
  • -
  • libreoffice
  • -
  • libreport
  • -
  • nginx
  • -
  • opa-ff
  • -
  • opa-fm
  • -
  • openscap
  • -
  • osinfo-db
  • -
  • python3
  • -
  • redhat-rpm-config
  • -
  • scap-security-guide
  • -
  • sos
  • -
  • subscription-manager
  • -
  • thunderbird
  • -
-

Removed packages

-

The following packages were removed:

-
    -
  • rhc and related packages
  • -
  • insights-client and related packages
  • -
-

Batteries

-

Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 3000 packages for each buildroot.

-

About 50 packages were updated for x86_64 buildroot alone. We also added some -of the packages (like python3.11 for i686) to the publicly available open -buildroots.

-

Known issues

-
    -
  • No known issues.
  • -
-

Gaia build system

-

We are currently using Gaia 3.0 and preparing 4.0 with branding kit.

-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/8.9/index.html b/site/release-notes/8.9/index.html deleted file mode 100644 index 290ee0d..0000000 --- a/site/release-notes/8.9/index.html +++ /dev/null @@ -1,1952 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 8.9 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 8.9 Release Notes

-

This version’s code name is Monako - a sovereign city-state in France.

-

Major changes in EuroLinux 8.9:

-

Kernel version

-

EuroLinux 8.9 is distributed with the kernel version 4.18.0-513.

-

New versions - Programming languages, Web and Database servers

-

New versions of the following components are now available:

-
    -
  • New: NodeJS 20 - available as a module
  • -
  • New: GCC Toolset 13 - availabile as a software collection
  • -
  • New: Java-21-OpenJDK - available as rpms
  • -
-

Compilers and development tools

-

The following performance tools and debuggers have been updated in EuroLinux 8.9:

-
    -
  • Valgrind 3.21 from 3.19
  • -
  • SystemTap 4.9 from 4.8
  • -
  • elfutils 0.189 from 0.188
  • -
-

Compiler Toolset

-

The following compiler toolsets have been updated in EL 8.9:

-
    -
  • LLVM Toolset 16.0.6 - from 15.0.7
  • -
  • Rust Toolset 1.71.1 from 1.66
  • -
  • Go Toolset 1.20.6 from 1.19.4
  • -
-

Updated performance monitoring tools

-

The following performance monitoring tools have been updated in EuroLinux 8.9:

-
    -
  • Grafana 9.2.10
  • -
-

Security

-

The most crucial security changes include:

-
    -
  • Kernel 4.18.0-513.1.1 support AutoIRBS.
  • -
  • OpenSCAP rebased to 1.3.8
  • -
  • SCAP ANSSI-BP-028 security profiles updated to version 2.0
  • -
  • Perl module HTTP::Tiny verifies SSL/TLS certificate by default.
  • -
-

General updates and improvements

-
    -
  • Postfix now supports SRV DNS records.
  • -
  • iproute updated to version 6.2.0
  • -
  • sos updated to version 4.6
  • -
-

New packages

-

Among the others, the following packages were added to os repositories for this -release:

-
    -
  • avahi-tools
  • -
  • gcc-toolset-13
  • -
  • gcc-toolset-13-annobin-annocheck
  • -
  • gcc-toolset-13-annobin-docs
  • -
  • gcc-toolset-13-annobin-plugin-gcc
  • -
  • gcc-toolset-13-binutils
  • -
  • gcc-toolset-13-binutils-devel
  • -
  • gcc-toolset-13-binutils-gold
  • -
  • gcc-toolset-13-dwz
  • -
  • gcc-toolset-13-gcc
  • -
  • gcc-toolset-13-gcc-c++
  • -
  • gcc-toolset-13-gcc-gfortran
  • -
  • gcc-toolset-13-gcc-plugin-annobin
  • -
  • gcc-toolset-13-gcc-plugin-devel
  • -
  • gcc-toolset-13-gdb
  • -
  • gcc-toolset-13-libasan-devel
  • -
  • gcc-toolset-13-libatomic-devel
  • -
  • gcc-toolset-13-libgccjit
  • -
  • gcc-toolset-13-libgccjit-devel
  • -
  • gcc-toolset-13-libitm-devel
  • -
  • gcc-toolset-13-liblsan-devel
  • -
  • gcc-toolset-13-libquadmath-devel
  • -
  • gcc-toolset-13-libstdc++-devel
  • -
  • gcc-toolset-13-libstdc++-docs
  • -
  • gcc-toolset-13-libtsan-devel
  • -
  • gcc-toolset-13-libubsan-devel
  • -
  • gcc-toolset-13-offload-nvptx
  • -
  • gcc-toolset-13-runtime
  • -
  • gtk-vnc2-devel
  • -
  • gvnc-devel
  • -
  • java-21-openjdk
  • -
  • java-21-openjdk-demo
  • -
  • java-21-openjdk-demo-fastdebug
  • -
  • java-21-openjdk-demo-slowdebug
  • -
  • java-21-openjdk-devel
  • -
  • java-21-openjdk-devel-fastdebug
  • -
  • java-21-openjdk-devel-slowdebug
  • -
  • java-21-openjdk-fastdebug
  • -
  • java-21-openjdk-headless
  • -
  • java-21-openjdk-headless-fastdebug
  • -
  • java-21-openjdk-headless-slowdebug
  • -
  • java-21-openjdk-javadoc
  • -
  • java-21-openjdk-javadoc-zip
  • -
  • java-21-openjdk-jmods
  • -
  • java-21-openjdk-jmods-fastdebug
  • -
  • java-21-openjdk-jmods-slowdebug
  • -
  • java-21-openjdk-slowdebug
  • -
  • java-21-openjdk-src
  • -
  • java-21-openjdk-src-fastdebug
  • -
  • java-21-openjdk-src-slowdebug
  • -
  • java-21-openjdk-static-libs
  • -
  • java-21-openjdk-static-libs-fastdebug
  • -
  • java-21-openjdk-static-libs-slowdebug
  • -
  • kmod-redhat-ahci
  • -
  • libvma-utils
  • -
  • marisa-devel
  • -
  • python3-tomli
  • -
  • unifdef
  • -
-

Branded packages

-

Multiple packages have names changed due to branding, including:

-
    -
  • redhat-backgrounds -> el-backgrounds
  • -
  • redhat-indexhtml -> el-indexhtml
  • -
  • redhat-logos -> el-logos
  • -
  • redhat-logos-httpd -> el-logos-httpd
  • -
  • redhat-logos-ipa -> el-logos-ipa
  • -
  • redhat-release -> el-release
  • -
  • redhat-release-eula -> el-release - we include EULA in release package
  • -
-

All these packages have proper RPM provides declaration.

-

The list of the packages that are changed due to branding includes, among others:

-
    -
  • abrt
  • -
  • anaconda
  • -
  • anaconda-user-help
  • -
  • cloud-init
  • -
  • crash
  • -
  • firefox
  • -
  • httpd
  • -
  • initial-setup
  • -
  • ipa
  • -
  • libguestfs
  • -
  • libreoffice
  • -
  • libreport
  • -
  • nginx
  • -
  • opa-ff
  • -
  • opa-fm
  • -
  • openscap
  • -
  • osinfo-db
  • -
  • python3
  • -
  • redhat-rpm-config
  • -
  • scap-security-guide
  • -
  • sos
  • -
  • subscription-manager
  • -
  • thunderbird
  • -
-

Removed packages

-

The following packages were removed:

-
    -
  • rhc and related packages
  • -
  • insights-client and related packages
  • -
-

Batteries

-

Batteries repository contains packages that are needed to rebuild the -distribution but are not included in any upstream repositories. Right now, -this repository includes more than 3000 packages for each buildroot.

-

About 50 packages were updated for x86_64 buildroot alone. We also added some -of the packages (like python3.11 for i686) to the publicly available open -buildroots.

-

Known issues

-
    -
  • The AppStream is is about 15GiB. After long discussion and feedback we - decided to keep it RHEL like way, where AppStream ISO is so full because it - can be used to mount repositories used for mirroring and system. We are - sorry but current state (mostly modularity) make things extremely hard to - manage without breaking user experience.
  • -
  • There is huge problem with packages of java-21 not being reproducible.
  • -
-

Gaia build system

-

We are currently using Gaia 3.0 and preparing 4.0 with branding kit.

-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/9.0-beta/index.html b/site/release-notes/9.0-beta/index.html deleted file mode 100644 index 42b6a0f..0000000 --- a/site/release-notes/9.0-beta/index.html +++ /dev/null @@ -1,1974 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 9 Beta Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 9 Beta Release Notes

-

Technical changes between EuroLinux 9 and 8

-

Installer and image creation

-

In EuroLinux 9.0 you can now use a standalone smart card to both authenticate -yourself and gain additional privileges via sudo.

-

For the typical cases of installing EuroLinux with a medium such as a disk -interactively a Quality of Life tweak has been implemented: the Anaconda -installer will now automatically activate a network connection if applicable -(will try to obtain an address via DHCP).

-

You can now optionally permit a password-based root login via SSH or completely -lock the root account in any case. (While the former is not recommended due to -security and disabled in EuroLinux 9 by default, there are valid use cases -which we support with this single easy switch)

-

Administrative tools

-

If you want to rename a network interface, it is recommended that you use -systemd link files. Check man 5 systemd.link for more information.

-

Alternatively udev rules may be used. If you need to use the ifcfg tool, -please install the initscripts package first since it is not installed by -default.

-

Security

-

EuroLinux 9 provides OpenSSL version 3.0.0. Among other things, the concept of -providers has been added, which means that different programs can use -different security algorithms depending on their needs. You can imagine a -situation where you have implemented solutions where one needs to use FIPS -mode, while others need to maintain compliance with less secure policies.

-

This new version comes with a few security-related implications. The TLS-1.3 -protocol requires that a PKCS#11 token supports raw RSA or RSA-PSS -signatures.

-

If this is applicable to your scenario, please configure your software to use -TLS up to TLS-1.2. Additionally please edit the file -/etc/pki/tls/openssl.cnf and add this snippet at the very end of the -[ crypto_policy ] section:

-
SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384
-MaxProtocol = TLSv1.2
-
-

Developer tools

-

Some of the newest and most reliable technology stacks for developers are -available in the repositories. These include:

-
    -
  • Ant 1.10
  • -
  • GCC 11.2
  • -
  • Git 2.31
  • -
  • Go 1.17.5
  • -
  • LLVM 13
  • -
  • Maven 3.6.3
  • -
  • NodeJS 16
  • -
  • OpenJDK 17.0.1
  • -
  • PHP 8.0
  • -
  • Perl 5.32
  • -
  • Python 3.9
  • -
  • Ruby 3.0
  • -
  • Rust 1.56
  • -
  • SVN 1.14
  • -
-

The EuroLinux 9 platform ships glibc 2.34, which will provide 10 years of -business-class stability support and the same amount of software binary -interface compatibility time. As a result, programs written today will work the -same way 10 years from now.

-

Web servers and database engines

-

The following software is now available in our repositories:

-

HTTP servers:

-
    -
  • Apache HTTPD 2.4
  • -
  • nginx 1.20
  • -
-

Proxy servers:

-
    -
  • Squid 5.1
  • -
  • Varnish Cache 6.5
  • -
-

Database engines:

-
    -
  • MariaDB 10.5.12
  • -
  • MySQL 8.0
  • -
  • PostgreSQL 13
  • -
  • Redis 6.2.6
  • -
-

Security Policies - SCAP Security Guide

-

The SCAP Security Guide has been updated to version 0.1.57 and made a number of changes -from the counterpart we provide in EuroLinux 8:

-
    -
  • Removed deprecated SCAP 1.2 source data streams.
  • -
  • Removed Bash profile remediation scripts to encourage more secure practices.
  • -
  • Although references for EuroLinux 8 have been left in place, the current - package is designed for EuroLinux 9 - please kindly use packages for older - releases if you need to check them for security policies.
  • -
-

GNOME 40

-

GNOME has been updated to GNOME 40, a major step forward from EuroLinux 8's -GNOME 3.32.2 , which includes many new features.

-

GNOME 40 includes a new and improved style, including the user interface, icons -and desktop, The Activities look and feel provides a better experience when -working, launching applications and arranging your personal workspace - -workspaces are now arranged horizontally and the window overview and -application grid are available vertically.

-

Many Quality of Life improvements have also been added, including:

-
    -
  • running the software using a separate graphics card by right-clicking and - selecting the appropriate option
  • -
  • The ability to mute notifications by selecting Do not disturb, which will - appear as a separate button in the notification
  • -
  • Each screen can use a different refresh rate
  • -
  • The Activities program allows you to group application icons into folders - using a drag-and-drop method
  • -
  • provide the ability to fractionally scale the display
  • -
-

Notable changes

-

EuroLinux 9 provides refreshed and updated versions of the following packages:

-
    -
  • m4 was updated from version 1.4.18 to 1.4.19
  • -
  • xdp-tools was updated from version 1.1.1 to 1.2.1
  • -
  • openchange was updated from 2.3 (version) 37 (release) to 2.3 (version) 38 (release)
  • -
  • tigervnc was updated from 1.11.0 (version) 20 (release) to 1.11.0 (version) 21 (release)
  • -
-

We expect updated versions of these packages to be available in the GA -version of RHEL.

-

Known issues

-
    -
  • Dotnet is not available at the moment. ~~Fix will arrive next week (the first - week of march)~~ Update: It's planned for release with ARM Beta
  • -
  • We are waiting for Secure Boot; as you can see here - https://github.com/rhboot/shim-review/issues, it is a long process
  • -
  • ~~There is only minimal ISO. AppStream complete ISO be published next week (the - first week of April)~~ Update: AppStream ISO is available.
  • -
  • SCAP is not usable. A fix will arrive with EuroLinux 9 beta for ARM64
  • -
  • Until GA we will not rebuild other Enterprise Linuxes as it is pointless
  • -
  • There might be branding issues. If you find one, please create an issue in - our public bug tracker
  • -
  • Migration scripts worked well in our tests. We were able to migrate from - CentOS Stream 9 and Red Hat Enterprise Linux 9 beta. Because EuroLinux 9 and - Red Hat Enterprise Linux 9 are in the beta stage, in the meantime, CentOS - Stream 9 is heavily developed. We won't provide assistance and support for - migration until the GA of EuroLinux 9.
  • -
  • EuroLinux 9 beta is not officially supported for production uses
  • -
  • We will update this section when fixes arrive, or new issues arise..
  • -
-

Batteries repositories

-

The battery repository is available for customers with Golden Key and Gaia -subscriptions. There are about 1000 packages that are not part of any build (so -they are not included in EuroLinux Open Build roots) but are required to -rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

-

EuroLinux 9 for ARM

-

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this -is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It -also allowed us to create x86_64, open build roots for i686 and x86_64 and -batteries repos faster. Because creating EuroLinux 9 beta took us about four -weeks, ARM should take about two weeks, after updating Gaia Stack, as we have -all the necessary batteries and build orders figured out.

-

Gaia updates

-

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

-

There are new commands in Gaia:

-
    -
  • new automodule-update Gaia subcommand, that well - automatically updates - modules. No more manual config changes for modules
  • -
  • new automodule-merge Gaia subcommand. This command uses multiple input files - (RH/EuroLinux modules files + result build + custom files) to create an updated - module definition
  • -
-

Other notable changes:

-
    -
  • Striga now creates automodule-* commands
  • -
  • Striga can create --partial commands for module rebuild
  • -
  • Vardoger now supports config files that allows ignoring chosen tests/levels - for selected RPMs
  • -
  • A lot of new configs for EuroLinux 9
  • -
-

We will also update hardware requirements for rebuild, including reference -build servers for ARM and PowerPC. The rebuilds will start with the release of -EuroLinux 9. It will also require updated infrastructure.

-

Container and cloud images

-

You can use the following publicly available images for EuroLinux 9 beta

- -

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/9.0/index.html b/site/release-notes/9.0/index.html deleted file mode 100644 index 8f1489b..0000000 --- a/site/release-notes/9.0/index.html +++ /dev/null @@ -1,1957 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 9 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 9 Release Notes

-

Technical changes between EuroLinux 9 and 8

-

Installer and image creation

-

In EuroLinux 9.0 you can now use a standalone smart card to both authenticate -yourself and gain additional privileges via sudo.

-

For the typical cases of installing EuroLinux with a medium such as a disk -interactively a Quality of Life tweak has been implemented: the Anaconda -installer will now automatically activate a network connection if applicable -(will try to obtain an address via DHCP).

-

You can now optionally permit a password-based root login via SSH or completely -lock the root account in any case. (While the former is not recommended due to -security and disabled in EuroLinux 9 by default, there are valid use cases -which we support with this single easy switch)

-

Administrative tools

-

If you want to rename a network interface, it is recommended that you use -systemd link files. Check man 5 systemd.link for more information.

-

Alternatively udev rules may be used. If you need to use the ifcfg tool, -please install the initscripts package first since it is not installed by -default.

-

Security

-

EuroLinux 9 provides OpenSSL version 3.0.0. Among other things, the concept of -providers has been added, which means that different programs can use -different security algorithms depending on their needs. You can imagine a -situation where you have implemented solutions where one needs to use FIPS -mode, while others need to maintain compliance with less secure policies.

-

This new version comes with a few security-related implications. The TLS-1.3 -protocol requires that a PKCS#11 token supports raw RSA or RSA-PSS -signatures.

-

If this is applicable to your scenario, please configure your software to use -TLS up to TLS-1.2. Additionally please edit the file -/etc/pki/tls/openssl.cnf and add this snippet at the very end of the -[ crypto_policy ] section:

-
SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384
-MaxProtocol = TLSv1.2
-
-

Developer tools

-

Some of the newest and most reliable technology stacks for developers are -available in the repositories. These include:

-
    -
  • Ant 1.10
  • -
  • GCC 11.2
  • -
  • Git 2.31
  • -
  • Go 1.17.5
  • -
  • LLVM 13
  • -
  • Maven 3.6.3
  • -
  • NodeJS 16
  • -
  • OpenJDK 17.0.1
  • -
  • PHP 8.0
  • -
  • Perl 5.32
  • -
  • Python 3.9
  • -
  • Ruby 3.0
  • -
  • Rust 1.56
  • -
  • SVN 1.14
  • -
-

The EuroLinux 9 platform ships glibc 2.34, which will provide 10 years of -business-class stability support and the same amount of software binary -interface compatibility time. As a result, programs written today will work the -same way 10 years from now.

-

Web servers and database engines

-

The following software is now available in our repositories:

-

HTTP servers:

-
    -
  • Apache HTTPD 2.4
  • -
  • nginx 1.20
  • -
-

Proxy servers:

-
    -
  • Squid 5.1
  • -
  • Varnish Cache 6.5
  • -
-

Database engines:

-
    -
  • MariaDB 10.5.12
  • -
  • MySQL 8.0
  • -
  • PostgreSQL 13
  • -
  • Redis 6.2.6
  • -
-

Security Policies - SCAP Security Guide

-

The SCAP Security Guide has been updated to version 0.1.57 and made a number of changes -from the counterpart we provide in EuroLinux 8:

-
    -
  • Removed deprecated SCAP 1.2 source data streams.
  • -
  • Removed Bash profile remediation scripts to encourage more secure practices.
  • -
  • Although references for EuroLinux 8 have been left in place, the current - package is designed for EuroLinux 9 - please kindly use packages for older - releases if you need to check them for security policies.
  • -
-

GNOME 40

-

GNOME has been updated to GNOME 40, a major step forward from EuroLinux 8's -GNOME 3.32.2 , which includes many new features.

-

GNOME 40 includes a new and improved style, including the user interface, icons -and desktop, The Activities look and feel provides a better experience when -working, launching applications and arranging your personal workspace - -workspaces are now arranged horizontally and the window overview and -application grid are available vertically.

-

Many Quality of Life improvements have also been added, including:

-
    -
  • running the software using a separate graphics card by right-clicking and - selecting the appropriate option
  • -
  • The ability to mute notifications by selecting Do not disturb, which will - appear as a separate button in the notification
  • -
  • Each screen can use a different refresh rate
  • -
  • The Activities program allows you to group application icons into folders - using a drag-and-drop method
  • -
  • provide the ability to fractionally scale the display
  • -
-

Notable changes

-

EuroLinux 9 provides refreshed and updated versions of the following packages:

-
    -
  • m4 was updated from version 1.4.18 to 1.4.19
  • -
  • xdp-tools was updated from version 1.1.1 to 1.2.1
  • -
  • openchange was updated from 2.3 (version) 37 (release) to 2.3 (version) 38 (release)
  • -
  • tigervnc was updated from 1.11.0 (version) 20 (release) to 1.11.0 (version) 21 (release)
  • -
-

We expect updated versions of these packages to be available in the GA -version of RHEL.

-

Known issues

-
    -
  • We are waiting for Secure Boot; as you can see here - https://github.com/rhboot/shim-review/issues, it is a long process
  • -
-

Batteries repositories

-

The battery repository is available for customers with Golden Key and Gaia -subscriptions. There are about 1000 packages that are not part of any build (so -they are not included in EuroLinux Open Build roots) but are required to -rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

-

EuroLinux 9 for ARM

-

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this -is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It -also allowed us to create x86_64, open build roots for i686 and x86_64 and -batteries repos faster.

-

Gaia updates

-

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

-

There are new commands in Gaia:

-
    -
  • new automodule-update Gaia subcommand, that well - automatically updates - modules. No more manual config changes for modules
  • -
  • new automodule-merge Gaia subcommand. This command uses multiple input files - (RH/EuroLinux modules files + result build + custom files) to create an updated - module definition
  • -
-

Other notable changes:

-
    -
  • Striga now creates automodule-* commands
  • -
  • Striga can create --partial commands for module rebuild
  • -
  • Vardoger now supports config files that allows ignoring chosen tests/levels - for selected RPMs
  • -
  • A lot of new configs for EuroLinux 9
  • -
-

We will also update hardware requirements for rebuild, including reference -build servers for ARM and PowerPC. The rebuilds will start with the release of -EuroLinux 9. It will also require updated infrastructure.

-

Container and cloud images

-

You can use the following publicly available images for EuroLinux 9

- -

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/9.1/index.html b/site/release-notes/9.1/index.html deleted file mode 100644 index d3d6093..0000000 --- a/site/release-notes/9.1/index.html +++ /dev/null @@ -1,1852 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 9.1 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 9.1 Release Notes

-

Major changes in EuroLinux 9.1.

-

Installer and image creation

-

Image builder on-premise now supports:

-
    -
  • Uploading images to GCP.
  • -
  • Customizing the /boot partition.
  • -
  • Pushing a container image directly to a registry.
  • -
  • Users can now customize their blueprints during the image creation process.
  • -
-

Installer support customization size of the /boot partition. -allow-ssh kickstart option allows ssh login as root user.

-

GRUB bootloader menu is hidden by default.

-

Security

-

EuroLinux 9.1 introduces Keylime, a remote machine attestation tool using the -trusted platform module (TPM) technology. With Keylime, you can verify and -continuously monitor the integrity of remote machines.

-

OpenSSH now supports setting minimum RSA key length. The option to be set is named RequiredRSASize. crypto-policies enforce minimum 2048-bit RSA key length for OpenSSH by default.

-

NSS no longer support RSA keys shorter than 1023bit.

-

SELinux user-space packages have been upgraded to version 3.4. Changes: -- Improved relabeling performance through parallel relabeling -- Support for SHA-256 in the semodule tool -- New policy utilities in the libsepol-utils package

-

Command-line tools

-

The following command-line tools have been updated in EuroLinux 9.1: -- cronie, now supports a randomized time within range ~ -- ReaR, now utilises new variables for executing commands before and after recovery -- opencryptoki to version 3.18.0 -- lsvpd to version 1.7.14 -- libvpd to version 2.2.9 -- sysctl supports same syntax for arguments as systemd-sysctl

-

EuroLinux 9.1 introduces a new package xmlstarlet with which you can -parse, query, validate, transform and edit XML files.

-

Infrastructure services

-

The following infrastructure services tools have been updated in EuroLinux 9.1: -- chrony to version 4.2 -- unbound to version 1.16.2 -- frr to version 8.2.2 -- whois package now provides the /usr/bin/mkpasswd binary, which can be used to encrypt a password with the crypt C library interface.

-

Networking

-

NetworkManager supports migrating connection profiles from the deprecated -ifcfg format to keyfile format.

-

The MultiPath TCP (MPTCP) code in the kernel has been updated and upstream -Linux 5.19.

-

NetworkManager now clearly indicates that WEP support is not available in -EuroLinux 9.

-

Programming languages, web and database servers

-

Later versions of the following components are now available as new module -streams: -- PHP 8.1 -- Ruby 3.1 -- Node.js 18

-

The Apache HTTP Server has been updated to version 2.4.53.

-

Compilers and development tools

-

Updated system toolchain

-

The following system toolchain components have been updated in EuroLinux 9.1: -- binutils 2.35.2 -- GCC 11.2.1 -- glibc 2.34

-

Updated performance tools and debuggers

-

The following performance tools and debuggers have been updated in EuroLinux -9.1: -- GDB 10.2 -- Valgrind 3.19 -- SystemTap 4.7 -- Dyninst 12.1.0 -- elfutils 0.187

-

Updated performance monitoring tools

-

The following performance monitoring tools have been updated in EuroLinux 9.1: -- Grafana 7.5.13 -- PCP 5.3.7

-

Updated compiler toolsets

-

The following compiler toolsets have been updated in EuroLinux 9.1: -- GCC Toolset 12 -- Go Toolset 1.18 -- Rust Toolset 1.62 -- LLVM Toolset 14.0.6

-

Java implementations in EuroLinx 9.1

-

EuroLinux 9 AppStream repository includes: -- java-11-openjdk - OpenJDK 11 Java Runtime Environment and the OpenJDK 11 - Java Software Development Kit. -- java-17-openjdk - OpenJDK 17 Java Runtime Environment and the OpenJDK 17 - Java Software Development Kit. -- java-1.8.0-openjdk - OpenJDK 8 Java Runtime Environment and the OpenJDK 8 - Java Software Development Kit. -- Maven 3.8 has been added as a module stream

-

Batteries repositories

-

The battery repository is available for customers with Golden Key and Gaia -subscriptions. There are about 1000 packages that are not part of any build (so -they are not included in EuroLinux Open Build roots) but are required to -rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

-

EuroLinux 9 for ARM

-

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this -is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It -also allowed us to create x86_64, open build roots for i686 and x86_64 and -batteries repos faster. Because creating EuroLinux 9 beta took us about four -weeks, ARM should take about two weeks, after updating Gaia Stack, as we have -all the necessary batteries and build orders figured out.

-

Gaia updates

-

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

-

There are new commands in Gaia: -- new automodule-update Gaia subcommand, that well - automatically updates - modules. No more manual config changes for modules -- new automodule-merge Gaia subcommand. This command uses multiple input files - (RH/EuroLinux modules files + result build + custom files) to create an updated - module definition

-

Other notable changes: -- Striga now creates automodule-* commands -- Striga can create --partial commands for module rebuild -- Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs -- A lot of new configs for EuroLinux 9

-

We will also update hardware requirements for rebuild, including reference -build servers for ARM and PowerPC. The rebuilds will start with the release of -EuroLinux 9. It will also require updated infrastructure.

-

Container and cloud images

-

You can use the following publicly available images for EuroLinux 9 beta -- EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) -- EuroLinux 9 Container on the Docker Hub -- EuroLinux 9 Container on the Quay.io

-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/9.2/index.html b/site/release-notes/9.2/index.html deleted file mode 100644 index 45b1767..0000000 --- a/site/release-notes/9.2/index.html +++ /dev/null @@ -1,1833 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 9.2 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 9.2 Release Notes

-

Major changes in EuroLinux 9.2.

-

Security

-

Key security-related highlights:

-
    -
  • The OpenSSL secure communications library was rebased to version 3.0.7.
  • -
  • SELinux user-space packages were updated to version 3.5.
  • -
  • Keylime was rebased to version 6.5.2
  • -
  • OpenSCAP was rebased to version 1.3.7.
  • -
  • SCAP Security Guide was rebased to version 0.1.66.
  • -
  • A new rule for idle session termination was added to SCAP.
  • -
  • Clevis now accepts external tokens.
  • -
  • Rsyslog TLS-encrypted logging now supports multiple CA files.
  • -
  • Rsyslog privileges are limited to minimize security exposure.
  • -
-

Programming languages, web and database servers

-

Later versions of the following application are now available:

-
    -
  • Python 3.11
  • -
  • PostgreSQL 15
  • -
  • nginx 1.22
  • -
-

The following components have been upgraded:

-
    -
  • Git LFS to version 3.2.0
  • -
  • Git to version 2.39.1
  • -
-

Compilers and development tools

-

The following system toolchain components have been updated in EuroLinux 9.2:

-
    -
  • GCC 11.3.1
  • -
  • glibc 2.34
  • -
  • binutils 2.35.2
  • -
-

Updated performance tools and debuggers

-

The following performance tools and debuggers have been updated in EuroLinux 9.2:

-
    -
  • elfutils 0.188
  • -
  • GDB 10.2
  • -
  • Valgrind 3.19
  • -
  • SystemTap 4.8
  • -
  • Dyninst 12.1.0
  • -
-

Updated performance monitoring tools

-

The following performance monitoring tools have been updated in EuroLinux 9.2:

-
    -
  • PCP 6.0.1
  • -
  • Grafana 9.0.9
  • -
  • Updated compiler toolsets
  • -
-

The following compiler toolsets have been updated in EuroLinux 9.2:

-
    -
  • GCC Toolset 12
  • -
  • Go Toolset 1.19.6
  • -
  • LLVM Toolset 15.0.7
  • -
  • Rust Toolset 1.66
  • -
-

Installer and image creation

-

Key highlights for image builder:

-
    -
  • Image builder on-prem now offers a new and improved way to create blueprints - and images in the image builder web console.
  • -
  • Creating customized files and directories in the /etc directory is now supported.
  • -
-

Java implementations in EuroLinux 9

-

The EuroLinux 9 AppStream repository includes:

-

The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime -Environment and the OpenJDK 11 Java Software Development Kit. -The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime -Environment and the OpenJDK 17 Java Software Development Kit. -The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime -Environment and the OpenJDK 8 Java Software Development Kit.

-

Containers

-

Notable changes include:

-
    -
  • Podman now supports events for auditing.
  • -
  • Clients for sigstore signatures with Fulcio and Rekor are now available.
  • -
  • Podman Quadlet is now available as a Technology Preview.
  • -
  • Skopeo now supports generating sigstore key pairs.
  • -
  • The Container Tools packages have been updated.
  • -
  • Toolbox is now available.
  • -
  • The CNI network stack has been deprecated.
  • -
  • The Aardvark and Netavark networks stack now supports custom DNS server selection.
  • -
-

Known issues

-

Due to changes in the build process, some java packages (java-1.8.0-openjdk, -java-11-openjdk, java-17-openjdk) are not updated jet (TODO).

-

Batteries repositories

-

The battery repository is available for customers with Golden Key and Gaia -subscriptions. There are about 330 packages that are not part of any build (so -they are not included in EuroLinux Open Build roots) but are required to -rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

-

EuroLinux 9 for ARM

-

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this -is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It -also allowed us to create x86_64, open build roots for i686 and x86_64 and -batteries repos faster. Because creating EuroLinux 9 took us about four -weeks, ARM should take about two weeks, after updating Gaia Stack, as we have -all the necessary batteries and build orders figured out.

-

Gaia updates

-

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

-

There are new commands in Gaia: -- new automodule-update Gaia subcommand, that well - automatically updates - modules. No more manual config changes for modules -- new automodule-merge Gaia subcommand. This command uses multiple input files - (RH/EuroLinux modules files + result build + custom files) to create an updated - module definition

-

Other notable changes: -- Striga now creates automodule-* commands -- Striga can create --partial commands for module rebuild -- Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs -- A lot of new configs for EuroLinux 9

-

We will also update hardware requirements for rebuild, including reference -build servers for ARM and PowerPC. The rebuilds will start with the release of -EuroLinux 9. It will also require updated infrastructure.

-

Container and cloud images

-

You can use the following publicly available images for EuroLinux 9 -- EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) -- EuroLinux 9 Container on the Docker Hub -- EuroLinux 9 Container on the Quay.io

-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/9.3/index.html b/site/release-notes/9.3/index.html deleted file mode 100644 index 516734e..0000000 --- a/site/release-notes/9.3/index.html +++ /dev/null @@ -1,1786 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 9.3 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 9.3 Release Notes

-

This version's code name is Riga - the capital of Latvia.

-

Major changes in EuroLinux 9.3.

-

Security

-

Key security-related highlights:

-
    -
  • Keylime was rebased to version 7.3.0.
  • -
  • OpenSSH was further migrated from the less secure SHA-1 message digest.
  • -
  • The pcsc-lite-ccid USB Chip/Smart Card Interface Device(CCID)) and Integrated Circuit Card Device (ICCD) driver was rebased to version 1.5.2.
  • -
  • SEtools, the collection of graphical tools, command-line tools, and libraries for SELinux policy analysis, was rebased to version 4.4.3.
  • -
  • OpenSCAP was rebased to version 1.3.8.
  • -
-

Programming languages, web and database servers

-

Later versions of the following application are now available:

-
    -
  • Redis 7
  • -
  • Node.js 20
  • -
-

Furthermore, the Apache HTTP Server has been updated to version 2.4.57.

-

The following components have been upgraded:

-
    -
  • Git LFS to version 3.2.0
  • -
  • Git to version 2.39.1
  • -
-

Compilers and development tools

-

The following system toolchain components have been updated:

-
    -
  • GCC 11.4.1
  • -
-

Updated performance tools and debuggers

-

The following performance tools and debuggers have been updated:

-
    -
  • Valgrind 3.21
  • -
  • SystemTap 4.9
  • -
  • elfutils 0.189
  • -
-

Updated performance monitoring tools

-

The following performance monitoring tools have been updated:

-
    -
  • PCP 6.0.5
  • -
  • Grafana 9.2.10
  • -
-

Updated compiler toolsets

-

The following compiler toolsets have been updated in:

-
    -
  • GCC Toolset 13
  • -
  • LLVM Toolset 16.0.6
  • -
  • Rust Toolset 1.71.1
  • -
  • Go Toolset 1.20.10
  • -
-

Java implementations in EuroLinux 9

-

The EuroLinux 9 AppStream repository includes:

-
    -
  • The java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit.
  • -
  • The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime
  • -
  • Environment and the OpenJDK 11 Java Software Development Kit.
  • -
  • The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime
  • -
  • Environment and the OpenJDK 17 Java Software Development Kit.
  • -
  • The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime
  • -
  • Environment and the OpenJDK 8 Java Software Development Kit.
  • -
-

Known issues

-

Due to evolution of build process updates for Java 21 OpenJDK and SCAP Security Guide are delayed now. They are going to be delivered soon.

-

Batteries repositories

-

The battery repository is available for customers with Golden Key and Gaia -subscriptions. There are about 330 packages that are not part of any build (so -they are not included in EuroLinux Open Build roots) but are required to -rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

-

Container and cloud images

-

You can use the following publicly available images for EuroLinux 9 -- EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) -- EuroLinux 9 Container on the Docker Hub -- EuroLinux 9 Container on the Quay.io

-

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/9.4/index.html b/site/release-notes/9.4/index.html deleted file mode 100644 index 2458e0f..0000000 --- a/site/release-notes/9.4/index.html +++ /dev/null @@ -1,1840 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 9.4 Release Notes - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 9.4 Release Notes

-

This version's code name is San Marino - the capital of San Marino, the world's oldest republic.

-

Major changes in EuroLinux 9.4.

-

Security

-

Key security-related highlights:

-
    -
  • Rsyslog log processing system introduces customizable TLS/SSL encryption settings and additional capability dropping options.
  • -
  • The OpenSSL TLS toolkit adds a provider-specific configuration directory.
  • -
  • The Linux kernel cryptographic API (libkcapi) 1.4.0 introduces new tools and options. You can now specify target file names for hash calculations using the -T option.
  • -
  • The stunnel TLS/SSL tunneling service 5.71 provides many new features such as support for modern PostgreSQL clients.
  • -
-

Programming languages, web and database servers

-

Later versions of the following application are now available:

-
    -
  • MariaDB 10.11
  • -
  • nginx 1.24
  • -
  • PHP 8.2
  • -
  • PostgreSQL 16
  • -
  • Python 3.12
  • -
-

The following components have been upgraded:

-
    -
  • Git LFS to version 3.4.1
  • -
  • Git to version 2.43.0
  • -
-

Compilers and development tools

-

Updated performance tools and debuggers

-

The following performance tools and debuggers have been updated:

-
    -
  • elfutils 0.190
  • -
  • SystemTap 5.0
  • -
  • Valgrind 3.22
  • -
-

Updated performance monitoring tools

-

The following performance monitoring tools have been updated:

-
    -
  • PCP 6.2.0
  • -
-

Updated compiler toolsets

-

The following compiler toolsets have been updated:

-
    -
  • GCC Toolset 13
  • -
  • Go Toolset 1.21.7
  • -
  • LLVM Toolset 17.0.6
  • -
  • Rust Toolset 1.75.1
  • -
-

Java implementations in EuroLinux 9

-

The EuroLinux 9 AppStream repository includes:

-
    -
  • The java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit.
  • -
  • The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime
  • -
  • Environment and the OpenJDK 11 Java Software Development Kit.
  • -
  • The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime
  • -
  • Environment and the OpenJDK 17 Java Software Development Kit.
  • -
  • The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime
  • -
  • Environment and the OpenJDK 8 Java Software Development Kit.
  • -
-

Known issues

-

Due to evolution of build process update for SCAP Security Guide are delayed now. They are going to be delivered soon.

-

Batteries repositories

-

The battery repository is available for customers with Golden Key and Gaia -subscriptions. There are about 330 packages that are not part of any build (so -they are not included in EuroLinux Open Build roots) but are required to -rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

-

Container and cloud images

-

You can use the following publicly available images for EuroLinux 9:

- -

Additional resources

- - - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/release-notes/ELD/index.html b/site/release-notes/ELD/index.html deleted file mode 100644 index 53ec14c..0000000 --- a/site/release-notes/ELD/index.html +++ /dev/null @@ -1,1707 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - EuroLinux 9 Desktop - EuroLinux Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - -
- -
- - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - -
-
-
- - - - -
-
- - - - - - - -

EuroLinux 9 Desktop

-

EuroLinux Desktop is a novelty in the operating system market. It combines the look and functionality of Windows® and macOS® with the reliability and security of a server-based Enterprise Linux distribution.

-

Overview

-

EuroLinux Desktop is built upon the source code of Red Hat® Enterprise Linux® 9. However, it includes a number of changes to the user interface. These primarily concern the system's appearance and usability. GNOME extensions have been used for this purpose. In EuroLinux Desktop, they are pre-configured and available immediately after installation - "out of the box." In addition, the Polish language version of EuroLinux Desktop fills in the gaps in the Polish translations of the extensions and GNOME.

-

Appearance & Features

-

In EuroLinux Desktop, there is a translucent dock (taskbar) at the bottom of the screen. It stores icons for favorite applications, notifications and running programs, a button that displays icons for all applications in high magnification, as well as date and time information. It is possible to change the position of the bar to the right, left or top of the desktop, as well as to customize it extensively. The user can customize its height, length, transparency, color, icon spacing and size. The system allows icons to be placed on the desktop as standard, and provides a window maximization and minimization function.

-

EuroLinux Desktop disables the overview mode and the hotcorner function, which displays the preview mode when you hover the mouse over the top left corner of the screen. When you right-click on the wallpaper, additional menu items appear (including New Text Document). Notification icons from instant messaging or email programs have also been added. EuroLinux Desktop lets you switch day/night themes with a single click on the moon icon in the dock, and allows you to set a schedule for automatic theme switching based on the time of day.

-

Multimedia

-

EuroLinux Desktop supports many media file formats (mp3, mpg, wma, ts, opus, ogg, mp4, flac, aiff, acc, ac3, avi), as well as the open codecs used for the popular mkv (Matroska) video files. Each of these formats can be run in the default Totem/Videos system player.

-

Office Suite

-

EuroLinux Desktop includes the LibreOffice suite of office applications. It includes a word processor, spreadsheet, presentation editor, vector graphics editor, mathematical formula editor and relational database management system.

-

Software

-

EuroLinux Desktop has been integrated with the Flathub repository, providing easy access to more than 2,000 free applications. They can be downloaded from the Software application and installed with a single click. The system also supports applications in AppImage format, the use of which is similar to programs with .exe or .msi extensions. However, in the case of EuroLinux Desktop, the AppImage application is always run from a non-privileged user. The system also allows the use of applications designed for Windows®, thanks to Steam®, Lutris or Wine.

- - - - - - -
-
- - -
- -
- - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/site/search/search_index.json b/site/search/search_index.json deleted file mode 100644 index 185cbc5..0000000 --- a/site/search/search_index.json +++ /dev/null @@ -1 +0,0 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"EuroLinux","text":""},{"location":"#about-documentation","title":"About Documentation","text":"

This is EuroLinux community-driven documentation.

We welcome your contributions to EuroLinux!

You can:

  • star the repository to show your support
  • contribute via a Pull Request - see How to contribute
  • create requests for a particular topic via Issue Creation on GitHub

Info

As EuroLinux is in Open Core model there are also additional documentation for our customer that are available at EuroLinux Support Portal.

Info

You can find our online Enterprise Linux Man pages server here https://man.docs.euro-linux.com.

"},{"location":"#how-documentation-is-organized","title":"How documentation is organized?","text":"

Documentation is organized in the following manner:

  • JumpStarts - Installation guides with extras
  • HowTo - How To guides on various topics
  • Release Notes
"},{"location":"#how-to-contribute","title":"How to contribute","text":"

We love your input! We value transparent and easy to contribute projects, that's why we choose GitHub. You can contribute to this project with:

  • Proposing a new topic that should be described
  • Discussing the current state of the docs
  • Reporting a bug
  • Submitting a fix

We Use GitHub with GitHub Flow. All changes are made through pull requests.

Pull requests are the best and well-established way to propose changes. The GitHub Flow that allows us to provide reviews and discussion about documentation/code is described in detail here.

Use our specially crafted issue templates: EuroLinux Open Docs issue from a template to contribute a topic you would like to see.

If you want to contribute with code (we keep documentation as code), do the following:

  1. Fork the repository and create your own branch from master.
  2. It would be great if you could test your changes with mkdocs (described in detail in Setup environment locally)
  3. Write/Apply your changes and commit to your branch.
  4. Create a pull request!
"},{"location":"#github-labs","title":"GitHub Labs","text":"

If you are new to Git VCS (Version Control System) or GitHub, you can visit GitHub Learning Lab, especially First Day on GitHub course. GitHub courses are free, interactive and put stress on practical aspects.

"},{"location":"#tools","title":"Tools","text":"

We are using mkdocs with mkdocs-material to build and style our documentation.

  • MkDocs site
  • Material for MkDocs site
"},{"location":"#setup-environment-locally","title":"Setup environment locally","text":"

Because MkDocs is Python based, you need at least these installed to run this documentation locally:

  • python3 (3.6+)
  • pip
  • virtualenv

First, let's create a virtualenv, so you don't bloat your system-wide python environment:

virtualenv -p /usr/bin/python3 venv\n

Then activate virtualenv

Bash:

. venv/bin/activate\n

Fish:

. venv/bin/activate.fish\n

Now you are ready to install MkDocs and other Python packages:

pip install -r requirements.txt\n

After it serving documentation on your host is as easy as running:

mkdocs serve\n

To build documentation invoke:

mkdocs build\n

It will build documentation and save it into site directory

Please don't include site directory in pull requests

Because we deploy this documentation with GitHub Pages, the site directory is not gitignored

"},{"location":"#markdown-cheat-sheet-for-this-project","title":"Markdown cheat sheet for this project","text":"

We created simple cheat sheet for MkDocs markdown syntax with extensions enabled in this project. It can be found here.

"},{"location":"HowTo/centos8-eol-solution/","title":"CentOS 8 End of Life - solution","text":""},{"location":"HowTo/centos8-eol-solution/#introduction","title":"Introduction","text":"

This how-to provides a solution to the problem of CentOS 8 running out of support. With the end of 2021, CentOS ended its life in its stable form and started functioning as CentOS Stream, a development branch for Red Hat\u00ae Enterprise Linux\u00ae. As a result, it stopped receiving proven, stable updates and its use, especially in production environments, became risky. This is a very serious problem for many companies and individuals around the world. So there was an urgent need to find a new source of updates for CentOS in order to keep it in the infrastructure. A complete solution to this problem is support switching, that is, pointing to a new repository from which CentOS will be downloading stable updates. Such a solution is offered by EuroLinux. It is worth mentioning that both CentOS and RHEL and EuroLinux are systems built on the same source code, so they provide the same functionality. They differ mainly in branding.

The operation of switching support is simple, reasonably safe and completely reversible. What is very important, it requires neither reinstallation of the system nor the applications installed on it. The process consists of switching the repository, installing the el-release package, updating the system and reinstalling the system packages in-place. After the in-place migration, CentOS will still be usable, even in production environments.

All resources used in this tutorial can be found in the additional resources section.

"},{"location":"HowTo/centos8-eol-solution/#the-solution","title":"The solution","text":"

A project named eurolinux-migration-scripts has been created. It contains among others a script that will take care of the migration automatically. Here we describe, how to perform the switch successfully.

"},{"location":"HowTo/centos8-eol-solution/#preparations","title":"Preparations","text":"

It's vital that the system be updated to the newest release. Use the following command:

sudo yum update -y\n
"},{"location":"HowTo/centos8-eol-solution/#running-the-migration-script","title":"Running the migration script","text":"

Then download the latest production-ready release of the project containing the script. Unpack the release, visit the unpacked directory and run the script - usually this will require right-clicking in the current directory, using the 'Open in Terminal' option and running this command:

sudo bash migrate2eurolinux.sh\n

Refer to the project's README for additional commands.

"},{"location":"HowTo/centos8-eol-solution/#after-the-switch","title":"After the switch","text":"

Once the migration has finished, it's recommended to reboot your system:

sudo reboot\n

Once the system has rebooted, the migration process can be considered complete. In order to quickly verify that it was carried out successfully, we can check the distribution description:

cat /etc/el-release\n

As a result we should get a response about the distribution and latest EuroLinux version.

"},{"location":"HowTo/centos8-eol-solution/#conclusion","title":"Conclusion","text":"

As you can see, the process is quick and seamless. You can switch the repository for RHEL, Oracle Linux, AlmaLinux, and Rocky Linux the same way. In each case, the process will look almost identical.

If you have any questions or concerns, please submit them to the repository linked in the additional resources section. Thank you.

"},{"location":"HowTo/centos8-eol-solution/#additional-resources","title":"Additional resources","text":"
  • EuroLinux support switching script GitHub repository
  • Latest production-ready release of the project
"},{"location":"HowTo/create-iso-with-repositories/","title":"How to create ISO file with EuroLinux repositories","text":"

Creating ISO that contains RPM repositories is a straightforward process. First you have to mirror repositories locally - mirroring is described in Mirror EuroLinux Locally How To.

To create an ISO file, you need mkiso command that is part of genisoimage package. You can install it with the following command:

sudo yum install -y genisoimage\n
"},{"location":"HowTo/create-iso-with-repositories/#creating-iso-with-repositories","title":"Creating ISO with repositories","text":"

In the example below, we create ISO from the repositories saved in /repos directory the output is saved to /var/eurolinux-repos.iso.

sudo mkisofs -R -J -o /var/eurolinux-repos.iso /repos/\n

This file could be:

  • locally copied to the machine that will be using it
  • added to ISOs pool of Virtual Machine manager/orchestrator or cloud computing platform of your choice
"},{"location":"HowTo/create-iso-with-repositories/#mounting-iso-from-local-file","title":"Mounting ISO from local file","text":"

Mounting local ISO file is as simple as:

sudo mount -o loop /PATH/TO/ISO /MOUNT/PATH\n

example:

sudo mount -o loop /var/eurolinux-repos.iso /mnt/mirror\n
"},{"location":"HowTo/create-iso-with-repositories/#mounting-iso-from-virtual-cd-rom-device","title":"Mounting ISO from virtual cd-rom device","text":"

Mounting CD-ROM device is as simple as:

sudo mount /dev/DEVICE /MOUNT/PATH\n

The following example has ISO mounted as CD-ROM device /dev/sr0:

sudo mount /dev/sr0 /mnt/mirror\n
"},{"location":"HowTo/create-iso-with-repositories/#using-locally-mounted-iso-with-rpm-repositories","title":"Using locally mounted ISO with RPM repositories","text":"

To use the repositories, that the ISO file provides, create a proper .repo file that resides inside /etc/yum.repos.d/ directory.

Here is an example /etc/yum.repos.d/local-iso.repo file for EuroLinux 7 and the ISO image attached to /mnt/mirror directory.

[base]\nname = EuroLinux 7 x86_64 Base\nbaseurl=file:///mnt/mirror/eurolinux-os-7/\nenabled=1\n# Disabled gpgcheck, enable if el-release is already installed on your system\ngpgcheck=0\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n\n[updates]\nname = EuroLinux 7 x86_64 Updates\nbaseurl=file:///mnt/mirror/eurolinux-updates-7/\nenabled=1\n# Disabled gpgcheck, enable if el-release is already installed on your system\ngpgcheck=0\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n
"},{"location":"HowTo/docker/","title":"Docker","text":"

How to set up your Docker Community Edition installation.

"},{"location":"HowTo/docker/#introduction","title":"Introduction","text":""},{"location":"HowTo/docker/#use-cases","title":"Use cases","text":"

Consider the following examples:

  • You want a standardized runtime environment across production, QA and developer scenarios.
  • You want all the runtime environment's specification in a single file, what is easy to manage through version control systems.
  • You want the environment to be reproducible. After all, it's just a matter of building an image from the specification and once it's done it is already self-documented on what steps were taken to cook the final image.
  • You prefer a layered architecture and the ability to cache artifacts across several images and backup & restore the images easily.
"},{"location":"HowTo/docker/#why-use-docker-containers-over-virtual-machines","title":"Why use Docker containers over virtual machines?","text":"

In short: Docker containers utilize Linux's capabilities such as cgroups and namespaces to create an isolated environment and do not virtualize hardware. Therefore, they are way more lightweight than virtual machines and can be brought up in a large scale in a blink of an eye rather than waiting for a single virtual machine to boot.

For more information, take a look at our blog entry on the basics of containerization.

"},{"location":"HowTo/docker/#system-requirements","title":"System requirements","text":"

The following operating systems and architectures are covered by this guide:

  • EuroLinux 8 on the x86_64 and aarch64 architecture.
  • EuroLinux 7 on the x86_64 architecture.

Make sure the containers you want to run are of the same architecture as your machine.

If you need support with installation on the EuroLinux releases this guide does not cover, please create an appropriate ticket.

"},{"location":"HowTo/docker/#installation","title":"Installation","text":""},{"location":"HowTo/docker/#eurolinux-8","title":"EuroLinux 8","text":"

The following steps are based on Docker, Inc. official guide as of 2022.02.01. We will just use the commands provided as snippets for a quick way of copying & pasting one snippet for a successful installation.

The following snippet installs Docker on EuroLinux 8.6. Other releases may work as well, but have not been tested. Once a new EuroLinux release is out, this guide will be updated.

Docker installation removes podman and buildah

Please note that this operation will replace runc with containerd.io and remove both podman and buildah.

sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine\nwhich yum-config-manager || sudo yum install -y yum-utils\nsudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo\nsudo yum install -y docker-ce docker-ce-cli containerd.io --allowerasing\nsudo systemctl enable docker --now\n
"},{"location":"HowTo/docker/#eurolinux-7","title":"EuroLinux 7","text":"

EuroLinux provides their own builds of Docker for EuroLinux 7.

Please prepare your EuroMan credentials and enable the el-server-7-extras-x86_64 channel first, like so:

sudo rhn-channel -u \"$el_euroman_user\" -p \"$el_euroman_password\" -c el-server-7-extras-x86_64 -a\n

Then you are ready to install Docker:

sudo yum install -y docker\nsudo systemctl enable docker --now\n
"},{"location":"HowTo/docker/#whats-next","title":"What's next?","text":"

EuroLinux provides several Docker images for you to use. They are publicly available and free of charge. Take a look at our entry EuroLinux docker images are now available for more information. Additionally, we provide a quick guide for having the images up and running in no time.

"},{"location":"HowTo/els/","title":"Migrate to EuroELS","text":"

This guide is about how to switch your repositories to the ones provided by EuroLinux Extended Life Support.

"},{"location":"HowTo/els/#introduction","title":"Introduction","text":"

Enterprise Linuxes 6 ended their life a few years ago. Still, security updates can be provided by several vendors for a fee. That's where EuroELS comes in. You can extend the lifecycle of your Enterprise Linux up to the half of 2024.

"},{"location":"HowTo/els/#how-to-migrate","title":"How to migrate","text":"

First, make sure that your system is up to date. It should be CentOS 6.10 (minor version 10).

su\nyum update -y\n

Second, in accordance with good practice, we recommend backing up your machine.

Please download the migration script available at this location:

https://github.com/EuroLinux/eurolinux-migration-scripts.git

wget https://github.com/EuroLinux/eurolinux-migration-scripts/archive/refs/heads/el6-only-switch-repos.zip\n

Please unpack the downloaded file:

unzip el6-only-switch-repos.zip\n

and navigate to the script's directory:

cd eurolinux-migration-scripts-el6-only-switch-repos\n

To start the switching process, just run the script with administrator privileges:

./migrate2eurolinux.sh\n

Once the command is executed, we'll get a recommendation to make a backup. Type YES to make the script continue.

The script will ask us about our EuroMan credentials. We provide our login and password when asked.

The repository switch has completed successfully. We can now update our Enterprise Linux 6 with the command:

yum update -y\n
"},{"location":"HowTo/ha-rs-enable-repository/","title":"How to install High Availability and Resilient Storage in EuroLinux 8","text":"

For EuroLinux 8.4, you should update the el-release package. The newer version has resilient-storage and high-availability repositories saved in the /etc/yum.repos.d/certify.repo file.

sudo yum update -y el-release\n

'certify-' prefix

Since EuroLinux 8.6 the 'certify-' prefixes in repo URLs and names are no longer used. These URLs are and will be kept as the symbolic link for backward compatibility. The certify.repo file will be used for the whole EuroLinux 8 lifecycle.

If you cannot update the release package because the new el-release package errata is not security-related, you might manually add the following to the /etc/yum.repos.d/certify.repo

[high-availability]\nname = EuroLinux High Availability\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/HighAvailability/os\nenabled=0\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\n\n[resilient-storage]\nname = EuroLinux Resilient Storage\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os\nenabled=0\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\n
"},{"location":"HowTo/ha-rs-enable-repository/#enabling-repositories-permanently","title":"Enabling repositories permanently","text":""},{"location":"HowTo/ha-rs-enable-repository/#enabling-high-availability-and-resilient-storage-repository-manually","title":"Enabling High Availability and Resilient Storage repository manually","text":"

Use your favourite text editor and change enabled=0 to enabled=1 for high-availability and resilient-storage repositories.

Before edit:

[resilient-storage]\nname = EuroLinux Resilient Storage\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os\nenabled=0\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\n

After Edit:

[resilient-storage]\nname = EuroLinux Resilient Storage\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/ResilientStorage/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\n

You should do the identical changes for high-availability repositories.

"},{"location":"HowTo/ha-rs-enable-repository/#enabling-high-availability-and-resilient-storage-repository-with-yum-config-manager","title":"Enabling High Availability and Resilient Storage repository with yum-config-manager","text":"

The yum-config-manager command is part of the yum-utils package. Firstly let's install that package:

sudo yum install -y yum-utils\n

Then enable Resilient Storage and High Availability repository with the following command:

sudo yum-config-manager --enable high-availability\nsudo yum-config-manager --enable resilient-storage\n
"},{"location":"HowTo/ha-rs-enable-repository/#installing-ha-andor-resilient-storage","title":"Installing HA and/or Resilient Storage","text":"

Both High Availability and Resilient Storage have rpm groups, so installing them is trivial.

To install the High Availability add-on, invoke the following command:

sudo yum install -y @ha\n

To install the Resilient Storage add-on, invoke the following command:

sudo yum install -y @resilient-storage\n
"},{"location":"HowTo/ha-rs-enable-repository/#basic-ha-configuration","title":"Basic HA configuration","text":""},{"location":"HowTo/ha-rs-enable-repository/#configuring-firewalld","title":"Configuring firewalld","text":"

Before configuring a firewall, it's appropriate to check if firewalld is actually running. The standard systemctl is-active command is one of the options.

systemctl is-active firewalld\n

For a system that has firewalld started and enabled, you might use good enough configuration with:

sudo firewall-cmd --permanent --add-service=high-availability\nsudo firewall-cmd --reload\n
"},{"location":"HowTo/ha-rs-enable-repository/#starting-pcsd","title":"Starting pcsd","text":"

After configuring a firewall, you can start and enable pcsd (PCS GUI and remote configuration interface) with the following commands:

sudo systemctl start pcsd.service\nsudo systemctl enable pcsd.service\n

To make a very basic test of the pcsd installation, we recommend setting hacluster user password. As root user, you can, for example invoke:

# echo \"secret-pass\" | passwd hacluster --stdin\n

Then login into Pacemaker/Corosync configuration. Use the machine address on port 2224 (example: https://MACHINE_IP:2224) in your browser. The username is hacluster with password you set in previous step.

HTTPS Required

Web browser like Firefox and other programs like cURL will report \"Connection reset by peer\" or \"The connection was reset\" when connecting with cleartext HTTP.

[root@test1 pcsd]# curl localhost:2224\ncurl: (56) Recv failure: Connection reset by peer\n

From this point you can freely configure High Availability and Resilient Storage. We recommend using upstream documentation provided in Additional Links below.

"},{"location":"HowTo/ha-rs-enable-repository/#additional-links","title":"Additional links","text":"
  • Red Hat Documentation - Configuring and Managing High Availability Clusters
  • Red Hat Documentation - Configuring GFS2 File System
"},{"location":"HowTo/install-epel-on-eurolinux/","title":"How to Install and Enable EPEL repository on EuroLinux 8","text":"

EPEL (Extra Packages for Enterprise Linux) repository is one of the most popular third-party repositories for the Enterprise Linux family. From the 4th November EuroLinux team included the original epel-release package from EPEL in the BaseOS repo. It was the most voted small quality of life change during our first community meeting. The package is re-signed with a EuroLinux GPG key, so there is no need to accept an external key to install this particular package.

The package version will be checked and updated if necessary during minor releases.

EPEL is an external repository that is community supported

As a company, we cannot provide proper care in terms of security, quality, support and lifecycle standards on a third-party repository. Nevertheless, the EPEL repository has a great history of community support.

"},{"location":"HowTo/install-epel-on-eurolinux/#installing-epel-on-eurolinux","title":"Installing EPEL on EuroLinux","text":"

Installing EPEL on EuroLinux 8 and EuroLinux 7 is as simple as:

sudo yum install -y epel-release\n

EPEL is enabled by default

The base EPEL repository is enabled by default for modular (EuroLinux 8) and non-modular packages. You can enable debuginfo and source packages in respective /etc/yum.repos.d/epel*.repo file.

From this moment, you can install and then use all EPEL goodies like htop, wine or createrepo.

"},{"location":"HowTo/migrate_to_rocky_linux/","title":"Procedure for migrating EuroLinux to RockyLinux","text":"
  1. Preparation:
  2. Ensure a stable and reliable internet connection throughout the entire migration process. This is critical for downloading scripts and packages.
  3. Create a full backup of the system to be migrated.
  4. Test the recovery procedure to ensure you can restore the system in case of interruption or errors during migration.
  5. It is recommended to run the migration in a session manager, e.g., tmux.

  6. Download migration scripts:

  7. For EL8:
    curl -O https://raw.githubusercontent.com/EuroLinux/rocky-tools/feature/vaulted_migration/migrate2rocky/migrate2rocky.sh\n
  8. For EL9:

    curl -O https://raw.githubusercontent.com/EuroLinux/rocky-tools/feature/vaulted_migration/migrate2rocky/migrate2rocky9.sh\n

  9. Migration:

  10. Migrating EuroLinux 8 to RockyLinux 8:

    sudo bash migrate2rocky.sh -r\n

  11. Migrating EuroLinux 9.4 to RockyLinux 9.4:

    • If RockyLinux has not yet released version 9.5:
      sudo bash migrate2rocky9.sh -r\n
    • If RockyLinux has already released version 9.5 or higher:
      sudo bash migrate2rocky9.sh -rv 9.4\n
"},{"location":"HowTo/mirror-eurolinux-locally/","title":"How to set up internal EuroLinux RPM mirror","text":"

This short how-to instructs how to set up your own internal EuroLinux mirror. External (publicly available) mirrors should not be set up this way.

"},{"location":"HowTo/mirror-eurolinux-locally/#system-requirements","title":"System requirements","text":"
  • Internet connection for sync server is required
  • The firewall must allow connection to EuroLinux servers
  • For each version of EuroLinux, you need about 80 GB of storage
  • You have to install utilities like reposync and createrepo. The following command will work on an Enterprise Linux 7 and 8:
    # --skip-broken because depending on the version not all packages might be present\nsudo yum install -y createrepo_c createrepo yum-utils dnf-utils --skip-broken\n
"},{"location":"HowTo/mirror-eurolinux-locally/#mirroring-eurolinux-9","title":"Mirroring EuroLinux 9","text":"

Making a local mirrors for EuroLinux 8 and EuroLinux 9 is simple because:

  • repositories are open
  • reposync can pull repository metadata, erratas, and modules files automatically.

Use Enterprise Linux 9

These instructions have been tested to work properly on Enterprise Linux 9 and Enterprise Linux 8.

First, let's create the directory where mirroring configuration will reside:

sudo mkdir -p /etc/yum-mirror-config\n

Then, let's create configuration file for EuroLinux 9 mirroring /etc/yum-mirror-config/mirror_yum_el9.conf with the contents:

[main]\ncachedir=/var/cache/yum/mirror/$basearch/$releasever\nkeepcache=0\ndebuglevel=2\nlogfile=/var/log/mirror-yum-el9.log\nplugins=1\nexactarch=0\nobsoletes=0\nreposdir=/dev/null\n\n[baseos]\nname = EuroLinux BaseOS\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/BaseOS/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9\nskip_if_unavailable=1\n\n[appstream]\nname = EuroLinux AppStream\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/AppStream/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9\nskip_if_unavailable=1\n\n[crb]\nname = EuroLinux CRB\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/CRB/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux9\nskip_if_unavailable=1\n

Then invoke the command reposync with the following arguments:

reposync --downloadcomps --download-metadata -c /etc/yum-mirror-config/mirror_yum_el9.conf -p /repos\n
"},{"location":"HowTo/mirror-eurolinux-locally/#mirroring-eurolinux-8","title":"Mirroring EuroLinux 8","text":"

Making a local mirror for EuroLinux 8 and EuroLinux 9 is simple because:

  • repositories are open
  • reposync can pull repository metadata, erratas, and modules files automatically.

Use Enterprise Linux 8

These instructions have been tested to work properly on Enterprise Linux 8. While everything may work well, it's not recommended to use other versions.

First, let's create the file /etc/yum-mirror-config/mirror_yum.conf with the contents:

[main]\ncachedir=/var/cache/yum/mirror/$basearch/$releasever\nkeepcache=0\ndebuglevel=2\nlogfile=/var/log/mirror-yum.log\nplugins=1\nexactarch=0\nobsoletes=0\nreposdir=/dev/null\n\n[baseos]\nname = EuroLinux BaseOS\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/BaseOS/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\nskip_if_unavailable=1\n\n[appstream]\nname = EuroLinux AppStream\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/AppStream/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\nskip_if_unavailable=1\n\n[powertools]\nname = EuroLinux PowerTools\nbaseurl=https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/PowerTools/os\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux8\nskip_if_unavailable=1\n

Then invoke the command reposync with the following arguments:

reposync --downloadcomps --download-metadata -c /etc/yum-mirror-config/mirror_yum.conf -p /repos\n
"},{"location":"HowTo/mirror-eurolinux-locally/#mirroring-eurolinux-7","title":"Mirroring EuroLinux 7","text":"

Use Enterprise Linux 7

These instructions have been tested to work properly on Enterprise Linux 7. While everything may work well, it's not recommended to use other versions.

"},{"location":"HowTo/mirror-eurolinux-locally/#the-official-way","title":"The official way","text":"

EuroLinux 7 is not open-core; therefore, only organizations with a proper license (EuroMan or Golden Key) can mirror it freely.

We know

We are well aware that it is possible to mirror repos even with a single license. You can read about that below.

The official way to mirror EuroLinux repositories is the following:

  • You need a proper subscription, like EuroMan or Golden Key
  • EuroLinux engineer will provide you with SSL certificates that we will name repo.key and repo.crt and CA that we will name ca.crt

Create the directory /etc/yum-mirror-config/. With the repokeys residing in that directory, create the file /etc/yum-mirror-config/mirror_yum.conf with the contents:

[main]\ncachedir=/var/cache/yum/mirror/$basearch/$releasever\nkeepcache=0\ndebuglevel=2\nlogfile=/var/log/mirror-yum.log\nexactarch=0\nobsoletes=0\ngpgcheck=0\nplugins=0\nreposdir=/dev/null\n\n[eurolinux-os-7]\nname=el7_x86_64_os\nbaseurl=https://cdn.euro-linux.com/dist/eurolinux/server/7/x86_64/os/\nsslclientkey=/etc/yum-mirror-config/repo.key\nsslclientcrt=/etc/yum-mirror-config/repo.crt\nsslcacert=/etc/yum-mirror-config/ca.crt\n\n[eurolinux-updates-7]\nname=el7_x86_64_updates\nbaseurl=https://cdn.euro-linux.com/dist/eurolinux/server/7/x86_64/updates/\nsslclientkey=/etc/yum-mirror-config/repo.key\nsslclientcrt=/etc/yum-mirror-config/repo.crt\nsslcacert=/etc/yum-mirror-config/ca.crt\n

Then invoke the command reposync with the following arguments:

reposync -d -m --download-metadata -c /etc/yum-mirror-config/mirror_yum.conf -p /repos\n

When the download finishes, the next step is to create repodata and enable groups.

cd /repos/eurolinux-os-7/; createrepo . -g comps.xml\ncd /repos/eurolinux-updates-7/; createrepo . -g comps.xml\n

Info

Enabling updateinfo (erratas information) is a little bit tricky, because firstly you have to find the newest updateinfo, unpack it, then invoke modifyrepo script. It can be automated with the script below.

REPO_DIR=/repos/eurolinux-os-7/\nunset -v LAST_UI\n# finding the newest file\nfor file in \"$REPO_DIR\"/*updateinfo.xml.gz; do\n  [[ \"$file\" -nt \"$LAST_UI\" ]] && LAST_UI=$file\ndone\n# unpacking to updateinfo.xml file\nsudo gunzip -c \"$LAST_UI\"  > \"$REPO_DIR/updateinfo.xml\"\n# Depending on the system - some has modifrepo.py script some has \"normal\" command\n/usr/share/createrepo/modifyrepo.py \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\" || modifyrepo \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\"\n\nREPO_DIR=/repos/eurolinux-updates-7/\nunset -v LAST_UI\nfor file in \"$REPO_DIR\"/*updateinfo.xml.gz; do\n  [[ $file -nt $LAST_UI ]] && LAST_UI=$file\ndone\nsudo gunzip -c \"$LAST_UI\"  > \"$REPO_DIR/updateinfo.xml\"\n# Depending on the system - some has modifrepo.py script some has \"normal\" command\n/usr/share/createrepo/modifyrepo.py \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\" || modifyrepo \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\"\n
"},{"location":"HowTo/mirror-eurolinux-locally/#the-unsupported-way","title":"The unsupported way","text":"

There is also the possibility to mirror EuroLinux repositories even with a single or even test subscription.

True Product \u2013 Real Support \u2013 Fair Price

We are faithful to our values. We also know that it's always possible to cheat and not play fair. Please be aware that during support inqury, we might check if your system is registered and supported. To this day, we always had pleasure to work with honest companies - please don't ruin that.

Mirroring other distros

The instruction allows cloning other distros, including paid ones. If you want to mirror paid Linux distribution, note that this might breach the license/license agreement.

You can mirror EuroLinux or other Enterprise Linux repositories with the following step:

  • Register your system with rhn_register command for EuroLinux or another way to mirror another system repositories.

Then run the following snippet as root:

reposync -d -m --download-metadata --plugins -r el-server-7-x86_64 -p /repos/\n# recreating repodata and updateinfo\nREPO_DIR=/repos/el-server-7-x86_64/\ncd /repos/el-server-7-x86_64/; createrepo . -g comps.xml\nunset -v LAST_UI\nfor file in \"$REPO_DIR\"/*updateinfo.xml.gz; do\n  [[ $file -nt $LAST_UI ]] && LAST_UI=$file\ndone\nsudo gunzip -c \"$LAST_UI\"  > \"$REPO_DIR/updateinfo.xml\"\n# Depending on the system - some has modifrepo.py script some has \"normal\" command\n/usr/share/createrepo/modifyrepo.py \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\" || modifyrepo \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\"\n
"},{"location":"HowTo/mirror-eurolinux-locally/#mirroring-eurolinux-6-els","title":"Mirroring EuroLinux 6 ELS","text":"

First, register your system to EuroLinux EuroMan with the migration scripts - use the el6-only-switch-repos branch for this.

Once the system has been registered and is receiving EL6 ELS updates, you can mirror the ELS packages with the following commands. Run them as root:

reposync -d -m --download-metadata --plugins -r els-6-x86_64 -p /repos/\n# recreating repodata and updateinfo\nREPO_DIR=/repos/els-6-x86_64/\ncd /repos/els-6-x86_64/; createrepo . -g comps.xml\nunset -v LAST_UI\nfor file in \"$REPO_DIR\"/*updateinfo.xml.gz; do\n  [[ $file -nt $LAST_UI ]] && LAST_UI=$file\ndone\nsudo gunzip -c \"$LAST_UI\"  > \"$REPO_DIR/updateinfo.xml\"\n# Depending on the system - some has modifrepo.py script some has \"normal\" command\n/usr/share/createrepo/modifyrepo.py \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\" || modifyrepo \"$REPO_DIR/updateinfo.xml\"  \"$REPO_DIR/repodata\"\n
"},{"location":"HowTo/vagrant-with-libvirt/","title":"Vagrant with vagrant-libvirt plugin on Enterprise Linux 8","text":""},{"location":"HowTo/vagrant-with-libvirt/#introduction","title":"Introduction","text":"

This guide covers the installation of libvirt and related tools along with the Vagrant plugin that allows using libvirt as a provider. This has been tested on a clean installation of EuroLinux 8.5 - only Vagrant has been installed already as described in Vagrant jumpstart.

"},{"location":"HowTo/vagrant-with-libvirt/#terminology","title":"Terminology","text":"
  • QEMU - a generic machine emulator
  • KVM - a virtualisation solution that is native to Linux. Used by QEMU to achieve near-native performances by executing the guest code directly on the host CPU
  • libvirt - a management suite for several hypervisors

While libvirt can manage many virtualisation solutions, in the context of this document libvirt refers to: QEMU with KVM managed by libvirt.

"},{"location":"HowTo/vagrant-with-libvirt/#why-prefer-libvirt-over-providers-such-as-virtualbox","title":"Why prefer libvirt over providers such as VirtualBox?","text":"

As mentioned, KVM is a native virtualisation solution to Linux. This means a significant performance boost when compared to other providers at the slight cost of portability - if you run Linux only, then this is your solution of choice!

If you have never used libvirt before and just heard about it in this how-to, there are several goodies worth mentioning. As an example unrelated to Vagrant: Virt-Manager allows you to get a similar GUI experience out of KVM as that of e.g. VirtualBox, it is fully Free Software (no worrying about licensing shenanigans) and is more modular - in fact, there is a libvirt VirtualBox driver out there.

"},{"location":"HowTo/vagrant-with-libvirt/#install-the-plugin","title":"Install the plugin","text":"

Normally one would invoke a single command: vagrant plugin install vagrant-libvirt and the plugin would work well out-of-the-box. This is not the case for Linux distributions from the Enterprise Linux family and Upstream is aware of that, but as of today (2021.12.21) it doesn't appear to be resolved.

Because of that, you'll need to build additional components and use them with your Vagrant installation. The following procedure covers all of this and has been tested to work well with EuroLinux 8.5.

Use these commands:

[ \"$(command -v vagrant)\" ] || \\\n( read -p \"Install Vagrant first before running the following commands\" \\\n  && exit 1 )\n\nsudo dnf groupinstall \"Development Tools\" \"Virtualization Host\" -y\nsudo dnf install cmake libvirt-devel ruby-devel -y\n\nmkdir krb5\ncd krb5\nwget https://vault.cdn.euro-linux.com/sources/eurolinux/8/baseos/x86_64/Packages/k/krb5-1.18.2-8.el8.src.rpm\nrpm2cpio krb5*.src.rpm | cpio -idmv\ntar xf krb5*.tar.gz\ncd krb5*/src\n./configure\nmake\nsudo cp -P lib/crypto/libk5crypto.* /opt/vagrant/embedded/lib64/\ncd\n\nmkdir libssh\ncd libssh\nwget https://vault.cdn.euro-linux.com/sources/eurolinux/8/baseos/x86_64/Packages/l/libssh-0.9.4-3.el8.src.rpm\nrpm2cpio libssh*.src.rpm | cpio -idmv\ntar xf libssh*.tar.xz\nmkdir build\ncd build\ncmake ../libssh-*/ -DOPENSSL_ROOT_DIR=/opt/vagrant/embedded/\nmake\nsudo cp lib/libssh* /opt/vagrant/embedded/lib64\ncd\n\nvagrant plugin install vagrant-libvirt && rm -rf krb5 libssh\nsudo usermod -a -G libvirt $USER\n

Next, log out from all of your sessions (graphical and text) and log in again. From now on you should be able to run Vagrant boxes with libvirt if all requirements have been satisfied, e.g. you don't have any other providers enabled (an equivalent of deploying this guide on a clean installation).

"},{"location":"HowTo/vagrant-with-libvirt/#additional-resources","title":"Additional resources","text":"
  • The plugin's repository
  • Websites of provider-related projects: KVM, libvirt, QEMU, Virt-Manager
"},{"location":"HowTo/virtualbox/","title":"VirtualBox","text":"

How to set up your VirtualBox installation.

"},{"location":"HowTo/virtualbox/#introduction","title":"Introduction","text":""},{"location":"HowTo/virtualbox/#use-cases","title":"Use cases","text":"

Consider the following examples:

  • You use software that doesn't work on your EuroLinux 8 installation.
  • You want to try out some potentially dangerous actions and don't want to endanger your machine.
  • You develop some awesome software and want to test it on several systems for compatibility
  • You want an easily reproducible environment that works the same way on every person's machine
  • You need a multi-machine laboratory, maybe with several different systems and don't have the resources for a physical equipment
"},{"location":"HowTo/virtualbox/#why-use-it-over-other-virtualisation-providers","title":"Why use it over other virtualisation providers?","text":"

VirtualBox is the provider with a copyleft license and a focus on interoperability when it comes to supporting different platforms. This allows you to cooperate with someone running a different operating system and when exchanging documentation - once written it's applicable to anyone that can run the software. New VirtualBox versions usually support older operating systems too. One can enjoy the new features on a system, which has recently reached its End of Life, which can be indispensable for a company that can't migrate yet.

"},{"location":"HowTo/virtualbox/#system-requirements","title":"System requirements","text":"

A brief documentation is available at Upstream's.

Your machine shall support hardware virtualisation. If it doesn't, you either need to perform additional troubleshooting - e.g. enable virtualisation in your machine's BIOS settings.

[ $(grep -cE 'vmx|svm' /proc/cpuinfo) -gt 0 ] && echo \"OK\"\n

Make sure you're running EuroLinux 8 on x86_64 architecture rather than ARM.

[ \"$(arch)\" == \"x86_64\" ] && echo \"OK\"\n
"},{"location":"HowTo/virtualbox/#installation-on-eurolinux-8","title":"Installation on EuroLinux 8","text":"

As of today (2 September 2021), 6.1 is the main VirtualBox branch and this is the one we install in this guide. Assuming your account has been made an administrator during the system installation process, simply run these commands for an installation:

sudo dnf groupinstall \"Development Tools\" -y\nsudo dnf config-manager \\\n  --add-repo=https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo\nsudo dnf install VirtualBox-6.1 -y\n

VirtualBox should be ready to use!

"},{"location":"HowTo/virtualbox/#usb-devices","title":"USB devices","text":"

If you want VirtualBox to support USB devices for your system account, run this command as well:

sudo usermod -a -G vboxusers $USER\n

then log out of your graphical session and log in again.

"},{"location":"HowTo/virtualbox/#extension-pack","title":"Extension Pack","text":"

VirtualBox doesn't support certain technologies out-of-the-box, e.g. USB 2.0/3.0 or builtin disk encryption, among others. If you want them to be supported, you will need VirtualBox Extension Pack. Make sure you have read its license and understand its implications - you're responsible for compliance. You may want to read Upstream's FAQ for a quick start.

Once you're sure you'll be able to comply with the licensing terms, run these commands to install the Extension Pack:

export vbox_version=\"$(VBoxManage --version | cut -d'r' -f 1)\"\nwget \"https://download.virtualbox.org/virtualbox/$vbox_version/Oracle_VM_VirtualBox_Extension_Pack-$vbox_version.vbox-extpack\"\nyes | sudo VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-$vbox_version.vbox-extpack\n
"},{"location":"HowTo/virtualbox/#troubleshooting","title":"Troubleshooting","text":""},{"location":"HowTo/virtualbox/#i-cant-enable-hardware-virtualisation-and-prefer-software-emulation","title":"I can't enable hardware virtualisation and prefer software emulation","text":"

As Upstream says, for software mode you'll need VirtualBox branch 6.0 or older.

Please also use version 6.0 if you need to run VMs with software virtualization, as this has been discontinued in 6.1.

"},{"location":"HowTo/virtualbox/#additional-resources","title":"Additional resources","text":""},{"location":"HowTo/virtualbox/#upstreams-release-pages","title":"Upstream's release pages","text":"

If you prefer a manual download, check out Upstream's Linux release pages and use the one they provide for RHEL 8.

"},{"location":"HowTo/virtualbox/#rpm-fusion","title":"RPM Fusion","text":"

Alternatively you can use RPM Fusion repository for installation. The software might differ in branding a bit and only the latest release is provided. Use these commands:

sudo dnf localinstall \\\n  https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y\nsudo dnf localinstall --nogpgcheck \\\n  https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm -y\nsudo dnf install VirtualBox -y\nsudo akmods --kernels $(uname -r) && sudo systemctl restart vboxdrv.service\n
"},{"location":"HowTo/z-documentation-markdown/","title":"Quick markdown and extensions guide","text":"

The first part of this guide is loosely based on Adam Pritchard markdown-here cheatsheet. We include it here for contributors as reference and show how different pieces will be styled. If you are familiar with markdown, and want to skip to this project specific extensions they start with Admonition:

"},{"location":"HowTo/z-documentation-markdown/#headers","title":"Headers","text":"

Headers are created with #.

# H1 This is is reserved for page title/name\n## H2 [Contribution guide] is h2\n### H3 [Headers] is h3\n...\n###### H6\n

"},{"location":"HowTo/z-documentation-markdown/#this-is-fourth-header","title":"This is fourth header","text":""},{"location":"HowTo/z-documentation-markdown/#this-is-fifth-header","title":"This is fifth header","text":""},{"location":"HowTo/z-documentation-markdown/#this-is-sixth-header","title":"This is sixth header","text":"

Headers are essentials, because table of content is based on them.

"},{"location":"HowTo/z-documentation-markdown/#emphasis","title":"Emphasis","text":"

Emphasis, aka italics, with *asterisks* or _underscores_. \n\nStrong emphasis, aka bold, with **asterisks** or __underscores__.\n\nCombined emphasis with **asterisks and _underscores_**.\n\nStrikethrough uses two tildes. ~~Scratch this.~~\n
Emphasis, aka italics, with asterisks or underscores.

Strong emphasis, aka bold, with asterisks or underscores.

Combined emphasis with asterisks and underscores.

Strikethrough uses two tildes. ~~Scratch this.~~

"},{"location":"HowTo/z-documentation-markdown/#list","title":"List","text":"

Proper markdown required

MK-Docs has proper markdown list ordering that is 1 to 1 with markdown standard.

See: Python Markdown Issue 3

TLDR: You have indent sub-list and paragraps with 4 spaces

(In this example, leading and trailing spaces are shown with with dots: \u22c5)

1. First ordered list item\n2. Another item\n\u22c5\u22c5\u22c5\u22c5* Unordered sub-list. \n1. Actual numbers don't matter, just that it's a number\n\u22c5\u22c5\u22c5\u22c51. Ordered sub-list\n4. And another item.\n\n\u22c5\u22c5\u22c5\u22c5To create paragraph within list item you need newline and four leading spaces. To have a line\u22c5\u22c5\n\u22c5\u22c5\u22c5\u22c5break without a paragraph, you will need to use two trailing spaces.\n\n!!! info Python markdown quirk\n    Python-Markdown won't reset list without paragraph. Even if list types are\n    not compatybile (ordered vs unordered)\n\n* Unordered list can use asterisks\n- Or minuses\n+ Or pluses\n

  1. First ordered list item
  2. Another item
    • Unordered sub-list.
  3. Actual numbers don't matter, just that it's a number
    1. Ordered sub-list
  4. And another item.

    To create paragraph within list item you need newline and four leading spaces. To have a line break without a paragraph, you use two trailing spaces.

Python markdown quirk

Python-Markdown won't reset list without paragraph. Even if list types are not compatybile (ordered vs unordered)

  • Unordered list can use asterisks
  • Or minuses
  • Or pluses
"},{"location":"HowTo/z-documentation-markdown/#code-blocks","title":"Code blocks","text":"

To add code block use (without leading space)

 ```python\n # nice\n for i in range(69, 420):\n   print(i)\n ```\n

Example:

# nice\nfor i in range(69, 420):\n  print(i)\n

"},{"location":"HowTo/z-documentation-markdown/#admonition","title":"Admonition","text":"

Info

This is admontion extension for markdown. It support things like (info,todo), (warning,caution,attention), (danger,error) and more.

Code in markdown:

!!! info\n    This is admontion extension for markdown. It support things like\n    (info,todo), (warning,caution,attention), (danger,error) and more.\n

For more information check documentation

Check mkdocs-material docs

Code in markdown:

!!! warning \"For more information check documentation\"\n    Check [mkdocs-material docs](https://squidfunk.github.io/mkdocs-material/reference/admonitions/)\n

"},{"location":"HowTo/z-documentation-markdown/#keyboard-keys","title":"Keyboard Keys","text":"

Sometimes you might add keys combinations. For example:

To use second TY terminal use following key combination Ctrl+Alt+F2

To make them visible in nice way you should use following syntax:

To use second TY terminal use following key combination ++ctrl+alt+f2++\n

"},{"location":"jumpstarts/8-jumpstart/","title":"EuroLinux 8 Jump Start","text":"

This document contains the necessary information to set up your first EuroLinux 8 installation.

"},{"location":"jumpstarts/8-jumpstart/#system-requirements","title":"System Requirements","text":""},{"location":"jumpstarts/8-jumpstart/#x86_64-64-bit-amdintel-architecture","title":"x86_64 (64 bit AMD/Intel architecture)","text":"

Minimal and recommended requirements are following:

Resource Absolute minimal requirements for cloud deployment Minimal Recommended Logical CPU 1 1 1 RAM 768MB or 512MB with swap space 1 GB 1.5 GB per logical CPU Storage 5 GB (excluding swap) 10GB 20GB

Logical CPU means Physical CPU (including Hyper-Threading) or vCPU (virtual CPU).

Warning

It might be impossible to install EuroLinux on a system that does not meet recommended requirements.

"},{"location":"jumpstarts/8-jumpstart/#aarch64-64-bit-arm-architecture","title":"aarch64 (64 bit ARM architecture)","text":"

Minimal and recommended requirements are following:

Resource Absolute minimal requirements for cloud deployment Minimal Recommended Logical CPU 1 1 1 RAM 1 GB or 512MB with swap space 2 GB 2 GB per logical CPU Storage 5GB 10GB 20GB"},{"location":"jumpstarts/8-jumpstart/#about-absolute-minimums-for-cloud-deployment","title":"About absolute minimums for cloud deployment","text":"

During our internal testing, we were able to boot and use very basic and already installed services on Virtual Machine with only 256 MB of RAM. However, without additional memory or at least swap space available, things like updating the system will result in actions of Kernel Out of Memory (OOM) Killer.

You can try it yourself with EuroLinux Vagrant boxes and following Vagrantfile:

Vagrant.configure(\"2\") do |config|\n  config.vm.box = \"eurolinux-vagrant/eurolinux-8\"\n\n  # Explicitly disable vbguest because we are using rsync\n  if Vagrant.has_plugin?(\"vagrant-vbguest\")\n      config.vbguest.auto_update = false\n  end\n\n  config.vm.provider \"virtualbox\" do |vb|\n    vb.memory = \"256\"\n    vb.cpus = 1\n  end\n  config.vm.provider \"libvirt\" do |vb|\n    vb.memory = \"256\"\n    vb.cpus = 1\n  end\nend\n

It's also possible to install EuroLinux on less than 5 GB of space, but it also requires extra attention.

All absolute minimums for cloud deployments described above are not officially supported by EuroLinux.

"},{"location":"jumpstarts/8-jumpstart/#secure-boot","title":"Secure boot","text":"

At the moment, EuroLinux does not support secure boot. The full secure boot support is planned at the end of Q1/beginning of Q2 2022.

"},{"location":"jumpstarts/8-jumpstart/#how-to-install-eurolinux-8-from-iso","title":"How to install EuroLinux 8 from ISO","text":""},{"location":"jumpstarts/8-jumpstart/#where-can-you-obtain-iso","title":"Where can you obtain ISO?","text":"

We distribute EuroLinux in a responsible open core model. Because of that, you might download EuroLinux from different sources. The two primary sources are:

  • https://fbi.cdn.euro-linux.com/isos/ open for everyone
  • https://customerportal.euro-linux.com for EuroLinux customers

The only difference is that Customer Portal keeps older versions, when CDN, that is used for mirroring, keeps only two of the latest ISOs for each version to save space (single EuroLinux AppStream ISO might take up to 10 GB).

If you are running a huge deployment, you might consider setting up your own mirror and download ISOs from Intranet.

"},{"location":"jumpstarts/8-jumpstart/#how-to-check-iso-integrity","title":"How to check ISO integrity","text":"

During download, many things can happen - from a network or sending host failure to single-bit error. To check if ISO is undamaged, there are two mechanisms in place.

  • For each EuroLinux ISO there's a file with its checksums and appropriate digest algorithms. Its name says, which algorithm was used to calculate the cryptographic digest. For example, you can browse https://fbi.cdn.euro-linux.com/isos/ and read the sha1sums.txt file.

When the ISO download is completed, you can invoke the sha1sum command on the ISO file and check if checksums match.

[Alex@SpaceShipEL8 Downloads]$ sha1sum EL-8.3-x86_64-20210624-appstream.iso \n6a8abaaebe288553ec8568bd9de3f5fda5f1ddb5  EL-8.3-x86_64-20210624-appstream.iso\n
  • The second mechanism for checking ISO integrity is built-in inside the installer itself. When you start the installation, use the Test this media & install EuroLinux 8 entry:

After booting up, the ISO checking process will start.

"},{"location":"jumpstarts/8-jumpstart/#installation-with-gui","title":"Installation with GUI","text":"

Because even a minimal installation uses a GUI the whole process is simple and straightforward. EuroLinux 8, as well as previous versions, uses Anaconda installer that clearly informs the user what needs to be done in order to install the system.

First, you have to choose the language that will be used during installation:

After configuring the installer language you should see a menu similar to:

"},{"location":"jumpstarts/8-jumpstart/#anaconda-installer-localization-section","title":"Anaconda installer LOCALIZATION section:","text":"
  • Keyboard - this section allows you to setup keyboard layouts, including the default keyboard layout, additional layouts and key combination to switch between them.
  • Language support - additional languages packages that should be installed.
  • Time & Date - configure the date, time zone, enable NTP and NTP servers.
"},{"location":"jumpstarts/8-jumpstart/#anaconda-installer-software-section","title":"Anaconda installer SOFTWARE section:","text":""},{"location":"jumpstarts/8-jumpstart/#configuring-source-of-the-installation","title":"Configuring source of the installation","text":"

Here you might configure the source of your installation. By default, the system installs from the ISO image itself. This is one of the officially supported ways to install EuroLinux.

If you enable a NIC (Network Interface Card) in the Network installer section, you might add additional EuroLinux repositories and/or other repositories. If you add EuroLinux repositories, the installer will automatically download newer version of the packages.

'certify-' prefix

Since EuroLinux 8.6 the 'certify-' prefixes in repo URLs and names are no longer used. These names and URLs were used before we started distributing our system in the open core model. These URLs are and will be kept as the symbolic link for backward compatibility. They can be used in some older parts of the documentation.

EuroLinux 8 repositories:

  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/BaseOS/os Name: BaseOSProd
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/AppStream/os Name: AppStreamProd
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/PowerTools/os Name: PowerToolsProd

For EuroLinux 8 beta:

  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/beta-BaseOS/os Name: BaseOSBeta
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/beta-AppStream/os Name: AppStreamBeta
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/8/$basearch/beta-PowerTools/os Name: PowerToolsBeta

Limited support.

Hybrid network installation from both ISO and public repositories is not our primary goal in the QA process. Packages in EuroLinux repositories are regularly updated, and it might be impossible to install a system from an external source. Depending on the state of the upstream, we might not fix a potential issue.

Below you can see an example configuration that was used to install a system:

After changing the installation source, you will have to confirm Software Selection.

"},{"location":"jumpstarts/8-jumpstart/#software-selection","title":"Software Selection","text":"

Software Selection allows you to customize which packages will be installed. You might choose from base environment groups like Server with GUI, Workstation or Minimal. You can also install additional package groups.

"},{"location":"jumpstarts/8-jumpstart/#anaconda-installer-system-section","title":"Anaconda installer SYSTEM section:","text":"
  • Installation selection allows choosing on which disk the system will be installed. If you want to have a fully encrypted system, you should enable encryption in this step.
  • KDUMP allows choosing if KDUMP (Kernel crash dump collection mechanism) should be enabled.
  • Network & Hostname - you can configure your system networking here
  • Security policy - you can setup an additional openscap policy here
"},{"location":"jumpstarts/8-jumpstart/#anaconda-installer-user-settings-section","title":"Anaconda installer USER SETTINGS section:","text":"
  • Root Password - by default, the root user is disabled. If a user is created in User Creation section, the root account can stay disabled
  • User Creation section allows creating a regular user in the system. If the Make this user administrator option is checked, the root account can be disabled.

After applying all the necessary changes, the installation can be started with the \"Begin Installation\" button.

"},{"location":"jumpstarts/8-jumpstart/#disk-partition-recommended-minimums","title":"Disk partition recommended minimums","text":"

You need at least the following partitions.

  • /boot for Linux kernel and init ramdisks - 1GB
  • / (root partition) - at least 10 GB (a very minimal system might use as little as 2GB - but it requires extra attention and is not officially supported by EuroLinux)

For UEFI, an EFI system partition is also required.

  • /boot/efi - at least 100MB

If your storage allows it, the following partitions are also highly recommended:

  • swap - 1GB or more depending on the system RAM and workload. Swap is also required for hibernation. Depending on the workload of the system, it should be at least as spacious as system RAM.
  • /home - at least 1GB - but in most cases, if / can be as big as 80GB, then /home/ usually takes the rest of the free space
"},{"location":"jumpstarts/8-jumpstart/#installing-eurolinux-in-basic-graphic-mode","title":"Installing EuroLinux in basic graphic mode","text":"

Suppose there is a problem loading/running your graphics card driver (it might results in a black screen/error message or graphical artifacts). It's possible to install EuroLinux in basic graphics mode.

To do so, choose Troubleshooting on the welcome menu, and then Install EuroLinux 8 in basic graphics mode.

From this point the process is identical to a standard installation with GUI.

"},{"location":"jumpstarts/8-jumpstart/#installing-eurolinux-in-text-mode","title":"Installing EuroLinux in text mode","text":"

To install EuroLinux in text mode:

  • Boot EuroLinux ISO
  • Press Esc to stop installation options selection timeout
  • Press Tab
  • Add inst.text to the end of the kernel boot command line
  • Press Enter

Before running the installation you have to provide all the necessary information (represented as ! in selection). It's a good idea to refresh the menu with R+Enter command shortly after the installer started.

After customization you are ready to start your installation.

"},{"location":"jumpstarts/8-jumpstart/#other-possibilities","title":"Other possibilities","text":"

EuroLinux can also be installed in the following manner:

  • Automated installation with a kickstart file.
  • Installation with PXE
  • Installation via VNC

Please consult upstream documentation about these topics.

"},{"location":"jumpstarts/8-jumpstart/#using-eurolinux","title":"Using EuroLinux","text":"

From this point, you can use EuroLinux as any other RHEL\u2122 based distribution.

"},{"location":"jumpstarts/8-jumpstart/#submitting-a-request-for-change","title":"Submitting a Request for Change","text":"

We truly care. If there is something that you believe could/should be changed/improved in the EuroLinux distribution and does not break compatibility with the upstream project, then drop us the issue on GitHub! All contributors are extremely welcome.

EuroLinux Distro Bugs and RFC

"},{"location":"jumpstarts/8-jumpstart/#submitting-a-bug-report","title":"Submitting a Bug report","text":"

We decided that submitting bug reports should not involve registration into some nasty miserable software. At the very same time, we know that most open-source developers have GitHub profiles. This choice makes the decision making and work as transparent as possible. That's why we decided to use it as the primary way to submit bugs.

EuroLinux Distro Bugs and RFC

This repository allows you to stay in direct contact with EuroLinux developers.

"},{"location":"jumpstarts/8-jumpstart/#other-ways-to-submit-a-bug-report","title":"Other ways to submit a bug report","text":"
  • support AT euro-linux dot com
  • EuroLinux Support Portal (subscription required)
"},{"location":"jumpstarts/8-jumpstart/#securityconfidential-bug-report","title":"Security/confidential bug report","text":"

Please use the e-mail provided above.

"},{"location":"jumpstarts/9-beta-jumpstart/","title":"EuroLinux 9 Beta Jump Start","text":"

This document contains the necessary information to set up your first EuroLinux 9 Beta installation.

"},{"location":"jumpstarts/9-beta-jumpstart/#system-requirements","title":"System Requirements","text":""},{"location":"jumpstarts/9-beta-jumpstart/#x86_64-64-bit-amdintel-architecture","title":"x86_64 (64 bit AMD/Intel architecture)","text":"

Minimal and recommended requirements are following:

Resource Absolute minimal requirements for cloud deployment Minimal Recommended Logical CPU 1 1 1 RAM 1 GiB or 768 MiB with swap space 2 GiB 1.5 GiB per logical CPU Storage 5 GB (excluding swap) 10GB 20GB

Logical CPU means Physical CPU (including Hyper-Threading) or vCPU (virtual CPU).

Warning

It might be impossible to install EuroLinux on a system that does not meet recommended requirements.

"},{"location":"jumpstarts/9-beta-jumpstart/#about-absolute-minimums-for-cloud-deployment","title":"About absolute minimums for cloud deployment","text":"

During our internal testing, we were able to boot and use very basic and already installed services on Virtual Machine with only 340 MiB of RAM. However, without additional memory or at least swap space available, things like updating the system will result in actions of Kernel Out of Memory (OOM) Killer.

You can try it yourself with EuroLinux Vagrant boxes and the following Vagrantfile:

Vagrant.configure(\"2\") do |config|\n  config.vm.box = \"eurolinux-vagrant/eurolinux-9\"\n\n  # Explicitly disable vbguest because we are using rsync\n  if Vagrant.has_plugin?(\"vagrant-vbguest\")\n      config.vbguest.auto_update = false\n  end\n\n  config.vm.provider \"virtualbox\" do |vb|\n    vb.memory = \"340\"\n    vb.cpus = 1\n  end\n  config.vm.provider \"libvirt\" do |vb|\n    vb.memory = \"340\"\n    vb.cpus = 1\n  end\nend\n

It's also possible to install EuroLinux on less than 5 GB of space, but it also requires extra attention.

All absolute minimums for cloud deployments described above are not officially supported by EuroLinux.

"},{"location":"jumpstarts/9-beta-jumpstart/#secure-boot","title":"Secure boot","text":"

Since EuroLinux 9 Beta is a pre-release version and not ready for production use, Secure Boot support has not been implemented.

"},{"location":"jumpstarts/9-beta-jumpstart/#how-to-install-eurolinux-9-beta-from-iso","title":"How to install EuroLinux 9 Beta from ISO","text":""},{"location":"jumpstarts/9-beta-jumpstart/#where-can-you-obtain-iso","title":"Where can you obtain ISO?","text":"

We distribute EuroLinux in a responsible open core model. Because of that, you might download EuroLinux from different sources. The two primary sources are:

  • https://fbi.cdn.euro-linux.com/isos/ open for everyone
  • https://customerportal.euro-linux.com for EuroLinux customers

The only difference is that Customer Portal keeps older versions, when CDN, that is used for mirroring, keeps only two of the latest ISOs for each version to save space (single EuroLinux BaseOS ISO might take up to 8 GB).

If you are running a huge deployment, you might consider setting up your own mirror and download ISOs from Intranet.

"},{"location":"jumpstarts/9-beta-jumpstart/#how-to-check-iso-integrity","title":"How to check ISO integrity","text":"

During download, many things can happen - from a network or sending host failure to single-bit error. To check if ISO is undamaged, there are two mechanisms in place.

  • For each EuroLinux ISO there's a file with its checksums and appropriate digest algorithms. Its name says, which algorithm was used to calculate the cryptographic digest. For example, you can browse https://fbi.cdn.euro-linux.com/isos/ and read the sha1sums.txt file.

When the ISO download is completed, you can invoke the sha1sum command on the ISO file and check if checksums match.

$ sha1sum EL-9.0-x86_64-20220225-minimal.iso\n73d39d443e27414085f7107fa21dd214d28b8730  EL-9.0-x86_64-20220225-minimal.iso\n
  • The second mechanism for checking ISO integrity is built-in inside the installer itself. When you start the installation, use the Test this media & install EuroLinux 9 entry:

After booting up, the ISO checking process will start.

"},{"location":"jumpstarts/9-beta-jumpstart/#installation-with-gui","title":"Installation with GUI","text":"

Because even a minimal installation uses a GUI the whole process is simple and straightforward. EuroLinux 9, as well as previous versions, uses Anaconda installer that clearly informs the user what needs to be done in order to install the system.

First, you have to choose the language that will be used during installation: Hint: since the Anaconda installer on EuroLinux 9 activates a network connection automatically if applicable, it also determines the default language by the automatic location detection feature - in this case you can see that Polish has been automatically chosen.

Since this is a Beta release, we might need to confirm that we are aware of this fact and that this release should not be used in production.

After configuring the installer language you should see a menu similar to:

"},{"location":"jumpstarts/9-beta-jumpstart/#anaconda-installer-localization-section","title":"Anaconda installer LOCALIZATION section:","text":"
  • Keyboard - this section allows you to setup keyboard layouts, including the default keyboard layout, additional layouts and key combination to switch between them.
  • Language support - additional languages packages that should be installed.
  • Time & Date - configure the date, time zone, enable NTP and NTP servers.
"},{"location":"jumpstarts/9-beta-jumpstart/#anaconda-installer-software-section","title":"Anaconda installer SOFTWARE section:","text":""},{"location":"jumpstarts/9-beta-jumpstart/#configuring-source-of-the-installation","title":"Configuring source of the installation","text":"

Here you might configure the source of your installation. By default, the system installs from the ISO image itself. This is one of the officially supported ways to install EuroLinux.

If a NIC (Network Interface Card) has been enabled in the Network & Host Name installer section, you might add additional EuroLinux repositories and/or other repositories. If you add EuroLinux repositories, the installer will automatically download newer version of the packages.

EuroLinux 9 Beta repositories:

  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/certify-beta-BaseOS/os Name: BaseOS
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/certify-beta-AppStream/os Name: AppStream
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/certify-beta-PowerTools/os Name: PowerTools

Limited support.

Hybrid network installation from both ISO and public repositories is not our primary goal in the QA process. Packages in EuroLinux repositories are regularly updated, and it might be impossible to install a system from an external source. Depending on the state of the upstream, we might not fix a potential issue.

Below you can see an example configuration that was used to install a system - in this case the default 'Minimal' repository has been provided as the only one:

After changing the installation source, you will have to confirm Software Selection.

"},{"location":"jumpstarts/9-beta-jumpstart/#software-selection","title":"Software Selection","text":"

Software Selection allows you to customize which packages will be installed. You might choose from base environment groups like Server with GUI, Workstation or Minimal Install - since we are demonstrating with the minimal ISO image, only the last option is available. You can also install additional package groups.

"},{"location":"jumpstarts/9-beta-jumpstart/#anaconda-installer-system-section","title":"Anaconda installer SYSTEM section:","text":"
  • Installation selection allows choosing on which disk the system will be installed. If you want to have a fully encrypted system, you should enable encryption in this step.
  • KDUMP allows choosing if KDUMP (Kernel crash dump collection mechanism) should be enabled.
  • Network & Host Name - you can configure your system networking here
  • Security Profile - you can setup an additional openscap policy here
"},{"location":"jumpstarts/9-beta-jumpstart/#anaconda-installer-user-settings-section","title":"Anaconda installer USER SETTINGS section:","text":"
  • Root Password - by default, the root user is disabled. If a user is created in User Creation section, the root account can stay disabled
  • User Creation section allows creating a regular user in the system. If the Make this user administrator option is checked, the root account can be disabled.

After applying all the necessary changes, the installation can be started with the \"Begin Installation\" button.

"},{"location":"jumpstarts/9-beta-jumpstart/#disk-partition-recommended-minimums","title":"Disk partition recommended minimums","text":"

You need at least the following partitions.

  • /boot for Linux kernel and init ramdisks - 1GB
  • / (root partition) - at least 10 GB (a very minimal system might use as little as 2GB - but it requires extra attention and is not officially supported by EuroLinux)

For UEFI, an EFI system partition is also required.

  • /boot/efi - at least 100MB

If your storage allows it, the following partitions are also highly recommended:

  • swap - 1GB or more depending on the system RAM and workload. Swap is also required for hibernation. Depending on the workload of the system, it should be at least as spacious as system RAM.
  • /home - at least 1GB - but in most cases, if / can be as big as 80GB, then /home/ usually takes the rest of the free space
"},{"location":"jumpstarts/9-beta-jumpstart/#installing-eurolinux-in-basic-graphic-mode","title":"Installing EuroLinux in basic graphic mode","text":"

Suppose there is a problem loading/running your graphics card driver (it might results in a black screen/error message or graphical artifacts). It's possible to install EuroLinux in basic graphics mode.

To do so, choose Troubleshooting on the welcome menu, and then Install EuroLinux 9 in basic graphics mode.

From this point the process is identical to a standard installation with GUI.

"},{"location":"jumpstarts/9-beta-jumpstart/#installing-eurolinux-in-text-mode","title":"Installing EuroLinux in text mode","text":"

To install EuroLinux in text mode:

  • Boot EuroLinux ISO
  • Press Esc to stop installation options selection timeout
  • Press Tab
  • Add inst.text to the end of the kernel boot command line
  • Press Enter

Since the Anaconda installer on EuroLinux 9 activates a network connection automatically if applicable, it also determines that we can start VNC or use text mode entirely. Since we are demonstrating the text mode installation, we choose the latter option.

Before running the installation you have to provide all the necessary information (represented as ! in selection). It's a good idea to refresh the menu with R+Enter command shortly after the installer started.

After customization you are ready to start your installation.

"},{"location":"jumpstarts/9-beta-jumpstart/#other-possibilities","title":"Other possibilities","text":"

EuroLinux can also be installed in the following manner:

  • Automated installation with a kickstart file.
  • Installation with PXE
  • Installation via VNC (as mentioned above)

Please consult upstream documentation about these topics.

"},{"location":"jumpstarts/9-beta-jumpstart/#using-eurolinux","title":"Using EuroLinux","text":"

From this point, you can use EuroLinux as any other RHEL\u2122 based distribution.

"},{"location":"jumpstarts/9-beta-jumpstart/#submitting-a-request-for-change","title":"Submitting a Request for Change","text":"

We truly care. If there is something that you believe could/should be changed/improved in the EuroLinux distribution and does not break compatibility with the upstream project, then drop us the issue on GitHub! All contributors are extremely welcome.

EuroLinux Distro Bugs and RFC

"},{"location":"jumpstarts/9-beta-jumpstart/#submitting-a-bug-report","title":"Submitting a Bug report","text":"

We decided that submitting bug reports should not involve registration into some nasty miserable software. At the very same time, we know that most open-source developers have GitHub profiles. This choice makes the decision making and work as transparent as possible. That's why we decided to use it as the primary way to submit bugs.

EuroLinux Distro Bugs and RFC

This repository allows you to stay in direct contact with EuroLinux developers.

"},{"location":"jumpstarts/9-beta-jumpstart/#other-ways-to-submit-a-bug-report","title":"Other ways to submit a bug report","text":"
  • support AT euro-linux dot com
  • EuroLinux Support Portal (subscription required)
"},{"location":"jumpstarts/9-beta-jumpstart/#securityconfidential-bug-report","title":"Security/confidential bug report","text":"

Please use the e-mail provided above.

"},{"location":"jumpstarts/9-jumpstart/","title":"EuroLinux 9 Jump Start","text":"

This document contains the necessary information to set up your first EuroLinux 9 installation.

"},{"location":"jumpstarts/9-jumpstart/#system-requirements","title":"System Requirements","text":""},{"location":"jumpstarts/9-jumpstart/#x86_64-64-bit-amdintel-architecture","title":"x86_64 (64 bit AMD/Intel architecture)","text":"

Minimal and recommended requirements are following:

Resource Absolute minimal requirements for cloud deployment Minimal Recommended Logical CPU 1 1 1 RAM 1 GiB or 768 MiB with swap space 2 GiB 1.5 GiB per logical CPU Storage 5 GB (excluding swap) 10GB 20GB

Logical CPU means Physical CPU (including Hyper-Threading) or vCPU (virtual CPU).

Warning

It might be impossible to install EuroLinux on a system that does not meet recommended requirements.

"},{"location":"jumpstarts/9-jumpstart/#about-absolute-minimums-for-cloud-deployment","title":"About absolute minimums for cloud deployment","text":"

During our internal testing, we were able to boot and use very basic and already installed services on Virtual Machine with only 340 MiB of RAM. However, without additional memory or at least swap space available, things like updating the system will result in actions of Kernel Out of Memory (OOM) Killer.

You can try it yourself with EuroLinux Vagrant boxes and the following Vagrantfile:

Vagrant.configure(\"2\") do |config|\n  config.vm.box = \"eurolinux-vagrant/eurolinux-9\"\n\n  # Explicitly disable vbguest because we are using rsync\n  if Vagrant.has_plugin?(\"vagrant-vbguest\")\n      config.vbguest.auto_update = false\n  end\n\n  config.vm.provider \"virtualbox\" do |vb|\n    vb.memory = \"340\"\n    vb.cpus = 1\n  end\n  config.vm.provider \"libvirt\" do |vb|\n    vb.memory = \"340\"\n    vb.cpus = 1\n  end\nend\n

It's also possible to install EuroLinux on less than 5 GB of space, but it also requires extra attention.

All absolute minimums for cloud deployments described above are not officially supported by EuroLinux.

"},{"location":"jumpstarts/9-jumpstart/#how-to-install-eurolinux-9-from-iso","title":"How to install EuroLinux 9 from ISO","text":""},{"location":"jumpstarts/9-jumpstart/#where-can-you-obtain-iso","title":"Where can you obtain ISO?","text":"

We distribute EuroLinux in a responsible open core model. Because of that, you might download EuroLinux from different sources. The two primary sources are:

  • https://fbi.cdn.euro-linux.com/isos/ open for everyone
  • https://customerportal.euro-linux.com for EuroLinux customers

The only difference is that Customer Portal keeps older versions, when CDN, that is used for mirroring, keeps only two of the latest ISOs for each version to save space (single EuroLinux BaseOS ISO might take up to 8 GB).

If you are running a huge deployment, you might consider setting up your own mirror and download ISOs from Intranet.

"},{"location":"jumpstarts/9-jumpstart/#how-to-check-iso-integrity","title":"How to check ISO integrity","text":"

During download, many things can happen - from a network or sending host failure to single-bit error. To check if ISO is undamaged, there are two mechanisms in place.

  • For each EuroLinux ISO there's a file with its checksums and appropriate digest algorithms. Its name says, which algorithm was used to calculate the cryptographic digest. For example, you can browse https://fbi.cdn.euro-linux.com/isos/ and read the sha1sums.txt file.

When the ISO download is completed, you can invoke the sha1sum command on the ISO file and check if checksums match.

$ sha1sum EL-9.0-x86_64-20220613-appstream.iso \nd78eebb3472ddff2dcaf110907e42ccee0367f70  EL-9.0-x86_64-20220613-appstream.iso\n
  • The second mechanism for checking ISO integrity is built-in inside the installer itself. When you start the installation, use the Test this media & install EuroLinux 9 entry:

After booting up, the ISO checking process will start.

"},{"location":"jumpstarts/9-jumpstart/#installation-with-gui","title":"Installation with GUI","text":"

Because even a minimal installation uses a GUI the whole process is simple and straightforward. EuroLinux 9, as well as previous versions, uses Anaconda installer that clearly informs the user what needs to be done in order to install the system.

First, you have to choose the language that will be used during installation: Hint: since the Anaconda installer on EuroLinux 9 activates a network connection automatically if applicable, it also determines the default language by the automatic location detection feature - in this case you can see that Polish has been automatically chosen.

After configuring the installer language you should see a menu similar to:

"},{"location":"jumpstarts/9-jumpstart/#anaconda-installer-localization-section","title":"Anaconda installer LOCALIZATION section:","text":"
  • Keyboard - this section allows you to setup keyboard layouts, including the default keyboard layout, additional layouts and key combination to switch between them.
  • Language support - additional languages packages that should be installed.
  • Time & Date - configure the date, time zone, enable NTP and NTP servers.
"},{"location":"jumpstarts/9-jumpstart/#anaconda-installer-software-section","title":"Anaconda installer SOFTWARE section:","text":""},{"location":"jumpstarts/9-jumpstart/#configuring-source-of-the-installation","title":"Configuring source of the installation","text":"

Here you might configure the source of your installation. By default, the system installs from the ISO image itself. This is one of the officially supported ways to install EuroLinux.

If a NIC (Network Interface Card) has been enabled in the Network & Host Name installer section, you might add additional EuroLinux repositories and/or other repositories. If you add EuroLinux repositories, the installer will automatically download newer version of the packages.

EuroLinux 9 repositories:

  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/BaseOS/os Name: BaseOS
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/AppStream/os Name: AppStream
  • URL: https://fbi.cdn.euro-linux.com/dist/eurolinux/server/9/$basearch/CRB/os Name: CRB

Limited support.

Hybrid network installation from both ISO and public repositories is not our primary goal in the QA process. Packages in EuroLinux repositories are regularly updated, and it might be impossible to install a system from an external source. Depending on the state of the upstream, we might not fix a potential issue.

Below you can see an example configuration that was used to install a system - in this case the default 'Minimal' repository has been provided as the only one:

After changing the installation source, you will have to confirm Software Selection.

"},{"location":"jumpstarts/9-jumpstart/#software-selection","title":"Software Selection","text":"

Software Selection allows you to customize which packages will be installed. You might choose from base environment groups like Server with GUI, Workstation or Minimal Install - since we are demonstrating with the minimal ISO image, only the last option is available. You can also install additional package groups.

"},{"location":"jumpstarts/9-jumpstart/#anaconda-installer-system-section","title":"Anaconda installer SYSTEM section:","text":"
  • Installation selection allows choosing on which disk the system will be installed. If you want to have a fully encrypted system, you should enable encryption in this step.
  • KDUMP allows choosing if KDUMP (Kernel crash dump collection mechanism) should be enabled.
  • Network & Host Name - you can configure your system networking here
  • Security Profile - you can setup an additional openscap policy here
"},{"location":"jumpstarts/9-jumpstart/#anaconda-installer-user-settings-section","title":"Anaconda installer USER SETTINGS section:","text":"
  • Root Password - by default, the root user is disabled. If a user is created in User Creation section, the root account can stay disabled
  • User Creation section allows creating a regular user in the system. If the Make this user administrator option is checked, the root account can be disabled.

After applying all the necessary changes, the installation can be started with the \"Begin Installation\" button.

"},{"location":"jumpstarts/9-jumpstart/#disk-partition-recommended-minimums","title":"Disk partition recommended minimums","text":"

You need at least the following partitions.

  • /boot for Linux kernel and init ramdisks - 1GB
  • / (root partition) - at least 10 GB (a very minimal system might use as little as 2GB - but it requires extra attention and is not officially supported by EuroLinux)

For UEFI, an EFI system partition is also required.

  • /boot/efi - at least 100MB

If your storage allows it, the following partitions are also highly recommended:

  • swap - 1GB or more depending on the system RAM and workload. Swap is also required for hibernation. Depending on the workload of the system, it should be at least as spacious as system RAM.
  • /home - at least 1GB - but in most cases, if / can be as big as 80GB, then /home/ usually takes the rest of the free space
"},{"location":"jumpstarts/9-jumpstart/#installing-eurolinux-in-basic-graphic-mode","title":"Installing EuroLinux in basic graphic mode","text":"

Suppose there is a problem loading/running your graphics card driver (it might results in a black screen/error message or graphical artifacts). It's possible to install EuroLinux in basic graphics mode.

To do so, choose Troubleshooting on the welcome menu, and then Install EuroLinux 9 in basic graphics mode.

From this point the process is identical to a standard installation with GUI.

"},{"location":"jumpstarts/9-jumpstart/#installing-eurolinux-in-text-mode","title":"Installing EuroLinux in text mode","text":"

To install EuroLinux in text mode:

  • Boot EuroLinux ISO
  • Press Esc to stop installation options selection timeout
  • Press Tab
  • Add inst.text to the end of the kernel boot command line
  • Press Enter

Since the Anaconda installer on EuroLinux 9 activates a network connection automatically if applicable, it also determines that we can start VNC or use text mode entirely. Since we are demonstrating the text mode installation, we choose the latter option.

Before running the installation you have to provide all the necessary information (represented as ! in selection). It's a good idea to refresh the menu with R+Enter command shortly after the installer started.

After customization you are ready to start your installation.

"},{"location":"jumpstarts/9-jumpstart/#other-possibilities","title":"Other possibilities","text":"

EuroLinux can also be installed in the following manner:

  • Automated installation with a kickstart file.
  • Installation with PXE
  • Installation via VNC (as mentioned above)

Please consult upstream documentation about these topics.

"},{"location":"jumpstarts/9-jumpstart/#using-eurolinux","title":"Using EuroLinux","text":"

From this point, you can use EuroLinux as any other RHEL\u2122 based distribution.

"},{"location":"jumpstarts/9-jumpstart/#submitting-a-request-for-change","title":"Submitting a Request for Change","text":"

We truly care. If there is something that you believe could/should be changed/improved in the EuroLinux distribution and does not break compatibility with the upstream project, then drop us the issue on GitHub! All contributors are extremely welcome.

EuroLinux Distro Bugs and RFC

"},{"location":"jumpstarts/9-jumpstart/#submitting-a-bug-report","title":"Submitting a Bug report","text":"

We decided that submitting bug reports should not involve registration into some nasty miserable software. At the very same time, we know that most open-source developers have GitHub profiles. This choice makes the decision making and work as transparent as possible. That's why we decided to use it as the primary way to submit bugs.

EuroLinux Distro Bugs and RFC

This repository allows you to stay in direct contact with EuroLinux developers.

"},{"location":"jumpstarts/9-jumpstart/#other-ways-to-submit-a-bug-report","title":"Other ways to submit a bug report","text":"
  • support AT euro-linux dot com
  • EuroLinux Support Portal (subscription required)
"},{"location":"jumpstarts/9-jumpstart/#securityconfidential-bug-report","title":"Security/confidential bug report","text":"

Please use the e-mail provided above.

"},{"location":"jumpstarts/cloud-jump-start/","title":"Eurolinux on clouds Jump Start","text":"

This document contains the necessary information to create Your own EuroLinux instance on cloud You prefer.

"},{"location":"jumpstarts/cloud-jump-start/#amazon-web-services-aws","title":"Amazon Web Services (AWS)","text":"

AWS was launched in 2006 and has since grown to become one of the largest cloud computing platforms in the world, with millions of customers and clients ranging from startups to enterprises.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-aws","title":"How to create EuroLinux instance on AWS","text":"
  1. Check our products on AWS Marketplace and select Your favourite.
  2. Click \"Continue to Subscribe\" and then \"Continue to Configuration\"
  3. Select version, region and click \"Continue to Launch\"
  4. Configure the instance as You prefer. Remember to select or create new key pair - it's necessary to create secure connection with instance.
  5. Click \"Launch\"
  6. To get the ip of this instance, go to the EC2 console and select \"Instances\"
  7. Click on Instance ID of the newly created instance and copy ip address
  8. You can log into instance using the ssh comand with -i key-file.pem option
"},{"location":"jumpstarts/cloud-jump-start/#microsoft-azure","title":"Microsoft Azure","text":"

With its strong focus on security and compliance, Azure has become a popular choice for organizations in regulated industries such as healthcare and finance, as well as for government agencies.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-microsoft-azure","title":"How to create EuroLinux instance on Microsoft Azure","text":"
  1. On the Azure Marketplace page, click \"Get It Now\" and accept the service terms.
  2. You will be redirected to the Azure portal, where you will see a \"Create\" button after logging in.
  3. In the \"Basics\" section of the virtual machine settings menu, pay special attention to the \"Administrator account\" section, where you will choose the type of authentication and enter a username that you will use to log in to the machine.
  4. Completing the creation of a typical virtual machine requires simply filling in the required fields in the \"Basics\" section. Then move on to \"Review + create\" and click the \"Create\" button.
  5. Your virtual machine will be created along with all the resources needed for it to function properly. To connect to it, simply select it and use one of the connection options (SSH, RDP, or Bastion) offered by Azure.
"},{"location":"jumpstarts/cloud-jump-start/#google-cloud-platform-gcp","title":"Google Cloud Platform (GCP)","text":"

GCP is designed to allow developers and businesses to build, deploy, and run applications and services on Google's infrastructure.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-gcp","title":"How to create EuroLinux instance on GCP","text":"
  1. Make sure you have gcloud tool and all its components installed.
  2. Log into your GCP account via gcloud tool
  3. Choose or create a new project.
  4. Run the following command in the console:

    gcloud beta compute instances create [instance-name] --zone=[zone-name] --machine-type=[machine-type] --subnet=default --image=[image-url] --boot-disk-size=[disk-size]\n

    Where: * [instance-name] is the desired name for the virtual machine. * [zone-name] is the zone where the virtual machine will be created. * [machine-type] is the type of machine to be created. * [image-url] is the URL of the image. * [disk-size] is the size of the boot disk.

    For example to create EuroLinux 8.6 instance in a us-central1-a region, type:

    gcloud beta compute instances create eurolinux-server1 --zone=us-central1-a --machine-type=n1-standard-1 --subnet=default --image=https://www.googleapis.com/compute/v1/projects/eurolinux-cloud/global/images/eurolinux-8-6 --boot-disk-size=10GB\n

"},{"location":"jumpstarts/cloud-jump-start/#alibaba-cloud","title":"Alibaba Cloud","text":"

Alibaba Cloud, also known as Aliyun aims to provide reliable and secure cloud computing solutions for businesses and organizations around the world, with a focus on serving the Asia-Pacific market.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-alibaba-cloud","title":"How to create EuroLinux instance on Alibaba Cloud","text":"
  1. Go to Alibaba Cloud Marketplace and select your favorite EuroLinux operating system image.
  2. Review the product description and then click the \"Choose Your Plan\" button. You will now be redirected to the Aliyun console page where you will continue creating the instance.
  3. Configure the instance to meet your needs. At this point, you can also change the payment type to subscription.
  4. In the System Configurations tab, select or create a \"Key Pair\" that will allow you to access the machine.
  5. Finally, accept the terms and create the instance by clicking \"Create Instance\". After a few minutes, your instance should be ready to use.
"},{"location":"jumpstarts/cloud-jump-start/#openstack","title":"OpenStack","text":"

OpenStack provides a flexible and customizable platform that can be used for a variety of cloud computing needs, from web hosting to big data processing to scientific computing.

Important: It is a cloud-generic images.

"},{"location":"jumpstarts/cloud-jump-start/#how-to-create-eurolinux-instance-on-openstack","title":"How to create EuroLinux instance on OpenStack","text":"
  1. Download Your favourite EuroLinux image in qcow2 or raw format. For example: https://fbi.cdn.euro-linux.com/images/EL-9-cloudgeneric-2023-03-19.qcow2
  2. Login to the OpenStack dashboard.
  3. Click on the \"Create Image\" button in \"Compute\" -> \"Images\" section.
  4. Fill in the required information and upload this image to OpenStack.
  5. To Launch Your instance with image You have just created simply click \"Launch Instance\" in \"Compute\" -> \"Instances\" section and fill the required informations.
  6. Make sure You create Your own key-pair and attach it to this instance.
  7. To log into Your EuroLinux instance copy the IP address and using the ssh comand with -i key-file.pem option, login as root to newly created machine.

Important: EuroLinux 9 have the root login without-password enabled by default, which means You have to assign the key-pair to Your instance to login.

"},{"location":"jumpstarts/container-jumpstart/","title":"EuroLinux Containers JumpStart","text":""},{"location":"jumpstarts/container-jumpstart/#basics","title":"Basics","text":"

Using EuroLinux container images is easy. We provide multiple containers and their versions. The most important are base images for EuroLinux 7 (with FBI [Free Base Image] repository) and EuroLinux 8 (with complete repositories - EuroLinux 8 is freely available). All EuroLinux container images are OCI standard container images. You can download them from two primary sources:

  • Docker Hub - EuroLinux 8
  • Docker Hub - EuroLinux 7
  • Quay - EuroLinux 8
  • Quay - EuroLinux 7

EuroLinux images can be run with any OCI standardized container runtimes such as runC (Docker/Moby project) or crun (Podman/Buildah/CRI-O).

To download the image:

Docker Hub:

docker pull eurolinux/eurolinux-8\n

Quay.IO:

podman pull quay.io/eurolinux/eurolinux-8\n

To run a container that will be removed after process exit. You might use:

docker run -rm -ti eurolinux/eurolinux-8\n

Inside the container, you can check the system version

bash-4.4# cat /etc/el-release\nEuroLinux release 8.5 (Tirana)\n

To detach the container from the console, add -d flag to docker/podman run command.

docker run -rm -ti -d --name eurolinux eurolinux/eurolinux-8\n
then run:
docker exec -it eurolinux bash\n
to enter the console of a container.

"},{"location":"jumpstarts/container-jumpstart/#other-containers","title":"Other containers","text":"

As a company, we create and support multiple containers, including other Enterprise Linux distributions. For example, we provide:

  • Docker Hub - AlmaLinux
  • Docker Hub - Rocky
  • Quay - AlmaLinux
  • Quay - Rocky

Other containers that we build are:

  • Oracle Linux
  • Scientific Linux
  • CentOS and CentOS stream

You can visit our organization page on the Docker Hub to find all containers that we officially support.

"},{"location":"jumpstarts/container-jumpstart/#older-versions","title":"Older Versions","text":"

If you want to use the previous version of the EuroLinux container, you must find the desired tag. Example for EuroLinux 8:

  • Docker Hub - EuroLinux 8 - tags
  • Quay - EuroLinux - tags
"},{"location":"jumpstarts/container-jumpstart/#request-for-changecomment-and-bug-report-repository","title":"Request for Change/Comment and Bug report repository","text":"

You can request a change, leave a comment or report a bug in this EuroLinux containers RFC repository.

"},{"location":"jumpstarts/rpi/","title":"EuroLinux for Raspberry Pi Jump Start","text":""},{"location":"jumpstarts/rpi/#about-images","title":"About images","text":"

EuroLinux Raspberry images are made for Raspberry Pi 4 model B. The system is EuroLinux 9. The minimal images could work with older Raspberry Pi 3. But we won't support it even with 'best effort' as Raspberry Pi 3 does not meet the minimum hardware requirements for Enterprise Linux 9 or Enterprise Linux 8.

The basic credentials are the following:

  • user: root
  • password: raspberry

SSH Root login disabled

SSH root login is disabled by default on EuroLinux 9.

Raspberry only

The Raspberry Pi images also won't work with other ARM-64 computers as RPI images are specially tailored for this particular hardware.

"},{"location":"jumpstarts/rpi/#downloading-and-checking-the-images","title":"Downloading and checking the images","text":"

Firstly choose the image from https://fbi.cdn.euro-linux.com/images. The Raspberry Pi images have the rpi-TYPE(where TYPE can be minimal or gnome) in their names. You can download the image with wget, curl or with your browser.

It's advised to check the image integrity by comparing checksums. The SHA256 checksums can be found at https://fbi.cdn.euro-linux.com/images/sha256sum.txt

Example download and checksum comparison:

wget https://fbi.cdn.euro-linux.com/images/EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz\nsha256sum EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz\ncurl -s https://fbi.cdn.euro-linux.com/images/sha256sum.txt | grep EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz\n

"},{"location":"jumpstarts/rpi/#flashing-the-microsd-card","title":"Flashing the MicroSD card","text":"

With the image downloaded now, it's time to flash your MicroSD card. There are multiple options, you can use:

  • Raspberry Pi Imager, which requires manual compilation for the most platforms
  • Balena Etcher comes as AppImage so works with nearly every Linux distribution
  • dd program, which is the most CLI-friendly way, but is also recommended for experienced users

We recommend Balena Etcher as dd might destroy the system partition or other important data if used without proper experience.

"},{"location":"jumpstarts/rpi/#balena-etcher","title":"Balena Etcher","text":"

Balena Etcher is one of the most popular and easy-to-use programs that allow flashing the SD cards for Raspberry Pi. It can also create other bootable media like USB sticks and more. Firstly download the AppImage from the official Balena Etcher website - https://www.balena.io/etcher/ (Download for Linux x64).

Most file managers will run AppImage when chosen and clicked. To run it from the command line firstly change the permissions then run.

chmod 755 balenaEtcher-1.13.1-x64.AppImage\n./balenaEtcher-1.13.1-x64.AppImage\n

The process itself is straightforward. There is plenty of documentation/videos about the Balena Etcher, so we trust that in case of any troubles you will be able to find a solution on your own.

"},{"location":"jumpstarts/rpi/#dd","title":"dd","text":"

dd is a program that is older than Linux Kernel itself :). It is one of these little tool that makes Linux/Unix powerful. It can be used to flash the memory card by writing output to the memory card device.

Firstly insert the memory card into the slot. Then check with the dmesg device file that is corresponding.

The dmesg will inform about partition:

[ TIME] scsi 0:0:0:0: Direct-Access     Generic  Mass-Storage     1.11 PQ: 0 ANSI: 2\n[ TIME] scsi 0:0:0:0: Attached scsi generic sg0 type 0\n[ TIME] sd 0:0:0:0: [sdX] 250347520 512-byte logical blocks: (128 GB/119 GiB)\n[ TIME] sd 0:0:0:0: [sdX] Write Protect is off\n[ TIME] sd 0:0:0:0: [sdX] Mode Sense: 03 00 00 00\n[ TIME] sd 0:0:0:0: [sdX] No Caching mode page found\n[ TIME] sd 0:0:0:0: [sdX] Assuming drive cache: write through\n

Where sdX is your SD card. To write you first need to decompress the image with the xzcat command and then pipe output to the dd (writing to the device requires root privileges, that's why there is sudo).

xzcat /path/to/image/image.raw.xz | sudo dd status=progress oflag=sync bs=4k of=/dev/sdX\n

For example:

xzcat ~/Downloads/EuroLinux-9-rpi-minimal-2023-01-02-sda.raw.xz | sudo dd status=progress oflag=sync bs=4k of=/dev/sda\n

"},{"location":"jumpstarts/rpi/#booting-from-usb","title":"Booting from USB.","text":"

EuroLinux 9.1 can be natively booted from USB on Raspberry Pi 4. You should flash your USB stick/disk in the same manner that you flash a micro SD card.

Early-produced RPI 4 might require firmware update.

Early-produced Raspberry Pi 4 might require a firmware update before booting the system from the USB.

"},{"location":"jumpstarts/rpi/#wifi-setup","title":"Wifi setup","text":"

Wifi adapter works out-of-box. It's trivial to configure it from a desktop (Gnome). To configure the WIFI from the console you can use the following commands.

Firstly find the SSID (WIFI name) that you want to use:

nmcli d wifi list\n

Then you can provide a password on the command line (note password will be saved in bash command history)

nmcli d wifi connect WIFI_NAME password PASSWORD\n

or if You want to be prompted for the password

nmcli d wifi connect WIFI_NAME --ask\n

Note that your RPI will automatically connect to the WIFI after reboot.

"},{"location":"jumpstarts/rpi/#disable-the-powersave-mode-on-the-raspberry-pi-wifi-card","title":"Disable the powersave mode on the Raspberry Pi WIFI card","text":"

The Raspberry Pi WIFI card by default enters powersave mode when there is not much going on. Some users reported a problem with broken SSH sessions and other closed connections due to this feature. To disable power save mode use the following command

iw wlan0 set power_save off\n

The problem with this solution is that this state won't survive system reboot. To fix that issue during startup you can add a network manager dispatcher script that will disable power_save on boot. Put the following script:

#!/usr/bin/env bash\n\ninterface=$1\nevent=$2\n\nif [[ $interface != \"wlan0\" ]] || [[ $event != \"up\" ]]\nthen\n  return 0\nfi\niw wlan0 set power_save off\n

into the /etc/NetworkManager/dispatcher.d/iw-wlan0-disable-powersave.sh, then add the execution permission

chmod +x /etc/NetworkManager/dispatcher.d/iw-wlan0-disable-powersave.sh\n
"},{"location":"jumpstarts/rpi/#enabling-the-i2c-i2c-inter-integrated-circuit","title":"Enabling the I2C (I\u00b2C - Inter-Integrated Circuit)","text":"

To enable i2c you have to add the i2c_arm with flag on as dtparam to the /boot/config.txt

dtparam=i2c_arm=on\n

The following script can be used:

echo 'dtparam=i2c_arm=on'  | sudo tee -a /boot/config.txt\n

We also recommend installing i2c-tools.

sudo dnf install -y i2c-tools\n

After this changes, you have to reboot the system to start i2c.

"},{"location":"jumpstarts/rpi/#enabling-spi-serial-peripheral-interface","title":"Enabling SPI (Serial Peripheral Interface).","text":"

To enable SPI you have to add spi with flag on as dtparam to the /boot/config.txt

dtparam=spi=on\n
The following script can be used:
echo 'dtparam=spi=on'  | sudo tee -a /boot/config.txt\n
After this changes you have to reboot the system to start SPI.

"},{"location":"jumpstarts/rpi/#feedback","title":"Feedback","text":"

If You want to leave feedback/request for change/bug report on EuroLinux Raspberry Pi images please use the https://github.com/EuroLinux/raspberry-pi-build repository.

If believe that something important from the documentation is missing don't hesitate to create issue in this documentation repository.

"},{"location":"jumpstarts/vagrant-jumpstart/","title":"Vagrant Jumpstart","text":""},{"location":"jumpstarts/vagrant-jumpstart/#introduction","title":"Introduction","text":"

Ever wanted to create a development environment that is guaranteed to work flawlessly on several developers' workstations without the It works on my machine! excuses? Well, now you can! Just get Vagrant, write your specification and share it with coworkers!

"},{"location":"jumpstarts/vagrant-jumpstart/#requirements","title":"Requirements","text":"

Vagrant will be managing the virtual machines of the backend provider of your choice. If you find out it's not listed, consider checking if there's a plugin-based implementation. Make sure you have a supported provider installed - we'll be using VirtualBox in this guide. You can use our VirtualBox installation guide as a reference.

"},{"location":"jumpstarts/vagrant-jumpstart/#installation-on-eurolinux-8","title":"Installation on EuroLinux 8","text":"

Simply run these commands and you're ready to go:

sudo dnf config-manager \\\n  --add-repo=https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo\nsudo dnf install vagrant -y\n
"},{"location":"jumpstarts/vagrant-jumpstart/#eurolinux-boxes","title":"EuroLinux Boxes","text":"

A box is a format that defines: an image of an operating system with preinstalled software, a provider for that image and its version - it's a ready-made appliance for that provider to run. This appliance works the same across people's workstations, which most likely will have differences in configuration and potentially different providers or even operating systems. That is as long as they use a provider, which the box is built for.

EuroLinux Vagrant boxes are available at: https://app.vagrantup.com/eurolinux-vagrant Let's use the box eurolinux-vagrant/eurolinux-8 as an example.

"},{"location":"jumpstarts/vagrant-jumpstart/#box-details","title":"Box details","text":"

See the details of the box - multiple providers, that the box has been built for, are listed along with the box versions and build dates. When writing your specification, you'll be able to choose from them as you wish.

"},{"location":"jumpstarts/vagrant-jumpstart/#run-the-box","title":"Run the box","text":"

Here's a basic procedure for running a Vagrant environment (a virtual machine, which uses our box) in a separate directory:

mkdir el8-vagrant\ncd el8-vagrant/\nvagrant init eurolinux-vagrant/eurolinux-8\nvagrant up\nvagrant ssh\n

You should now be connected to the machine and able to perform your desired operations inside it. Go ahead, play around, install your favourite developer tools, build an awesome, advanced, multi-component application and be sure everyone's able to deploy it on their workstations without any hassle!

"},{"location":"jumpstarts/vagrant-jumpstart/#what-about-the-specification-mentioned-earlier-vagrantfile","title":"What about the specification mentioned earlier? - Vagrantfile","text":"

Once you've ran the commands above, you'll have a Vagrantfile in the el8-vagrant directory. Take a look, what's inside. You'll be greeted with an introduction, references and lots of common options along with comments explaining them:

  # The most common configuration options are documented and commented below.\n  # For a complete reference, please see the online documentation at\n  # https://docs.vagrantup.com.\n

As you've already ran the box as explained in the previous section, you can see that there's no necessity to tweak anything inside Vagrantfile. The parameters that you can tweak, e.g. the virtual machine's memory or the amount of CPUs you should adapt to your work - e.g. if you need additional resources for developing/running your application, go ahead and increase them. Once that's done, check out if they can be reduced once you know your software resource requirements.

Depending on the task you want to achieve, whether it be a ready-made appliance or a base virtual system that gets provisioned with your application and its dependencies or something else, that's when changes to the specification must be made - e.g. the additional provisioning procedure shall be written.

As the comment quoted above says, refer to the comments the Vagrantfile provided for common options explanation. Once you know their purpose, try them out! Get comfortable with them and read Upstream's documentation for additional info, tips and more advanced, cool possibilities - such as a multi-machine infrastructure defined in a single Vagrantfile.

"},{"location":"jumpstarts/vagrant-jumpstart/#additional-resources","title":"Additional resources","text":"
  • Upstream's official website
  • Discover Vagrant Boxes - using EuroLinux as an example
  • Upstream's online documentation, worth mentioning once more
"},{"location":"jumpstarts/wsl/","title":"EuroLinux on WSL Jumpstart","text":"

This guide provides a quick overview of setting up EuroLinux on Windows Subsystem for Linux (WSL).

"},{"location":"jumpstarts/wsl/#prerequisites","title":"Prerequisites:","text":"
  • Windows 10 (Windows 10 version 1709 or newer for \"legacy\" WSL. Version 2004 or newer for WSL 2) or Windows 11
  • WSL/WSL 2 installed (we strongly recommended WSL 2 for better compatibility and performance)
  • Administrative privileges on your Windows system
"},{"location":"jumpstarts/wsl/#enabling-wsl","title":"Enabling WSL","text":"

Follow the official Microsoft documentation to enable WSL: https://learn.microsoft.com/en-us/windows/wsl/

"},{"location":"jumpstarts/wsl/#about-eurolinux-on-wsl","title":"About EuroLinux on WSL","text":"

EuroLinux company provides EuroLinux version 9 for WSL. The system is based on Red Hat Enterprise Linux 9 and is compatible with it. We used our base container image. The official repository is located https://github.com/EuroLinux/wsl it also contains the build scripts and latest documentation/releases.

"},{"location":"jumpstarts/wsl/#import-and-install-eurolinux-for-wsl","title":"Import and install EuroLinux for WSL","text":"
  • x86_64

    wget https://github.com/EuroLinux/WSL/releases/latest/download/el9-x86_64.tar -o el9-x86_64.tar\nwsl --import EuroLinux-9 \"$env:USERPROFILE/EuroLinux-9\" .\\el9-x86_64.tar --version 2\nwsl -d EuroLinux-9\n

  • aarch64

    wget https://github.com/EuroLinux/WSL/releases/latest/download/el9-aarch64.tar -o el9-aarch64.tar\nwsl --import EuroLinux-9 \"$env:USERPROFILE/EuroLinux-9\" .\\el9-aarcch64.tar --version 2\nwsl -d EuroLinux-9\n

"},{"location":"jumpstarts/wsl/#feedback","title":"Feedback","text":"

To provide feedback, request changes, or report bugs, please visit our official RFC/Bug repository at https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc. Your input is highly appreciated!

"},{"location":"knowledge-base/el6-jdk-install-failure/","title":"Unable to install java-1.7.0-openjdk on EuroLinux 6","text":""},{"location":"knowledge-base/el6-jdk-install-failure/#scenario","title":"Scenario","text":"

An attempt to install the latest version of java-1.7.0-openjdk.x86_64 as part of the EuroELS subscription fails with a message like:

Error in PRETRANS scriptlet in rpm package 1:java-1.7.0-openjdk-1.7.0.261-2.6.22.1.el6_10.x86_64\nerror: lua script failed: /usr/libexec/copy_jdk_configs.lua:272: attempt to index global 'file' (a nil value)\n
"},{"location":"knowledge-base/el6-jdk-install-failure/#solution","title":"Solution","text":"

The package java-1.7.0-openjdk.x86_64 expects that the directory /var/lib/rpm-state/ exists. Still, this might not be the case on every installation.

Please create this directory manually:

# mkdir /var/lib/rpm-state/\n
"},{"location":"knowledge-base/eurolinux-6-vault/","title":"Accessing EuroLinux 6.10 Vaulted Repositories","text":""},{"location":"knowledge-base/eurolinux-6-vault/#eurolinux-6-els-eol-2024-06-30","title":"EuroLinux 6 ELS EOL 2024-06-30","text":"

EuroLinux 6 reached its end of life on 2020-11-30; EuroLinux 6 ELS reached EOL on 2024-06-30 and is no longer supported. This means critical security updated are no longer provided, making your system highly vulnerable to security threats.

Upgrading might not always be possible due to reasons like replicating a specific production environment in development, supporting legacy systems, or strict software compatibility requirements. In such cases, while accessing the vaulted repositories is an option, be aware of the inherent security risks.

"},{"location":"knowledge-base/eurolinux-6-vault/#eurolinux-6-vault","title":"EuroLinux 6 vault","text":"

Using the following gist is a straightforward way to access the EuroLinux 6 vault:

Or manually add the following to /etc/yum.repos.d/eurolinux-6-vault-repos.repo:

[eurolinux6-base]\nname=Eurolinux 6 Base Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/6/6.10/BaseOS/x86_64/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux\n\n[eurolinux6-extras]\nname=Eurolinux 6 Updates Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/6/6.10/Extras/x86_64/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux\n

If the GPG key is not present on your system, you can add it with the following command:

curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux https://fbi.cdn.euro-linux.com/security/RPM-GPG-KEY-eurolinux\n
"},{"location":"knowledge-base/eurolinux-6-vault/#removing-subscription-packages","title":"Removing subscription packages","text":"

Previously, due to EuroLinux 6 repositories being paywalled, a subscription was required. This involved tools like rhn_register or el_register alongside the EuroMan service or a local mirror. With EuroMan's sunsetting alongside EuroLinux 6 ELS EOL, these subscription-related packages are no longer necessary (unless using custom Spacewalk/EuroMan Forman/EuroMan). You can safely remove them using the following command:

sudo yum remove -y rhn* subscription*\n
"},{"location":"knowledge-base/eurolinux-7-vault/","title":"Using EuroLinux 7 from vaulted repositories","text":""},{"location":"knowledge-base/eurolinux-7-vault/#eurolinux-7-eol-2024-06-30","title":"EuroLinux 7 EOL 2024-06-30","text":"

EuroLinux 7 reached its end of life on 2024-06-30. It means no further updates, including security updates, will be available. We strongly recommend upgrading to EuroLinux 8 or later as soon as possible. However, you may still need to use the older version for development, legacy, and compatibility reasons.

"},{"location":"knowledge-base/eurolinux-7-vault/#eurolinux-7-vault","title":"EuroLinux 7 vault","text":"

Using the following gist is a straightforward way to access the EuroLinux 7 vault:

Or manually add the following to /etc/yum.repos.d/eurolinux-7-vault-repos.repo:

[eurolinux7-base]\nname=Eurolinux 7 Base Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.9/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n\n[eurolinux7-updates]\nname=Eurolinux 7 Updates Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.9/updates/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n

The GPG key should be available in the system, but if it is not, you can add it with the following:

curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7 https://fbi.cdn.euro-linux.com/security/RPM-GPG-KEY-eurolinux7\n
"},{"location":"knowledge-base/eurolinux-7-vault/#eurolinux-78-and-77","title":"EuroLinux 7.8 and 7.7","text":"

As a bonus, you could also use even older versions of EuroLinux 7.8 and 7.7, which contain only updates up to the last minor release of the given version. Sample content of the .repo files are below:

For EuroLinux 7.8:

[eurolinux7-base]\nname=Eurolinux 7.8 Base Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.8/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n\n[eurolinux7-updates]\nname=Eurolinux 7.8 Updates Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.8/updates/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n

For EuroLinux 7.7:

[eurolinux7-base]\nname=Eurolinux 7.8 Base Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.7/os/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n\n[eurolinux7-updates]\nname=Eurolinux 7.8 Updates Vault\nbaseurl=https://vault.cdn.euro-linux.com/legacy/eurolinux/7/7.7/updates/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-eurolinux7\n

"},{"location":"knowledge-base/eurolinux-7-vault/#removing-subscription-packages","title":"Removing subscription packages","text":"

Since the EuroLinux 7 repositories were behind the paywall, you used to need the subscription that used rhn_register or el_register commands and ancient EuroMan service or local mirror of the system. EuroMan was sunsetted with EuroLinux 7 EOL.

You can confidently remove the subscription-related packages (as long as you are not using custom Spacewalk/EuroMan Forman/EuroMan) with the following command:

sudo yum remove -y rhn* subscription*\n
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/","title":"Black Screen After update to EuroLinux 8.10 - EFI problem","text":""},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#background","title":"Background","text":"

We are deeply sorry to inform you that one of the packages in EuroLinux 8.10 created a severe mistake in the boot configuration. The package grub2-efi-x64 was copied from a never-released beta repository, and it was not supposed to be there in that version.

If you updated your system:

  • before May 28th, 13 CET
  • and you are using EFI

The following error might appear after booting your system.

error: file `/EFI/eurolinux/grubx64.efi` Not Found.\n

and other similar errors, like:

StartImage failed\n

Generally speaking, the system won't boot into the bootloader (GRUB). Depending on your UEFI software, you might see different error messages.

Depending on your UEFI software you might be able to boot system normally. If you can boot system you can fix the problem by reinstalling the grub2-efi-x64 package.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#when-this-problem-does-not-occur","title":"When this problem does not occur","text":"
  • If you are using a VM that does not use EFI you won't have this problem
  • If you are using legacy BIOS and the system was installed as legacy BIOS
  • Container images and other images
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#update-after-may-28th-12-cet","title":"Update after May 28th, 12 CET","text":"

If you are updating your system with a repository synced after May 28, 13 CET, you should not have this problem. The package was removed and overwritten from the repository, and the proper package was added.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#updated-but-not-rebooted-system","title":"Updated but not rebooted system","text":"

If you updated but have not rebooted the system -> please reinstall the grub2-efi-x64 package and kernel packages:

sudo yum clean all\nsudo yum reinstall -y `kernel*` `grub2*`\n
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#iso-files","title":"ISO files","text":"

The ISO files were updated, and the previous ISO was removed. The new ISO is supposed to be released today (May 28th).

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#revert-from-backupsnapshot","title":"Revert from backup/snapshot","text":"

If you can, please revert from the backup or snapshot to version 8.9. The update process now contains overwritten, updated and proper packages, and this problem will not occur.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#rescue-system-with-wrong-efi-from-a-live-cd","title":"Rescue system with wrong EFI from a live CD.","text":"
  1. Download LiveISO CD
  2. Change boot order (if necessary)
  3. Mount ISO/Create ISO on the pendrive
  4. Start system from ISO
  5. Mount the EFI partition
  6. Copy the EFI files
  7. Run system normally
  8. Reinstall kernel-core and grub2-efi-x86
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#download-liveiso-cd","title":"Download LiveISO CD","text":"

One of the smallest ISO and well-known projects is Rescatux. You can download it from: https://sourceforge.net/projects/rescatux/files/rescatux-0.74/rescatux-0.74.iso/download

You can use different ISOs, such as our Desktop Live or Ubuntu.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#change-the-boot-order-if-necessary","title":"Change the boot order (if necessary)","text":"

Changing the boot order might be necessary for both VM and Physical Machines.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#mount-isocreate-iso-on-pendrive","title":"Mount ISO/Create ISO on pendrive","text":"

Mount rescue ISO to a VM. For physical machines, create a bootable pendrive with the ISO. The process is similar to creating a bootable pendrive for installation.

After mounting or inserting the pen drive, start the rescue/live CD system.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#starting-rescuetux-or-other-livecd","title":"Starting rescuetux or other livecd","text":"

You can safely start Rescuetux or another live CD. The process is similar to getting a standard desktop. You can safely skip any questions and programs and get straight to the terminal.

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#find-and-mount-the-efi-partition","title":"Find and mount the EFI partition","text":"

Finding an EFI partition is quite straightforward use one of the following commands:

sudo lsblk\n

Example efi partition output

/dev/nvme0n1p5: UUID=\"2A1E-AC26\" TYPE=\"vfat\" PARTLABEL=\"EFI System Partition\" PARTUUID=\"6b15bd77-bb2e-4393-9fbb-445625660679\"\n

or

lsblk -f\n
Example EFI partition output

vda1 vfat               776-93D0\n

After finding the EFI partition, mount it to a temporary location. In the example bellow, we are using /mnt as a temporary location, and partition is the /dev/vda1

sudo mount /dev/vda1 /mnt\n

Confirm the EFI partition is mounted correctly and contains EFI directory

cd /mnt/\nls\n

The output should contains at least an EFI directory

EFI\n
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#copy-the-efi-files","title":"Copy the EFI files","text":"
sudo cp -r /mnt/EFI/redhat/* /mnt/EFI/eurolinux/.\n
"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#reboot-system","title":"Reboot system","text":"

Depending on the live CD/ISO you used, you might need to reboot the system or exit the live CD.

sudo reboot\n
in most cases, is enough. You can also shut down the system with shutdown -h now.

Before starting the EuroLinux system, remember to remove the rescue/LiveCD ISO ISO or pendrive.

The whole process is as simple as the one on the screenshot:

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#running-the-system-and-reinstalling-the-packages","title":"Running the system and reinstalling the packages","text":"

After rebooting the system you should be able to boot into the system in normall state. You can now reinstal the kernel and grub packages.

sudo yum clean all\nsudo yum reinstall -y `kernel*` `grub2*`\n

"},{"location":"knowledge-base/eurolinux-8-10-efi-problem/#summary","title":"Summary","text":"

Once more, we are deeply sorry for the inconvenience. The bug skipped our testing and escaped into the public as we were changing the test structure to support new features, including Secure Boot for EuroLinux 9.

We are working on improving our testing process to avoid such mistakes in the future.

If you have any questions or need help, please contact us at support at euro-linux.com. We will dispatch an engineer for a one-on-one session to assist you.

"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/","title":"EuroLinux Linux distribution capabilities and limits","text":"

This document describes the technology capabilities and limits for EuroLinux 6, 7, 8 and 9. Some are theoretical, as they are connected with source code/projects used in the system. Minimal limits represent limits for the systems for which support is generally available by the EuroLinux company. Our dedicated solutions like:

  • system rebuilds with Gaia build stack
  • EuroLinux container images
  • EuroLinux cloud images
  • EuroLinux for edge computing
  • EuroLinux ARM 64 for IoT
  • containers running on the EuroLinux container platform or any other Kubernetes-based platform

might run and be supported on the less resources than described in this document.

The theoretical limit (connected with a version of the software used) is marked as (LIMIT), when limit supported and tested by upstream is provided as default for EuroLinux. TBA means - To Be Announced.

"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#minimum-logical-cpu","title":"Minimum logical CPU","text":"

All systems, physical or virtual, require at minimum 1 logical (physical or virtual) CPU core.

"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#maximum-logical-cpu","title":"Maximum logical CPU","text":"Architecture EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 x86_64 448 (4096) 768 (5120) 768 (8192) 1792 (8192) ARM64 X X 256 512 (4096)"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#minimum-memory","title":"Minimum memory","text":"

These requirements are only for systems supported as VMs or Physical hosts. In most cases, it's possible to run a system without complications on less memory. The minimum requirements have been provided below because it might not be possible to support systems with less memory.

Architecture EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 x86_64 Minimum 1 GiB, 1 GiB per logical core is recommended Minimum 1 GiB, 1 GiB per logical core is recommended Minimum 1 GiB, 1.5 GiB per logical core is recommended Minimum 1.5 GiB, 1.5 GiB per logical core is recommended ARM64 X X 2GiB 2GiB"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#maximum-memory","title":"Maximum memory","text":"Architecture EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 x86_64 12TB (64TB) 12TB (64TB) 24TB (64TB) 48TB (64TB) ARM64 X X 1.5TB (256TB) 1.5TB (256TB)"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#minimum-required-disk-space","title":"Minimum required disk space","text":"EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 1Gib Minimum, 5GiB recommended 5 GiB Minimum, 20 GiB recommended 10 GiB Minimum, 20 GiB recommended 10 GiB Minimum, 20 GiB recommended"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#file-systems-and-storage-limits","title":"File systems and storage limits","text":"

All filesystems in this document support ACL (Access Control List).

"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#ext3","title":"Ext3","text":"

Ext3 is mostly a legacy filesystem. Please use Ext4 or XFS.

Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Maximum File Size 2TiB 2TiB 2TiB 2TiB Maximum Filesystem Size 16TiB 16TiB 16TiB 16TiB Maximum Subdirectories or files in directory 32000 32000 32000 32000 Maximum symlink depth 8 8 8 8"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#ext4","title":"Ext4","text":"

Ext4 is the default filesystem for EuroLinux 6.

Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Maximum File Size 16TiB 16TiB 16TiB 16TiB Maximum Filesystem Size 1EiB 1EiB 1EiB 1EiB Maximum Subdirectories or files in directory 65000/unlimited with dir_nlink option 65000/unlimited with dir_nlink option 65000/unlimited with dir_nlink option 65000/unlimited with dir_nlink option Maximum symlink depth 8 8 8 8"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#xfs","title":"XFS","text":"

XFS is the default filesystem for in EuroLinux 7, 8 and 9.

Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Maximum File Size 8EiB 8EiB 8EiB 8EiB Maximum Filesystem Size 16EiB 16EiB 1PiB 1PiB Maximum Subdirectories or files in directory unlimited unlimited unlimited unlimited Maximum symlink depth 8 8 8 8"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#gfs2","title":"GFS2","text":"

Global Filesystem 2 is part of EuroLinux Resilient Storage and High Availability add-ons that are freely available with subscription or free available in the Open Core model.

Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Maximum File Size 8EiB 8EiB 8EiB 8EiB Maximum Filesystem Size 8EiB 8EiB 8EiB 8EiB Maximum Subdirectories or files in directory unlimited unlimited unlimited unlimited Maximum symlink depth unlimited unlimited unlimited unlimited"},{"location":"knowledge-base/eurolinux-capabilities-and-limits/#kernel-and-the-most-important-components-versions","title":"Kernel and the most important components versions","text":"Feature EuroLinux 6 EuroLinux 7 EuroLinux 8 EuroLinux 9 Base Linux Kernel version 2.6.34 3.10 4.18 5.14 Package Management RPM/Yum RPM/Yum RPM/Dnf, Flatpak RPM/Dnf, Flatpak System Init Upstart systemd systemd systemd Base GNU C Library (glibc) Version 2.12 2.17 2.28 2.34 Base (First) GCC version 4.4.7 4.8.5 8.2.1 (updated in newer versions) 11.2.1 (might be updated in the future) Base (First) LLVM version X X 7.0.1 (updated in newer versions) 13.0.0 (might be updated in the future) Default Desktop Gnome 2 Gnome 3 Gnome 3 Gnome 40 Office Suite LibreOffice LibreOffice LibreOffice LibreOffice Default Web Browser Firefox Firefox Firefox Firefox Default Mail Client Thunderbird Evolution or Thunderbird Evolution or Thunderbird Evolution or Thunderbird"},{"location":"knowledge-base/eurolinux-vault-policy/","title":"EuroLinux Vault and Archiving Policy","text":""},{"location":"knowledge-base/eurolinux-vault-policy/#vault-vaultcdneuro-linuxcom","title":"Vault - vault.cdn.euro-linux.com","text":"

The idea of the vault is simple - it stores older or archived versions of the software packages (mostly RPMs) and allow to create and maintain the environment that requires old versions of the packages, specific libraries or cannot or even must not be updated.

Warning! Security considerations

Due to their nature, the old versions of the software contain security vulnerabilities. Many of them have ready and easy to use exploits. Using unsupported versions of software is a dangerous practice, especially when system is running in the public networks.

"},{"location":"knowledge-base/eurolinux-vault-policy/#vaults-initial-and-last-version-for-minor-releases","title":"Vault's initial and last version for minor releases","text":"

From version 8.6 and 9.0 we decided that we will provide three versions for each minor release (minor release is for example EuroLinux 8.6 -> 8.7 -> 8.8), of the vault. The first one is the initial state of the release, then there is current state (for living release), the third one has '-last' and it's the last snapshot before a new minor release. This idea originated from community feedback. For example in case of EuroLinux 8.7 (that in time of writing this documentation is the latest minor release):

  • https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7-init/ contains the initial state for 8.7
  • https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7/ contains the current state of EuroLinux 8.7
  • https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8.7-last/ Will contain the last snapshot for 8.7 before general availability of the EuroLinux 8.8. It will be just a symbolic link to 8.7 that will mark the EOL of this minor release.

If there is no version with -last suffix it means that this version is a newest minor release or the -last was not created.

"},{"location":"knowledge-base/eurolinux-vault-policy/#vault-for-the-current-version","title":"Vault for the current version","text":"

For your convince EuroLinux Vault also keeps the track of the current version of the EuroLinux as a symbolic link to the newest minor release. The symlinks are 8 for version 8 and 9 for version 9.

  • https://vault.cdn.euro-linux.com/legacy/eurolinux/8/8/
  • https://vault.cdn.euro-linux.com/legacy/eurolinux/9/9/

These repositories are updated regularly in the same manner as main/mirrors repositories.

"},{"location":"knowledge-base/eurolinux-vault-policy/#eurolinux-sources-on-vaultcdneuro-linuxcom","title":"EuroLinux sources on vault.cdn.euro-linux.com","text":"

We used to provide sources for EuroLinux on GitHub. Unfortunately, due to GitHub's limitations, it wasn't as feasible in long run. Each source needed to be repacked on the client system and source wasn't signed.

We decided to go with a friendlier and more standarized direction after receiving feedback from the community and clients. Since version 8 we deliver the sources as .src.rpms. It's a better solution in many ways, and the advantages include:

  • All source packages (sources used to build EuroLinux and other Enterprise Linux distributions) are securely signed cryptographically
  • The src.rpm is native format for distributions that leverage RPMs. It allows to use common toolchains like mock, rpmbuild, EuroLinux Gaia, Open Build Service, Koji and much more
  • It's easier to mirror repositories
  • It's also easier to maintain

The source can be found at https://vault.cdn.euro-linux.com/sources/eurolinux/.

"},{"location":"knowledge-base/eurolinux-vault-policy/#bug-tracker","title":"Bug tracker","text":"

If you encounter any missing sources or problem with vault, please don't hesitate to contact as via e-mail (support[at]euro-linux.com) or fill bug in our distro bug tracker. If you are our client you can contact us on the support site or with sale representative.

"},{"location":"knowledge-base/unable-to-find-requested-software/","title":"Unable to Find Requested Software","text":""},{"location":"knowledge-base/unable-to-find-requested-software/#environment","title":"Environment","text":"
  • EuroLinux 7
  • EuroLinux 8
"},{"location":"knowledge-base/unable-to-find-requested-software/#issue","title":"Issue","text":"

An error occurs during a search for missing components. A similar message is shown by GNOME Software:

Unfortunately, the [...] you were searching for could not be found. Please see [...] for more information.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-package","title":"Missing Package","text":"

The package you are searching for is not available in EuroLinux base repositories.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-codec","title":"Missing Codec","text":"

The codec you are searching for is not available in EuroLinux base repositories due to licensing reasons or patent encumbrance.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-hardware-support","title":"Missing Hardware Support","text":"

A kernel module or a driver is not available in EuroLinux base repositories due to licensing reasons that prohibit redistribution or is not yet in the upstream Linux kernel.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-font","title":"Missing Font","text":"

The font you are searching for is not available in EuroLinux base repositories.

"},{"location":"knowledge-base/unable-to-find-requested-software/#missing-mime-support","title":"Missing MIME Support","text":"

An application that supports operations on your file with its MIME type is not available in EuroLinux base repositories due to them being supported exclusively by a third party application or an application that runs only on a platform different than EuroLinux.

"},{"location":"knowledge-base/unable-to-find-requested-software/#resolution","title":"Resolution","text":"

If you would like to request for a certain component availability, please contact us.

"},{"location":"release-notes/8.10/","title":"EuroLinux 8.10 Release Notes","text":"

This version\u2019s code name is Bucharest - the capital of Romania, also known as \u201cParis of the East\u201d.

"},{"location":"release-notes/8.10/#major-changes-in-eurolinux-810","title":"Major changes in EuroLinux 8.10.","text":""},{"location":"release-notes/8.10/#security","title":"Security","text":"

Key security-related highlights:

  • OpenSSL adds API-level protection for RSA PKCS #1 v1.5 decryption process.
  • libkcapi delivers new functions and tools.
  • stunnel provides many new SSL-related features.
"},{"location":"release-notes/8.10/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following application are now available:

  • MariaDB 10.11
  • nginx 1.24
  • PHP 8.2
  • PostgreSQL 16
  • Python 3.12

The following components have been upgraded:

  • Git LFS to version 3.4.1
  • Git to version 2.43.0
"},{"location":"release-notes/8.10/#compilers-and-development-tools","title":"Compilers and development tools","text":""},{"location":"release-notes/8.10/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated:

  • elfutils 0.190
  • Valgrind 3.22
"},{"location":"release-notes/8.10/#updated-compiler-toolsets","title":"Updated compiler toolsets","text":"

The following compiler toolsets have been updated:

  • GCC Toolset 13
  • Go Toolset 1.21.0
  • LLVM Toolset 17.0.6
  • Rust Toolset 1.75.0
"},{"location":"release-notes/8.10/#java-implementations-in-eurolinux-8","title":"Java implementations in EuroLinux 8","text":"

The EuroLinux 8 AppStream repository includes:

  • The java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit.
  • The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime Environment and the OpenJDK 11 Java Software Development Kit.
  • The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime Environment and the OpenJDK 17 Java Software Development Kit.
  • The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime Environment and the OpenJDK 8 Java Software Development Kit.
"},{"location":"release-notes/8.10/#batteries-repositories","title":"Batteries repositories","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

"},{"location":"release-notes/8.10/#known-issues","title":"Known issues","text":"
  • The AppStream is is about 15GiB. After long discussion and feedback we decided to keep it RHEL like way, where AppStream ISO is so full because it can be used to mount repositories used for mirroring and system. We are sorry but current state (mostly modularity) make things extremely hard to manage without breaking user experience.
  • Due to evolution of build process update for SCAP Security Guide are delayed now. They are going to be delivered soon.
"},{"location":"release-notes/8.10/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 and preparing 4.0 with branding kit.

"},{"location":"release-notes/8.10/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 8:

  • EuroLinux 8 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)
  • EuroLinux 8 Container on the Docker Hub
  • EuroLinux 8 Container on the Quay.io
"},{"location":"release-notes/8.10/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.10 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.3/","title":"EuroLinux 8.3 Release Notes","text":""},{"location":"release-notes/8.3/#dynamic-programming-languages","title":"Dynamic programming languages","text":"

Later versions of the following components are now available:

  • Node.js 14 - module nodejs stream 14
  • Perl 5.30 - module perl stream 5.30
  • PHP 7.4 - module php stream 7.4
  • Ruby 2.7 - module ruby stream 2.7
  • Java 11 with OpenJDK - new version of Open Java Development Kit (OpenJDK) is now available as standalone rpms packages.
"},{"location":"release-notes/8.3/#web-and-database-servers","title":"Web and Database servers","text":"

Later versions of the following components are now available

  • nginx 1.18 - module nginx stream 1.18
"},{"location":"release-notes/8.3/#compiler-toolsets","title":"Compiler toolsets","text":"

The following compiler toolsets have been updated in EL 8.3:

  • GCC Toolset 10 - software collection gcc-toolset-10
  • LLVM Toolset 10.0.1 - module llvm-toolset
  • Rust Toolset 1.45.2 - module rust-toolset
  • Go Toolset 1.14.7 - module go-toolset
"},{"location":"release-notes/8.3/#security","title":"Security","text":"
  • EuroLinux 8.3 provides Ansible roles for automated deployments of Policy-Based Decryption (PBD) solutions using Clevis and Tang. New version of the package rhel-system-roles adds an Ansible role for EuroLinux logging through Rsyslog.

  • The USBGuard framework now provides:

    • its own SELinux policy
    • notification for user in GUI
    • multiple enhancement and bug fixes
"},{"location":"release-notes/8.3/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Git was updated to version 2.27
  • Squid was updated to version 4.11
  • The Tuned system tuning tool has been rebased to version 2.13. This version adds support for architecture-dependent tuning and ability to use multiple include directives.
"},{"location":"release-notes/8.3/#identity-management","title":"Identity Management","text":"

The Rivest Cipher 4 (RC4) cipher suite, the default encryption type for users, services, and trusts between Active Directory domains in an Active Directory forest, has been deprecated in EuroLinux 8. For compatibility, this release introduces cryptographic subpolicy named AD-SUPPORT to enable support for this deprecated encryption type. The new subpolicy allows you to use RC4 with EuroLinux IPA and SSSD Active Directory.

"},{"location":"release-notes/8.3/#the-web-console","title":"The web console","text":"

The cockpit web console provides an option to switch between superuser access and limited access from inside of a user session.

"},{"location":"release-notes/8.3/#desktop-and-graphics","title":"Desktop and graphics","text":"

The Direct Rendering Manager (DRM) kernel graphics subsystem has been rebased to upstream Linux kernel version 5.6. It provides a number of enhancements over the previous versions, including support for new GPUs and APUs.

"},{"location":"release-notes/8.4-beta/","title":"EuroLinux Beta 8.4 Release Notes","text":""},{"location":"release-notes/8.4-beta/#dynamic-programming-languages","title":"Dynamic programming languages","text":"

Later versions of the following components are now available:

  • Python 3.9 - module python39 stream 39.
  • SWIG 4.0 - module swig stream 4.0
"},{"location":"release-notes/8.4-beta/#web-and-database-servers","title":"Web and Database servers","text":"

Later versions of the following components are now available:

  • Redis 6 - module redis stream 6
  • PostgreSQL 13 - module postgresql stream 13
  • MariaDB 10.5 - module mariadb stream 10.5
"},{"location":"release-notes/8.4-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.4:

  • GCC Toolset 10 - software collection gcc-toolset-10
  • LLVM Toolset 11.0.0 - module llvm-toolset stream rhel
  • Rust Toolset 1.49.0 - module rust-toolset stream rhel
  • Go Toolset 1.15.7 - module go-toolset stream rhel

There is new a module containing Persistent Memory Development Kit (PMDK):

  • PMDK - module pmkd stream 1_fileformat_v6
"},{"location":"release-notes/8.4-beta/#security","title":"Security","text":"
  • IPsec VPN provided by Libreswan now supports TCP encapsulation and security labels for IKEv2.
  • The OpenSCAP packages have been rebased to version 1.3.4, scap-security-guide has been rebased to version 0.1.54.
  • The fapolicyd framework now provides integrity checking, and the RPM plugin now registers any system update handled by either the YUM package manager or the RPM Package Manager.
"},{"location":"release-notes/8.4-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • EuroLinux 8.4 offers now Subversion 1.14. It's packed as the module subversion with stream 1.14. The 1.10 stream remain the default module that contains this package.
  • New module eclipse. This module has Eclipse IDE but is commonly used to build Java related packages.
  • The nmstate packages provide a library and the nmstatectl command-line utility to manage host network settings declaratively. Nmstate is a network API for hosts and is fully supported in EuroLinux 8.4. The Multi-protocol Label Switching (MPLS) is an in-kernel data-forwarding mechanism to route traffic flow across enterprise networks.

  • The iproute2 utility introduces three new traffic control actions.

  • EuroLinux 8 kernel now uses proactive compaction that regularly initiates memory compaction work before a request for an allocation is made. Therefore, latency for specific memory allocation requests is lowered.
  • EuroLinux 8 kernel has now a new implementation of a slab memory controller for control groups.
  • EuroLinux kernel now supports the time namespace feature. It allows changing date and time inside the Linux containers.
  • EuroLinux 8 kernel now supports the Error Detection and Correction (EDAC) in 8th and 9th generation Intel Core Processors.
  • There are changes in the pacemaker resource agent - it now can detect failures asynchronously and inject a failure into Pacemaker immediately without waiting for the following monitor interval.
"},{"location":"release-notes/8.4-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild distribution but are not included in upstream repositories. Right now, this repository includes more than 2000 packages for each buildroot.

Multiple batteries were updated for this release there including:

  • mdds
  • meson
  • spirv-headers
  • fontforge
  • multiple python packages
  • modules for bootstrapping python39
"},{"location":"release-notes/8.4-beta/#additional-resources","title":"Additional resources","text":"
  • Red Hat 8.4 Release-Notes part of our release notes, are loosely based on this document.
"},{"location":"release-notes/8.4/","title":"EuroLinux 8.4 Release Notes","text":""},{"location":"release-notes/8.4/#dynamic-programming-languages","title":"Dynamic programming languages","text":"

Later versions of the following components are now available:

  • Python 3.9 - module python39 stream 39.
  • SWIG 4.0 - module swig stream 4.0
"},{"location":"release-notes/8.4/#web-and-database-servers","title":"Web and Database servers","text":"

Later versions of the following components are now available:

  • Redis 6 - module redis stream 6
  • PostgreSQL 13 - module postgresql stream 13
  • MariaDB 10.5 - module mariadb stream 10.5
"},{"location":"release-notes/8.4/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.4:

  • GCC Toolset 10 - software collection gcc-toolset-10
  • LLVM Toolset 11.0.0 - module llvm-toolset stream rhel
  • Rust Toolset 1.49.0 - module rust-toolset stream rhel
  • Go Toolset 1.15.7 - module go-toolset stream rhel

There is new a module containing Persistent Memory Development Kit (PMDK):

  • PMDK - module pmkd stream 1_fileformat_v6
"},{"location":"release-notes/8.4/#security","title":"Security","text":"
  • IPsec VPN provided by Libreswan now supports TCP encapsulation and security labels for IKEv2.
  • The OpenSCAP packages have been rebased to version 1.3.4, scap-security-guide has been rebased to version 0.1.54.
  • The fapolicyd framework now provides integrity checking, and the RPM plugin now registers any system update handled by either the YUM package manager or the RPM Package Manager.
"},{"location":"release-notes/8.4/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • EuroLinux 8.4 offers now Subversion 1.14. It's packed as the module subversion with stream 1.14. The 1.10 stream remain the default module that contains this package.
  • New module eclipse. This module has Eclipse IDE but is commonly used to build Java related packages.
  • The nmstate packages provide a library and the nmstatectl command-line utility to manage host network settings declaratively. Nmstate is a network API for hosts and is fully supported in EuroLinux 8.4. The Multi-protocol Label Switching (MPLS) is an in-kernel data-forwarding mechanism to route traffic flow across enterprise networks.
  • The iproute2 utility introduces three new traffic control actions.
  • EuroLinux 8 kernel now uses proactive compaction that regularly initiates memory compaction work before a request for an allocation is made. Therefore, latency for specific memory allocation requests is lowered.
  • EuroLinux 8 kernel has now a new implementation of a slab memory controller for control groups.
  • EuroLinux kernel now supports the time namespace feature. It allows changing date and time inside the Linux containers.
  • EuroLinux 8 kernel now supports the Error Detection and Correction (EDAC) in 8th and 9th generation Intel Core Processors.
  • There are changes in the pacemaker resource agent - it now can detect failures asynchronously and inject a failure into Pacemaker immediately without waiting for the following monitor interval.
"},{"location":"release-notes/8.4/#how-to-update-from-beta","title":"How to update from beta","text":"

The beta repository has an updated package el-release, that contains production repositories. Upgrading from EuroLinux 8.4 beta to 8.4 is as simple as running:

sudo yum update -y el-release\nsudo yum update -y\n
"},{"location":"release-notes/8.4/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • anacondafirefox
  • cloud-init
  • crash
  • httpd
  • httpd
  • initial-setup
  • ipa
  • liberport
  • libguestfs
  • libreoffice
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.4/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild distribution but are not included in upstream repositories. Right now, this repository contains more than 2000 packages for each buildroot.

Multiple batteries were updated for this release there including:

  • mdds
  • meson
  • spirv-headers
  • fontforge
  • multiple python packages
  • modules for bootstrapping python39
"},{"location":"release-notes/8.4/#other-notable-changes","title":"Other notable changes","text":"
  • Because we changed the business model to open core, there is no longer a need to use FBI (free base image) repositories as they are a subset of entire repositories. FBI repos are removed from the el-release package.
  • EuroLinux 8.4 is first version that can use BaseOS-all, AppStream-all and PowerTools-all repositories that contain all packages produced during build process. However, these packages are not supported by upstream or EuroLinux.
  • EuroLinux by default uses Docker Hub instead of Quay.
"},{"location":"release-notes/8.4/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Roadmap for the project can be found in press notes available on our company blog. Press Notes.
  • Red Hat 8.4 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.5-arm64/","title":"EuroLinux 8.5 Release Notes for ARM 64 (aarch64)","text":"

EuroLinux 8.5 is the first version of EuroLinux that provides ARM 64 General Availability. We have to update the Gaia build system in the customers' sites for this release. This version code name is Tirana - the capital city of Albania.

Below you can find the essential changes in EuroLinux 8.5 GA release for aarch64 architecture from EuroLinux 8.4 Beta for ARM64.

"},{"location":"release-notes/8.5-arm64/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • Ruby 3.0 - module ruby stream 3.0.
  • nginx 1.20 - module nginx stream 1.20
  • Nodejs 16 - module nodejs stream 16
"},{"location":"release-notes/8.5-arm64/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.5:

  • GCC Toolset 11 - software collection gcc-toolset-11
  • LLVM Toolset 12.0.1 - module llvm-toolset stream rhel
  • Rust Toolset 1.54.0 - module rust-toolset stream rhel
  • Go Toolset 1.16.7 - module go-toolset stream rhel
"},{"location":"release-notes/8.5-arm64/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • rsyslog - now support OpenSSL
  • OpenSCAP framework - added new profiles and multiple changes and enhancements
  • cryptopolicies were updated - these system-wide cryptographic policies from this version support different policies for different backends (scoped policies)
"},{"location":"release-notes/8.5-arm64/#high-availability-and-resilient-storage","title":"High Availability and Resilient Storage","text":"
  • High Availability and Resilient Storage modules are not supported on ARM64 architecture. This is in line with upstream policy.
"},{"location":"release-notes/8.5-arm64/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • NetworkManager was updated to 1.32.10 from 1.30
  • OpenIMP was updated to 2.0.31 from 2.0.29
  • acel was updated to 3.1 from 2.8
  • bluez was updated to 5.56 from 5.52
  • chrony was updated to 4.1 from 3.5
  • cockpit was updated to version 251.1 from 238.2
  • crypto-policies was updated to 20210617 from 20210209
  • dnf was updated to 4.7.0 from 4.4.2
  • elfutils were updated to 0.185 from 0.182
  • freeipmi was updated to 1.6.8 from 1.6.6
  • gnutls was updated to 3.6.16 from 3.6.14
  • ibacm was updated to 35.0 from 32.0
  • libmodulemd updated to version 2.13.0 from 2.9.4
  • libreswan was updated to version 4.4 from 4.3
  • main GCC was updated to 8.5.0 from 8.4.1
  • opencryptoki updated to version 3.16.0 from 3.15.1
  • rsyslog was updated to version 8.2102.0 from 8.1911.0
  • sssd was updated to version 2.5.2 from 2.4.0
"},{"location":"release-notes/8.5-arm64/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to this release:

  • adwaita-qt5
  • ansible-collection-microsoft-sql
  • ansible-collection-redhat-rhel_mgmt
  • ansible-freeipa-tests
  • ansible-pcp
  • compact-hwloc1
  • coreos-installer
  • dotnet6.0
  • eth-tools
  • java-17-openjdk*
  • libadwaita-qt5
  • libcap-ng-python3
  • libcomps-devel is now included in PowerTools
  • libvoikko-devel - is now included in PowerTools
  • mobile-broadband-provider-info-devel is now included in PowerTools
  • modulemd-tools
  • pcm
  • python3-cloud-what
  • python3-libstoragemgmt
  • python3-pyghmi
  • qt5-qtserialbus-devel is now included in PowerTools
  • resource-agents-paf (resilient storage)
  • rsyslog-openssl
  • samba-vfs-iouring
  • sblim-gather
  • sblim-gather-provider is now included in PowerTools
  • sevctl
  • stratisd-dracut
  • tesseract
  • tss2
  • udftools
  • unicode-ucd-unihan
  • xapian-core and its development packages are now included
"},{"location":"release-notes/8.5-arm64/#how-to-update-from-beta","title":"How to update from beta","text":"

The beta repository has an updated package el-release, that contains production repositories. Upgrading from EuroLinux 8.4 beta for ARM64 to 8.5 GA is as simple as running:

sudo yum update -y el-release\nsudo yum update -y\n
"},{"location":"release-notes/8.5-arm64/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • anacondafirefox
  • cloud-init
  • crash
  • httpd
  • initial-setup
  • ipa
  • libreport
  • libguestfs
  • libreoffice
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.5-arm64/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in upstream repositories. Right now, this repository includes more than 2100 packages for each buildroot.

Multiple batteries were updated for this release there, including:

  • Bootstraps for rust-toolset
  • Bootstraps for go-toolset
"},{"location":"release-notes/8.5-arm64/#gaia-build-system","title":"Gaia build system","text":"

Gaia build system was updated in all interested parties' environments. We had to select/order (with current long delivery times)/install hardware for aarch64. We also changed the rebuild policy. None of our customers was interested in using RHEL as a buildroot for their own Enterprise Linux forks. It means that EuroLinux must be released faster, but at the very same time, we can exclusively focus on providing EuroLinux in the early stages and thus release it faster. We also decided that the next version will be released asynchronously with more batch compilation. Batch compilation is scheduled for EuroLinux 9.0 and 8.6.

"},{"location":"release-notes/8.5-arm64/#other-notable-changes","title":"Other notable changes","text":"
  • EuroLinux 8.5 is the first version that can use baseos-all, appstream-all and powertools-all repositories that contain all packages produced during the build process. However, these packages are not supported by upstream or EuroLinux. They are intended for developers to build their own solutions.
  • EuroLinux reverted the previous changes that made DockerHub the default container image registry. We observed other RHEL clones and decided that keeping default might be more suitable for users.
"},{"location":"release-notes/8.5-arm64/#currently-missing-features","title":"Currently missing features","text":""},{"location":"release-notes/8.5-arm64/#container-and-cloud-images","title":"Container and cloud images","text":"

We will work on broader support for cloud/container images based on EuroLinux 8.5 for arm including:

  • New container images on DockerHub and Quay.io
  • AWS images for Graviton processors
  • New Vagrant Boxes - note that HashiCorp does not provide an aarch64 build for Vagrant. Still, Linux distributions like Fedora delivers it so, it's achievable and usable.
"},{"location":"release-notes/8.5-arm64/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.5 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.5/","title":"EuroLinux 8.5 Release Notes","text":"

EuroLinux 8.5 is the first minor release created in a continuous way. It was also the first version when we deployed our engineer to remote sites (in most cases virtual) to provide support for organisations that rebuild RHEL/EuroLinux from sources with Gaia build system. This version code name is Tirana - the capital city of Albania.

Below you can find the essential changes in EuroLinux 8.5 release for x86_64 architecture. The aarch64 GA release is slightly delayed. Release notes for aarch64 will be provided in a separate document.

"},{"location":"release-notes/8.5/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • Ruby 3.0 - module ruby stream 3.0.
  • nginx 1.20 - module nginx stream 1.20
  • Nodejs 16 - module nodejs stream 16
"},{"location":"release-notes/8.5/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.5:

  • GCC Toolset 11 - software collection gcc-toolset-11
  • LLVM Toolset 12.0.1 - module llvm-toolset stream rhel
  • Rust Toolset 1.54.0 - module rust-toolset stream rhel
  • Go Toolset 1.16.7 - module go-toolset stream rhel
"},{"location":"release-notes/8.5/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • rsyslog - now support OpenSSL
  • OpenSCAP framework - added new profiles and multiple changes and enhancements
  • cryptopolicies were updated - these system-wide cryptographic policies from this version support different policies for different backends (scoped policies)
"},{"location":"release-notes/8.5/#high-availability-and-resilient-storage","title":"High Availability and Resilient Storage","text":"
  • cmirror was updated to version 2.03.12
  • corosync was updated to version 3.1.5
  • pacemaker was updated to version 2.1.0
  • resource-agents-paf package was added to HA an RS repositories
"},{"location":"release-notes/8.5/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • NetworkManager was updated to 1.32.10 from 1.30
  • OpenIMP was updated to 2.0.31 from 2.0.29
  • acel was updated to 3.1 from 2.8
  • bluez was updated to 5.56 from 5.52
  • chrony was updated to 4.1 from 3.5
  • cockpit was updated to version 251.1 from 238.2
  • crypto-policies was updated to 20210617 from 20210209
  • dnf was updated to 4.7.0 from 4.4.2
  • elfutils were updated to 0.185 from 0.182
  • freeipmi was updated to 1.6.8 from 1.6.6
  • gnutls was updated to 3.6.16 from 3.6.14
  • ibacm was updated to 35.0 from 32.0
  • libmodulemd updated to version 2.13.0 from 2.9.4
  • libreswan was updated to version 4.4 from 4.3
  • main GCC was updated to 8.5.0 from 8.4.1
  • opencryptoki updated to version 3.16.0 from 3.15.1
  • rsyslog was updated to version 8.2102.0 from 8.1911.0
  • sssd was updated to version 2.5.2 from 2.4.0
"},{"location":"release-notes/8.5/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to this release:

  • adwaita-qt5
  • ansible-collection-microsoft-sql
  • ansible-collection-redhat-rhel_mgmt
  • ansible-freeipa-tests
  • ansible-pcp
  • compact-hwloc1
  • coreos-installer
  • dotnet-build-reference-packages
  • dotnet-sdk-3.1-source-built-artifacts
  • dotnet-sdk-5.0-source-built-artifacts
  • dotnet5.0-build-reference-packages
  • eth-tools
  • flatpak (i686) included in PowerTools
  • java-17-openjdk*
  • libadwaita-qt5
  • libcap-ng-python3
  • libcomps-devel is now included in PowerTools
  • libvoikko-devel - is now included in PowerTools
  • lpsolve (i686) is now included in PowerTools
  • mobile-broadband-provider-info-devel is now included in PowerTools
  • modulemd-tools
  • pcm
  • python3-cloud-what
  • python3-libstoragemgmt
  • python3-pillow (i686) is now included in PowerTools
  • python3-pyghmi
  • qt5-qtserialbus-devel is now included in PowerTools
  • resource-agents-paf (resilient storage)
  • rsyslog-openssl
  • samba-vfs-iouring
  • sblim-gather
  • sblim-gather-provider is now included in PowerTools
  • sevctl
  • stratisd-dracut
  • tesseract
  • tss2
  • udftools
  • unicode-ucd-unihan
  • xapian-core and its development packages are now included
"},{"location":"release-notes/8.5/#how-to-update-from-beta","title":"How to update from beta","text":"

The beta repository has an updated package el-release, that contains production repositories. Upgrading from EuroLinux 8.5 beta to 8.5 is as simple as running:

sudo yum update -y el-release\nsudo yum update -y\n
"},{"location":"release-notes/8.5/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • anacondafirefox
  • cloud-init
  • crash
  • httpd
  • initial-setup
  • ipa
  • libreport
  • libguestfs
  • libreoffice
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.5/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in upstream repositories. Right now, this repository includes more than 2100 packages for each buildroot.

Multiple batteries were updated for this release there including:

  • Bootstraps for rust-toolset
  • Bootstraps for go-toolset
"},{"location":"release-notes/8.5/#gaia-build-system","title":"Gaia build system","text":"

Gaia build system was updated in all interested parties' environments. We also changed the rebuild policy. None of our customers was interested in using RHEL as a buildroot for their own Enterprise Linux forks. It means that EuroLinux must be released faster, but at the very same time, we can exclusively focus on providing EuroLinux in the early stages and thus release it faster. We also decided that the next version will be released asynchronously with more batch compilation. Synchronization was especially problematic in this release as there was a lot of holidays in Poland.

"},{"location":"release-notes/8.5/#other-notable-changes","title":"Other notable changes","text":"
  • EuroLinux 8.5 is the first version that can use baseos-all, appstream-all and powertools-all,high-availability-all, resilient-storage-all repositories that contain all packages produced during the build process. However, these packages are not supported by upstream or EuroLinux. They are intended for developers to build they own solutions.
  • EuroLinux reverted the previous changes that made DockerHub the default container image registry. We observed other RHEL clones and decided that keeping default might be more suitable for users.
"},{"location":"release-notes/8.5/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • A roadmap for the project can be found in press notes available on our company blog. EuroLinux Roadmap For Q4 2021.
  • Red Hat 8.5 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.6-beta/","title":"EuroLinux 8.6 Beta Release Notes","text":"

EuroLinux 8.6 is the first minor release with a full-fledged beta available before the General Availability of the upstream version (RHEL 8.6). The Beta version will allow releasing EuroLinux 8.6 GA faster. We decided to publish x86_64 and corresponding x86_64, i686 open buildroots for this beta. The GA version will release all supported arches simultaneously.

This version\u2019s code name is Kyiv - the capital city of Ukraine.

"},{"location":"release-notes/8.6-beta/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: PHP 8.0 - module php stream 8.0
  • New: Perl 5.32 - module perl stream 5.32
  • New: Maven 3.5 - module maven stream 3.5
  • New: Log4j:2 - module log4j stream 2
  • PostgreSQL 10 - module postgresql stream 10 was rebased to PostgreSQL 10.19 from 10.17
  • PMDK 1_fileformat_v6 - module pmdk stream 1_fileformat_v6 was rebased to version 1.11.1 from 1.9.2
"},{"location":"release-notes/8.6-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.6:

  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.58.1 from 1.54.0
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 13.0.1 from 12.0.1
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.17.7 from 1.16.12
  • GCC-Toolset-11 - toolset gcc-toolset-11 has multiple updates and was rebased to version 11.2
"},{"location":"release-notes/8.6-beta/#containers","title":"Containers","text":"
  • New Containers Tools module containers-tools stream 4.0
  • Containers tools module containers-tools stream rhel was heavily updated
"},{"location":"release-notes/8.6-beta/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • semodule now supports the --checksum option for verifying SELinux policy modules versions
  • OpenSSL 3.0 support in opencryptoki, among others
  • OpenSCAP supports OSBuild Blueprint as a remediation type and several command-line option improvements
  • SCAP Security Guide - authselect for rules that harden PAM stack and more precise xccdf_org.ssgproject.content_enable_fips_mode rule implementation among others
"},{"location":"release-notes/8.6-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • Git was updated to version 2.31 from 2.27
  • 389-ds-base (Directory Server) was updated to 1.4.3.28
  • Libreswan was updated to 4.5
  • PCP was rebased to version 5.3.5-8
  • OpenSCAP was updated to 1.3.6
  • grafana and grafana containers were rebased to the newer versions
  • SCAP Security Guide was updated to 0.1.60
  • authselect was updated to 1.2.2
  • bind was updated to 9.16.23
  • fapolicyd was updated to 1.1
  • libcap was updated to 2.48
  • lsvpd was updated to 1.7.13
  • opencryptoki was updated to 3.17.0
  • pcsc-lite was updated to 1.9.5
  • powerpc-utils was updated to 1.3.9
  • samba was updated to 4.15.5
"},{"location":"release-notes/8.6-beta/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • aardvark-dns
  • adwaita-icon-theme-devel
  • ansible-core
  • ansible-test
  • bind9.16
  • bind9.16-chroot
  • bind9.16-devel
  • bind9.16-dnssec-utils
  • bind9.16-doc
  • bind9.16-libs
  • bind9.16-license
  • bind9.16-utils
  • coreos-installer-dracut
  • fdo-admin-cli
  • fdo-client
  • fdo-init
  • fdo-manufacturing-server
  • fdo-owner-cli
  • fdo-owner-onboarding-server
  • fdo-rendezvous-server
  • fence-virtd-cpg
  • fwupd-devel
  • gdm-devel
  • gdm-pam-extensions-devel
  • glibc-gconv-extra
  • gnome-shell-extension-classification-banner
  • gnome-shell-extension-dash-to-panel
  • greenboot-default-health-checks
  • hostapd
  • libgcab1-devel
  • libguestfs-appliance
  • libnbd-bash-completion
  • libpinyin-devel
  • libqrtr-glib
  • libselinux-static
  • libss-devel
  • libtpms
  • libtpms-devel
  • libuser-devel
  • libvirt-wireshark
  • libxmlb-devel
  • lmdb-devel
  • maven-openjdk17
  • nbdkit-gzip-filter
  • nbdkit-nbd-plugin
  • nbdkit-tar-filter
  • nbdkit-tar-plugin
  • nbdkit-tmpdisk-plugin
  • netavark
  • NetworkManager-initscripts-updown
  • nftables-devel
  • nginx-mod-devel
  • nmstate-devel
  • nmstate-libs
  • osbuild-composer-dnf-json
  • osbuild-luks2
  • osbuild-lvm2
  • pcp-pmda-denki
  • pcp-pmda-mongodb
  • php-pecl-xdebug3
  • multiple perl-* that are in perl 5.32 modules
  • prometheus-jmx-exporter-openjdk11
  • python38-resolvelib
  • python3-bind9.16
  • python3-dnf-plugin-modulesync
  • qatlib-tests
  • qatzip
  • qatzip-devel
  • qatzip-libs
  • qemu-kvm-docs
  • qemu-kvm-hw-usbredir
  • qemu-kvm-ui-opengl
  • qemu-kvm-ui-spice
  • rig
  • rsyslog-mmfields
  • rust-std-static-wasm32-wasi
  • shadow-utils-subid
  • shadow-utils-subid-devel
  • sshpass
  • stress-ng
  • swtpm
  • swtpm-devel
  • swtpm-libs
  • swtpm-tools
  • swtpm-tools-pkcs11
  • virt-v2v-bash-completion
  • virt-v2v-man-pages-ja
  • virt-v2v-man-pages-uk
  • webrtc-audio-processing-devel
  • weldr-client
"},{"location":"release-notes/8.6-beta/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.6-beta/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.6-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 2500 packages for each buildroot.

Multiple batteries were updated for this release including:

  • Bootstraps for Perl 5.32
  • Updated mesa batteries
  • Smaller packages that broke buildroot

About 420 packages were updated for x86_64 buildroot alone.

"},{"location":"release-notes/8.6-beta/#gaia-build-system","title":"Gaia build system","text":"

We are still working on Gaia 3.0.

"},{"location":"release-notes/8.6-beta/#known-bugs","title":"Known bugs","text":"
  • This is a Beta release!
  • openscap will probably not work
  • There is ambiguity when it comes to SCAP profiles naming that will be resolved for 8.6 GA GitHub Bug Report
  • After installation, the first kernel might report EuroLinux 8.5 -> updated kernel should report 8.6 beta.
  • evolution-mapi was wrongly linked against older samba. The solution is yum reinstall -y evolution-mapi as we updated the package in-place
  • dhcp-client was wrongly linked against older bind-export-libs. The solution is yum reinstall -y dhcp-client as we updated the package in-place
"},{"location":"release-notes/8.6-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.6 Beta Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.6/","title":"EuroLinux 8.6 Release Notes","text":"

Since EuroLinux 8.6 was first minor release with a full-fledged beta available before the General Availability of the upstream version (RHEL 8.6), the Beta version allowed us to release EuroLinux 8.6 faster.

This version\u2019s code name is Kyiv - the capital city of Ukraine.

"},{"location":"release-notes/8.6/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: PHP 8.0 - module php stream 8.0
  • New: Perl 5.32 - module perl stream 5.32
  • New: Maven 3.5 - module maven stream 3.5
  • New: Log4j:2 - module log4j stream 2
  • PostgreSQL 10 - module postgresql stream 10 was rebased to PostgreSQL 10.19 from 10.17
  • PMDK 1_fileformat_v6 - module pmdk stream 1_fileformat_v6 was rebased to version 1.11.1 from 1.9.2
"},{"location":"release-notes/8.6/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.6:

  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.58.1 from 1.54.0
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 13.0.1 from 12.0.1
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.17.7 from 1.16.12
  • GCC-Toolset-11 - toolset gcc-toolset-11 has multiple updates and was rebased to version 11.2
"},{"location":"release-notes/8.6/#containers","title":"Containers","text":"
  • New Containers Tools module containers-tools stream 4.0
  • Containers tools module containers-tools stream rhel was heavily updated
"},{"location":"release-notes/8.6/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • semodule now supports the --checksum option for verifying SELinux policy modules versions
  • OpenSSL 3.0 support in opencryptoki, among others
  • OpenSCAP supports OSBuild Blueprint as a remediation type and several command-line option improvements
  • SCAP Security Guide - authselect for rules that harden PAM stack and more precise xccdf_org.ssgproject.content_enable_fips_mode rule implementation among others
"},{"location":"release-notes/8.6/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • Git was updated to version 2.31 from 2.27
  • 389-ds-base (Directory Server) was updated to 1.4.3.28
  • Libreswan was updated to 4.5
  • PCP was rebased to version 5.3.5-8
  • OpenSCAP was updated to 1.3.6
  • grafana and grafana containers were rebased to the newer versions
  • SCAP Security Guide was updated to 0.1.60
  • authselect was updated to 1.2.2
  • bind was updated to 9.16.23
  • fapolicyd was updated to 1.1
  • libcap was updated to 2.48
  • lsvpd was updated to 1.7.13
  • opencryptoki was updated to 3.17.0
  • pcsc-lite was updated to 1.9.5
  • powerpc-utils was updated to 1.3.9
  • samba was updated to 4.15.5
"},{"location":"release-notes/8.6/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • aardvark-dns
  • adwaita-icon-theme-devel
  • ansible-core
  • ansible-test
  • bind9.16
  • bind9.16-chroot
  • bind9.16-devel
  • bind9.16-dnssec-utils
  • bind9.16-doc
  • bind9.16-libs
  • bind9.16-license
  • bind9.16-utils
  • coreos-installer-dracut
  • fdo-admin-cli
  • fdo-client
  • fdo-init
  • fdo-manufacturing-server
  • fdo-owner-cli
  • fdo-owner-onboarding-server
  • fdo-rendezvous-server
  • fence-virtd-cpg
  • fwupd-devel
  • gdm-devel
  • gdm-pam-extensions-devel
  • glibc-gconv-extra
  • gnome-shell-extension-classification-banner
  • gnome-shell-extension-dash-to-panel
  • greenboot-default-health-checks
  • hostapd
  • libgcab1-devel
  • libguestfs-appliance
  • libnbd-bash-completion
  • libpinyin-devel
  • libqrtr-glib
  • libselinux-static
  • libss-devel
  • libtpms
  • libtpms-devel
  • libuser-devel
  • libvirt-wireshark
  • libxmlb-devel
  • lmdb-devel
  • maven-openjdk17
  • nbdkit-gzip-filter
  • nbdkit-nbd-plugin
  • nbdkit-tar-filter
  • nbdkit-tar-plugin
  • nbdkit-tmpdisk-plugin
  • netavark
  • NetworkManager-initscripts-updown
  • nftables-devel
  • nginx-mod-devel
  • nmstate-devel
  • nmstate-libs
  • osbuild-composer-dnf-json
  • osbuild-luks2
  • osbuild-lvm2
  • pcp-pmda-denki
  • pcp-pmda-mongodb
  • php-pecl-xdebug3
  • multiple perl-* that are in perl 5.32 modules
  • prometheus-jmx-exporter-openjdk11
  • python38-resolvelib
  • python3-bind9.16
  • python3-dnf-plugin-modulesync
  • qatlib-tests
  • qatzip
  • qatzip-devel
  • qatzip-libs
  • qemu-kvm-docs
  • qemu-kvm-hw-usbredir
  • qemu-kvm-ui-opengl
  • qemu-kvm-ui-spice
  • rig
  • rsyslog-mmfields
  • rust-std-static-wasm32-wasi
  • shadow-utils-subid
  • shadow-utils-subid-devel
  • sshpass
  • stress-ng
  • swtpm
  • swtpm-devel
  • swtpm-libs
  • swtpm-tools
  • swtpm-tools-pkcs11
  • virt-v2v-bash-completion
  • virt-v2v-man-pages-ja
  • virt-v2v-man-pages-uk
  • webrtc-audio-processing-devel
  • weldr-client
"},{"location":"release-notes/8.6/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • skopeo
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.6/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.6/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 2500 packages for each buildroot.

Multiple batteries were updated for this release including:

  • Bootstraps for Perl 5.32
  • Updated mesa batteries
  • Smaller packages that broke buildroot

About 420 packages were updated for x86_64 buildroot alone.

"},{"location":"release-notes/8.6/#gaia-build-system","title":"Gaia build system","text":"

We are still working on Gaia 3.0.

"},{"location":"release-notes/8.6/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO, (secondary download link)
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.6 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.7-beta/","title":"EuroLinux 8.7 Beta Release Notes","text":"

EuroLinux 8.7 is the first beta release for x86_64 and aarch64 beta published concurrently. The Beta version will allow us to provide EuroLinux 8.7 faster.

This version\u2019s code name is Brussels - the capital city of Belgium and the heart of European Union.

Older modules removed

In this beta we noticed that a lot of modules were obsoleted or removed, we are waiting for GA version to confirm that there will be a mechanism that should allow smoother migration between modules or that these modules will be available.

"},{"location":"release-notes/8.7-beta/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: Ruby 3.1 - module ruby stream 3.1
  • New: Mercurial 6.2 - module mercurial stream 6.2
  • New: Node.js 18 - module nodejs stream 18
  • Redis 6 - module redis:6 was updated from version 6.0 to 6.2.7
"},{"location":"release-notes/8.7-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.7:

  • New: GCC-Toolset-12 - toolset gcc-toolset-12
  • New: Dotnet 7.0 - Dotnet 7.0 packages
  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.62.1 from 1.58.1
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 14.0.0 from 13.0.1
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.18.4 from 1.17.7
"},{"location":"release-notes/8.7-beta/#containers","title":"Containers","text":"
  • Containers tools module containers-tools stream rhel was heavily updated
  • Containers tools module containers-tools stream 4.0 was heavily updated
  • Containers tools module containers-tools stream 3.0 was mostly removed
  • Containers tools module containers-tools stream 2.0 was mostly removed
"},{"location":"release-notes/8.7-beta/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • NSS no longer support RSA keys shorter than 1023 bits and won't work with such keys.
  • Updated SCAP security guilde with new sysctl, pampwquality, grub2 rules.
  • fapolicyd rebased to 1.1.3
"},{"location":"release-notes/8.7-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • QT5 toolchain and utilities were updated from 5.15.2 to 5.15.3
  • Opencryptoki was updated to version 3.18.0 from 3.17.0
  • Libva was updated to version 2.13.0 from 2.5.0
  • Chrony was updated to version 4.2 from 4.1
  • Unbound was updated to version 1.16.2 from 1.7.3
  • Fapolicyd rebased to 1.1.3 from 1.1
  • Mariadb-java-client rebased to version 2.7.1 from 2.2.5
  • open-vm-tools rebased to 12.0.5 from 11.3.5
"},{"location":"release-notes/8.7-beta/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • Multiple qt5-docs packages
  • aardvark-dns
  • anaconda-widgets-devel
  • aspnetcore-runtime-7.0
  • aspnetcore-targeting-pack-7.0
  • dotnet-apphost-pack-7.0
  • dotnet-hostfxr-7.0
  • dotnet-sdk-7.0-source-built-artifacts
  • egl-utils
  • frr-selinux
  • fstrm-utils
  • gcc-plugin-annobin
  • gcc-toolset-12
  • gcc-toolset-12-annobin-annocheck
  • gcc-toolset-12-annobin-docs
  • gcc-toolset-12-annobin-plugin-gcc
  • gcc-toolset-12-binutils
  • gcc-toolset-12-binutils-devel
  • gcc-toolset-12-binutils-gold
  • gcc-toolset-12-build
  • gcc-toolset-12-dwz
  • gcc-toolset-12-gcc
  • gcc-toolset-12-gcc-c++
  • gcc-toolset-12-gcc-gfortran
  • gcc-toolset-12-gcc-plugin-devel
  • gcc-toolset-12-gdb
  • gcc-toolset-12-libasan-devel
  • gcc-toolset-12-libatomic-devel
  • gcc-toolset-12-libgccjit
  • gcc-toolset-12-libgccjit-devel
  • gcc-toolset-12-libgccjit-docs
  • gcc-toolset-12-libitm-devel
  • gcc-toolset-12-liblsan-devel
  • gcc-toolset-12-libstdc++-devel
  • gcc-toolset-12-libstdc++-docs
  • gcc-toolset-12-libtsan-devel
  • gcc-toolset-12-libubsan-devel
  • gcc-toolset-12-runtime
  • gtk3-devel-docs
  • idm-pki-acme
  • idm-pki-base
  • idm-pki-base-java
  • idm-pki-ca
  • idm-pki-kra
  • idm-pki-symkey
  • libasan8
  • libdhash-devel
  • libestr-devel
  • liblockfile
  • libstoragemgmt-nfs-plugin
  • libverto-libev
  • make-latest (currently make43)
  • make43
  • make43-devel
  • open-vm-tools-salt-minion
  • openslp-devel
  • pam_wrapper
  • poppler-qt5
  • python-ldb-devel-common
  • python-sphinx-latex
  • python3-babeltrace
  • python3-cairo-devel
  • python3-idm-pki
  • python3-lasso
  • python3-ldb-devel
  • python3-talloc-devel
  • redhat-cloud-client-configuration
  • ssd-idp
  • systemd-resolved (technology preview)
  • tuned-profiles-postgresql
  • xmlstarlet
  • xxhash
  • yara
"},{"location":"release-notes/8.7-beta/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.7-beta/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.7-beta/#maven-38","title":"Maven 3.8","text":"

Maven 3.8 - module maven stream 3.8 was not introduced in this beta. Currently upstream didn't provide modules metadata for javapackages-tools:202201 and javapackages-bootstrap:202201 that are required to build Maven 3.8. The default profile for javapackages-tools:202201 is available in the Red Hat CodeReady-Builder repository but there is no modular metadata or RPMs.

We manage to create this module in not reproducible way and in worst case scenario we will provide specially crafted VM to build it for orgs that are using Gaia Build System. We decided not to put this module as we are rebuilding EuroLinux multiple times and not reproducible rebuilds are next to impossible to maintain.

"},{"location":"release-notes/8.7-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 2500 packages for each buildroot.

About 30 packages were updated for x86_64 buildroot.

"},{"location":"release-notes/8.7-beta/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 alpha.

"},{"location":"release-notes/8.7-beta/#eurolinux-91-beta","title":"EuroLinux 9.1 beta","text":"

As we released a brand new EuroLinux Desktop we are working on better test integrations with EuroLinux 9. This process takes time. We should deliver EuroLinux 9.1 beta before EuroLinux 9.1 GA.

"},{"location":"release-notes/8.7-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO, (secondary download link)
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.7 beta Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.7/","title":"EuroLinux 8.7 Release Notes","text":"

This version\u2019s code name is Brussels - the capital city of Belgium and the heart of European Union.

"},{"location":"release-notes/8.7/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: Ruby 3.1 - module ruby stream 3.1
  • New: Mercurial 6.2 - module mercurial stream 6.2
  • New: Node.js 18 - module nodejs stream 18
  • Redis 6 - module redis:6 was updated from version 6.0 to 6.2.7
"},{"location":"release-notes/8.7/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.6:

  • New: GCC-Toolset-12 - toolset gcc-toolset-12
  • New: Dotnet 7.0 - Dotnet 7.0 packages
  • Rust Toolset - module rust-toolset:rhel8 was updated to version 1.62.1 from 1.58.1
  • LLVM Toolset - module llvm-toolset:rhel8 was updated to version 14.0.0 from 13.0.1
  • Go Lang Toolset - module go-toolset:rhel8 that provides the Go Lang stack was updated to version 1.18.4 from 1.17.7
"},{"location":"release-notes/8.7/#containers","title":"Containers","text":"
  • Containers tools module containers-tools stream rhel was heavily updated
  • Containers tools module containers-tools stream 4.0 was heavily updated
"},{"location":"release-notes/8.7/#security","title":"Security","text":"

Most of the security features are connected to rebased/updated versions of the packages. The most crucial security changes include:

  • NSS no longer support RSA keys shorter than 1023 bits and won't work with such keys.
  • Updated SCAP security guilde with new sysctl, pampwquality, grub2 rules.
  • fapolicyd rebased to 1.1.3
"},{"location":"release-notes/8.7/#general-updates-and-improvements","title":"General updates and improvements","text":"

Among the others, the following packages were updated and enhanced:

  • QT5 toolchain and utilities were updated from 5.15.2 to 5.15.3
  • Opencryptoki was updated to version 3.18.0 from 3.17.0
  • Libva was updated to version 2.13.0 from 2.5.0
  • Chrony was updated to version 4.2 from 4.1
  • Unbound was updated to version 1.16.2 from 1.7.3
  • Fapolicyd rebased to 1.1.3 from 1.1
  • Mariadb-java-client rebased to version 2.7.1 from 2.2.5
  • open-vm-tools rebased to 12.0.5 from 11.3.5
"},{"location":"release-notes/8.7/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • Multiple qt5-docs packages
  • aardvark-dns
  • anaconda-widgets-devel
  • aspnetcore-runtime-7.0
  • aspnetcore-targeting-pack-7.0
  • dotnet-apphost-pack-7.0
  • dotnet-hostfxr-7.0
  • dotnet-sdk-7.0-source-built-artifacts
  • egl-utils
  • frr-selinux
  • fstrm-utils
  • gcc-plugin-annobin
  • gcc-toolset-12
  • gcc-toolset-12-annobin-annocheck
  • gcc-toolset-12-annobin-docs
  • gcc-toolset-12-annobin-plugin-gcc
  • gcc-toolset-12-binutils
  • gcc-toolset-12-binutils-devel
  • gcc-toolset-12-binutils-gold
  • gcc-toolset-12-build
  • gcc-toolset-12-dwz
  • gcc-toolset-12-gcc
  • gcc-toolset-12-gcc-c++
  • gcc-toolset-12-gcc-gfortran
  • gcc-toolset-12-gcc-plugin-devel
  • gcc-toolset-12-gdb
  • gcc-toolset-12-libasan-devel
  • gcc-toolset-12-libatomic-devel
  • gcc-toolset-12-libgccjit
  • gcc-toolset-12-libgccjit-devel
  • gcc-toolset-12-libgccjit-docs
  • gcc-toolset-12-libitm-devel
  • gcc-toolset-12-liblsan-devel
  • gcc-toolset-12-libstdc++-devel
  • gcc-toolset-12-libstdc++-docs
  • gcc-toolset-12-libtsan-devel
  • gcc-toolset-12-libubsan-devel
  • gcc-toolset-12-runtime
  • gtk3-devel-docs
  • idm-pki-acme
  • idm-pki-base
  • idm-pki-base-java
  • idm-pki-ca
  • idm-pki-kra
  • idm-pki-symkey
  • libasan8
  • libdhash-devel
  • libestr-devel
  • liblockfile
  • libstoragemgmt-nfs-plugin
  • libverto-libev
  • make-latest (currently make43)
  • make43
  • make43-devel
  • open-vm-tools-salt-minion
  • openslp-devel
  • pam_wrapper
  • poppler-qt5
  • python-ldb-devel-common
  • python-sphinx-latex
  • python3-babeltrace
  • python3-cairo-devel
  • python3-idm-pki
  • python3-lasso
  • python3-ldb-devel
  • python3-talloc-devel
  • redhat-cloud-client-configuration
  • ssd-idp
  • systemd-resolved (technology preview)
  • tuned-profiles-postgresql
  • xmlstarlet
  • xxhash
  • yara
"},{"location":"release-notes/8.7/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among the others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.7/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.7/#new-vault-policy","title":"New vault policy","text":"

With feedback from community we decided to add the -last to the EuroLinux 8.6 vaulted versions that represents the last snapshot of the EuroLinux 8.6. More about vault policy here.

"},{"location":"release-notes/8.7/#smaller-base-repositories","title":"Smaller base repositories","text":"

Until now we keeped all produced versions of the same package in base repositories. Upstream policy is to keep only selected versions and the rest in the vaults. It is reasonable as saves a internet bandwith, and put much less stress on the mirroring sites. From EuroLinux 8.7 we will aim to use upstream schema for packages.

Older packages are still available at EuroLinux Vault.

"},{"location":"release-notes/8.7/#installation-from-baseurl-with-treeinfo","title":"Installation from baseurl with .treeinfo","text":"

EuroLinux 8.7 is first release that officially supports the installation from URL leveraging .treeinfo files.

"},{"location":"release-notes/8.7/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 2500 packages for each buildroot.

About 30 packages were updated for x86_64 buildroot.

"},{"location":"release-notes/8.7/#gaia-build-system","title":"Gaia build system","text":"

Gaia build system is still in the 3.0 alpha.

"},{"location":"release-notes/8.7/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO, (secondary download link)
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.7 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/8.8-beta/","title":"EuroLinux 8.8 Beta Release Notes","text":"

This version\u2019s code name is Sofia - the capital city of Bulgaria. The Beta version will allow us to provide EuroLinux 8.8 faster.

Major changes in EuroLinux 8.8 Beta:

"},{"location":"release-notes/8.8-beta/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: Python 3.11 - available as regular RPM packages
  • New: Nginx 1.22 - available as a module
  • New: PostgreSQL 15 - available as a module
  • New: Swig 4.1 - available as a module
  • New: jaxb 4 - available as a module

The following components have been upgraded:

  • Git 2.39.1
  • Git LFS 3.2.0
"},{"location":"release-notes/8.8-beta/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 8.8:

  • PCP 5.3.7
  • Grafana 7.5.15
"},{"location":"release-notes/8.8-beta/#kernel-version","title":"Kernel version","text":"

EuroLinux 8.8 Beta is distributed with the kernel version 4.18.0-477.

"},{"location":"release-notes/8.8-beta/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following performance tools and debuggers have been updated in EuroLinux 8.8:

  • Valgrind 3.19
  • SystemTap 4.8
  • Dyninst 12.1.0
  • elfutils 0.188
"},{"location":"release-notes/8.8-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.8:

  • GCC Toolset 12
  • LLVM Toolset 15.0.7
  • Rust Toolset 1.66
  • Go Toolset 1.19.4
"},{"location":"release-notes/8.8-beta/#security","title":"Security","text":"

The most crucial security changes include:

  • The Libreswan IPsec implementation was rebased to version 4.9.
  • Rsyslog TLS-encrypted logging now supports multiple CA files.
  • The systemd-socket-proxyd service now runs in its own SELinux domain due to an update to the SELinux policy.
  • The OpenSCAP security compliance utility was rebased to version 1.3.7.
  • With the fapolicyd software framework, you can now filter the RPM database.
"},{"location":"release-notes/8.8-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Podman now supports events for auditing.
  • The Container Tools packages have been updated.
  • The Aardvark and Netavark network stack now supports custom DNS server selection.
  • Podman Quadlet is now available as a Technology Preview.
  • The container-tools:3.0 module stream has been deprecated.
  • The CNI network stack has been deprecated.
"},{"location":"release-notes/8.8-beta/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • bind9.16-dnssec-utils
  • cifs-utils-devel
  • ecj
  • ipxe-bootimgs-aarch64
  • libnetapi
  • libsndfile-utils
  • libtraceevent
  • libtraceevent-devel
  • libtracefs
  • libtracefs-devel
  • libwpe
  • libwpe-devel
  • libxdp-devel
  • libxdp-static
  • lmdb
  • mpdecimal
  • mpdecimal++
  • mpdecimal-devel
  • mpdecimal-doc
  • nss_wrapper-libs
  • perl-Mail-AuthenticationResults
  • procps-ng-devel
  • python3-bind9.16
  • python3-scour
  • python3.11
  • python3.11-Cython
  • python3.11-PyMySQL
  • python3.11-attrs
  • python3.11-cffi
  • python3.11-charset-normalizer
  • python3.11-cryptography
  • python3.11-debug
  • python3.11-devel
  • python3.11-idle
  • python3.11-idna
  • python3.11-iniconfig
  • python3.11-libs
  • python3.11-lxml
  • python3.11-mod_wsgi
  • python3.11-numpy
  • python3.11-numpy-f2py
  • python3.11-packaging
  • python3.11-pip
  • python3.11-pip-wheel
  • python3.11-pluggy
  • python3.11-ply
  • python3.11-psycopg2
  • python3.11-psycopg2-debug
  • python3.11-psycopg2-tests
  • python3.11-pybind11
  • python3.11-pybind11-devel
  • python3.11-pycparser
  • python3.11-pyparsing
  • python3.11-pysocks
  • python3.11-pytest
  • python3.11-pyyaml
  • python3.11-requests
  • python3.11-rpm-macros
  • python3.11-scipy
  • python3.11-semantic_version
  • python3.11-setuptools
  • python3.11-setuptools-rust
  • python3.11-setuptools-wheel
  • python3.11-six
  • python3.11-test
  • python3.11-tkinter
  • python3.11-urllib3
  • python3.11-wheel
  • python3.11-wheel-wheel
  • rtla
  • samba-dc-libs
  • samba-dcerpc
  • texlive-translator
  • tomcat
  • tomcat-admin-webapps
  • tomcat-docs-webapp
  • tomcat-el-3.0-api
  • tomcat-jsp-2.3-api
  • tomcat-lib
  • tomcat-servlet-4.0-api
  • tomcat-webapps
  • tpm2-pkcs11
  • tpm2-pkcs11-tools
  • wpebackend-fdo
  • wpebackend-fdo-devel
"},{"location":"release-notes/8.8-beta/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.8-beta/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.8-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

About 150 packages were updated for x86_64 buildroot alone. We also added some of the packages (like python3.11 for i686) to the publicly available open buildroots.

"},{"location":"release-notes/8.8-beta/#known-issues","title":"Known issues","text":"
  • Due to compose error LibreOffice is available in the older version than one available in the RHEL 8.8 beta. The new version will land in main repos shortly.
"},{"location":"release-notes/8.8-beta/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 beta.

"},{"location":"release-notes/8.8-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.8 beta Release Notes (parts of our release notes are loosely based on this document).
"},{"location":"release-notes/8.8/","title":"EuroLinux 8.8 Release Notes","text":"

This version\u2019s code name is Sofia - the capital city of Bulgaria.

Major changes in EuroLinux 8.8:

"},{"location":"release-notes/8.8/#dynamic-programming-languages-web-and-database-servers","title":"Dynamic programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: Python 3.11 - available as regular RPM packages
  • New: Nginx 1.22 - available as a module
  • New: PostgreSQL 15 - available as a module
  • New: Swig 4.1 - available as a module
  • New: jaxb 4 - available as a module

The following components have been upgraded:

  • Git 2.39.1
  • Git LFS 3.2.0
"},{"location":"release-notes/8.8/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 8.8:

  • PCP 5.3.7
  • Grafana 7.5.15
"},{"location":"release-notes/8.8/#kernel-version","title":"Kernel version","text":"

EuroLinux 8.8 is distributed with the kernel version 4.18.0-477.

"},{"location":"release-notes/8.8/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following performance tools and debuggers have been updated in EuroLinux 8.8:

  • Valgrind 3.19
  • SystemTap 4.8
  • Dyninst 12.1.0
  • elfutils 0.188
"},{"location":"release-notes/8.8/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.8:

  • GCC Toolset 12
  • LLVM Toolset 15.0.7
  • Rust Toolset 1.66
  • Go Toolset 1.19.4
"},{"location":"release-notes/8.8/#security","title":"Security","text":"

The most crucial security changes include:

  • The Libreswan IPsec implementation was rebased to version 4.9.
  • Rsyslog TLS-encrypted logging now supports multiple CA files.
  • The systemd-socket-proxyd service now runs in its own SELinux domain due to an update to the SELinux policy.
  • The OpenSCAP security compliance utility was rebased to version 1.3.7.
  • With the fapolicyd software framework, you can now filter the RPM database.
"},{"location":"release-notes/8.8/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Podman now supports events for auditing.
  • The Container Tools packages have been updated.
  • The Aardvark and Netavark network stack now supports custom DNS server selection.
  • Podman Quadlet is now available as a Technology Preview.
  • The container-tools:3.0 module stream has been deprecated.
  • The CNI network stack has been deprecated.
"},{"location":"release-notes/8.8/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repository for this release:

  • bind9.16-dnssec-utils
  • cifs-utils-devel
  • ecj
  • ipxe-bootimgs-aarch64
  • libnetapi
  • libsndfile-utils
  • libtraceevent
  • libtraceevent-devel
  • libtracefs
  • libtracefs-devel
  • libwpe
  • libwpe-devel
  • libxdp-devel
  • libxdp-static
  • lmdb
  • mpdecimal
  • mpdecimal++
  • mpdecimal-devel
  • mpdecimal-doc
  • nss_wrapper-libs
  • perl-Mail-AuthenticationResults
  • procps-ng-devel
  • python3-bind9.16
  • python3-scour
  • python3.11
  • python3.11-Cython
  • python3.11-PyMySQL
  • python3.11-attrs
  • python3.11-cffi
  • python3.11-charset-normalizer
  • python3.11-cryptography
  • python3.11-debug
  • python3.11-devel
  • python3.11-idle
  • python3.11-idna
  • python3.11-iniconfig
  • python3.11-libs
  • python3.11-lxml
  • python3.11-mod_wsgi
  • python3.11-numpy
  • python3.11-numpy-f2py
  • python3.11-packaging
  • python3.11-pip
  • python3.11-pip-wheel
  • python3.11-pluggy
  • python3.11-ply
  • python3.11-psycopg2
  • python3.11-psycopg2-debug
  • python3.11-psycopg2-tests
  • python3.11-pybind11
  • python3.11-pybind11-devel
  • python3.11-pycparser
  • python3.11-pyparsing
  • python3.11-pysocks
  • python3.11-pytest
  • python3.11-pyyaml
  • python3.11-requests
  • python3.11-rpm-macros
  • python3.11-scipy
  • python3.11-semantic_version
  • python3.11-setuptools
  • python3.11-setuptools-rust
  • python3.11-setuptools-wheel
  • python3.11-six
  • python3.11-test
  • python3.11-tkinter
  • python3.11-urllib3
  • python3.11-wheel
  • python3.11-wheel-wheel
  • rtla
  • samba-dc-libs
  • samba-dcerpc
  • texlive-translator
  • tomcat
  • tomcat-admin-webapps
  • tomcat-docs-webapp
  • tomcat-el-3.0-api
  • tomcat-jsp-2.3-api
  • tomcat-lib
  • tomcat-servlet-4.0-api
  • tomcat-webapps
  • tpm2-pkcs11
  • tpm2-pkcs11-tools
  • wpebackend-fdo
  • wpebackend-fdo-devel
"},{"location":"release-notes/8.8/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.8/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.8/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

About 150 packages were updated for x86_64 buildroot alone. We also added some of the packages (like python3.11 for i686) to the publicly available open buildroots.

"},{"location":"release-notes/8.8/#known-issues","title":"Known issues","text":"
  • Java packages requires build with portable java version. We need a little bit more time to compile it in reproducible manner.
"},{"location":"release-notes/8.8/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 beta.

"},{"location":"release-notes/8.8/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.8 Release Notes this is expected link to final Red Hat release notes. As we release our notes before Red Hat this link in moment of publication might be dead.
"},{"location":"release-notes/8.9-beta/","title":"EuroLinux 8.9 Beta Release Notes","text":"

This version\u2019s code name is Monako - a sovereign city-state in France. The Beta version will allow us to provide EuroLinux 8.9 safer and faster.

Major changes in EuroLinux 8.9 Beta:

"},{"location":"release-notes/8.9-beta/#kernel-version","title":"Kernel version","text":"

EuroLinux 8.9 Beta is distributed with the kernel version 4.18.0-513.

"},{"location":"release-notes/8.9-beta/#new-versions-programming-languages-web-and-database-servers","title":"New versions - Programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: NodeJS 20 - available as a module
  • New: GCC Toolset 13 - availabile as a software collection
  • New: Java-21-OpenJDK - available as rpms
"},{"location":"release-notes/8.9-beta/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following performance tools and debuggers have been updated in EuroLinux 8.9 beta:

  • Valgrind 3.21 from 3.19
  • SystemTap 4.9 from 4.8
  • elfutils 0.189 from 0.188
"},{"location":"release-notes/8.9-beta/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.9 beta:

  • LLVM Toolset 16.0.6 - from 15.0.7
  • Rust Toolset 1.71.1 from 1.66
  • Go Toolset 1.20.6 from 1.19.4
"},{"location":"release-notes/8.9-beta/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 8.9:

  • Grafana 9.2.10
"},{"location":"release-notes/8.9-beta/#security","title":"Security","text":"

The most crucial security changes include:

  • Kernel 4.18.0-513.1.1 support AutoIRBS.
  • OpenSCAP rebased to 1.3.8
  • SCAP ANSSI-BP-028 security profiles updated to version 2.0
  • Perl module HTTP::Tiny verifies SSL/TLS certificate by default.
"},{"location":"release-notes/8.9-beta/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Postfix now supports SRV DNS records.
  • iproute updated to version 6.2.0
  • sos updated to version 4.6
"},{"location":"release-notes/8.9-beta/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repositories for this release:

  • avahi-tools
  • gcc-toolset-13
  • gcc-toolset-13-annobin-annocheck
  • gcc-toolset-13-annobin-docs
  • gcc-toolset-13-annobin-plugin-gcc
  • gcc-toolset-13-binutils
  • gcc-toolset-13-binutils-devel
  • gcc-toolset-13-binutils-gold
  • gcc-toolset-13-dwz
  • gcc-toolset-13-gcc
  • gcc-toolset-13-gcc-c++
  • gcc-toolset-13-gcc-gfortran
  • gcc-toolset-13-gcc-plugin-annobin
  • gcc-toolset-13-gcc-plugin-devel
  • gcc-toolset-13-gdb
  • gcc-toolset-13-libasan-devel
  • gcc-toolset-13-libatomic-devel
  • gcc-toolset-13-libgccjit
  • gcc-toolset-13-libgccjit-devel
  • gcc-toolset-13-libitm-devel
  • gcc-toolset-13-liblsan-devel
  • gcc-toolset-13-libquadmath-devel
  • gcc-toolset-13-libstdc++-devel
  • gcc-toolset-13-libstdc++-docs
  • gcc-toolset-13-libtsan-devel
  • gcc-toolset-13-libubsan-devel
  • gcc-toolset-13-offload-nvptx
  • gcc-toolset-13-runtime
  • gtk-vnc2-devel
  • gvnc-devel
  • java-21-openjdk
  • java-21-openjdk-demo
  • java-21-openjdk-demo-fastdebug
  • java-21-openjdk-demo-slowdebug
  • java-21-openjdk-devel
  • java-21-openjdk-devel-fastdebug
  • java-21-openjdk-devel-slowdebug
  • java-21-openjdk-fastdebug
  • java-21-openjdk-headless
  • java-21-openjdk-headless-fastdebug
  • java-21-openjdk-headless-slowdebug
  • java-21-openjdk-javadoc
  • java-21-openjdk-javadoc-zip
  • java-21-openjdk-jmods
  • java-21-openjdk-jmods-fastdebug
  • java-21-openjdk-jmods-slowdebug
  • java-21-openjdk-slowdebug
  • java-21-openjdk-src
  • java-21-openjdk-src-fastdebug
  • java-21-openjdk-src-slowdebug
  • java-21-openjdk-static-libs
  • java-21-openjdk-static-libs-fastdebug
  • java-21-openjdk-static-libs-slowdebug
  • libvma-utils
  • marisa-devel
  • python3-tomli
  • unifdef
"},{"location":"release-notes/8.9-beta/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.9-beta/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.9-beta/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

About 50 packages were updated for x86_64 buildroot alone. We also added some of the packages (like python3.11 for i686) to the publicly available open buildroots.

"},{"location":"release-notes/8.9-beta/#known-issues","title":"Known issues","text":"
  • No known issues.
"},{"location":"release-notes/8.9-beta/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 and preparing 4.0 with branding kit.

"},{"location":"release-notes/8.9-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.9 beta Release Notes (parts of our release notes are loosely based on this document).
"},{"location":"release-notes/8.9/","title":"EuroLinux 8.9 Release Notes","text":"

This version\u2019s code name is Monako - a sovereign city-state in France.

Major changes in EuroLinux 8.9:

"},{"location":"release-notes/8.9/#kernel-version","title":"Kernel version","text":"

EuroLinux 8.9 is distributed with the kernel version 4.18.0-513.

"},{"location":"release-notes/8.9/#new-versions-programming-languages-web-and-database-servers","title":"New versions - Programming languages, Web and Database servers","text":"

New versions of the following components are now available:

  • New: NodeJS 20 - available as a module
  • New: GCC Toolset 13 - availabile as a software collection
  • New: Java-21-OpenJDK - available as rpms
"},{"location":"release-notes/8.9/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following performance tools and debuggers have been updated in EuroLinux 8.9:

  • Valgrind 3.21 from 3.19
  • SystemTap 4.9 from 4.8
  • elfutils 0.189 from 0.188
"},{"location":"release-notes/8.9/#compiler-toolset","title":"Compiler Toolset","text":"

The following compiler toolsets have been updated in EL 8.9:

  • LLVM Toolset 16.0.6 - from 15.0.7
  • Rust Toolset 1.71.1 from 1.66
  • Go Toolset 1.20.6 from 1.19.4
"},{"location":"release-notes/8.9/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 8.9:

  • Grafana 9.2.10
"},{"location":"release-notes/8.9/#security","title":"Security","text":"

The most crucial security changes include:

  • Kernel 4.18.0-513.1.1 support AutoIRBS.
  • OpenSCAP rebased to 1.3.8
  • SCAP ANSSI-BP-028 security profiles updated to version 2.0
  • Perl module HTTP::Tiny verifies SSL/TLS certificate by default.
"},{"location":"release-notes/8.9/#general-updates-and-improvements","title":"General updates and improvements","text":"
  • Postfix now supports SRV DNS records.
  • iproute updated to version 6.2.0
  • sos updated to version 4.6
"},{"location":"release-notes/8.9/#new-packages","title":"New packages","text":"

Among the others, the following packages were added to os repositories for this release:

  • avahi-tools
  • gcc-toolset-13
  • gcc-toolset-13-annobin-annocheck
  • gcc-toolset-13-annobin-docs
  • gcc-toolset-13-annobin-plugin-gcc
  • gcc-toolset-13-binutils
  • gcc-toolset-13-binutils-devel
  • gcc-toolset-13-binutils-gold
  • gcc-toolset-13-dwz
  • gcc-toolset-13-gcc
  • gcc-toolset-13-gcc-c++
  • gcc-toolset-13-gcc-gfortran
  • gcc-toolset-13-gcc-plugin-annobin
  • gcc-toolset-13-gcc-plugin-devel
  • gcc-toolset-13-gdb
  • gcc-toolset-13-libasan-devel
  • gcc-toolset-13-libatomic-devel
  • gcc-toolset-13-libgccjit
  • gcc-toolset-13-libgccjit-devel
  • gcc-toolset-13-libitm-devel
  • gcc-toolset-13-liblsan-devel
  • gcc-toolset-13-libquadmath-devel
  • gcc-toolset-13-libstdc++-devel
  • gcc-toolset-13-libstdc++-docs
  • gcc-toolset-13-libtsan-devel
  • gcc-toolset-13-libubsan-devel
  • gcc-toolset-13-offload-nvptx
  • gcc-toolset-13-runtime
  • gtk-vnc2-devel
  • gvnc-devel
  • java-21-openjdk
  • java-21-openjdk-demo
  • java-21-openjdk-demo-fastdebug
  • java-21-openjdk-demo-slowdebug
  • java-21-openjdk-devel
  • java-21-openjdk-devel-fastdebug
  • java-21-openjdk-devel-slowdebug
  • java-21-openjdk-fastdebug
  • java-21-openjdk-headless
  • java-21-openjdk-headless-fastdebug
  • java-21-openjdk-headless-slowdebug
  • java-21-openjdk-javadoc
  • java-21-openjdk-javadoc-zip
  • java-21-openjdk-jmods
  • java-21-openjdk-jmods-fastdebug
  • java-21-openjdk-jmods-slowdebug
  • java-21-openjdk-slowdebug
  • java-21-openjdk-src
  • java-21-openjdk-src-fastdebug
  • java-21-openjdk-src-slowdebug
  • java-21-openjdk-static-libs
  • java-21-openjdk-static-libs-fastdebug
  • java-21-openjdk-static-libs-slowdebug
  • kmod-redhat-ahci
  • libvma-utils
  • marisa-devel
  • python3-tomli
  • unifdef
"},{"location":"release-notes/8.9/#branded-packages","title":"Branded packages","text":"

Multiple packages have names changed due to branding, including:

  • redhat-backgrounds -> el-backgrounds
  • redhat-indexhtml -> el-indexhtml
  • redhat-logos -> el-logos
  • redhat-logos-httpd -> el-logos-httpd
  • redhat-logos-ipa -> el-logos-ipa
  • redhat-release -> el-release
  • redhat-release-eula -> el-release - we include EULA in release package

All these packages have proper RPM provides declaration.

The list of the packages that are changed due to branding includes, among others:

  • abrt
  • anaconda
  • anaconda-user-help
  • cloud-init
  • crash
  • firefox
  • httpd
  • initial-setup
  • ipa
  • libguestfs
  • libreoffice
  • libreport
  • nginx
  • opa-ff
  • opa-fm
  • openscap
  • osinfo-db
  • python3
  • redhat-rpm-config
  • scap-security-guide
  • sos
  • subscription-manager
  • thunderbird
"},{"location":"release-notes/8.9/#removed-packages","title":"Removed packages","text":"

The following packages were removed:

  • rhc and related packages
  • insights-client and related packages
"},{"location":"release-notes/8.9/#batteries","title":"Batteries","text":"

Batteries repository contains packages that are needed to rebuild the distribution but are not included in any upstream repositories. Right now, this repository includes more than 3000 packages for each buildroot.

About 50 packages were updated for x86_64 buildroot alone. We also added some of the packages (like python3.11 for i686) to the publicly available open buildroots.

"},{"location":"release-notes/8.9/#known-issues","title":"Known issues","text":"
  • The AppStream is is about 15GiB. After long discussion and feedback we decided to keep it RHEL like way, where AppStream ISO is so full because it can be used to mount repositories used for mirroring and system. We are sorry but current state (mostly modularity) make things extremely hard to manage without breaking user experience.
  • There is huge problem with packages of java-21 not being reproducible.
"},{"location":"release-notes/8.9/#gaia-build-system","title":"Gaia build system","text":"

We are currently using Gaia 3.0 and preparing 4.0 with branding kit.

"},{"location":"release-notes/8.9/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 8.9 Release Notes (parts of our release notes are loosely based on this document).
"},{"location":"release-notes/9.0-beta/","title":"EuroLinux 9 Beta Release Notes","text":""},{"location":"release-notes/9.0-beta/#technical-changes-between-eurolinux-9-and-8","title":"Technical changes between EuroLinux 9 and 8","text":""},{"location":"release-notes/9.0-beta/#installer-and-image-creation","title":"Installer and image creation","text":"

In EuroLinux 9.0 you can now use a standalone smart card to both authenticate yourself and gain additional privileges via sudo.

For the typical cases of installing EuroLinux with a medium such as a disk interactively a Quality of Life tweak has been implemented: the Anaconda installer will now automatically activate a network connection if applicable (will try to obtain an address via DHCP).

You can now optionally permit a password-based root login via SSH or completely lock the root account in any case. (While the former is not recommended due to security and disabled in EuroLinux 9 by default, there are valid use cases which we support with this single easy switch)

"},{"location":"release-notes/9.0-beta/#administrative-tools","title":"Administrative tools","text":"

If you want to rename a network interface, it is recommended that you use systemd link files. Check man 5 systemd.link for more information.

Alternatively udev rules may be used. If you need to use the ifcfg tool, please install the initscripts package first since it is not installed by default.

"},{"location":"release-notes/9.0-beta/#security","title":"Security","text":"

EuroLinux 9 provides OpenSSL version 3.0.0. Among other things, the concept of providers has been added, which means that different programs can use different security algorithms depending on their needs. You can imagine a situation where you have implemented solutions where one needs to use FIPS mode, while others need to maintain compliance with less secure policies.

This new version comes with a few security-related implications. The TLS-1.3 protocol requires that a PKCS#11 token supports raw RSA or RSA-PSS signatures.

If this is applicable to your scenario, please configure your software to use TLS up to TLS-1.2. Additionally please edit the file /etc/pki/tls/openssl.cnf and add this snippet at the very end of the [ crypto_policy ] section:

SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384\nMaxProtocol = TLSv1.2\n
"},{"location":"release-notes/9.0-beta/#developer-tools","title":"Developer tools","text":"

Some of the newest and most reliable technology stacks for developers are available in the repositories. These include:

  • Ant 1.10
  • GCC 11.2
  • Git 2.31
  • Go 1.17.5
  • LLVM 13
  • Maven 3.6.3
  • NodeJS 16
  • OpenJDK 17.0.1
  • PHP 8.0
  • Perl 5.32
  • Python 3.9
  • Ruby 3.0
  • Rust 1.56
  • SVN 1.14

The EuroLinux 9 platform ships glibc 2.34, which will provide 10 years of business-class stability support and the same amount of software binary interface compatibility time. As a result, programs written today will work the same way 10 years from now.

"},{"location":"release-notes/9.0-beta/#web-servers-and-database-engines","title":"Web servers and database engines","text":"

The following software is now available in our repositories:

HTTP servers:

  • Apache HTTPD 2.4
  • nginx 1.20

Proxy servers:

  • Squid 5.1
  • Varnish Cache 6.5

Database engines:

  • MariaDB 10.5.12
  • MySQL 8.0
  • PostgreSQL 13
  • Redis 6.2.6
"},{"location":"release-notes/9.0-beta/#security-policies-scap-security-guide","title":"Security Policies - SCAP Security Guide","text":"

The SCAP Security Guide has been updated to version 0.1.57 and made a number of changes from the counterpart we provide in EuroLinux 8:

  • Removed deprecated SCAP 1.2 source data streams.
  • Removed Bash profile remediation scripts to encourage more secure practices.
  • Although references for EuroLinux 8 have been left in place, the current package is designed for EuroLinux 9 - please kindly use packages for older releases if you need to check them for security policies.
"},{"location":"release-notes/9.0-beta/#gnome-40","title":"GNOME 40","text":"

GNOME has been updated to GNOME 40, a major step forward from EuroLinux 8's GNOME 3.32.2 , which includes many new features.

GNOME 40 includes a new and improved style, including the user interface, icons and desktop, The Activities look and feel provides a better experience when working, launching applications and arranging your personal workspace - workspaces are now arranged horizontally and the window overview and application grid are available vertically.

Many Quality of Life improvements have also been added, including:

  • running the software using a separate graphics card by right-clicking and selecting the appropriate option
  • The ability to mute notifications by selecting Do not disturb, which will appear as a separate button in the notification
  • Each screen can use a different refresh rate
  • The Activities program allows you to group application icons into folders using a drag-and-drop method
  • provide the ability to fractionally scale the display
"},{"location":"release-notes/9.0-beta/#notable-changes","title":"Notable changes","text":"

EuroLinux 9 provides refreshed and updated versions of the following packages:

  • m4 was updated from version 1.4.18 to 1.4.19
  • xdp-tools was updated from version 1.1.1 to 1.2.1
  • openchange was updated from 2.3 (version) 37 (release) to 2.3 (version) 38 (release)
  • tigervnc was updated from 1.11.0 (version) 20 (release) to 1.11.0 (version) 21 (release)

We expect updated versions of these packages to be available in the GA version of RHEL.

"},{"location":"release-notes/9.0-beta/#known-issues","title":"Known issues","text":"
  • Dotnet is not available at the moment. ~~Fix will arrive next week (the first week of march)~~ Update: It's planned for release with ARM Beta
  • We are waiting for Secure Boot; as you can see here https://github.com/rhboot/shim-review/issues, it is a long process
  • ~~There is only minimal ISO. AppStream complete ISO be published next week (the first week of April)~~ Update: AppStream ISO is available.
  • SCAP is not usable. A fix will arrive with EuroLinux 9 beta for ARM64
  • Until GA we will not rebuild other Enterprise Linuxes as it is pointless
  • There might be branding issues. If you find one, please create an issue in our public bug tracker
  • Migration scripts worked well in our tests. We were able to migrate from CentOS Stream 9 and Red Hat Enterprise Linux 9 beta. Because EuroLinux 9 and Red Hat Enterprise Linux 9 are in the beta stage, in the meantime, CentOS Stream 9 is heavily developed. We won't provide assistance and support for migration until the GA of EuroLinux 9.
  • EuroLinux 9 beta is not officially supported for production uses
  • We will update this section when fixes arrive, or new issues arise..
"},{"location":"release-notes/9.0-beta/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 1000 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.0-beta/#eurolinux-9-for-arm","title":"EuroLinux 9 for ARM","text":"

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It also allowed us to create x86_64, open build roots for i686 and x86_64 and batteries repos faster. Because creating EuroLinux 9 beta took us about four weeks, ARM should take about two weeks, after updating Gaia Stack, as we have all the necessary batteries and build orders figured out.

"},{"location":"release-notes/9.0-beta/#gaia-updates","title":"Gaia updates","text":"

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

There are new commands in Gaia:

  • new automodule-update Gaia subcommand, that well - automatically updates modules. No more manual config changes for modules
  • new automodule-merge Gaia subcommand. This command uses multiple input files (RH/EuroLinux modules files + result build + custom files) to create an updated module definition

Other notable changes:

  • Striga now creates automodule-* commands
  • Striga can create --partial commands for module rebuild
  • Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs
  • A lot of new configs for EuroLinux 9

We will also update hardware requirements for rebuild, including reference build servers for ARM and PowerPC. The rebuilds will start with the release of EuroLinux 9. It will also require updated infrastructure.

"},{"location":"release-notes/9.0-beta/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9 beta

  • EuroLinux 9 Beta Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)
  • EuroLinux 9 Beta Container on the Docker Hub
  • EuroLinux 9 Beta Container on the Quay.io
"},{"location":"release-notes/9.0-beta/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.0 beta Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.0/","title":"EuroLinux 9 Release Notes","text":""},{"location":"release-notes/9.0/#technical-changes-between-eurolinux-9-and-8","title":"Technical changes between EuroLinux 9 and 8","text":""},{"location":"release-notes/9.0/#installer-and-image-creation","title":"Installer and image creation","text":"

In EuroLinux 9.0 you can now use a standalone smart card to both authenticate yourself and gain additional privileges via sudo.

For the typical cases of installing EuroLinux with a medium such as a disk interactively a Quality of Life tweak has been implemented: the Anaconda installer will now automatically activate a network connection if applicable (will try to obtain an address via DHCP).

You can now optionally permit a password-based root login via SSH or completely lock the root account in any case. (While the former is not recommended due to security and disabled in EuroLinux 9 by default, there are valid use cases which we support with this single easy switch)

"},{"location":"release-notes/9.0/#administrative-tools","title":"Administrative tools","text":"

If you want to rename a network interface, it is recommended that you use systemd link files. Check man 5 systemd.link for more information.

Alternatively udev rules may be used. If you need to use the ifcfg tool, please install the initscripts package first since it is not installed by default.

"},{"location":"release-notes/9.0/#security","title":"Security","text":"

EuroLinux 9 provides OpenSSL version 3.0.0. Among other things, the concept of providers has been added, which means that different programs can use different security algorithms depending on their needs. You can imagine a situation where you have implemented solutions where one needs to use FIPS mode, while others need to maintain compliance with less secure policies.

This new version comes with a few security-related implications. The TLS-1.3 protocol requires that a PKCS#11 token supports raw RSA or RSA-PSS signatures.

If this is applicable to your scenario, please configure your software to use TLS up to TLS-1.2. Additionally please edit the file /etc/pki/tls/openssl.cnf and add this snippet at the very end of the [ crypto_policy ] section:

SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384\nMaxProtocol = TLSv1.2\n
"},{"location":"release-notes/9.0/#developer-tools","title":"Developer tools","text":"

Some of the newest and most reliable technology stacks for developers are available in the repositories. These include:

  • Ant 1.10
  • GCC 11.2
  • Git 2.31
  • Go 1.17.5
  • LLVM 13
  • Maven 3.6.3
  • NodeJS 16
  • OpenJDK 17.0.1
  • PHP 8.0
  • Perl 5.32
  • Python 3.9
  • Ruby 3.0
  • Rust 1.56
  • SVN 1.14

The EuroLinux 9 platform ships glibc 2.34, which will provide 10 years of business-class stability support and the same amount of software binary interface compatibility time. As a result, programs written today will work the same way 10 years from now.

"},{"location":"release-notes/9.0/#web-servers-and-database-engines","title":"Web servers and database engines","text":"

The following software is now available in our repositories:

HTTP servers:

  • Apache HTTPD 2.4
  • nginx 1.20

Proxy servers:

  • Squid 5.1
  • Varnish Cache 6.5

Database engines:

  • MariaDB 10.5.12
  • MySQL 8.0
  • PostgreSQL 13
  • Redis 6.2.6
"},{"location":"release-notes/9.0/#security-policies-scap-security-guide","title":"Security Policies - SCAP Security Guide","text":"

The SCAP Security Guide has been updated to version 0.1.57 and made a number of changes from the counterpart we provide in EuroLinux 8:

  • Removed deprecated SCAP 1.2 source data streams.
  • Removed Bash profile remediation scripts to encourage more secure practices.
  • Although references for EuroLinux 8 have been left in place, the current package is designed for EuroLinux 9 - please kindly use packages for older releases if you need to check them for security policies.
"},{"location":"release-notes/9.0/#gnome-40","title":"GNOME 40","text":"

GNOME has been updated to GNOME 40, a major step forward from EuroLinux 8's GNOME 3.32.2 , which includes many new features.

GNOME 40 includes a new and improved style, including the user interface, icons and desktop, The Activities look and feel provides a better experience when working, launching applications and arranging your personal workspace - workspaces are now arranged horizontally and the window overview and application grid are available vertically.

Many Quality of Life improvements have also been added, including:

  • running the software using a separate graphics card by right-clicking and selecting the appropriate option
  • The ability to mute notifications by selecting Do not disturb, which will appear as a separate button in the notification
  • Each screen can use a different refresh rate
  • The Activities program allows you to group application icons into folders using a drag-and-drop method
  • provide the ability to fractionally scale the display
"},{"location":"release-notes/9.0/#notable-changes","title":"Notable changes","text":"

EuroLinux 9 provides refreshed and updated versions of the following packages:

  • m4 was updated from version 1.4.18 to 1.4.19
  • xdp-tools was updated from version 1.1.1 to 1.2.1
  • openchange was updated from 2.3 (version) 37 (release) to 2.3 (version) 38 (release)
  • tigervnc was updated from 1.11.0 (version) 20 (release) to 1.11.0 (version) 21 (release)

We expect updated versions of these packages to be available in the GA version of RHEL.

"},{"location":"release-notes/9.0/#known-issues","title":"Known issues","text":"
  • We are waiting for Secure Boot; as you can see here https://github.com/rhboot/shim-review/issues, it is a long process
"},{"location":"release-notes/9.0/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 1000 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.0/#eurolinux-9-for-arm","title":"EuroLinux 9 for ARM","text":"

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It also allowed us to create x86_64, open build roots for i686 and x86_64 and batteries repos faster.

"},{"location":"release-notes/9.0/#gaia-updates","title":"Gaia updates","text":"

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

There are new commands in Gaia:

  • new automodule-update Gaia subcommand, that well - automatically updates modules. No more manual config changes for modules
  • new automodule-merge Gaia subcommand. This command uses multiple input files (RH/EuroLinux modules files + result build + custom files) to create an updated module definition

Other notable changes:

  • Striga now creates automodule-* commands
  • Striga can create --partial commands for module rebuild
  • Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs
  • A lot of new configs for EuroLinux 9

We will also update hardware requirements for rebuild, including reference build servers for ARM and PowerPC. The rebuilds will start with the release of EuroLinux 9. It will also require updated infrastructure.

"},{"location":"release-notes/9.0/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9

  • EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)
  • EuroLinux 9 Container on the Docker Hub
  • EuroLinux 9 Container on the Quay.io
"},{"location":"release-notes/9.0/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.0 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.1/","title":"EuroLinux 9.1 Release Notes","text":""},{"location":"release-notes/9.1/#major-changes-in-eurolinux-91","title":"Major changes in EuroLinux 9.1.","text":""},{"location":"release-notes/9.1/#installer-and-image-creation","title":"Installer and image creation","text":"

Image builder on-premise now supports:

  • Uploading images to GCP.
  • Customizing the /boot partition.
  • Pushing a container image directly to a registry.
  • Users can now customize their blueprints during the image creation process.

Installer support customization size of the /boot partition. -allow-ssh kickstart option allows ssh login as root user.

GRUB bootloader menu is hidden by default.

"},{"location":"release-notes/9.1/#security","title":"Security","text":"

EuroLinux 9.1 introduces Keylime, a remote machine attestation tool using the trusted platform module (TPM) technology. With Keylime, you can verify and continuously monitor the integrity of remote machines.

OpenSSH now supports setting minimum RSA key length. The option to be set is named RequiredRSASize. crypto-policies enforce minimum 2048-bit RSA key length for OpenSSH by default.

NSS no longer support RSA keys shorter than 1023bit.

SELinux user-space packages have been upgraded to version 3.4. Changes: - Improved relabeling performance through parallel relabeling - Support for SHA-256 in the semodule tool - New policy utilities in the libsepol-utils package

"},{"location":"release-notes/9.1/#command-line-tools","title":"Command-line tools","text":"

The following command-line tools have been updated in EuroLinux 9.1: - cronie, now supports a randomized time within range ~ - ReaR, now utilises new variables for executing commands before and after recovery - opencryptoki to version 3.18.0 - lsvpd to version 1.7.14 - libvpd to version 2.2.9 - sysctl supports same syntax for arguments as systemd-sysctl

EuroLinux 9.1 introduces a new package xmlstarlet with which you can parse, query, validate, transform and edit XML files.

"},{"location":"release-notes/9.1/#infrastructure-services","title":"Infrastructure services","text":"

The following infrastructure services tools have been updated in EuroLinux 9.1: - chrony to version 4.2 - unbound to version 1.16.2 - frr to version 8.2.2 - whois package now provides the /usr/bin/mkpasswd binary, which can be used to encrypt a password with the crypt C library interface.

"},{"location":"release-notes/9.1/#networking","title":"Networking","text":"

NetworkManager supports migrating connection profiles from the deprecated ifcfg format to keyfile format.

The MultiPath TCP (MPTCP) code in the kernel has been updated and upstream Linux 5.19.

NetworkManager now clearly indicates that WEP support is not available in EuroLinux 9.

"},{"location":"release-notes/9.1/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following components are now available as new module streams: - PHP 8.1 - Ruby 3.1 - Node.js 18

The Apache HTTP Server has been updated to version 2.4.53.

"},{"location":"release-notes/9.1/#compilers-and-development-tools","title":"Compilers and development tools","text":""},{"location":"release-notes/9.1/#updated-system-toolchain","title":"Updated system toolchain","text":"

The following system toolchain components have been updated in EuroLinux 9.1: - binutils 2.35.2 - GCC 11.2.1 - glibc 2.34

"},{"location":"release-notes/9.1/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated in EuroLinux 9.1: - GDB 10.2 - Valgrind 3.19 - SystemTap 4.7 - Dyninst 12.1.0 - elfutils 0.187

"},{"location":"release-notes/9.1/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 9.1: - Grafana 7.5.13 - PCP 5.3.7

"},{"location":"release-notes/9.1/#updated-compiler-toolsets","title":"Updated compiler toolsets","text":"

The following compiler toolsets have been updated in EuroLinux 9.1: - GCC Toolset 12 - Go Toolset 1.18 - Rust Toolset 1.62 - LLVM Toolset 14.0.6

"},{"location":"release-notes/9.1/#java-implementations-in-eurolinx-91","title":"Java implementations in EuroLinx 9.1","text":"

EuroLinux 9 AppStream repository includes: - java-11-openjdk - OpenJDK 11 Java Runtime Environment and the OpenJDK 11 Java Software Development Kit. - java-17-openjdk - OpenJDK 17 Java Runtime Environment and the OpenJDK 17 Java Software Development Kit. - java-1.8.0-openjdk - OpenJDK 8 Java Runtime Environment and the OpenJDK 8 Java Software Development Kit. - Maven 3.8 has been added as a module stream

"},{"location":"release-notes/9.1/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 1000 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.1/#eurolinux-9-for-arm","title":"EuroLinux 9 for ARM","text":"

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It also allowed us to create x86_64, open build roots for i686 and x86_64 and batteries repos faster. Because creating EuroLinux 9 beta took us about four weeks, ARM should take about two weeks, after updating Gaia Stack, as we have all the necessary batteries and build orders figured out.

"},{"location":"release-notes/9.1/#gaia-updates","title":"Gaia updates","text":"

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

There are new commands in Gaia: - new automodule-update Gaia subcommand, that well - automatically updates modules. No more manual config changes for modules - new automodule-merge Gaia subcommand. This command uses multiple input files (RH/EuroLinux modules files + result build + custom files) to create an updated module definition

Other notable changes: - Striga now creates automodule-* commands - Striga can create --partial commands for module rebuild - Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs - A lot of new configs for EuroLinux 9

We will also update hardware requirements for rebuild, including reference build servers for ARM and PowerPC. The rebuilds will start with the release of EuroLinux 9. It will also require updated infrastructure.

"},{"location":"release-notes/9.1/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9 beta - EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) - EuroLinux 9 Container on the Docker Hub - EuroLinux 9 Container on the Quay.io

"},{"location":"release-notes/9.1/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.1 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.2/","title":"EuroLinux 9.2 Release Notes","text":""},{"location":"release-notes/9.2/#major-changes-in-eurolinux-92","title":"Major changes in EuroLinux 9.2.","text":""},{"location":"release-notes/9.2/#security","title":"Security","text":"

Key security-related highlights:

  • The OpenSSL secure communications library was rebased to version 3.0.7.
  • SELinux user-space packages were updated to version 3.5.
  • Keylime was rebased to version 6.5.2
  • OpenSCAP was rebased to version 1.3.7.
  • SCAP Security Guide was rebased to version 0.1.66.
  • A new rule for idle session termination was added to SCAP.
  • Clevis now accepts external tokens.
  • Rsyslog TLS-encrypted logging now supports multiple CA files.
  • Rsyslog privileges are limited to minimize security exposure.
"},{"location":"release-notes/9.2/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following application are now available:

  • Python 3.11
  • PostgreSQL 15
  • nginx 1.22

The following components have been upgraded:

  • Git LFS to version 3.2.0
  • Git to version 2.39.1
"},{"location":"release-notes/9.2/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following system toolchain components have been updated in EuroLinux 9.2:

  • GCC 11.3.1
  • glibc 2.34
  • binutils 2.35.2
"},{"location":"release-notes/9.2/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated in EuroLinux 9.2:

  • elfutils 0.188
  • GDB 10.2
  • Valgrind 3.19
  • SystemTap 4.8
  • Dyninst 12.1.0
"},{"location":"release-notes/9.2/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated in EuroLinux 9.2:

  • PCP 6.0.1
  • Grafana 9.0.9
  • Updated compiler toolsets

The following compiler toolsets have been updated in EuroLinux 9.2:

  • GCC Toolset 12
  • Go Toolset 1.19.6
  • LLVM Toolset 15.0.7
  • Rust Toolset 1.66
"},{"location":"release-notes/9.2/#installer-and-image-creation","title":"Installer and image creation","text":"

Key highlights for image builder:

  • Image builder on-prem now offers a new and improved way to create blueprints and images in the image builder web console.
  • Creating customized files and directories in the /etc directory is now supported.
"},{"location":"release-notes/9.2/#java-implementations-in-eurolinux-9","title":"Java implementations in EuroLinux 9","text":"

The EuroLinux 9 AppStream repository includes:

The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime Environment and the OpenJDK 11 Java Software Development Kit. The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime Environment and the OpenJDK 17 Java Software Development Kit. The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime Environment and the OpenJDK 8 Java Software Development Kit.

"},{"location":"release-notes/9.2/#containers","title":"Containers","text":"

Notable changes include:

  • Podman now supports events for auditing.
  • Clients for sigstore signatures with Fulcio and Rekor are now available.
  • Podman Quadlet is now available as a Technology Preview.
  • Skopeo now supports generating sigstore key pairs.
  • The Container Tools packages have been updated.
  • Toolbox is now available.
  • The CNI network stack has been deprecated.
  • The Aardvark and Netavark networks stack now supports custom DNS server selection.
"},{"location":"release-notes/9.2/#known-issues","title":"Known issues","text":"

Due to changes in the build process, some java packages (java-1.8.0-openjdk, java-11-openjdk, java-17-openjdk) are not updated jet (TODO).

"},{"location":"release-notes/9.2/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 330 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.2/#eurolinux-9-for-arm","title":"EuroLinux 9 for ARM","text":"

EuroLinux for ARM will use an updated Gaia rebuild stack. We decided that this is an ideal testbed because ARM64 is not as popular as x86_64 architecture. It also allowed us to create x86_64, open build roots for i686 and x86_64 and batteries repos faster. Because creating EuroLinux 9 took us about four weeks, ARM should take about two weeks, after updating Gaia Stack, as we have all the necessary batteries and build orders figured out.

"},{"location":"release-notes/9.2/#gaia-updates","title":"Gaia updates","text":"

New Gaia used to rebuild EuroLinux 9 for ARM64 is even more distributed.

There are new commands in Gaia: - new automodule-update Gaia subcommand, that well - automatically updates modules. No more manual config changes for modules - new automodule-merge Gaia subcommand. This command uses multiple input files (RH/EuroLinux modules files + result build + custom files) to create an updated module definition

Other notable changes: - Striga now creates automodule-* commands - Striga can create --partial commands for module rebuild - Vardoger now supports config files that allows ignoring chosen tests/levels for selected RPMs - A lot of new configs for EuroLinux 9

We will also update hardware requirements for rebuild, including reference build servers for ARM and PowerPC. The rebuilds will start with the release of EuroLinux 9. It will also require updated infrastructure.

"},{"location":"release-notes/9.2/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9 - EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) - EuroLinux 9 Container on the Docker Hub - EuroLinux 9 Container on the Quay.io

"},{"location":"release-notes/9.2/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.2 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.3/","title":"EuroLinux 9.3 Release Notes","text":"

This version's code name is Riga - the capital of Latvia.

"},{"location":"release-notes/9.3/#major-changes-in-eurolinux-93","title":"Major changes in EuroLinux 9.3.","text":""},{"location":"release-notes/9.3/#security","title":"Security","text":"

Key security-related highlights:

  • Keylime was rebased to version 7.3.0.
  • OpenSSH was further migrated from the less secure SHA-1 message digest.
  • The pcsc-lite-ccid USB Chip/Smart Card Interface Device(CCID)) and Integrated Circuit Card Device (ICCD) driver was rebased to version 1.5.2.
  • SEtools, the collection of graphical tools, command-line tools, and libraries for SELinux policy analysis, was rebased to version 4.4.3.
  • OpenSCAP was rebased to version 1.3.8.
"},{"location":"release-notes/9.3/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following application are now available:

  • Redis 7
  • Node.js 20

Furthermore, the Apache HTTP Server has been updated to version 2.4.57.

The following components have been upgraded:

  • Git LFS to version 3.2.0
  • Git to version 2.39.1
"},{"location":"release-notes/9.3/#compilers-and-development-tools","title":"Compilers and development tools","text":"

The following system toolchain components have been updated:

  • GCC 11.4.1
"},{"location":"release-notes/9.3/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated:

  • Valgrind 3.21
  • SystemTap 4.9
  • elfutils 0.189
"},{"location":"release-notes/9.3/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated:

  • PCP 6.0.5
  • Grafana 9.2.10
"},{"location":"release-notes/9.3/#updated-compiler-toolsets","title":"Updated compiler toolsets","text":"

The following compiler toolsets have been updated in:

  • GCC Toolset 13
  • LLVM Toolset 16.0.6
  • Rust Toolset 1.71.1
  • Go Toolset 1.20.10
"},{"location":"release-notes/9.3/#java-implementations-in-eurolinux-9","title":"Java implementations in EuroLinux 9","text":"

The EuroLinux 9 AppStream repository includes:

  • The java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit.
  • The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime
  • Environment and the OpenJDK 11 Java Software Development Kit.
  • The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime
  • Environment and the OpenJDK 17 Java Software Development Kit.
  • The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime
  • Environment and the OpenJDK 8 Java Software Development Kit.
"},{"location":"release-notes/9.3/#known-issues","title":"Known issues","text":"

Due to evolution of build process updates for Java 21 OpenJDK and SCAP Security Guide are delayed now. They are going to be delivered soon.

"},{"location":"release-notes/9.3/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 330 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.3/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9 - EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox) - EuroLinux 9 Container on the Docker Hub - EuroLinux 9 Container on the Quay.io

"},{"location":"release-notes/9.3/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.3 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/9.4/","title":"EuroLinux 9.4 Release Notes","text":"

This version's code name is San Marino - the capital of San Marino, the world's oldest republic.

"},{"location":"release-notes/9.4/#major-changes-in-eurolinux-94","title":"Major changes in EuroLinux 9.4.","text":""},{"location":"release-notes/9.4/#security","title":"Security","text":"

Key security-related highlights:

  • Rsyslog log processing system introduces customizable TLS/SSL encryption settings and additional capability dropping options.
  • The OpenSSL TLS toolkit adds a provider-specific configuration directory.
  • The Linux kernel cryptographic API (libkcapi) 1.4.0 introduces new tools and options. You can now specify target file names for hash calculations using the -T option.
  • The stunnel TLS/SSL tunneling service 5.71 provides many new features such as support for modern PostgreSQL clients.
"},{"location":"release-notes/9.4/#programming-languages-web-and-database-servers","title":"Programming languages, web and database servers","text":"

Later versions of the following application are now available:

  • MariaDB 10.11
  • nginx 1.24
  • PHP 8.2
  • PostgreSQL 16
  • Python 3.12

The following components have been upgraded:

  • Git LFS to version 3.4.1
  • Git to version 2.43.0
"},{"location":"release-notes/9.4/#compilers-and-development-tools","title":"Compilers and development tools","text":""},{"location":"release-notes/9.4/#updated-performance-tools-and-debuggers","title":"Updated performance tools and debuggers","text":"

The following performance tools and debuggers have been updated:

  • elfutils 0.190
  • SystemTap 5.0
  • Valgrind 3.22
"},{"location":"release-notes/9.4/#updated-performance-monitoring-tools","title":"Updated performance monitoring tools","text":"

The following performance monitoring tools have been updated:

  • PCP 6.2.0
"},{"location":"release-notes/9.4/#updated-compiler-toolsets","title":"Updated compiler toolsets","text":"

The following compiler toolsets have been updated:

  • GCC Toolset 13
  • Go Toolset 1.21.7
  • LLVM Toolset 17.0.6
  • Rust Toolset 1.75.1
"},{"location":"release-notes/9.4/#java-implementations-in-eurolinux-9","title":"Java implementations in EuroLinux 9","text":"

The EuroLinux 9 AppStream repository includes:

  • The java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit.
  • The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime
  • Environment and the OpenJDK 11 Java Software Development Kit.
  • The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime
  • Environment and the OpenJDK 17 Java Software Development Kit.
  • The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime
  • Environment and the OpenJDK 8 Java Software Development Kit.
"},{"location":"release-notes/9.4/#known-issues","title":"Known issues","text":"

Due to evolution of build process update for SCAP Security Guide are delayed now. They are going to be delivered soon.

"},{"location":"release-notes/9.4/#batteries-repositories","title":"Batteries repositories","text":"

The battery repository is available for customers with Golden Key and Gaia subscriptions. There are about 330 packages that are not part of any build (so they are not included in EuroLinux Open Build roots) but are required to rebuild EuroLinux/Custom Fork from RHEL or Eurolinux sources.

"},{"location":"release-notes/9.4/#container-and-cloud-images","title":"Container and cloud images","text":"

You can use the following publicly available images for EuroLinux 9:

  • EuroLinux 9 Vagrant Boxes (libvirt/VMware Workstation/VirtualBox)
  • EuroLinux 9 Container on the Docker Hub
  • EuroLinux 9 Container on the Quay.io
"},{"location":"release-notes/9.4/#additional-resources","title":"Additional resources","text":"
  • Download EuroLinux ISO
  • Download EuroLinux ISO secondary download
  • EuroLinux universal migration scripts
  • EuroLinux Public Request for Change and Bug Tracker
  • Red Hat 9.4 Release Notes parts of our release notes are loosely based on this document.
"},{"location":"release-notes/ELD/","title":"EuroLinux 9 Desktop","text":"

EuroLinux Desktop is a novelty in the operating system market. It combines the look and functionality of Windows\u00ae and macOS\u00ae with the reliability and security of a server-based Enterprise Linux distribution.

"},{"location":"release-notes/ELD/#overview","title":"Overview","text":"

EuroLinux Desktop is built upon the source code of Red Hat\u00ae Enterprise Linux\u00ae 9. However, it includes a number of changes to the user interface. These primarily concern the system's appearance and usability. GNOME extensions have been used for this purpose. In EuroLinux Desktop, they are pre-configured and available immediately after installation - \"out of the box.\" In addition, the Polish language version of EuroLinux Desktop fills in the gaps in the Polish translations of the extensions and GNOME.

"},{"location":"release-notes/ELD/#appearance-features","title":"Appearance & Features","text":"

In EuroLinux Desktop, there is a translucent dock (taskbar) at the bottom of the screen. It stores icons for favorite applications, notifications and running programs, a button that displays icons for all applications in high magnification, as well as date and time information. It is possible to change the position of the bar to the right, left or top of the desktop, as well as to customize it extensively. The user can customize its height, length, transparency, color, icon spacing and size. The system allows icons to be placed on the desktop as standard, and provides a window maximization and minimization function.

EuroLinux Desktop disables the overview mode and the hotcorner function, which displays the preview mode when you hover the mouse over the top left corner of the screen. When you right-click on the wallpaper, additional menu items appear (including New Text Document). Notification icons from instant messaging or email programs have also been added. EuroLinux Desktop lets you switch day/night themes with a single click on the moon icon in the dock, and allows you to set a schedule for automatic theme switching based on the time of day.

"},{"location":"release-notes/ELD/#multimedia","title":"Multimedia","text":"

EuroLinux Desktop supports many media file formats (mp3, mpg, wma, ts, opus, ogg, mp4, flac, aiff, acc, ac3, avi), as well as the open codecs used for the popular mkv (Matroska) video files. Each of these formats can be run in the default Totem/Videos system player.

"},{"location":"release-notes/ELD/#office-suite","title":"Office Suite","text":"

EuroLinux Desktop includes the LibreOffice suite of office applications. It includes a word processor, spreadsheet, presentation editor, vector graphics editor, mathematical formula editor and relational database management system.

"},{"location":"release-notes/ELD/#software","title":"Software","text":"

EuroLinux Desktop has been integrated with the Flathub repository, providing easy access to more than 2,000 free applications. They can be downloaded from the Software application and installed with a single click. The system also supports applications in AppImage format, the use of which is similar to programs with .exe or .msi extensions. However, in the case of EuroLinux Desktop, the AppImage application is always run from a non-privileged user. The system also allows the use of applications designed for Windows\u00ae, thanks to Steam\u00ae, Lutris or Wine.

"}]} \ No newline at end of file diff --git a/site/sitemap.xml b/site/sitemap.xml deleted file mode 100644 index 1796265..0000000 --- a/site/sitemap.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - https://docs.euro-linux.com/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/HowTo/centos8-eol-solution/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/HowTo/create-iso-with-repositories/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/HowTo/docker/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/HowTo/els/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/HowTo/ha-rs-enable-repository/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/HowTo/install-epel-on-eurolinux/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/HowTo/migrate_to_rocky_linux/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/HowTo/mirror-eurolinux-locally/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/HowTo/vagrant-with-libvirt/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/HowTo/virtualbox/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/HowTo/z-documentation-markdown/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/jumpstarts/8-jumpstart/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/jumpstarts/9-beta-jumpstart/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/jumpstarts/9-jumpstart/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/jumpstarts/cloud-jump-start/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/jumpstarts/container-jumpstart/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/jumpstarts/rpi/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/jumpstarts/vagrant-jumpstart/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/jumpstarts/wsl/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/knowledge-base/el6-jdk-install-failure/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/knowledge-base/eurolinux-6-vault/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/knowledge-base/eurolinux-7-vault/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/knowledge-base/eurolinux-8-10-efi-problem/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/knowledge-base/eurolinux-capabilities-and-limits/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/knowledge-base/eurolinux-vault-policy/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/knowledge-base/unable-to-find-requested-software/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.10/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.3/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.4-beta/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.4/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.5-arm64/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.5/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.6-beta/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.6/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.7-beta/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.7/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.8-beta/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.8/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.9-beta/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/8.9/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/9.0-beta/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/9.0/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/9.1/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/9.2/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/9.3/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/9.4/ - 2024-09-17 - daily - - - https://docs.euro-linux.com/release-notes/ELD/ - 2024-09-17 - daily - - \ No newline at end of file diff --git a/site/sitemap.xml.gz b/site/sitemap.xml.gz deleted file mode 100644 index 9ef7cbd4fdbe95e6fd2d85ad52b2283d5019c5bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmV-m0-yaKiwFoZZs}$M|8r?{Wo=<_E_iKh0M(aGbDJ;_hVS_m9_|a+Np0xZ&KVQ%ueXMCc8=IX`al`Hq>gn z-z2}Een62tR(I>c8INJc#@26=LkRuXEE~r$^*UgudY_WpXTCXb#b>XLS)P_jbvNU3 znc(_1m9?R!y3FEvnwA=$;@}93w!=%>P?xQe zefGQ+K;d)gK1Ut>5^9lp{fGv31g;B+N;y5(O z_+Tj@C#LB6kfenS%u.admonition-title, .md-typeset .info>summary, .md-typeset .todo>.admonition-title, .md-typeset .todo>summary {background-color: #f3f2fd;} -.md-typeset .admonition.info {border-color: #4051b5;} -.md-typeset .info>.admonition-title:before, .md-typeset .info>summary:before, .md-typeset .todo>.admonition-title:before, .md-typeset .todo>summary:before {background-color: #4051b5;} -.md-typeset p {margin-top: 4px} diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 9ef7cbd4fdbe95e6fd2d85ad52b2283d5019c5bf..ed0273d8d9e626e8f0d3c7ade33fc7385a04ca8e 100644 GIT binary patch delta 15 WcmaFB@_>a+zMF%?u5lw<6cYd^PXt>4 delta 15 WcmaFB@_>a+zMF%?C~qTM6cYd@s02I!