]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
FirmwareVariables: allow generating during image build
authorLuca Boccassi <luca.boccassi@gmail.com>
Sat, 19 Jul 2025 23:20:53 +0000 (00:20 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Mon, 28 Jul 2025 22:04:14 +0000 (23:04 +0100)
The build immediately fails if FirmwareVariables=%O/somefile is used, as
the config parser won't be able to find it, so it is not possible to
generate it during the image build itself (e.g: mkosi.postoutput)
in order to add generated keys to MOK. Set required=False.

mkosi/config.py
mkosi/qemu.py

index e877fa7d2bedf63bf60268df01e288b0224d78e6..537d82489961705d5e4fbc84fb0edd6957283220 100644 (file)
@@ -4178,7 +4178,7 @@ SETTINGS: list[ConfigSetting[Any]] = [
         dest="firmware_variables",
         metavar="PATH",
         section="Runtime",
-        parse=config_make_path_parser(constants=("custom", "microsoft", "microsoft-mok")),
+        parse=config_make_path_parser(constants=("custom", "microsoft", "microsoft-mok"), required=False),
         help="Set the path to the firmware variables file to use",
         compat_longs=("--qemu-firmware-variables",),
         compat_names=("QemuFirmwareVariables",),
index a1377a16d13ce662ea826cbfb317772478a1cf85..c143171f0a6e5a5ca9dd329b12b06c576cf6eff7 100644 (file)
@@ -768,6 +768,8 @@ def finalize_firmware_variables(
             if config.firmware_variables == Path("microsoft") or not config.firmware_variables
             else config.firmware_variables
         )
+        if not vars.exists():
+            die(f"Firmware variables file {vars} does not exist")
         shutil.copy(vars, ovmf_vars)
 
     return ovmf_vars, ovmf_vars_format