diff options
author | Daan De Meyer <daan.j.demeyer@gmail.com> | 2024-01-25 22:48:55 +0100 |
---|---|---|
committer | Daan De Meyer <daan.j.demeyer@gmail.com> | 2024-03-07 10:47:19 +0100 |
commit | 4d0f1451b58dbd4b94da579b800adef4f4e42c34 (patch) | |
tree | 841684bfbb83f8028c8d4ca0a9e2a125ab4dbe54 /docs/HACKING.md | |
parent | mkosi: Update to v21 (diff) | |
download | systemd-4d0f1451b58dbd4b94da579b800adef4f4e42c34.tar.xz systemd-4d0f1451b58dbd4b94da579b800adef4f4e42c34.zip |
Build distribution packages in mkosi
Instead of running meson install and hoping for the best, let's build
distribution packages from the downstream packaging specs. This gets
us the following:
- Vastly simplified mkosi scripts since we don't need a separate initrd
image anymore but can just reuse the default mkosi initrd.
- Almost everything can move to the base image as its not the basis
anymore for the initrd and as such we don't need to care about the
size anymore.
- The systemd packages that get pulled in as dependencies of other
packages get properly uninstalled and replaced with our packages that
we built instead of just installing on top of an existing systemd
installation with no guarantee that everything from that previous
installation was removed.
- Much better testing coverage as what we're testing is much closer
to what will actually be deployed in distributions.
- Immediate feedback if something we change breaks distribution packaging
- We get integration with the distribution for free as we'll automatically
use the proper directories and such instead of having to hack this
into a mkosi build script.
- ...
Diffstat (limited to 'docs/HACKING.md')
-rw-r--r-- | docs/HACKING.md | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/docs/HACKING.md b/docs/HACKING.md index 270c39b587..1fbbed91d1 100644 --- a/docs/HACKING.md +++ b/docs/HACKING.md @@ -32,16 +32,16 @@ run the relevant tool from the build directory. For some components (most importantly, systemd/PID 1 itself) this is not possible, however. In order to simplify testing for cases like this we provide -a set of `mkosi` build files directly in the source tree. +a set of `mkosi` config files directly in the source tree. [mkosi](https://github.com/systemd/mkosi) is a tool for building clean OS images from an upstream distribution in combination with a fresh build of the project -in the local working directory. To make use of this, please install `mkosi` v19 -or newer using your distribution's package manager or from the -[GitHub repository](https://github.com/systemd/mkosi). `mkosi` will build an -image for the host distro by default. First, run `mkosi genkey` to generate a key -and certificate to be used for secure boot and verity signing. After that is done, -it is sufficient to type `mkosi` in the systemd project directory to generate a disk -image you can boot either in `systemd-nspawn` or in a UEFI-capable VM: +in the local working directory. To make use of this, please install the latest +version of mkosi from the [GitHub repository](https://github.com/systemd/mkosi). +`mkosi` will build an image for the host distro by default. First, run +`mkosi genkey` to generate a key and certificate to be used for secure boot and +verity signing. After that is done, it is sufficient to type `mkosi` in the +systemd project directory to generate a disk image you can boot either in +`systemd-nspawn` or in a UEFI-capable VM: ```sh $ sudo mkosi boot # nspawn still needs sudo for now |