Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package yast2-bootloader for openSUSE:Factory checked in at 2021-12-13 20:42:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-bootloader (Old) and /work/SRC/openSUSE:Factory/.yast2-bootloader.new.2520 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-bootloader" Mon Dec 13 20:42:18 2021 rev:315 rq:939116 version:4.4.10 Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-bootloader/yast2-bootloader.changes 2021-11-28 21:29:56.562108095 +0100 +++ /work/SRC/openSUSE:Factory/.yast2-bootloader.new.2520/yast2-bootloader.changes 2021-12-13 20:47:00.208504686 +0100 @@ -1,0 +2,6 @@ +Fri Dec 10 12:05:57 UTC 2021 - Steffen Winterfeldt <snw...@suse.com> + +- rely on yast-storage-ng to detect UEFI boot support status (bsc#937067) +- 4.4.10 + +------------------------------------------------------------------- Old: ---- yast2-bootloader-4.4.9.tar.bz2 New: ---- yast2-bootloader-4.4.10.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-bootloader.spec ++++++ --- /var/tmp/diff_new_pack.MURAU4/_old 2021-12-13 20:47:00.840505091 +0100 +++ /var/tmp/diff_new_pack.MURAU4/_new 2021-12-13 20:47:00.844505093 +0100 @@ -17,7 +17,7 @@ Name: yast2-bootloader -Version: 4.4.9 +Version: 4.4.10 Release: 0 Summary: YaST2 - Bootloader Configuration License: GPL-2.0-or-later @@ -45,8 +45,8 @@ Requires: yast2-core >= 2.18.7 Requires: yast2-packager >= 2.17.24 Requires: yast2-pkg-bindings >= 2.17.25 -# BlkDevice#preferred_name and Filesystems::BlkFilesystem#preferred_name -Requires: yast2-storage-ng >= 4.3.36 +# Y2Storage::Arch#efibootmgr? +Requires: yast2-storage-ng >= 4.4.22 # Support for multiple values in GRUB_TERMINAL Requires: rubygem(%rb_default_ruby_abi:cfa_grub2) >= 1.0.1 # lenses are needed as cfa_grub2 depends only on augeas bindings, but also ++++++ yast2-bootloader-4.4.9.tar.bz2 -> yast2-bootloader-4.4.10.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.4.9/package/yast2-bootloader.changes new/yast2-bootloader-4.4.10/package/yast2-bootloader.changes --- old/yast2-bootloader-4.4.9/package/yast2-bootloader.changes 2021-11-25 09:34:21.000000000 +0100 +++ new/yast2-bootloader-4.4.10/package/yast2-bootloader.changes 2021-12-10 13:45:01.000000000 +0100 @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Fri Dec 10 12:05:57 UTC 2021 - Steffen Winterfeldt <snw...@suse.com> + +- rely on yast-storage-ng to detect UEFI boot support status (bsc#937067) +- 4.4.10 + +------------------------------------------------------------------- Thu Nov 25 08:29:34 UTC 2021 - Michal Filka <mfi...@suse.com> - bnc#1193016 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.4.9/package/yast2-bootloader.spec new/yast2-bootloader-4.4.10/package/yast2-bootloader.spec --- old/yast2-bootloader-4.4.9/package/yast2-bootloader.spec 2021-11-25 09:34:21.000000000 +0100 +++ new/yast2-bootloader-4.4.10/package/yast2-bootloader.spec 2021-12-10 13:45:01.000000000 +0100 @@ -17,7 +17,7 @@ Name: yast2-bootloader -Version: 4.4.9 +Version: 4.4.10 Release: 0 Summary: YaST2 - Bootloader Configuration License: GPL-2.0-or-later @@ -45,8 +45,8 @@ Requires: yast2-core >= 2.18.7 Requires: yast2-packager >= 2.17.24 Requires: yast2-pkg-bindings >= 2.17.25 -# BlkDevice#preferred_name and Filesystems::BlkFilesystem#preferred_name -Requires: yast2-storage-ng >= 4.3.36 +# Y2Storage::Arch#efibootmgr? +Requires: yast2-storage-ng >= 4.4.22 # Support for multiple values in GRUB_TERMINAL Requires: rubygem(%rb_default_ruby_abi:cfa_grub2) >= 1.0.1 # lenses are needed as cfa_grub2 depends only on augeas bindings, but also diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.4.9/src/lib/bootloader/bootloader_factory.rb new/yast2-bootloader-4.4.10/src/lib/bootloader/bootloader_factory.rb --- old/yast2-bootloader-4.4.9/src/lib/bootloader/bootloader_factory.rb 2021-11-25 09:34:21.000000000 +0100 +++ new/yast2-bootloader-4.4.10/src/lib/bootloader/bootloader_factory.rb 2021-12-10 13:45:01.000000000 +0100 @@ -9,7 +9,6 @@ Yast.import "Arch" Yast.import "Mode" -Yast.import "Linuxrc" module Bootloader # Factory to get instance of bootloader @@ -87,12 +86,7 @@ private def boot_efi? - if Yast::Mode.live_installation - Yast::Execute.locally("modprobe", "efivars") - ::File.exist?("/sys/firmware/efi/systab") - else - Yast::Linuxrc.InstallInf("EFI") == "1" - end + Systeminfo.efi? end def proposed_name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.4.9/src/lib/bootloader/systeminfo.rb new/yast2-bootloader-4.4.10/src/lib/bootloader/systeminfo.rb --- old/yast2-bootloader-4.4.9/src/lib/bootloader/systeminfo.rb 2021-11-25 09:34:21.000000000 +0100 +++ new/yast2-bootloader-4.4.10/src/lib/bootloader/systeminfo.rb 2021-12-10 13:45:01.000000000 +0100 @@ -1,6 +1,7 @@ # frozen_string_literal: true require "yast" +require "y2storage" require "bootloader/bootloader_factory" require "bootloader/sysconfig" require "yast2/execute" @@ -164,25 +165,20 @@ false end + def efi? + Y2Storage::Arch.new.efiboot? + end + # Checks if efivars exists and can be written # @see https://bugzilla.suse.com/show_bug.cgi?id=1174111#c37 # + # The point here is that without writable UEFI variables the UEFI boot + # manager cannot (and must not) be updated. + # # @return [Boolean] true if efivars are writable def writable_efivars? - # quick check if there are no efivars at all - return false if Dir.glob("/sys/firmware/efi/efivars/*").empty? - - # check if efivars are ro - mounts = Yast::Execute.locally!("/usr/bin/mount", stdout: :capture) - # target line looks like: - # efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime) - efivars = mounts.lines.grep(/type\s+efivarfs/) - efivars = efivars.first - return false unless efivars - - efivars.match?(/[\(,]rw[,\)]/) - rescue Cheetah::ExecutionFailed - false + storage_arch = Y2Storage::Arch.new + storage_arch.efiboot? && storage_arch.efibootmgr? end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.4.9/src/modules/BootSupportCheck.rb new/yast2-bootloader-4.4.10/src/modules/BootSupportCheck.rb --- old/yast2-bootloader-4.4.9/src/modules/BootSupportCheck.rb 2021-11-25 09:34:21.000000000 +0100 +++ new/yast2-bootloader-4.4.10/src/modules/BootSupportCheck.rb 2021-12-10 13:45:01.000000000 +0100 @@ -132,9 +132,7 @@ # Check if EFI is needed def efi? - cmd = "/usr/sbin/modprobe efivars 2>/dev/null" - SCR.Execute(path(".target.bash_output"), cmd) - FileUtils.Exists("/sys/firmware/efi/systab") + ::Bootloader::Systeminfo.efi? end def check_activate_partition diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.4.9/test/boot_support_test.rb new/yast2-bootloader-4.4.10/test/boot_support_test.rb --- old/yast2-bootloader-4.4.9/test/boot_support_test.rb 2021-11-25 09:34:21.000000000 +0100 +++ new/yast2-bootloader-4.4.10/test/boot_support_test.rb 2021-12-10 13:45:01.000000000 +0100 @@ -35,9 +35,9 @@ Bootloader::BootloaderFactory.current_name = "grub2" end - it "returns false if grub2-efi is used and efi not supported" do + it "returns false if grub2-efi is used and UEFI is not supported" do Bootloader::BootloaderFactory.current_name = "grub2-efi" - allow(Yast::FileUtils).to receive(:Exists).and_return(false) + allow(subject).to receive(:efi?).and_return(false) expect(subject.SystemSupported).to eq false end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.4.9/test/systeminfo_test.rb new/yast2-bootloader-4.4.10/test/systeminfo_test.rb --- old/yast2-bootloader-4.4.9/test/systeminfo_test.rb 2021-11-25 09:34:21.000000000 +0100 +++ new/yast2-bootloader-4.4.10/test/systeminfo_test.rb 2021-12-10 13:45:01.000000000 +0100 @@ -384,41 +384,24 @@ end describe ".writable_efivars?" do - before do - allow(Dir).to receive(:glob).and_return(["BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c"]) - allow(Yast::Execute).to receive(:locally!).and_return( - "pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) - efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime) - none on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime)" - ) - end - - it "returns false if there are no efivars in /sys" do - allow(Dir).to receive(:glob).and_return([]) + it "returns false if UEFI is not available" do + allow_any_instance_of(Y2Storage::Arch).to receive(:efiboot?).and_return(false) + allow_any_instance_of(Y2Storage::Arch).to receive(:efibootmgr?).and_return(true) expect(described_class.writable_efivars?).to eq false end - it "returns false if there are no efivars in mount" do - allow(Yast::Execute).to receive(:locally!).and_return( - "pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) - none on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime)" - ) + it "returns false if UEFI variables are not writable" do + allow_any_instance_of(Y2Storage::Arch).to receive(:efiboot?).and_return(true) + allow_any_instance_of(Y2Storage::Arch).to receive(:efibootmgr?).and_return(false) expect(described_class.writable_efivars?).to eq false end - it "returns false if efivars are mounted read only" do - allow(Yast::Execute).to receive(:locally!).and_return( - "pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) - efivarfs on /sys/firmware/efi/efivars type efivarfs (ro,nosuid,nodev,noexec,relatime) - none on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime)" - ) - - expect(described_class.writable_efivars?).to eq false - end + it "returns true if UEFI variables are writable" do + allow_any_instance_of(Y2Storage::Arch).to receive(:efiboot?).and_return(true) + allow_any_instance_of(Y2Storage::Arch).to receive(:efibootmgr?).and_return(true) - it "returns true if efivars are writable" do expect(described_class.writable_efivars?).to eq true end end