This allows us to install everything in the same dnf command instead
of having to use a prepare script to run dnf from within the image.
This is a hack until mkosi supports release specific dropin files.
# This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
# Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.
+# We use python3*dist() throughout this file because we need to make sure the python3.9dis() packages are
+# installed on CentOS Stream 8. mkosi doesn't support release specific configuration yet so we use the globs
+# to get the necessary packages on both CentOS Stream 8 and CentOS Stream 9.
+
[Distribution]
Distribution=centos
Repositories=epel
polkit
popt
procps-ng
- python3dist(pefile)
+ python3*dist(pefile)
+ python3*dist(pluggy) # python39-pluggy is a pytest dependency that's not installed for some reason.
+ python3*dist(pytest)
+ python39
quota
tpm2-tss
vim-common
pkgconfig(tss2-rc)
pkgconfig(valgrind)
pkgconfig(xkbcommon)
- python3dist(docutils)
- python3dist(jinja2)
- python3dist(lxml)
- python3dist(pytest)
+ python3*dist(docutils)
+ python3*dist(jinja2)
+ python3*dist(lxml)
set -e
if [ "$(grep '^ID=' /etc/os-release)" = "ID=\"centos\"" ] && [ "$(grep '^VERSION=' /etc/os-release)" = "VERSION=\"8\"" ]; then
- # python39-pluggy is a pytest dependency that's not installed for some reason.
- dnf \
- -y \
- --enablerepo=powertools \
- --setopt=powertools.module_hotfixes=true \
- install \
- python39 \
- python39-pefile \
- python39-jinja2 \
- python39-pytest \
- python39-pluggy
alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
alternatives --set python3 /usr/bin/python3.9
fi