]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Use mkosi-initrd to build the default initrd
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 8 Dec 2023 12:52:01 +0000 (13:52 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Sat, 9 Dec 2023 11:54:47 +0000 (12:54 +0100)
Instead of maintaining a separate default initrd, let's use
mkosi-initrd for the default initrd. This provides users with a more
batteries included initrd by default and saves us from having to
maintain two separate initrd definitions.

12 files changed:
mkosi-initrd [new symlink]
mkosi/__init__.py
mkosi/resources/mkosi-initrd/mkosi.conf [moved from mkosi-initrd/mkosi.conf with 100% similarity]
mkosi/resources/mkosi-initrd/mkosi.conf.d/10-arch.conf [moved from mkosi-initrd/mkosi.conf.d/10-arch.conf with 100% similarity]
mkosi/resources/mkosi-initrd/mkosi.conf.d/10-centos-fedora.conf [moved from mkosi-initrd/mkosi.conf.d/10-centos-fedora.conf with 100% similarity]
mkosi/resources/mkosi-initrd/mkosi.conf.d/10-debian-ubuntu.conf [moved from mkosi-initrd/mkosi.conf.d/10-debian-ubuntu.conf with 100% similarity]
mkosi/resources/mkosi-initrd/mkosi.conf.d/10-opensuse.conf [moved from mkosi-initrd/mkosi.conf.d/10-opensuse.conf with 100% similarity]
mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/systemd/system-preset/99-mkosi.preset [moved from mkosi-initrd/mkosi.extra/usr/lib/systemd/system-preset/99-mkosi.preset with 100% similarity]
mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/systemd/system/systemd-cryptsetup@.service.d/credential.conf [moved from mkosi-initrd/mkosi.extra/usr/lib/systemd/system/systemd-cryptsetup@.service.d/credential.conf with 100% similarity]
mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-dm.rules [moved from mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-dm.rules with 100% similarity]
mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-md.rules [moved from mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-md.rules with 100% similarity]
pyproject.toml

diff --git a/mkosi-initrd b/mkosi-initrd
new file mode 120000 (symlink)
index 0000000..73067ac
--- /dev/null
@@ -0,0 +1 @@
+mkosi/resources/mkosi-initrd
\ No newline at end of file
index 8c4ce9b3ae1867857548d12bcd185660bd19008a..28186f5885c9257798f93b98a8e2902caf2b5259 100644 (file)
@@ -1191,18 +1191,9 @@ def build_initrd(state: MkosiState) -> Path:
         *(["--local-mirror", str(state.config.local_mirror)] if state.config.local_mirror else []),
         "--incremental", str(state.config.incremental),
         "--acl", str(state.config.acl),
-        "--format", "cpio",
-        "--package", "systemd",
-        "--package", "udev",
-        "--package", "util-linux",
-        "--package", "kmod",
-        *(["--package", "dmsetup"] if state.config.distribution.is_apt_distribution() else []),
         *flatten(["--package", package] for package in state.config.initrd_packages),
         "--output", f"{state.config.output}-initrd",
         *(["--image-version", state.config.image_version] if state.config.image_version else []),
-        "--make-initrd", "yes",
-        "--bootable", "no",
-        "--manifest-format", "",
         *(
             ["--source-date-epoch", str(state.config.source_date_epoch)]
             if state.config.source_date_epoch is not None else
@@ -1216,21 +1207,21 @@ def build_initrd(state: MkosiState) -> Path:
         *(["--root-password", rootpwopt] if rootpwopt else []),
         *([f"--environment={k}='{v}'" for k, v in state.config.environment.items()]),
         *(["-f"] * state.args.force),
-        "build",
     ]
 
-    args, [config] = parse_config(cmdline)
+    with resource_path(mkosi.resources) as r:
+        args, [config] = parse_config(cmdline + ["--include", os.fspath(r / "mkosi-initrd"), "build"])
 
-    config = dataclasses.replace(config, image="default-initrd")
-    assert config.output_dir
+        config = dataclasses.replace(config, image="default-initrd")
+        assert config.output_dir
 
-    config.output_dir.mkdir(exist_ok=True)
+        config.output_dir.mkdir(exist_ok=True)
 
-    if (config.output_dir / config.output).exists():
-        return config.output_dir / config.output
+        if (config.output_dir / config.output).exists():
+            return config.output_dir / config.output
 
-    with complete_step("Building initrd"):
-        build_image(args, config)
+        with complete_step("Building default initrd"):
+            build_image(args, config)
 
     return config.output_dir / config.output
 
index c7a7389875c05d93742b4fdaec2851a2854e7ff8..8f46a9ebd635b2c24885afe4ced418a364014a5c 100644 (file)
@@ -30,7 +30,7 @@ packages = [
 ]
 
 [tool.setuptools.package-data]
-"*" = ["*.conf", "mkosi.md", "mkosi.1"]
+"mkosi.resources" = ["repart/**/*", "mkosi.md", "mkosi.1", "mkosi-initrd/**/*"]
 
 [tool.isort]
 profile = "black"