From 707cfd103869237b3d6495b2006eea541e9009c8 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sat, 30 Sep 2023 20:16:24 +0200 Subject: [PATCH] Add InitrdPackages= We have ToolsTreePackages= already, so let's add a similar setting for the default initrd to allow the default initrd to be used in more scenarios. --- mkosi/__init__.py | 1 + mkosi/config.py | 10 ++++++++++ mkosi/resources/mkosi.md | 9 ++++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/mkosi/__init__.py b/mkosi/__init__.py index fa2a9b977..dfd9b066a 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -1002,6 +1002,7 @@ def build_initrd(state: MkosiState) -> Path: "--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", diff --git a/mkosi/config.py b/mkosi/config.py index e987d5594..b5dda1b50 100644 --- a/mkosi/config.py +++ b/mkosi/config.py @@ -728,6 +728,7 @@ class MkosiConfig: bootloader: Bootloader bios_bootloader: BiosBootloader initrds: list[Path] + initrd_packages: list[str] kernel_command_line: list[str] kernel_modules_include: list[str] kernel_modules_exclude: list[str] @@ -1361,6 +1362,14 @@ SETTINGS = ( parse=config_make_list_parser(delimiter=",", parse=make_path_parser(required=False)), help="Add a user-provided initrd to image", ), + MkosiConfigSetting( + dest="initrd_packages", + long="--initrd-package", + metavar="PACKAGE", + section="Content", + parse=config_make_list_parser(delimiter=","), + help="Add additional packages to the default initrd", + ), MkosiConfigSetting( dest="kernel_command_line", metavar="OPTIONS", @@ -2449,6 +2458,7 @@ Clean Package Manager Metadata: {yes_no_auto(config.clean_package_metadata)} Bootloader: {config.bootloader} BIOS Bootloader: {config.bios_bootloader} Initrds: {line_join_list(config.initrds)} + Initrd Packages: {line_join_list(config.initrd_packages)} Kernel Command Line: {line_join_list(config.kernel_command_line)} Kernel Modules Include: {line_join_list(config.kernel_modules_include)} Kernel Modules Exclude: {line_join_list(config.kernel_modules_exclude)} diff --git a/mkosi/resources/mkosi.md b/mkosi/resources/mkosi.md index 8487b7132..95231d83e 100644 --- a/mkosi/resources/mkosi.md +++ b/mkosi/resources/mkosi.md @@ -874,7 +874,14 @@ boolean argument: either `1`, `yes`, or `true` to enable, or `0`, `no`, : Use user-provided initrd(s). Takes a comma separated list of paths to initrd files. This option may be used multiple times in which case the - initrd lists are combined. + initrd lists are combined. If no initrds are specified and a bootable + image is requested, mkosi will automatically build a default initrd. + +`InitrdPackages=`, `--initrd-package=` + +: Extra packages to install into the default initrd. Takes a comma + separated list of package specifications. This option may be used + multiple times in which case the specified package lists are combined. `KernelCommandLine=`, `--kernel-command-line=` -- 2.47.2