From e739a10625f45e700cfe4251d236e86f807a3466 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sat, 14 Feb 2026 10:36:09 +0100 Subject: [PATCH 1/3] mkosi: update mkosi ref to d6ddc66acb05d3d761d3f600c6b029319db9ae95 * d6ddc66acb Use python3.12 as interpreter in CentOS Stream 9 zipapp * 89d876c86f tests: fix running pytest on undetected distro * 61a47eeb1c centos: Fix EPEL repositories for RHEL 10 * e5aa19e2bc oci: allow user defined labels and annotations * 1680fc5789 man: be more precise that the tools tree distribution is decided by the host distribution * 7025b8e67d Support resizing output image --- .github/workflows/coverage.yml | 2 +- .github/workflows/linter.yml | 2 +- .github/workflows/mkosi.yml | 2 +- mkosi/mkosi.conf | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 4b5e6fe759..abcba56a40 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -25,7 +25,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - - uses: systemd/mkosi@14d2d37a1923c03062f55454b2b61d0c64db6238 + - uses: systemd/mkosi@d6ddc66acb05d3d761d3f600c6b029319db9ae95 # Freeing up disk space with rm -rf can take multiple minutes. Since we don't need the extra free space # immediately, we remove the files in the background. However, we first move them to a different location diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index c20aceeda9..4ec82533b9 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -39,7 +39,7 @@ jobs: GITHUB_ACTIONS_CONFIG_FILE: actionlint.yml ENABLE_GITHUB_PULL_REQUEST_SUMMARY_COMMENT: false - - uses: systemd/mkosi@14d2d37a1923c03062f55454b2b61d0c64db6238 + - uses: systemd/mkosi@d6ddc66acb05d3d761d3f600c6b029319db9ae95 - name: Check that tabs are not used in Python code run: sh -c '! git grep -P "\\t" -- src/core/generate-bpf-delegate-configs.py src/boot/generate-hwids-section.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py' diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml index 4b4c0f00c1..78246964ef 100644 --- a/.github/workflows/mkosi.yml +++ b/.github/workflows/mkosi.yml @@ -167,7 +167,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - - uses: systemd/mkosi@14d2d37a1923c03062f55454b2b61d0c64db6238 + - uses: systemd/mkosi@d6ddc66acb05d3d761d3f600c6b029319db9ae95 # Freeing up disk space with rm -rf can take multiple minutes. Since we don't need the extra free space # immediately, we remove the files in the background. However, we first move them to a different location diff --git a/mkosi/mkosi.conf b/mkosi/mkosi.conf index a52f3be22f..5680ec44f4 100644 --- a/mkosi/mkosi.conf +++ b/mkosi/mkosi.conf @@ -1,7 +1,7 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Config] -MinimumVersion=commit:14d2d37a1923c03062f55454b2b61d0c64db6238 +MinimumVersion=commit:d6ddc66acb05d3d761d3f600c6b029319db9ae95 Dependencies= initrd minimal-base From 894477e6c11a61ad3820d8e29caecaa1da2d12cd Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Fri, 13 Feb 2026 22:19:28 +0100 Subject: [PATCH 2/3] mkosi: Use mkosi.initrd.conf A more straightforward way to extend the default initrd rather than using a subimage. This mainly allows us to take advantage of mkosi automatically figuring out whether the initrd needs to be built or not, speeding up builds when building directory images as the initrd can be skipped in that case. --- mkosi/mkosi.conf | 2 -- mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.conf | 1 - .../initrd => mkosi.initrd.conf}/mkosi.conf.d/arch.conf | 0 .../initrd => mkosi.initrd.conf}/mkosi.conf.d/build.conf | 0 .../mkosi.conf.d/centos-fedora.conf | 0 .../mkosi.conf.d/debian-ubuntu.conf | 0 .../initrd => mkosi.initrd.conf}/mkosi.conf.d/fedora.conf | 0 .../initrd => mkosi.initrd.conf}/mkosi.conf.d/opensuse.conf | 0 .../initrd => mkosi.initrd.conf}/mkosi.extra/shutdown | 0 .../mkosi.extra/usr/lib/encrypted-var.repart.d/00-root.conf | 0 .../mkosi.extra/usr/lib/systemd/system/encrypted-var.service | 0 .../mkosi.extra/usr/lib/systemd/system/initrd-run-mount.service | 0 .../mkosi.extra/usr/lib/systemd/system/initrdcred.service | 0 .../systemd-pcrphase-initrd.service.d/exit-on-failure.conf | 0 .../exit-on-failure.conf | 0 15 files changed, 3 deletions(-) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.conf (93%) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.conf.d/arch.conf (100%) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.conf.d/build.conf (100%) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.conf.d/centos-fedora.conf (100%) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.conf.d/debian-ubuntu.conf (100%) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.conf.d/fedora.conf (100%) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.conf.d/opensuse.conf (100%) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.extra/shutdown (100%) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.extra/usr/lib/encrypted-var.repart.d/00-root.conf (100%) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.extra/usr/lib/systemd/system/encrypted-var.service (100%) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.extra/usr/lib/systemd/system/initrd-run-mount.service (100%) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.extra/usr/lib/systemd/system/initrdcred.service (100%) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.extra/usr/lib/systemd/system/systemd-pcrphase-initrd.service.d/exit-on-failure.conf (100%) rename mkosi/{mkosi.images/initrd => mkosi.initrd.conf}/mkosi.extra/usr/lib/systemd/system/systemd-pcrphase-storage-target-mode.service.d/exit-on-failure.conf (100%) diff --git a/mkosi/mkosi.conf b/mkosi/mkosi.conf index 5680ec44f4..4e5be6718c 100644 --- a/mkosi/mkosi.conf +++ b/mkosi/mkosi.conf @@ -3,7 +3,6 @@ [Config] MinimumVersion=commit:d6ddc66acb05d3d761d3f600c6b029319db9ae95 Dependencies= - initrd minimal-base minimal-0 minimal-1 @@ -58,7 +57,6 @@ ExtraTrees= %O/minimal-base:/usr/share/TEST-13-NSPAWN-container-template %O/initrd:/exitrd -Initrds=%O/initrd KernelInitrdModules=default # Disable relabeling by default as it only matters for TEST-06-SELINUX, takes a non-trivial amount of time diff --git a/mkosi/mkosi.images/initrd/mkosi.conf b/mkosi/mkosi.initrd.conf/mkosi.conf similarity index 93% rename from mkosi/mkosi.images/initrd/mkosi.conf rename to mkosi/mkosi.initrd.conf/mkosi.conf index 2b731d4397..1c73f3a328 100644 --- a/mkosi/mkosi.images/initrd/mkosi.conf +++ b/mkosi/mkosi.initrd.conf/mkosi.conf @@ -2,7 +2,6 @@ [Include] Include= - mkosi-initrd %D/mkosi/mkosi.sanitizers %D/mkosi/mkosi.coverage diff --git a/mkosi/mkosi.images/initrd/mkosi.conf.d/arch.conf b/mkosi/mkosi.initrd.conf/mkosi.conf.d/arch.conf similarity index 100% rename from mkosi/mkosi.images/initrd/mkosi.conf.d/arch.conf rename to mkosi/mkosi.initrd.conf/mkosi.conf.d/arch.conf diff --git a/mkosi/mkosi.images/initrd/mkosi.conf.d/build.conf b/mkosi/mkosi.initrd.conf/mkosi.conf.d/build.conf similarity index 100% rename from mkosi/mkosi.images/initrd/mkosi.conf.d/build.conf rename to mkosi/mkosi.initrd.conf/mkosi.conf.d/build.conf diff --git a/mkosi/mkosi.images/initrd/mkosi.conf.d/centos-fedora.conf b/mkosi/mkosi.initrd.conf/mkosi.conf.d/centos-fedora.conf similarity index 100% rename from mkosi/mkosi.images/initrd/mkosi.conf.d/centos-fedora.conf rename to mkosi/mkosi.initrd.conf/mkosi.conf.d/centos-fedora.conf diff --git a/mkosi/mkosi.images/initrd/mkosi.conf.d/debian-ubuntu.conf b/mkosi/mkosi.initrd.conf/mkosi.conf.d/debian-ubuntu.conf similarity index 100% rename from mkosi/mkosi.images/initrd/mkosi.conf.d/debian-ubuntu.conf rename to mkosi/mkosi.initrd.conf/mkosi.conf.d/debian-ubuntu.conf diff --git a/mkosi/mkosi.images/initrd/mkosi.conf.d/fedora.conf b/mkosi/mkosi.initrd.conf/mkosi.conf.d/fedora.conf similarity index 100% rename from mkosi/mkosi.images/initrd/mkosi.conf.d/fedora.conf rename to mkosi/mkosi.initrd.conf/mkosi.conf.d/fedora.conf diff --git a/mkosi/mkosi.images/initrd/mkosi.conf.d/opensuse.conf b/mkosi/mkosi.initrd.conf/mkosi.conf.d/opensuse.conf similarity index 100% rename from mkosi/mkosi.images/initrd/mkosi.conf.d/opensuse.conf rename to mkosi/mkosi.initrd.conf/mkosi.conf.d/opensuse.conf diff --git a/mkosi/mkosi.images/initrd/mkosi.extra/shutdown b/mkosi/mkosi.initrd.conf/mkosi.extra/shutdown similarity index 100% rename from mkosi/mkosi.images/initrd/mkosi.extra/shutdown rename to mkosi/mkosi.initrd.conf/mkosi.extra/shutdown diff --git a/mkosi/mkosi.images/initrd/mkosi.extra/usr/lib/encrypted-var.repart.d/00-root.conf b/mkosi/mkosi.initrd.conf/mkosi.extra/usr/lib/encrypted-var.repart.d/00-root.conf similarity index 100% rename from mkosi/mkosi.images/initrd/mkosi.extra/usr/lib/encrypted-var.repart.d/00-root.conf rename to mkosi/mkosi.initrd.conf/mkosi.extra/usr/lib/encrypted-var.repart.d/00-root.conf diff --git a/mkosi/mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/encrypted-var.service b/mkosi/mkosi.initrd.conf/mkosi.extra/usr/lib/systemd/system/encrypted-var.service similarity index 100% rename from mkosi/mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/encrypted-var.service rename to mkosi/mkosi.initrd.conf/mkosi.extra/usr/lib/systemd/system/encrypted-var.service diff --git a/mkosi/mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/initrd-run-mount.service b/mkosi/mkosi.initrd.conf/mkosi.extra/usr/lib/systemd/system/initrd-run-mount.service similarity index 100% rename from mkosi/mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/initrd-run-mount.service rename to mkosi/mkosi.initrd.conf/mkosi.extra/usr/lib/systemd/system/initrd-run-mount.service diff --git a/mkosi/mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/initrdcred.service b/mkosi/mkosi.initrd.conf/mkosi.extra/usr/lib/systemd/system/initrdcred.service similarity index 100% rename from mkosi/mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/initrdcred.service rename to mkosi/mkosi.initrd.conf/mkosi.extra/usr/lib/systemd/system/initrdcred.service diff --git a/mkosi/mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/systemd-pcrphase-initrd.service.d/exit-on-failure.conf b/mkosi/mkosi.initrd.conf/mkosi.extra/usr/lib/systemd/system/systemd-pcrphase-initrd.service.d/exit-on-failure.conf similarity index 100% rename from mkosi/mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/systemd-pcrphase-initrd.service.d/exit-on-failure.conf rename to mkosi/mkosi.initrd.conf/mkosi.extra/usr/lib/systemd/system/systemd-pcrphase-initrd.service.d/exit-on-failure.conf diff --git a/mkosi/mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/systemd-pcrphase-storage-target-mode.service.d/exit-on-failure.conf b/mkosi/mkosi.initrd.conf/mkosi.extra/usr/lib/systemd/system/systemd-pcrphase-storage-target-mode.service.d/exit-on-failure.conf similarity index 100% rename from mkosi/mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/systemd-pcrphase-storage-target-mode.service.d/exit-on-failure.conf rename to mkosi/mkosi.initrd.conf/mkosi.extra/usr/lib/systemd/system/systemd-pcrphase-storage-target-mode.service.d/exit-on-failure.conf From 7a70c323681b091328fcf6c9ca3104c7958a1331 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Fri, 13 Feb 2026 22:21:35 +0100 Subject: [PATCH 3/3] mkosi: Mark minimal images as Incremental=relaxed Building these over and over again is extremely wasteful. Let's just build them once and not touch them again unless -ff is specified or their cache is out-of-date, which is exactly what Incremental=relaxed does. This means mkosi.extra/ and such changes won't be picked up for these anymore unless -ff is used, but that slight annoyance is totally outweighed by the time saved building the images. --- mkosi/mkosi.images/minimal-0/mkosi.conf | 1 + mkosi/mkosi.images/minimal-1/mkosi.conf | 1 + mkosi/mkosi.images/minimal-base/mkosi.conf | 1 + mkosi/mkosi.images/minimal-base/mkosi.conf.d/arch.conf | 3 --- .../mkosi.images/minimal-base/mkosi.conf.d/centos-fedora.conf | 3 --- .../mkosi.images/minimal-base/mkosi.conf.d/debian-ubuntu.conf | 4 ---- mkosi/mkosi.images/minimal-base/mkosi.conf.d/opensuse.conf | 4 ---- 7 files changed, 3 insertions(+), 14 deletions(-) diff --git a/mkosi/mkosi.images/minimal-0/mkosi.conf b/mkosi/mkosi.images/minimal-0/mkosi.conf index 5d6717f897..0d55105c70 100644 --- a/mkosi/mkosi.images/minimal-0/mkosi.conf +++ b/mkosi/mkosi.images/minimal-0/mkosi.conf @@ -9,6 +9,7 @@ SplitArtifacts=yes [Build] Environment=SYSTEMD_REPART_OVERRIDE_FSTYPE=squashfs +Incremental=relaxed [Content] BaseTrees=%O/minimal-base diff --git a/mkosi/mkosi.images/minimal-1/mkosi.conf b/mkosi/mkosi.images/minimal-1/mkosi.conf index 5d6717f897..0d55105c70 100644 --- a/mkosi/mkosi.images/minimal-1/mkosi.conf +++ b/mkosi/mkosi.images/minimal-1/mkosi.conf @@ -9,6 +9,7 @@ SplitArtifacts=yes [Build] Environment=SYSTEMD_REPART_OVERRIDE_FSTYPE=squashfs +Incremental=relaxed [Content] BaseTrees=%O/minimal-base diff --git a/mkosi/mkosi.images/minimal-base/mkosi.conf b/mkosi/mkosi.images/minimal-base/mkosi.conf index 0a5f342c9e..8e57cd032d 100644 --- a/mkosi/mkosi.images/minimal-base/mkosi.conf +++ b/mkosi/mkosi.images/minimal-base/mkosi.conf @@ -5,6 +5,7 @@ Format=directory [Build] Environment=SYSTEMD_REQUIRED_DEPS_ONLY=1 +Incremental=relaxed [Content] Bootable=no diff --git a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/arch.conf b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/arch.conf index c7a1db67a8..6d77d2305d 100644 --- a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/arch.conf +++ b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/arch.conf @@ -10,9 +10,6 @@ Packages= iproute nmap -VolatilePackages= - systemd-libs - RemoveFiles= # Arch Linux doesn't split their gcc-libs package so we manually remove # unneeded stuff here to make sure it doesn't end up in the image. diff --git a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/centos-fedora.conf b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/centos-fedora.conf index 3338824272..53cc68d794 100644 --- a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/centos-fedora.conf +++ b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/centos-fedora.conf @@ -11,6 +11,3 @@ Packages= iproute iproute-tc nmap-ncat - -VolatilePackages= - systemd-libs diff --git a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/debian-ubuntu.conf b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/debian-ubuntu.conf index acbcea7cd2..8b148d8422 100644 --- a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/debian-ubuntu.conf +++ b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/debian-ubuntu.conf @@ -12,7 +12,3 @@ Packages= iproute2 mount ncat - -VolatilePackages= - libsystemd0 - libudev1 diff --git a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/opensuse.conf b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/opensuse.conf index 811b49276e..8b38a769a1 100644 --- a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/opensuse.conf +++ b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/opensuse.conf @@ -15,7 +15,3 @@ Packages= patterns-base-minimal_base sed xz - -VolatilePackages= - libsystemd0 - libudev1