From: Daan De Meyer Date: Fri, 8 Dec 2023 12:52:01 +0000 (+0100) Subject: Use mkosi-initrd to build the default initrd X-Git-Tag: v20~97 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=55cb5b83a9d3c695426983cfa3207e5f4c9cc71b;p=thirdparty%2Fmkosi.git Use mkosi-initrd to build the default initrd 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. --- diff --git a/mkosi-initrd b/mkosi-initrd new file mode 120000 index 000000000..73067aca7 --- /dev/null +++ b/mkosi-initrd @@ -0,0 +1 @@ +mkosi/resources/mkosi-initrd \ No newline at end of file diff --git a/mkosi/__init__.py b/mkosi/__init__.py index 8c4ce9b3a..28186f588 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -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 diff --git a/mkosi-initrd/mkosi.conf b/mkosi/resources/mkosi-initrd/mkosi.conf similarity index 100% rename from mkosi-initrd/mkosi.conf rename to mkosi/resources/mkosi-initrd/mkosi.conf diff --git a/mkosi-initrd/mkosi.conf.d/10-arch.conf b/mkosi/resources/mkosi-initrd/mkosi.conf.d/10-arch.conf similarity index 100% rename from mkosi-initrd/mkosi.conf.d/10-arch.conf rename to mkosi/resources/mkosi-initrd/mkosi.conf.d/10-arch.conf diff --git a/mkosi-initrd/mkosi.conf.d/10-centos-fedora.conf b/mkosi/resources/mkosi-initrd/mkosi.conf.d/10-centos-fedora.conf similarity index 100% rename from mkosi-initrd/mkosi.conf.d/10-centos-fedora.conf rename to mkosi/resources/mkosi-initrd/mkosi.conf.d/10-centos-fedora.conf diff --git a/mkosi-initrd/mkosi.conf.d/10-debian-ubuntu.conf b/mkosi/resources/mkosi-initrd/mkosi.conf.d/10-debian-ubuntu.conf similarity index 100% rename from mkosi-initrd/mkosi.conf.d/10-debian-ubuntu.conf rename to mkosi/resources/mkosi-initrd/mkosi.conf.d/10-debian-ubuntu.conf diff --git a/mkosi-initrd/mkosi.conf.d/10-opensuse.conf b/mkosi/resources/mkosi-initrd/mkosi.conf.d/10-opensuse.conf similarity index 100% rename from mkosi-initrd/mkosi.conf.d/10-opensuse.conf rename to mkosi/resources/mkosi-initrd/mkosi.conf.d/10-opensuse.conf diff --git a/mkosi-initrd/mkosi.extra/usr/lib/systemd/system-preset/99-mkosi.preset b/mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/systemd/system-preset/99-mkosi.preset similarity index 100% rename from mkosi-initrd/mkosi.extra/usr/lib/systemd/system-preset/99-mkosi.preset rename to mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/systemd/system-preset/99-mkosi.preset diff --git a/mkosi-initrd/mkosi.extra/usr/lib/systemd/system/systemd-cryptsetup@.service.d/credential.conf b/mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/systemd/system/systemd-cryptsetup@.service.d/credential.conf similarity index 100% rename from mkosi-initrd/mkosi.extra/usr/lib/systemd/system/systemd-cryptsetup@.service.d/credential.conf rename to mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/systemd/system/systemd-cryptsetup@.service.d/credential.conf diff --git a/mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-dm.rules b/mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-dm.rules similarity index 100% rename from mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-dm.rules rename to mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-dm.rules diff --git a/mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-md.rules b/mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-md.rules similarity index 100% rename from mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-md.rules rename to mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-md.rules diff --git a/pyproject.toml b/pyproject.toml index c7a738987..8f46a9ebd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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"