From def58bab5f84aa80ee1153626c36444dda0225d5 Mon Sep 17 00:00:00 2001 From: Josef Reidinger Date: Mon, 16 Feb 2026 12:34:02 +0100 Subject: [PATCH 01/13] add to ruby service support for bootloader update_nvram --- service/lib/agama/storage/bootloader.rb | 52 ++++++++++++------- service/test/agama/storage/bootloader_test.rb | 3 +- 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/service/lib/agama/storage/bootloader.rb b/service/lib/agama/storage/bootloader.rb index aa32061662..b3d18254e7 100644 --- a/service/lib/agama/storage/bootloader.rb +++ b/service/lib/agama/storage/bootloader.rb @@ -34,6 +34,12 @@ module Storage class Bootloader # Represents bootloader settings class Config + # Whether bootloader should update persistent RAM. + # If kept as nil then default will be used. + # + # @return [Boolean] + attr_accessor :update_nvram + # Whether bootloader should stop on boot menu. # # @return [Boolean] @@ -68,6 +74,7 @@ def initialize @keys_to_export = [] @stop_on_boot_menu = false # false means use proposal, which has timeout @timeout = 10 # just some reasonable timeout, we do not send it anywhere + @update_nvram = nil @extra_kernel_params = "" end @@ -80,6 +87,7 @@ def to_json(*_args) # our json use camel case result[:stopOnBootMenu] = stop_on_boot_menu if keys_to_export.include?(:stop_on_boot_menu) result[:timeout] = timeout if keys_to_export.include?(:timeout) + result[:updateNvram] = update_nvram if keys_to_export.include?(:update_nvram) if keys_to_export.include?(:extra_kernel_params) result[:extraKernelParams] = @extra_kernel_params @@ -94,30 +102,25 @@ def to_json(*_args) # @return [Config] self def load_json(serialized_config) hsh = JSON.parse(serialized_config, symbolize_names: true) - if hsh.include?(:timeout) - self.timeout = hsh[:timeout] - keys_to_export.delete(:stop_on_boot_menu) - keys_to_export.push(:timeout) unless keys_to_export.include?(:timeout) - - end - if hsh.include?(:stopOnBootMenu) - self.stop_on_boot_menu = hsh[:stopOnBootMenu] - keys_to_export.delete(:timeout) - unless keys_to_export.include?(:stop_on_boot_menu) - keys_to_export.push(:stop_on_boot_menu) - end - end - if hsh.include?(:extraKernelParams) - self.extra_kernel_params = hsh[:extraKernelParams] - unless keys_to_export.include?(:extra_kernel_params) - keys_to_export.push(:extra_kernel_params) - end - end + update_attribute(hsh, :timeout, :timeout, conflicts: :stop_on_boot_menu) + update_attribute(hsh, :stopOnBootMenu, :stop_on_boot_menu, conflicts: :timeout) + update_attribute(hsh, :extraKernelParams, :extra_kernel_params) + update_attribute(hsh, :updateNvram, :update_nvram) self.scoped_kernel_params = hsh[:kernelArgs] self end + + private + + def update_attribute(hsh, json_key, attr_key, conflicts: nil) + return unless hsh.key?(json_key) + + public_send("#{attr_key}=", hsh[json_key]) + keys_to_export.delete(conflicts) if conflicts + keys_to_export.push(attr_key) unless keys_to_export.include?(attr_key) + end end # @return [Config] @@ -178,6 +181,7 @@ def write_config bootloader = ::Bootloader::BootloaderFactory.current write_stop_on_boot(bootloader) if @config.keys_to_export.include?(:stop_on_boot_menu) write_timeout(bootloader) if @config.keys_to_export.include?(:timeout) + write_nvram(bootloader) if @config.keys_to_export.include?(:update_nvram) kernel_params = @config.scoped_kernel_params.values.join(" ") @logger.info "scoped kernel params: #{kernel_params}" @@ -190,6 +194,16 @@ def write_config bootloader end + def write_nvram(bootloader) + return if update_nvram.nil? + + if bootloader.respond_to?(:update_nvram=) + bootloader.update_nvram = @config.update_nvram unless @config.update_nvram.nil? + else + @logger.info "bootloader #{bootloader.name} does not support NVRAM update" + end + end + def write_extra_kernel_params(bootloader, kernel_params) # no systemd boot support for now return unless bootloader.respond_to?(:grub_default) diff --git a/service/test/agama/storage/bootloader_test.rb b/service/test/agama/storage/bootloader_test.rb index d312182872..a4aeae7a9b 100644 --- a/service/test/agama/storage/bootloader_test.rb +++ b/service/test/agama/storage/bootloader_test.rb @@ -52,9 +52,10 @@ describe "#load_json" do it "loads config from given json" do - content = "{\"stopOnBootMenu\":true}" + content = "{\"stopOnBootMenu\":true,\"updateNvram\":true}" config.load_json(content) expect(config.stop_on_boot_menu).to eq true + expect(config.update_nvram).to eq true end it "remembers which keys are set" do From c217aa6b3b4727ee79e83c23d5d7a0cdd5423d57 Mon Sep 17 00:00:00 2001 From: Josef Reidinger Date: Mon, 16 Feb 2026 13:18:11 +0100 Subject: [PATCH 02/13] add update nvram option to rust and schema --- rust/agama-lib/share/profile.schema.json | 4 ++++ rust/agama-utils/src/api/bootloader.rs | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/rust/agama-lib/share/profile.schema.json b/rust/agama-lib/share/profile.schema.json index 37ad53666f..9ababd98d5 100644 --- a/rust/agama-lib/share/profile.schema.json +++ b/rust/agama-lib/share/profile.schema.json @@ -79,6 +79,10 @@ "extraKernelParams": { "title": "Specify additional kernel parameters that are added beside ones added by the installer.", "type": "string" + }, + "updateNvram": { + "title": "Specify if bootloader should update persistent RAM (NVRAM).", + "type": "boolean" } }, "oneOf": [ diff --git a/rust/agama-utils/src/api/bootloader.rs b/rust/agama-utils/src/api/bootloader.rs index ba0b80879c..4a9d1d23d3 100644 --- a/rust/agama-utils/src/api/bootloader.rs +++ b/rust/agama-utils/src/api/bootloader.rs @@ -22,17 +22,23 @@ use merge::Merge; use serde::{Deserialize, Serialize}; -/// Represents a Bootloader +/// Bootloader configuration. #[derive(Clone, Debug, Serialize, Deserialize, Default, Merge, utoipa::ToSchema)] #[serde(rename_all = "camelCase")] #[merge(strategy = merge::option::overwrite_none)] pub struct Config { + /// Whether bootloader should stop on boot menu. #[serde(skip_serializing_if = "Option::is_none")] pub stop_on_boot_menu: Option, + /// Bootloader timeout. #[serde(skip_serializing_if = "Option::is_none")] pub timeout: Option, + /// Bootloader extra kernel parameters. #[serde(skip_serializing_if = "Option::is_none")] pub extra_kernel_params: Option, + /// Whether bootloader should update persistent RAM. + #[serde(skip_serializing_if = "Option::is_none")] + pub update_nvram: Option, } impl Config { From 44b0d847198d7204691da8a16eef4133d8734d2b Mon Sep 17 00:00:00 2001 From: Josef Reidinger Date: Mon, 16 Feb 2026 15:21:21 +0100 Subject: [PATCH 03/13] update also check for none --- rust/agama-utils/src/api/bootloader.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/rust/agama-utils/src/api/bootloader.rs b/rust/agama-utils/src/api/bootloader.rs index 4a9d1d23d3..4308348231 100644 --- a/rust/agama-utils/src/api/bootloader.rs +++ b/rust/agama-utils/src/api/bootloader.rs @@ -46,6 +46,7 @@ impl Config { if self.stop_on_boot_menu.is_none() && self.timeout.is_none() && self.extra_kernel_params.is_none() + && self.update_nvram.is_none() { None } else { From d8a3be7eeeb1afaaf2be9a676c466969992de297 Mon Sep 17 00:00:00 2001 From: Josef Reidinger Date: Mon, 16 Feb 2026 16:44:34 +0100 Subject: [PATCH 04/13] increase live medium timeout to 60 (jsc#PED-14986) --- live/config-cdroot/fix_bootconfig.aarch64 | 2 +- live/config-cdroot/fix_bootconfig.x86_64 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/live/config-cdroot/fix_bootconfig.aarch64 b/live/config-cdroot/fix_bootconfig.aarch64 index fdab71f136..2de183c7be 100755 --- a/live/config-cdroot/fix_bootconfig.aarch64 +++ b/live/config-cdroot/fix_bootconfig.aarch64 @@ -45,7 +45,7 @@ fi if [ -n "\${iso_path}" ]; then isoboot="iso-scan/filename=\${iso_path}" fi -set timeout=10 +set timeout=60 set timeout_style=menu if [ "\${grub_platform}" = "efi" ]; then echo "Please press 't' to show the boot menu on this console" diff --git a/live/config-cdroot/fix_bootconfig.x86_64 b/live/config-cdroot/fix_bootconfig.x86_64 index 56edab3857..0ea5b70661 100755 --- a/live/config-cdroot/fix_bootconfig.x86_64 +++ b/live/config-cdroot/fix_bootconfig.x86_64 @@ -45,7 +45,7 @@ fi if [ -n "\${iso_path}" ]; then isoboot="iso-scan/filename=\${iso_path}" fi -set timeout=10 +set timeout=60 set timeout_style=menu if [ "\${grub_platform}" = "efi" ]; then echo "Please press 't' to show the boot menu on this console" From ca7fee8a56a9686a5c32e23794974edd00626096 Mon Sep 17 00:00:00 2001 From: Josef Reidinger Date: Tue, 17 Feb 2026 09:50:17 +0100 Subject: [PATCH 05/13] unify place of kernel for ppc (jsc#PED-14303) --- live/config-cdroot/fix_bootconfig.ppc64le | 25 +++++++++-------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/live/config-cdroot/fix_bootconfig.ppc64le b/live/config-cdroot/fix_bootconfig.ppc64le index db79af9b8c..8ab362a717 100755 --- a/live/config-cdroot/fix_bootconfig.ppc64le +++ b/live/config-cdroot/fix_bootconfig.ppc64le @@ -31,8 +31,9 @@ # │   │   └── powerpc-ieee1275 # │   │   └── *.mod # │   └── ppc64le -# │   ├── initrd -# │   └── linux +# │ └── loader +# │ ├── initrd +# │ └── linux # └── ppc # └── bootinfo.txt # @@ -63,17 +64,11 @@ test -f $dst/.profile && . $dst/.profile # files. It also moves kernel and initrd to the usual location (in boot/s390x). # -boot_dir=$dst/boot/ppc64le +boot_dir=$dst/boot/ppc64le/loader grub_dir=$dst/boot/grub2 mkdir -p $boot_dir $grub_dir $dst/ppc -# if files are in a 'loader' subdir, move them out -if [ -d $boot_dir/loader ] ; then - mv $boot_dir/loader/{initrd,linux} $boot_dir - rm -r $boot_dir/loader -fi - chmod 644 $boot_dir/{initrd,linux} arch=`uname -m` @@ -101,23 +96,23 @@ menuentry "Boot from Hard Disk" --class opensuse --class gnu-linux --class gnu - menuentry "Install $label" --class os --unrestricted { echo 'Loading kernel...' - linux /boot/ppc64le/linux splash=silent + linux /boot/ppc64le/loader/linux splash=silent echo 'Loading initrd...' - initrd /boot/ppc64le/initrd + initrd /boot/ppc64le/loader/initrd } menuentry "Check Installation Medium" --class os --unrestricted { echo 'Loading kernel...' - linux /boot/ppc64le/linux mediacheck=1 plymouth.enable=0 + linux /boot/ppc64le/loader/linux mediacheck=1 plymouth.enable=0 echo 'Loading initrd...' - initrd /boot/ppc64le/initrd + initrd /boot/ppc64le/loader/initrd } menuentry "Rescue System" --class os --unrestricted { echo 'Loading kernel...' - linux /boot/ppc64le/linux $RESCUE_SYSTEM_BOOT_SETTINGS + linux /boot/ppc64le/loader/linux $RESCUE_SYSTEM_BOOT_SETTINGS echo 'Loading initrd...' - initrd /boot/ppc64le/initrd + initrd /boot/ppc64le/loader/initrd } XXX From 73b8ec63ac94972d6b842c061cbe955281c957c1 Mon Sep 17 00:00:00 2001 From: Josef Reidinger Date: Tue, 17 Feb 2026 10:21:52 +0100 Subject: [PATCH 06/13] unify place of kernel for s390x (jsc#PED-14303) --- live/config-cdroot/fix_bootconfig.s390x | 47 +++++++++++-------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/live/config-cdroot/fix_bootconfig.s390x b/live/config-cdroot/fix_bootconfig.s390x index 240db3f70a..cff6cb57f1 100755 --- a/live/config-cdroot/fix_bootconfig.s390x +++ b/live/config-cdroot/fix_bootconfig.s390x @@ -27,15 +27,16 @@ # │   └── squashfs.img # ├── boot # │   └── s390x -# │   ├── cd.ikr -# │   ├── initrd -# │   ├── initrd.off -# │   ├── initrd.siz -# │   ├── linux -# │   ├── parmfile -# │   ├── parmfile.hmc -# │   ├── sles.exec -# │   └── suse.ins +# │ └── loader +# │   ├── cd.ikr +# │   ├── initrd +# │   ├── initrd.off +# │   ├── initrd.siz +# │   ├── linux +# │   ├── parmfile +# │   ├── parmfile.hmc +# │   ├── sles.exec +# │   └── suse.ins # ├── suse.ins # └── susehmc.ins # @@ -61,15 +62,9 @@ fi # files. It also moves kernel and initrd to the usual location (in boot/s390x). # -boot_dir=$dst/boot/s390x +boot_dir=$dst/boot/s390x/loader grub_dir=$dst/boot/grub2 -# if files are in a 'loader' subdir, move them out -if [ -d $boot_dir/loader ] ; then - mv $boot_dir/loader/{initrd,linux} $boot_dir - rm -r $boot_dir/loader -fi - # Create parmfile. # # These parameters are taken from a sampel isolinux.cfg; the required parameters will @@ -118,21 +113,21 @@ XXX # A suse.ins copy at media root dir - note the different paths. cat >$dst/suse.ins <$dst/susehmc.ins <$boot_dir/parmfile.hmc From 8d9194abd6939470d8bad1fdf4f4dfc5e6cadcb0 Mon Sep 17 00:00:00 2001 From: Josef Reidinger Date: Tue, 17 Feb 2026 17:22:06 +0100 Subject: [PATCH 07/13] fix calling config --- service/lib/agama/storage/bootloader.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/service/lib/agama/storage/bootloader.rb b/service/lib/agama/storage/bootloader.rb index b3d18254e7..724e6a1ce5 100644 --- a/service/lib/agama/storage/bootloader.rb +++ b/service/lib/agama/storage/bootloader.rb @@ -195,10 +195,10 @@ def write_config end def write_nvram(bootloader) - return if update_nvram.nil? + return if @config.update_nvram.nil? if bootloader.respond_to?(:update_nvram=) - bootloader.update_nvram = @config.update_nvram unless @config.update_nvram.nil? + bootloader.update_nvram = @config.update_nvram else @logger.info "bootloader #{bootloader.name} does not support NVRAM update" end From 4ff473e81400f097045bfec1d42a3cfc1a65375a Mon Sep 17 00:00:00 2001 From: Josef Reidinger Date: Wed, 18 Feb 2026 08:58:03 +0100 Subject: [PATCH 08/13] offer boot from hard disk only on legacy x86_64 (jsc#PED-13766) --- live/config-cdroot/fix_bootconfig.aarch64 | 3 --- live/config-cdroot/fix_bootconfig.ppc64le | 6 +----- live/config-cdroot/fix_bootconfig.x86_64 | 16 +++++----------- 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/live/config-cdroot/fix_bootconfig.aarch64 b/live/config-cdroot/fix_bootconfig.aarch64 index 2de183c7be..d85e812602 100755 --- a/live/config-cdroot/fix_bootconfig.aarch64 +++ b/live/config-cdroot/fix_bootconfig.aarch64 @@ -76,9 +76,6 @@ if [ -f (\$root)/boot/grub2/themes/$theme/theme.txt ];then fi terminal_input console terminal_output gfxterm -menuentry "Boot from Hard Disk" --class opensuse --class gnu-linux --class gnu --class os { - exit -} menuentry "Install $label" --class os --unrestricted { set gfxpayload=keep echo Loading kernel... diff --git a/live/config-cdroot/fix_bootconfig.ppc64le b/live/config-cdroot/fix_bootconfig.ppc64le index 8ab362a717..6437d92ae1 100755 --- a/live/config-cdroot/fix_bootconfig.ppc64le +++ b/live/config-cdroot/fix_bootconfig.ppc64le @@ -82,7 +82,7 @@ cat >$dst/boot/grub2/grub.cfg < Date: Wed, 18 Feb 2026 09:43:56 +0100 Subject: [PATCH 09/13] add support for update_nvram in autoyast convertor --- service/lib/agama/autoyast/bootloader_reader.rb | 1 + .../test/agama/autoyast/bootloader_reader_test.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/service/lib/agama/autoyast/bootloader_reader.rb b/service/lib/agama/autoyast/bootloader_reader.rb index f934040614..e4e4e68b11 100644 --- a/service/lib/agama/autoyast/bootloader_reader.rb +++ b/service/lib/agama/autoyast/bootloader_reader.rb @@ -47,6 +47,7 @@ def read end bootloader["extraKernelParams"] = global["append"] unless global["append"].to_s.empty? + bootloader["updateNvram"] = global["update_nvram"] unless global["update_nvram"].to_s.empty? { "bootloader" => bootloader } end diff --git a/service/test/agama/autoyast/bootloader_reader_test.rb b/service/test/agama/autoyast/bootloader_reader_test.rb index 723ba50ccb..7a0bc080ab 100644 --- a/service/test/agama/autoyast/bootloader_reader_test.rb +++ b/service/test/agama/autoyast/bootloader_reader_test.rb @@ -77,5 +77,17 @@ end end end + + context "when update_nvram is defined" do + let(:global) do + { "update_nvram" => true } + end + + it "returns a hash including the 'updateNvram'" do + expect(subject.read["bootloader"]).to include( + "updateNvram" => true + ) + end + end end end From f1e049f20997e49f8e368b7da299c0fa5da14137 Mon Sep 17 00:00:00 2001 From: Josef Reidinger Date: Wed, 18 Feb 2026 17:16:24 +0100 Subject: [PATCH 10/13] add debug line to find bootloader config --- rust/agama-manager/src/tasks/runner.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/rust/agama-manager/src/tasks/runner.rs b/rust/agama-manager/src/tasks/runner.rs index 7bb9835a2f..45fd817a79 100644 --- a/rust/agama-manager/src/tasks/runner.rs +++ b/rust/agama-manager/src/tasks/runner.rs @@ -421,6 +421,7 @@ impl SetConfigAction { self.progress .call(progress::message::Next::new(Scope::Manager)) .await?; + tracing::info!("setting bootloader config {:?}", &config.bootloader); self.bootloader .call(bootloader::message::SetConfig::new( config.bootloader.clone(), From a6c9cecdd8905bea0a93bdb4d0fded1137a81b29 Mon Sep 17 00:00:00 2001 From: Josef Reidinger Date: Wed, 18 Feb 2026 21:33:48 +0100 Subject: [PATCH 11/13] changes --- live/src/agama-installer.changes | 8 ++++++++ rust/package/agama.changes | 5 +++++ service/package/rubygem-agama-yast.changes | 6 ++++++ 3 files changed, 19 insertions(+) diff --git a/live/src/agama-installer.changes b/live/src/agama-installer.changes index 99cf675c8b..8c219bff90 100644 --- a/live/src/agama-installer.changes +++ b/live/src/agama-installer.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Feb 18 20:32:37 UTC 2026 - Josef Reidinger + +- increase medium timeout to 60 seconds (jsc#PED-14986) +- Unify kernel and initramfs location (jsc#PED-14303) +- drop “Boot from Disk” on all archs expect legacy x86_64 + (jsc#PED-13766) + ------------------------------------------------------------------- Thu Feb 12 14:57:21 UTC 2026 - Ladislav Slezák diff --git a/rust/package/agama.changes b/rust/package/agama.changes index dba9550a59..593ff3ba31 100644 --- a/rust/package/agama.changes +++ b/rust/package/agama.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Feb 18 20:32:00 UTC 2026 - Josef Reidinger + +- Add support for bootloader config updateNvram (jsc#PED-14224) + ------------------------------------------------------------------- Wed Feb 18 12:09:15 UTC 2026 - Stefan Hundhammer diff --git a/service/package/rubygem-agama-yast.changes b/service/package/rubygem-agama-yast.changes index df734fb856..2e640244ef 100644 --- a/service/package/rubygem-agama-yast.changes +++ b/service/package/rubygem-agama-yast.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Feb 18 20:28:02 UTC 2026 - Josef Reidinger + +- Add support for updateNvram bootloader key (jsc#PED-14224) +- Add support for autoyast key bootloader->update_nvram conversion + ------------------------------------------------------------------- Mon Feb 16 16:31:50 UTC 2026 - José Iván López González From c9c71420026125815420f7108e411e06a68bccde Mon Sep 17 00:00:00 2001 From: Josef Reidinger Date: Thu, 19 Feb 2026 08:22:52 +0100 Subject: [PATCH 12/13] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Imobach González Sosa --- live/src/agama-installer.changes | 4 ++-- service/package/rubygem-agama-yast.changes | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/live/src/agama-installer.changes b/live/src/agama-installer.changes index 8c219bff90..88021668d6 100644 --- a/live/src/agama-installer.changes +++ b/live/src/agama-installer.changes @@ -1,9 +1,9 @@ ------------------------------------------------------------------- Wed Feb 18 20:32:37 UTC 2026 - Josef Reidinger -- increase medium timeout to 60 seconds (jsc#PED-14986) +- Increase medium timeout to 60 seconds (jsc#PED-14986) - Unify kernel and initramfs location (jsc#PED-14303) -- drop “Boot from Disk” on all archs expect legacy x86_64 +- Drop “Boot from Disk” on all archs except legacy x86_64 (jsc#PED-13766) ------------------------------------------------------------------- diff --git a/service/package/rubygem-agama-yast.changes b/service/package/rubygem-agama-yast.changes index 2e640244ef..023c9a1073 100644 --- a/service/package/rubygem-agama-yast.changes +++ b/service/package/rubygem-agama-yast.changes @@ -2,7 +2,7 @@ Wed Feb 18 20:28:02 UTC 2026 - Josef Reidinger - Add support for updateNvram bootloader key (jsc#PED-14224) -- Add support for autoyast key bootloader->update_nvram conversion +- Add support for AutoYaST key bootloader->update_nvram conversion ------------------------------------------------------------------- Mon Feb 16 16:31:50 UTC 2026 - José Iván López González From 6537debbe9ac8e37acced87087f6e5563c65daef Mon Sep 17 00:00:00 2001 From: Josef Reidinger Date: Thu, 19 Feb 2026 08:24:29 +0100 Subject: [PATCH 13/13] remove debug line --- rust/agama-manager/src/tasks/runner.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/rust/agama-manager/src/tasks/runner.rs b/rust/agama-manager/src/tasks/runner.rs index 45fd817a79..7bb9835a2f 100644 --- a/rust/agama-manager/src/tasks/runner.rs +++ b/rust/agama-manager/src/tasks/runner.rs @@ -421,7 +421,6 @@ impl SetConfigAction { self.progress .call(progress::message::Next::new(Scope::Manager)) .await?; - tracing::info!("setting bootloader config {:?}", &config.bootloader); self.bootloader .call(bootloader::message::SetConfig::new( config.bootloader.clone(),