]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
mkosi: Add centos_epel config
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 4 Feb 2022 11:10:33 +0000 (11:10 +0000)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 25 Feb 2022 16:17:29 +0000 (16:17 +0000)
Now that mkosi has centos-stream 9 support, let's add a config in
the repo so that the mkosi CI tests that configuration as well.

Centos doesn't support btrfs so we use xfs instead. For some reason,
building --hostonly-initrd centos images breaks the qemu boot so I
disabled that option for centos.

We update the mkosi commit hash to https://github.com/systemd/mkosi/commit/0dd39c20a4b3a2fab6efdc54da92bffad7c7b7ca
which adds the PowerTools repo to CentOS Stream 8 which is required
to make all the necessary packages required to build systemd on
CentOS Stream 8 available.

.github/workflows/mkosi.yml
mkosi.default.d/centos_epel/10-mkosi.centos_epel [new file with mode: 0644]

index f24c313622f8f2999c7174b0d47386ba3b347f4f..54b5aac4ccd6d52809e81ccc85462dd0b9128974 100644 (file)
@@ -31,25 +31,46 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        distro:
-          - arch
-          - debian
-          - ubuntu
-          - fedora
-          - opensuse
+        include:
+          - distro: arch
+            release: rolling
+          - distro: debian
+            release: testing
+          - distro: ubuntu
+            release: focal
+          - distro: fedora
+            release: "35"
+          - distro: opensuse
+            release: tumbleweed
+          - distro: centos_epel
+            release: 8-stream
+          # TODO: Enable once https://github.com/systemd/mkosi/pull/915#issuecomment-1049035316 is fixed.
+          # - distro: centos_epel
+          #   release: 9-stream
 
     steps:
     - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
-    - uses: systemd/mkosi@30288805db1a953ea31045933adb93194f91e3da
+    - uses: systemd/mkosi@0dd39c20a4b3a2fab6efdc54da92bffad7c7b7ca
 
     - name: Install
       run: sudo apt-get update && sudo apt-get install --no-install-recommends python3-pexpect python3-jinja2
 
     - name: Configure
-      run: echo -e "[Distribution]\nDistribution=${{ matrix.distro }}\n" >mkosi.default
+      run: |
+        tee mkosi.default <<- EOF
+        [Distribution]
+        Distribution=${{ matrix.distro }}
+        Release=${{ matrix.release }}
+
+        [Content]
+        Environment=CI_BUILD=1
+
+        [Output]
+        KernelCommandLine=${{ env.KERNEL_CMDLINE }}
+        EOF
 
     - name: Build ${{ matrix.distro }}
-      run: ./.github/workflows/run_mkosi.sh --build-environment=CI_BUILD=1 --kernel-command-line "${{ env.KERNEL_CMDLINE }}" build
+      run: ./.github/workflows/run_mkosi.sh build
 
     - name: Show ${{ matrix.distro }} image summary
       run: ./.github/workflows/run_mkosi.sh summary
@@ -60,8 +81,14 @@ jobs:
     - name: Check ${{ matrix.distro }} systemd-nspawn
       run: ./.github/workflows/run_mkosi.sh shell bash -c "[[ -e /testok ]] || { cat /failed-services; exit 1; }"
 
+      # TODO: Remove CentOS exclusion once Ubuntu 22.04 is available in GA.
+      # See https://github.com/systemd/systemd/pull/22417 and https://github.com/systemd/mkosi/pull/907 for
+      # more information.
+
     - name: Boot ${{ matrix.distro }} QEMU
+      if: ${{ matrix.distro != 'centos_epel' }}
       run: ./.github/workflows/run_mkosi.sh qemu
 
     - name: Check ${{ matrix.distro }} QEMU
+      if: ${{ matrix.distro != 'centos_epel' }}
       run: ./.github/workflows/run_mkosi.sh shell bash -c "[[ -e /testok ]] || { cat /failed-services; exit 1; }"
diff --git a/mkosi.default.d/centos_epel/10-mkosi.centos_epel b/mkosi.default.d/centos_epel/10-mkosi.centos_epel
new file mode 100644 (file)
index 0000000..cf6c74f
--- /dev/null
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+# 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.
+
+[Distribution]
+Distribution=centos_epel
+
+[Output]
+Format=gpt_xfs
+HostonlyInitrd=no
+
+[Packages]
+BuildPackages=
+        diffutils
+        docbook-style-xsl
+        findutils
+        gcc
+        gettext
+        git
+        glibc-minimal-langpack
+        gnu-efi
+        gnu-efi-devel
+        gperf
+        lz4
+        meson
+        ninja-build
+        pam-devel
+        # CentOS Stream 8 libgcrypt-devel doesn't ship a pkg-config file.
+        libgcrypt-devel
+        pkgconfig
+        pkgconfig(audit)
+        pkgconfig(blkid)
+        pkgconfig(bzip2)
+        pkgconfig(dbus-1)
+        pkgconfig(fdisk)
+        pkgconfig(gnutls)
+        pkgconfig(libacl)
+        pkgconfig(libcap)
+        pkgconfig(libcryptsetup)
+        pkgconfig(libcurl)
+        pkgconfig(libdw)
+        pkgconfig(libidn2)
+        pkgconfig(libkmod)
+        pkgconfig(liblz4)
+        pkgconfig(liblzma)
+        pkgconfig(libmicrohttpd)
+        pkgconfig(libpcre2-8)
+        pkgconfig(libqrencode)
+        pkgconfig(libseccomp)
+        pkgconfig(libselinux)
+        pkgconfig(libzstd)
+        pkgconfig(mount)
+        pkgconfig(openssl)
+        pkgconfig(p11-kit-1)
+        pkgconfig(pwquality)
+        pkgconfig(tss2-esys)
+        pkgconfig(tss2-mu)
+        pkgconfig(tss2-rc)
+        pkgconfig(valgrind)
+        pkgconfig(xkbcommon)
+        python3dist(jinja2)
+        python3dist(lxml)
+        rpm
+        tree
+        zstd
+        /usr/bin/xsltproc
+
+Packages=
+        gdb
+        nano
+        # procps-ng provides a set of useful utilities (ps, free, etc)
+        procps-ng
+        strace
+        tpm2-tss
+        less
+        netcat
+        e2fsprogs
+        # Required to run systemd-networkd-tests.py
+        python3
+        iproute
+        iproute-tc
+        dnsmasq
+        wireguard-tools
+        dhcp-server
+        kernel-modules-extra