From: Daan De Meyer Date: Thu, 7 Dec 2023 18:52:41 +0000 (+0100) Subject: mkosi: Build a directory image by default X-Git-Tag: v256-rc1~1175 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=52842bb2c50784dfb7ae10aac5797a3743980392;p=thirdparty%2Fsystemd.git mkosi: Build a directory image by default Both building and booting a directory image is much faster than building or booting a disk image so let's default to a directory image. In CI, we stick to a disk image to make sure that keeps working as well. The only extra dependency this introduces is virtiofsd which is packaged in all distributions except Debian stable. For users hacking on systemd on Debian stable, a disk image can be built by writing the following to mkosi.local.conf: ``` [Output] Format=disk ``` --- diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml index f6eddebffb5..dce515800cb 100644 --- a/.github/workflows/mkosi.yml +++ b/.github/workflows/mkosi.yml @@ -85,6 +85,10 @@ jobs: Distribution=${{ matrix.distro }} Release=${{ matrix.release }} + [Output] + # Build a disk image in CI as this logic is much more prone to breakage. + Format=disk + [Content] Environment=CI_BUILD=1 SLOW_TESTS=true diff --git a/docs/HACKING.md b/docs/HACKING.md index feec6b4537e..bd792092f79 100644 --- a/docs/HACKING.md +++ b/docs/HACKING.md @@ -56,6 +56,23 @@ $ mkosi qemu Every time you rerun the `mkosi` command a fresh image is built, incorporating all current changes you made to the project tree. +By default a directory image is built. This requires `virtiofsd` to be installed +on the host. To build a disk image instead which does not require `virtiofsd`, +add the following to `mkosi.local.conf`: + +```conf +[Output] +Format=disk +``` + +To boot in UEFI mode instead of using QEMU's direct kernel boot, add the following +to `mkosi.local.conf`: + +```conf +[Host] +QemuFirmware=uefi +``` + Putting this all together, here's a series of commands for preparing a patch for systemd: diff --git a/mkosi.conf b/mkosi.conf index b02c24cdd90..9ec4faf1225 100644 --- a/mkosi.conf +++ b/mkosi.conf @@ -18,6 +18,7 @@ Environment=ASAN_OPTIONS=verify_asan_link_order=false @Incremental=yes @QemuMem=2G @RuntimeSize=8G +ToolsTreePackages=virtiofsd KernelCommandLineExtra=systemd.crash_shell systemd.log_level=debug systemd.log_ratelimit_kmsg=0 diff --git a/mkosi.images/system/mkosi.conf b/mkosi.images/system/mkosi.conf index 6948f8eb7ce..9646bbefde0 100644 --- a/mkosi.images/system/mkosi.conf +++ b/mkosi.images/system/mkosi.conf @@ -3,6 +3,9 @@ [Config] Dependencies=base +[Output] +@Format=directory + [Content] Autologin=yes BaseTrees=../../mkosi.output/base