1
0
mirror of https://github.com/systemd/systemd synced 2026-04-21 22:44:51 +02:00

Compare commits

..

2 Commits

Author SHA1 Message Date
Daan De Meyer
24a0df5c3c mkosi: Add centos_epel config
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 0dd39c20a4
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.
2022-02-25 16:17:29 +00:00
Daan De Meyer
6b2ab8fc5c mkosi: Remove Arch nspawn workaround
This has been fixed so the workaround can be removed.
2022-02-25 14:54:03 +00:00
2 changed files with 121 additions and 21 deletions

View File

@ -31,38 +31,46 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
distro: include:
- arch - distro: arch
- debian release: rolling
- ubuntu - distro: debian
- fedora release: testing
- opensuse - 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: steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
- uses: systemd/mkosi@30288805db1a953ea31045933adb93194f91e3da - uses: systemd/mkosi@0dd39c20a4b3a2fab6efdc54da92bffad7c7b7ca
- name: Install - name: Install
run: sudo apt-get update && sudo apt-get install --no-install-recommends python3-pexpect python3-jinja2 run: sudo apt-get update && sudo apt-get install --no-install-recommends python3-pexpect python3-jinja2
- name: Configure - name: Configure
run: echo -e "[Distribution]\nDistribution=${{ matrix.distro }}\n" >mkosi.default
# Ubuntu's systemd-nspawn doesn't support faccessat2() syscall, which is
# required, since current Arch's glibc implements faccessat() via faccessat2().
- name: Update systemd-nspawn
if: ${{ matrix.distro == 'arch' }}
run: | run: |
echo "deb-src http://archive.ubuntu.com/ubuntu/ $(lsb_release -cs) main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list tee mkosi.default <<- EOF
sudo apt update [Distribution]
sudo apt build-dep systemd Distribution=${{ matrix.distro }}
meson build Release=${{ matrix.release }}
ninja -C build
sudo ln -svf "$PWD/build/systemd-nspawn" "$(which systemd-nspawn)" [Content]
systemd-nspawn --version Environment=CI_BUILD=1
[Output]
KernelCommandLine=${{ env.KERNEL_CMDLINE }}
EOF
- name: Build ${{ matrix.distro }} - 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 - name: Show ${{ matrix.distro }} image summary
run: ./.github/workflows/run_mkosi.sh summary run: ./.github/workflows/run_mkosi.sh summary
@ -73,8 +81,14 @@ jobs:
- name: Check ${{ matrix.distro }} systemd-nspawn - name: Check ${{ matrix.distro }} systemd-nspawn
run: ./.github/workflows/run_mkosi.sh shell bash -c "[[ -e /testok ]] || { cat /failed-services; exit 1; }" 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 - name: Boot ${{ matrix.distro }} QEMU
if: ${{ matrix.distro != 'centos_epel' }}
run: ./.github/workflows/run_mkosi.sh qemu run: ./.github/workflows/run_mkosi.sh qemu
- name: Check ${{ matrix.distro }} 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; }" run: ./.github/workflows/run_mkosi.sh shell bash -c "[[ -e /testok ]] || { cat /failed-services; exit 1; }"

View File

@ -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