From 569bbc1f4306c5a11f75427ab8d3890e7c1139d8 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Thu, 8 Jun 2023 16:32:24 +0200 Subject: [PATCH 1/5] mkosi: Add socat to the final image Useful for debugging vsock stuff --- mkosi.presets/20-final/mkosi.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/mkosi.presets/20-final/mkosi.conf b/mkosi.presets/20-final/mkosi.conf index bb158eb059..1277ad4034 100644 --- a/mkosi.presets/20-final/mkosi.conf +++ b/mkosi.presets/20-final/mkosi.conf @@ -26,6 +26,7 @@ Packages= openssl qrencode sed + socat strace tmux tree From 63e5ee409623e989bac850041bd33e209bc6ccd5 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Mon, 12 Jun 2023 14:40:54 +0200 Subject: [PATCH 2/5] mkosi: Add bpftool to final image Useful for debugging bpf. --- mkosi.presets/20-final/mkosi.conf.d/10-arch.conf | 1 + mkosi.presets/20-final/mkosi.conf.d/10-centos-fedora.conf | 1 + mkosi.presets/20-final/mkosi.conf.d/10-debian.conf | 1 + mkosi.presets/20-final/mkosi.conf.d/10-opensuse.conf | 1 + mkosi.presets/20-final/mkosi.conf.d/10-ubuntu.conf | 2 ++ 5 files changed, 6 insertions(+) diff --git a/mkosi.presets/20-final/mkosi.conf.d/10-arch.conf b/mkosi.presets/20-final/mkosi.conf.d/10-arch.conf index b0bbcf0c6a..0b15677ff2 100644 --- a/mkosi.presets/20-final/mkosi.conf.d/10-arch.conf +++ b/mkosi.presets/20-final/mkosi.conf.d/10-arch.conf @@ -5,6 +5,7 @@ Distribution=arch [Content] Packages= + bpf btrfs-progs compsize dhcp diff --git a/mkosi.presets/20-final/mkosi.conf.d/10-centos-fedora.conf b/mkosi.presets/20-final/mkosi.conf.d/10-centos-fedora.conf index f22aed3700..cb68c8dd1a 100644 --- a/mkosi.presets/20-final/mkosi.conf.d/10-centos-fedora.conf +++ b/mkosi.presets/20-final/mkosi.conf.d/10-centos-fedora.conf @@ -6,6 +6,7 @@ Distribution=|fedora [Content] Packages= + bpftool cryptsetup dhcp-server dnf diff --git a/mkosi.presets/20-final/mkosi.conf.d/10-debian.conf b/mkosi.presets/20-final/mkosi.conf.d/10-debian.conf index 3eb7a5453e..d4cd53e6f2 100644 --- a/mkosi.presets/20-final/mkosi.conf.d/10-debian.conf +++ b/mkosi.presets/20-final/mkosi.conf.d/10-debian.conf @@ -5,4 +5,5 @@ Distribution=debian [Content] Packages= + bpftool linux-image-cloud-amd64 diff --git a/mkosi.presets/20-final/mkosi.conf.d/10-opensuse.conf b/mkosi.presets/20-final/mkosi.conf.d/10-opensuse.conf index 54b79e06d1..60a2b6dbfc 100644 --- a/mkosi.presets/20-final/mkosi.conf.d/10-opensuse.conf +++ b/mkosi.presets/20-final/mkosi.conf.d/10-opensuse.conf @@ -5,6 +5,7 @@ Distribution=opensuse [Content] Packages= + bpftool btrfs-progs cryptsetup dbus-broker diff --git a/mkosi.presets/20-final/mkosi.conf.d/10-ubuntu.conf b/mkosi.presets/20-final/mkosi.conf.d/10-ubuntu.conf index e677797c73..3290987824 100644 --- a/mkosi.presets/20-final/mkosi.conf.d/10-ubuntu.conf +++ b/mkosi.presets/20-final/mkosi.conf.d/10-ubuntu.conf @@ -8,3 +8,5 @@ Packages= # We would like to use linux-image-kvm but it does not have support for dm-verity # See https://bugs.launchpad.net/ubuntu/+source/linux-meta-kvm/+bug/2019040. linux-image-generic + linux-tools-common + linux-tools-generic From 33d960cbeda69ff962b4870b5ece605eaad979d7 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Thu, 8 Jun 2023 16:33:00 +0200 Subject: [PATCH 3/5] mkosi: Make sure we build custom kernels with EROFS support --- mkosi.kernel.config | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mkosi.kernel.config b/mkosi.kernel.config index f6141370ac..7b0602f3b0 100644 --- a/mkosi.kernel.config +++ b/mkosi.kernel.config @@ -51,6 +51,7 @@ CONFIG_EFI_MIXED=y CONFIG_EFI_STUB=y CONFIG_EFI_ZBOOT=y CONFIG_EFI=y +CONFIG_EROFS_FS=y CONFIG_EXPERT=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y @@ -98,6 +99,7 @@ CONFIG_IP6_NF_TARGET_REJECT=y CONFIG_ISO9660_FS=y CONFIG_KEXEC=y CONFIG_KPROBES=y +CONFIG_KSM=y CONFIG_LOAD_UEFI_KEYS=y CONFIG_MAC80211=y CONFIG_MAGIC_SYSRQ=y @@ -202,7 +204,6 @@ CONFIG_X86_MSR=y CONFIG_XFRM_USER=y CONFIG_XFS_FS=y CONFIG_XFS_POSIX_ACL=y -CONFIG_KSM=y # CONFIG_WIRELESS is not set # CONFIG_WLAN is not set From abeecde2426ce1834bca948d8ae652dd64db5691 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Thu, 8 Jun 2023 17:49:21 +0200 Subject: [PATCH 4/5] mkosi: Update to latest We update our configuration to replace the removed RepositoryDirectories= option with the new PackageManagerTrees= option. --- .github/workflows/mkosi.yml | 2 +- mkosi.conf.d/11-centos-8/mkosi.conf | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml index b9ccd02c3a..1d71471a90 100644 --- a/.github/workflows/mkosi.yml +++ b/.github/workflows/mkosi.yml @@ -76,7 +76,7 @@ jobs: steps: - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab - - uses: systemd/mkosi@8fde39857993c2120bcc6e480dab9fbb47dc2a7e + - uses: systemd/mkosi@87a6b70ea9ab529b95fc91306fc8151175999dca - name: Configure run: | diff --git a/mkosi.conf.d/11-centos-8/mkosi.conf b/mkosi.conf.d/11-centos-8/mkosi.conf index cde54e9e6e..6b6ab8cccd 100644 --- a/mkosi.conf.d/11-centos-8/mkosi.conf +++ b/mkosi.conf.d/11-centos-8/mkosi.conf @@ -3,3 +3,6 @@ [Match] Distribution=centos Release=8 + +[Distribution] +PackageManagerTrees=mkosi.reposdir:/etc/yum.repos.d From 6aca147f82c6a9fb13c980f504fdade19a5686aa Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Thu, 8 Jun 2023 17:50:05 +0200 Subject: [PATCH 5/5] mkosi: Remove explicit /testok check vsock should work properly after the latest release of mkosi. But to make sure it works, let's exit with 123 in case of success and check for that in Github Actions. --- .github/workflows/mkosi.yml | 8 ++------ .../usr/lib/systemd/mkosi-check-and-shutdown.sh | 6 +++--- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml index 1d71471a90..2b5f204f7a 100644 --- a/.github/workflows/mkosi.yml +++ b/.github/workflows/mkosi.yml @@ -121,11 +121,7 @@ jobs: run: mkosi --debug - name: Boot ${{ matrix.distro }} systemd-nspawn - run: sudo mkosi --debug boot + run: test "$(sudo mkosi --debug boot 1>&2; echo $?)" -eq 123 - name: Boot ${{ matrix.distro }} QEMU - run: timeout -k 30 10m mkosi --debug qemu - - # vsock in Github Actions with qemu is broken so for now we check for failures manually. - - name: Check ${{ matrix.distro }} QEMU - run: sudo mkosi shell bash -c "[[ -e /testok ]] || { cat /failed-services; exit 1; }" + run: timeout -k 30 10m test "$(mkosi --debug qemu 1>&2; echo $?)" -eq 123 diff --git a/mkosi.presets/20-final/mkosi.extra/usr/lib/systemd/mkosi-check-and-shutdown.sh b/mkosi.presets/20-final/mkosi.extra/usr/lib/systemd/mkosi-check-and-shutdown.sh index b77d52d828..30fb30fde7 100755 --- a/mkosi.presets/20-final/mkosi.extra/usr/lib/systemd/mkosi-check-and-shutdown.sh +++ b/mkosi.presets/20-final/mkosi.extra/usr/lib/systemd/mkosi-check-and-shutdown.sh @@ -1,8 +1,6 @@ #!/bin/bash -eux # SPDX-License-Identifier: LGPL-2.1-or-later -rm -f /testok - # TODO: Figure out why this is failing systemctl reset-failed systemd-vconsole-setup.service @@ -20,4 +18,6 @@ fi # Exit with non-zero EC if the /failed-services file is not empty (we have -e set) [[ ! -s /failed-services ]] -touch /testok +# On success, exit with 123 so that we can check that we receive the actual exit code from the script on the +# host. +exit 123