From aede79bdc0e16cc433c41a2a9f54bffe49a124f6 Mon Sep 17 00:00:00 2001 From: Stefan Schubert Date: Fri, 3 May 2024 13:47:50 +0200 Subject: [PATCH 1/7] writing /etc/kernel/cmdline before calling sdbootutil --- src/lib/bootloader/systemdboot.rb | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/lib/bootloader/systemdboot.rb b/src/lib/bootloader/systemdboot.rb index 7bbe53fd0..3c047cde7 100644 --- a/src/lib/bootloader/systemdboot.rb +++ b/src/lib/bootloader/systemdboot.rb @@ -114,13 +114,11 @@ def write(etc_only: false) log.info("Writing settings...") if Yast::Stage.initial # while new installation only (currently) install_bootloader - create_menue_entries end + + create_menue_entries write_menue_timeout - File.open(File.join(Yast::Installation.destdir, CMDLINE), "w+") do |fw| - fw.puts(kernel_params.serialize) - end true end @@ -205,17 +203,11 @@ def write_sysconfig(prewrite: false) SDBOOTUTIL = "/usr/bin/sdbootutil" def create_menue_entries - cmdline_file = File.join(Yast::Installation.destdir, CMDLINE) - if Yast::Stage.initial - # sdbootutil script needs the "root=" entry in kernel parameters. - # This will be written to CMDLINE which will be used in an - # installed system by the administrator only. So we can use it because - # the system will be installed new. This file will be deleted after - # calling sdbootutil. - File.open(cmdline_file, "w+") do |fw| - fw.puts("root=#{Yast::BootStorage.root_partitions.first.name}") - end + # writing kernel parameter to /etc/kernel/cmdline + File.open(File.join(Yast::Installation.destdir, CMDLINE), "w+") do |fw| + fw.puts("root=#{Yast::BootStorage.root_partitions.first.name} #{kernel_params.serialize}") end + begin Yast::Execute.on_target!(SDBOOTUTIL, "--verbose", "add-all-kernels") rescue Cheetah::ExecutionFailed => e @@ -227,7 +219,6 @@ def create_menue_entries ), command: e.commands.inspect, stderr: e.stderr) ) end - File.delete(cmdline_file) if Yast::Stage.initial # see above end def read_menue_timeout From fe53867b47d5369a22a7a17bcc31f1bba742f461 Mon Sep 17 00:00:00 2001 From: Stefan Schubert Date: Fri, 3 May 2024 14:40:06 +0200 Subject: [PATCH 2/7] set root in cmdline only while new installation --- src/lib/bootloader/systemdboot.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/bootloader/systemdboot.rb b/src/lib/bootloader/systemdboot.rb index 3c047cde7..d7171da1f 100644 --- a/src/lib/bootloader/systemdboot.rb +++ b/src/lib/bootloader/systemdboot.rb @@ -205,7 +205,11 @@ def write_sysconfig(prewrite: false) def create_menue_entries # writing kernel parameter to /etc/kernel/cmdline File.open(File.join(Yast::Installation.destdir, CMDLINE), "w+") do |fw| - fw.puts("root=#{Yast::BootStorage.root_partitions.first.name} #{kernel_params.serialize}") + if Yast::Stage.initial # while new installation only + fw.puts("root=#{Yast::BootStorage.root_partitions.first.name} #{kernel_params.serialize}") + else # root entry is already available + fw.puts(kernel_params.serialize) + end end begin From 505e1bebdac19a55163ecc9c4e71a2d3eecb69a4 Mon Sep 17 00:00:00 2001 From: Stefan Schubert Date: Fri, 3 May 2024 14:58:24 +0200 Subject: [PATCH 3/7] rubocop --- src/lib/bootloader/systemdboot.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/lib/bootloader/systemdboot.rb b/src/lib/bootloader/systemdboot.rb index d7171da1f..32eb1ec2b 100644 --- a/src/lib/bootloader/systemdboot.rb +++ b/src/lib/bootloader/systemdboot.rb @@ -112,9 +112,7 @@ def read def write(etc_only: false) super log.info("Writing settings...") - if Yast::Stage.initial # while new installation only (currently) - install_bootloader - end + install_bootloader if Yast::Stage.initial # while new installation only (currently) create_menue_entries write_menue_timeout From cb9107f7a21cb26e2c7863490373cf23070a8f66 Mon Sep 17 00:00:00 2001 From: Stefan Schubert Date: Fri, 3 May 2024 15:04:23 +0200 Subject: [PATCH 4/7] fixed tests --- test/systemdboot_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/systemdboot_test.rb b/test/systemdboot_test.rb index c860ffd6c..c5de1f699 100644 --- a/test/systemdboot_test.rb +++ b/test/systemdboot_test.rb @@ -137,7 +137,7 @@ expect(subject.secure_boot).to eq true expect(subject.menue_timeout).to eq 12 expect(subject.cpu_mitigations.to_human_string).to eq "Auto" - expect(subject.kernel_params.serialize).to eq "security=apparmor splash=silent quiet mitigations=auto" + expect(subject.kernel_params.serialize).to include "security=apparmor splash=silent quiet mitigations=auto" end end From 5a587104e8934b57b5d788d5d976ea22d76f1222 Mon Sep 17 00:00:00 2001 From: Stefan Schubert Date: Fri, 3 May 2024 15:06:19 +0200 Subject: [PATCH 5/7] fixed tests --- test/systemdboot_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/systemdboot_test.rb b/test/systemdboot_test.rb index c5de1f699..f346bdc93 100644 --- a/test/systemdboot_test.rb +++ b/test/systemdboot_test.rb @@ -71,7 +71,7 @@ # Checking written kernel parameters subject.read expect(subject.cpu_mitigations.to_human_string).to eq "Off" - expect(subject.kernel_params.serialize).to eq cmdline_content + expect(subject.kernel_params.serialize).to include cmdline_content end it "creates menue entries" do From 41c26afb9f52dd866bddeef12a7a47956035621f Mon Sep 17 00:00:00 2001 From: Stefan Schubert Date: Fri, 3 May 2024 15:09:49 +0200 Subject: [PATCH 6/7] packaging --- package/yast2-bootloader.changes | 6 ++++++ package/yast2-bootloader.spec | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/package/yast2-bootloader.changes b/package/yast2-bootloader.changes index 9edde4f58..b079eef99 100644 --- a/package/yast2-bootloader.changes +++ b/package/yast2-bootloader.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri May 3 13:07:26 UTC 2024 - Stefan Schubert + +- Writing "root" entry into /etc/kernel/cmdline which is needed by + sdbootutil. (still for bsc#1220892) + ------------------------------------------------------------------- Fri Apr 26 13:07:51 UTC 2024 - Stefan Schubert diff --git a/package/yast2-bootloader.spec b/package/yast2-bootloader.spec index bf26c4a40..dd23b5ac9 100644 --- a/package/yast2-bootloader.spec +++ b/package/yast2-bootloader.spec @@ -17,7 +17,7 @@ Name: yast2-bootloader -Version: 5.0.9 +Version: 5.0.10 Release: 0 Summary: YaST2 - Bootloader Configuration License: GPL-2.0-or-later From 522e0f93820cd88061a9305b9e93d9ed3236c62c Mon Sep 17 00:00:00 2001 From: Stefan Schubert Date: Fri, 3 May 2024 15:13:35 +0200 Subject: [PATCH 7/7] layout --- package/yast2-bootloader.changes | 1 + src/lib/bootloader/systemdboot.rb | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package/yast2-bootloader.changes b/package/yast2-bootloader.changes index b079eef99..a52f66536 100644 --- a/package/yast2-bootloader.changes +++ b/package/yast2-bootloader.changes @@ -3,6 +3,7 @@ Fri May 3 13:07:26 UTC 2024 - Stefan Schubert - Writing "root" entry into /etc/kernel/cmdline which is needed by sdbootutil. (still for bsc#1220892) +- 5.0.10 ------------------------------------------------------------------- Fri Apr 26 13:07:51 UTC 2024 - Stefan Schubert diff --git a/src/lib/bootloader/systemdboot.rb b/src/lib/bootloader/systemdboot.rb index 32eb1ec2b..a69a81e8d 100644 --- a/src/lib/bootloader/systemdboot.rb +++ b/src/lib/bootloader/systemdboot.rb @@ -113,7 +113,6 @@ def write(etc_only: false) super log.info("Writing settings...") install_bootloader if Yast::Stage.initial # while new installation only (currently) - create_menue_entries write_menue_timeout