Hello community, here is the log from the commit of package yast2-bootloader for openSUSE:Factory checked in at 2014-06-01 18:57:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-bootloader (Old) and /work/SRC/openSUSE:Factory/.yast2-bootloader.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "yast2-bootloader" Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-bootloader/yast2-bootloader.changes 2014-05-17 22:02:04.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.yast2-bootloader.new/yast2-bootloader.changes 2014-06-01 18:57:11.000000000 +0200 @@ -1,0 +2,63 @@ +Thu May 29 13:47:40 UTC 2014 - jreidinger@suse.com + +- Fix crash in upgrade from SLE11 +- 3.1.46 + +------------------------------------------------------------------- +Wed May 28 14:19:36 UTC 2014 - jreidinger@suse.com + +- Remove check for iscsi boot partition (bnc#880328) +- 3.1.45 + +------------------------------------------------------------------- +Wed May 28 13:23:19 UTC 2014 - jreidinger@suse.com + +- fix crash in summary page of installation for grub2 (bnc#880324) +- 3.1.44 + +------------------------------------------------------------------- +Tue May 27 11:43:45 UTC 2014 - jreidinger@suse.com + +- fix crash in summary page of installation +- 3.1.43 + +------------------------------------------------------------------- +Tue May 27 11:06:47 UTC 2014 - mchang@suse.com + +- reinstall bootloader if the settings requires it +- 3.1.42 + +------------------------------------------------------------------- +Tue May 27 07:48:09 UTC 2014 - jreidinger@suse.com + +- Fix detection if bootloader installation failed (bnc#879883) +- 3.1.41 + +------------------------------------------------------------------- +Mon May 26 15:31:16 UTC 2014 - jreidinger@suse.com + +- add support to set Protective MBR and use reasonable proposal + (bnc#872054) +- 3.1.40 + +------------------------------------------------------------------- +Fri May 23 14:32:07 UTC 2014 - jreidinger@suse.com + +- Installation Summary: do not allow change location for grub2 + on ppc and s390 (bnc#879107) +- 3.1.39 + +------------------------------------------------------------------- +Thu May 22 13:06:25 UTC 2014 - jreidinger@suse.com + +- Report if grub2-install failed so user see quickly, that he + cannot boot(bnc#878664) +- 3.1.38 + +------------------------------------------------------------------- +Fri May 16 17:10:26 CEST 2014 - snwint@suse.de + +- get rid of grub in loader type selection +- 3.1.37 + +------------------------------------------------------------------- Old: ---- yast2-bootloader-3.1.36.tar.bz2 New: ---- yast2-bootloader-3.1.46.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-bootloader.spec ++++++ --- /var/tmp/diff_new_pack.op7PhW/_old 2014-06-01 18:57:13.000000000 +0200 +++ /var/tmp/diff_new_pack.op7PhW/_new 2014-06-01 18:57:13.000000000 +0200 @@ -17,7 +17,7 @@ Name: yast2-bootloader -Version: 3.1.36 +Version: 3.1.46 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build ++++++ yast2-bootloader-3.1.36.tar.bz2 -> yast2-bootloader-3.1.46.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.36/package/yast2-bootloader.changes new/yast2-bootloader-3.1.46/package/yast2-bootloader.changes --- old/yast2-bootloader-3.1.36/package/yast2-bootloader.changes 2014-05-16 16:13:47.000000000 +0200 +++ new/yast2-bootloader-3.1.46/package/yast2-bootloader.changes 2014-05-29 16:18:44.000000000 +0200 @@ -1,4 +1,67 @@ ------------------------------------------------------------------- +Thu May 29 13:47:40 UTC 2014 - jreidinger@suse.com + +- Fix crash in upgrade from SLE11 +- 3.1.46 + +------------------------------------------------------------------- +Wed May 28 14:19:36 UTC 2014 - jreidinger@suse.com + +- Remove check for iscsi boot partition (bnc#880328) +- 3.1.45 + +------------------------------------------------------------------- +Wed May 28 13:23:19 UTC 2014 - jreidinger@suse.com + +- fix crash in summary page of installation for grub2 (bnc#880324) +- 3.1.44 + +------------------------------------------------------------------- +Tue May 27 11:43:45 UTC 2014 - jreidinger@suse.com + +- fix crash in summary page of installation +- 3.1.43 + +------------------------------------------------------------------- +Tue May 27 11:06:47 UTC 2014 - mchang@suse.com + +- reinstall bootloader if the settings requires it +- 3.1.42 + +------------------------------------------------------------------- +Tue May 27 07:48:09 UTC 2014 - jreidinger@suse.com + +- Fix detection if bootloader installation failed (bnc#879883) +- 3.1.41 + +------------------------------------------------------------------- +Mon May 26 15:31:16 UTC 2014 - jreidinger@suse.com + +- add support to set Protective MBR and use reasonable proposal + (bnc#872054) +- 3.1.40 + +------------------------------------------------------------------- +Fri May 23 14:32:07 UTC 2014 - jreidinger@suse.com + +- Installation Summary: do not allow change location for grub2 + on ppc and s390 (bnc#879107) +- 3.1.39 + +------------------------------------------------------------------- +Thu May 22 13:06:25 UTC 2014 - jreidinger@suse.com + +- Report if grub2-install failed so user see quickly, that he + cannot boot(bnc#878664) +- 3.1.38 + +------------------------------------------------------------------- +Fri May 16 17:10:26 CEST 2014 - snwint@suse.de + +- get rid of grub in loader type selection +- 3.1.37 + +------------------------------------------------------------------- Fri May 16 13:44:48 UTC 2014 - jreidinger@suse.com - fix progress report to not show 100% and waiting to write diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.36/package/yast2-bootloader.spec new/yast2-bootloader-3.1.46/package/yast2-bootloader.spec --- old/yast2-bootloader-3.1.36/package/yast2-bootloader.spec 2014-05-16 16:13:47.000000000 +0200 +++ new/yast2-bootloader-3.1.46/package/yast2-bootloader.spec 2014-05-29 16:18:44.000000000 +0200 @@ -17,7 +17,7 @@ Name: yast2-bootloader -Version: 3.1.36 +Version: 3.1.46 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.36/src/include/bootloader/grub2/dialogs.rb new/yast2-bootloader-3.1.46/src/include/bootloader/grub2/dialogs.rb --- old/yast2-bootloader-3.1.36/src/include/bootloader/grub2/dialogs.rb 2014-05-16 16:13:47.000000000 +0200 +++ new/yast2-bootloader-3.1.46/src/include/bootloader/grub2/dialogs.rb 2014-05-29 16:18:44.000000000 +0200 @@ -31,6 +31,8 @@ Yast.import "Stage" Yast.include include_target, "bootloader/grub2/options.rb" + # some utils from misc are needed here + Yast.include include_target, "bootloader/grub2/misc.rb" Yast.include include_target, "bootloader/grub/options.rb" @@ -43,9 +45,11 @@ lt = BootCommon.getLoaderType(false) legacy_intel = (Arch.x86_64 || Arch.i386) && lt != "grub2-efi" + pmbr_available = lt == "grub2-efi" || (legacy_intel && gpt_boot_disk?) widget_names = ["distributor", "loader_type", "loader_location"] widget_names << "activate" << "generic_mbr" if legacy_intel widget_names << "inst_details" if legacy_intel || Arch.ppc + widget_names << "pmbr" if pmbr_available { "id" => "boot_code_tab", @@ -59,6 +63,7 @@ MarginBox(1, 0.5, "distributor"), MarginBox(1, 0.5, Left("activate")), MarginBox(1, 0.5, Left("generic_mbr")), + MarginBox(1, 0.5, Left("pmbr")), MarginBox(1, 0.5, Left("inst_details")), VStretch() ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.36/src/include/bootloader/grub2/helps.rb new/yast2-bootloader-3.1.46/src/include/bootloader/grub2/helps.rb --- old/yast2-bootloader-3.1.36/src/include/bootloader/grub2/helps.rb 2014-05-16 16:13:47.000000000 +0200 +++ new/yast2-bootloader-3.1.46/src/include/bootloader/grub2/helps.rb 2014-05-29 16:18:44.000000000 +0200 @@ -31,6 +31,9 @@ ), "os_prober" => _( "<p><b>Probe Foreign OS</b> by means of os-prober for multiboot with other foreign distribution </p>" + ), + "pmbr" => _( + "<p><b>Protective MBR flag</b> is expert only settings, that is needed only on exotic hardware. For details see Protective MBR in GPT disks. Do not touch if you are not sure.</p>" ) } @@ -38,7 +41,8 @@ "append" => _("O&ptional Kernel Command Line Parameter"), "vgamode" => _("&Vga Mode"), "append_failsafe" => _("&Failsafe Kernel Command Line Parameter"), - "os_prober" => _("Probe Foreign OS") + "os_prober" => _("Probe Foreign OS"), + "pmbr" => _("Protective MBR flag") } end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.36/src/include/bootloader/grub2/misc.rb new/yast2-bootloader-3.1.46/src/include/bootloader/grub2/misc.rb --- old/yast2-bootloader-3.1.36/src/include/bootloader/grub2/misc.rb 2014-05-16 16:13:47.000000000 +0200 +++ new/yast2-bootloader-3.1.46/src/include/bootloader/grub2/misc.rb 2014-05-29 16:18:44.000000000 +0200 @@ -733,9 +733,20 @@ SetBootloaderDevice(selected_location) end + # for GPT remove protective MBR flag otherwise some systems won't boot + if gpt_boot_disk? + BootCommon.pmbr_action = :remove + end + selected_location end + def gpt_boot_disk? + targets = BootCommon.GetBootloaderDevices + boot_discs = targets.map {|d| Storage.GetDisk(Storage.GetTargetMap, d)} + boot_discs.any? {|d| d["label"] == "gpt" } + end + # Find extended partition device (if it exists) on the same device where the # BootPartitionDevice is located # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.36/src/include/bootloader/grub2/options.rb new/yast2-bootloader-3.1.46/src/include/bootloader/grub2/options.rb --- old/yast2-bootloader-3.1.36/src/include/bootloader/grub2/options.rb 2014-05-16 16:13:47.000000000 +0200 +++ new/yast2-bootloader-3.1.46/src/include/bootloader/grub2/options.rb 2014-05-29 16:18:44.000000000 +0200 @@ -94,6 +94,32 @@ nil end + # Init function of widget + # @param [String] widget any id of the widget + def PMBRInit(widget) + items = [ + # TRANSLATORS: set flag on disk + Item(Id(:add), _("set")), + # TRANSLATORS: remove flag from disk + Item(Id(:remove), _("remove")), + # TRANSLATORS: do not change flag on disk + Item(Id(:nothing), _("do not change")) + ] + UI.ChangeWidget(Id(widget), :Items, items) + value = BootCommon.pmbr_action || :nothing + UI.ChangeWidget(Id(widget), :Value, value) + end + + # Store function of a pmbr + # @param [String] widget any widget key + # @param [Hash] event map event description of event that occured + def StorePMBR(widget, event) + value = UI.QueryWidget(Id(widget), :Value) + value = nil if value == :nothing + + BootCommon.pmbr_action = value + end + # Init function for console # @param [String] widget def ConsoleInit(widget) @@ -355,6 +381,14 @@ "store" => fun_ref(method(:StoreGlobalStr), "void (string, map)"), "help" => Ops.get(@grub2_help_messages, "vgamode", "") }, + "pmbr" => { + "widget" => :combobox, + "label" => @grub2_descriptions["pmbr"], + "opt" => [], + "init" => fun_ref(method(:PMBRInit), "void (string)"), + "store" => fun_ref(method(:StorePMBR), "void (string, map)"), + "help" => @grub2_help_messages["pmbr"] + }, "default" => { "widget" => :combobox, "label" => Ops.get(@grub_descriptions, "default", "default"), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.36/src/include/bootloader/routines/lib_iface.rb new/yast2-bootloader-3.1.46/src/include/bootloader/routines/lib_iface.rb --- old/yast2-bootloader-3.1.36/src/include/bootloader/routines/lib_iface.rb 2014-05-16 16:13:47.000000000 +0200 +++ new/yast2-bootloader-3.1.46/src/include/bootloader/routines/lib_iface.rb 2014-05-29 16:18:44.000000000 +0200 @@ -346,9 +346,14 @@ # Initialize the boot loader (eg. modify firmware, depending on architecture) # @return [Boolean] true on success def InitializeBootloader - Builtins.y2milestone("Initializing bootloader") + ret_data = TmpYAMLFile.new + run_pbl_yaml "#{ret_data.path}=InitializeBootloader()" + ret = ret_data.data + Builtins.y2milestone("Initializing bootloader ret: #{ret.inspect}") - run_pbl_yaml "InitializeBootloader()" + # perl have slightly different evaluation of boolean, so lets convert it + ret = ![false, nil, 0, ""].include?(ret) + return ret end # Get contents of files from the library cache diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.36/src/lib/bootloader/grub2base.rb new/yast2-bootloader-3.1.46/src/lib/bootloader/grub2base.rb --- old/yast2-bootloader-3.1.36/src/lib/bootloader/grub2base.rb 2014-05-16 16:13:47.000000000 +0200 +++ new/yast2-bootloader-3.1.46/src/lib/bootloader/grub2base.rb 2014-05-29 16:18:44.000000000 +0200 @@ -36,6 +36,21 @@ # general functions + + # set pmbr flags on boot disks + def pmbr_setup(action, *devices) + action_parted = case action + when :add then "on" + when :remove then "off" + else raise "invalid action #{action}" + end + devices.each do |dev| + res = SCR.Execute(path(".target.bash_output"), + "parted '#{dev}' disk_set pmbr_boot #{action_parted}") + Builtins.y2milestone("parted disk_set pmbr: #{res}") + end + end + # Propose global options of bootloader def StandardGlobals { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.36/src/modules/BootCommon.rb new/yast2-bootloader-3.1.46/src/modules/BootCommon.rb --- old/yast2-bootloader-3.1.36/src/modules/BootCommon.rb 2014-05-16 16:13:47.000000000 +0200 +++ new/yast2-bootloader-3.1.46/src/modules/BootCommon.rb 2014-05-29 16:18:44.000000000 +0200 @@ -108,6 +108,10 @@ # Activate bootloader partition during installation? @activate = false + # action to do with pbmr flag on boot disk + # values are :add, :remove or nil, means do nothing + @pmbr_action = nil + # Kernel parameters at previous detection @kernelCmdLine = "" @@ -961,8 +965,7 @@ ] end ret = [ - getLoaderType(false), - Convert.to_string(SCR.Read(path(".probe.boot_arch"))) + getLoaderType(false) ] if Arch.i386 || Arch.x86_64 ret = Convert.convert( @@ -1036,6 +1039,7 @@ publish :variable => :mbrDisk, :type => "string" publish :variable => :backup_mbr, :type => "boolean" publish :variable => :activate, :type => "boolean" + publish :variable => :pmbr_action, :type => "symbol" publish :variable => :kernelCmdLine, :type => "string" publish :variable => :changed, :type => "boolean" publish :variable => :del_parts, :type => "list <string>" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.36/src/modules/BootGRUB2.rb new/yast2-bootloader-3.1.46/src/modules/BootGRUB2.rb --- old/yast2-bootloader-3.1.36/src/modules/BootGRUB2.rb 2014-05-16 16:13:47.000000000 +0200 +++ new/yast2-bootloader-3.1.46/src/modules/BootGRUB2.rb 2014-05-29 16:18:44.000000000 +0200 @@ -84,6 +84,7 @@ end end + @orig_globals ||= deep_copy(BootCommon.globals) ret end @@ -92,6 +93,16 @@ def Write ret = BootCommon.UpdateBootloader + if @orig_globals + location = ["boot_mbr", "boot_boot", "boot_root", "boot_extended", "boot_custom", "boot_custom", "activate", "generic_mbr"] + location.each do |i| + BootCommon.location_changed = true if @orig_globals[i] != BootCommon.globals[i] + end + else + # there is no original, so we do not read config, but propose it + BootCommon.location_changed = true + end + #TODO: InstallingToFloppy .. if BootCommon.location_changed # bnc #461613 - Unable to boot after making changes to boot loader @@ -106,6 +117,17 @@ ret = ret && BootCommon.PostUpdateMBR end + # something with PMBR needed + if BootCommon.pmbr_action + boot_devices = BootCommon.GetBootloaderDevices + boot_discs = targets.map {|d| Storage.GetDisk(Storage.GetTargetMap, d)} + boot_discs.uniq! + gpt_disks = boot_discs.select {|d| d["label"] == "gpt" } + gpt_disks_devices = gpt_disks.map {|d| d["device"] } + + pmbr_setup(BootCommon.pmbr_action, *gpt_disks_devices) + end + ret end @@ -218,54 +240,43 @@ ] locations = [] - if Ops.get(BootCommon.globals, "boot_boot", "") == "true" - locations = Builtins.add( - locations, - Ops.add(BootStorage.BootPartitionDevice, _(" (\"/boot\")")) - ) + if BootCommon.globals["boot_boot"] == "true" + locations << BootStorage.BootPartitionDevice + " (\"/boot\")" end - if Ops.get(BootCommon.globals, "boot_extended", "") == "true" - locations = Builtins.add( - locations, - Ops.add(BootStorage.ExtendedPartitionDevice, _(" (extended)")) - ) + if BootCommon.globals["boot_extended"] == "true" + # TRANSLATORS: extended is here for extended partition. Keep translation short. + locations << BootStorage.ExtendedPartitionDevice + _(" (extended)") end - if Ops.get(BootCommon.globals, "boot_root", "") == "true" - locations = Builtins.add( - locations, - Ops.add(BootStorage.RootPartitionDevice, _(" (\"/\")")) - ) + if BootCommon.globals["boot_root"] == "true" + locations << BootStorage.RootPartitionDevice + " (\"/\")" end - if Ops.get(BootCommon.globals, "boot_mbr", "") == "true" - locations = Builtins.add( - locations, - Ops.add(BootCommon.mbrDisk, _(" (MBR)")) - ) + if BootCommon.globals["boot_mbr"] == "true" + # TRANSLATORS: MBR is acronym for Master Boot Record, if nothing locally specific + # is used in your language, then keep it as it is. + locations << BootCommon.mbrDisk + _(" (MBR)") end - if Builtins.haskey(BootCommon.globals, "boot_custom") - locations = Builtins.add( - locations, - Ops.get(BootCommon.globals, "boot_custom", "") - ) + if BootCommon.globals["boot_custom"] && !BootCommon.globals["boot_custom"].empty? + locations << BootCommon.globals["boot_custom"] end - if Ops.greater_than(Builtins.size(locations), 0) - # FIXME: should we translate all devices to names and add MBR suffixes? - result = Builtins.add( - result, - Builtins.sformat( + if !locations.empty? + result << Builtins.sformat( _("Status Location: %1"), - Builtins.mergestring(locations, ", ") + locations.join(", ") ) - ) end # it is necessary different summary for autoyast and installation # other mode than autoyast on running system - result = Builtins.add(result, urlLocationSummary) if !Mode.config + # both ppc and s390 have special devices for stage1 so it do not make sense + # allow change of location to MBR or boot partition (bnc#879107) + if !Arch.ppc && !Arch.s390 && !Mode.config + result << urlLocationSummary + end order_sum = BootCommon.DiskOrderSummary - result = Builtins.add(result, order_sum) if order_sum != nil - deep_copy(result) + result << order_sum if order_sum + + return result end def Dialogs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.36/src/modules/BootGRUB2EFI.rb new/yast2-bootloader-3.1.46/src/modules/BootGRUB2EFI.rb --- old/yast2-bootloader-3.1.36/src/modules/BootGRUB2EFI.rb 2014-05-16 16:13:47.000000000 +0200 +++ new/yast2-bootloader-3.1.46/src/modules/BootGRUB2EFI.rb 2014-05-29 16:18:44.000000000 +0200 @@ -41,6 +41,7 @@ BootCommon.InitializeLibrary(reread, "grub2-efi") BootCommon.ReadFiles(avoid_reading_device_map) if reread BootCommon.Read(false, avoid_reading_device_map) + @orig_globals ||= deep_copy(BootCommon.globals) end # Write bootloader settings to disk @@ -48,6 +49,7 @@ def Write ret = BootCommon.UpdateBootloader + BootCommon.location_changed = true if @orig_globals["distributor"] != BootCommon.globals["distributor"] if BootCommon.location_changed grub_ret = BootCommon.InitializeBootloader grub_ret = false if grub_ret == nil @@ -56,9 +58,25 @@ ret = ret && grub_ret end + # something with PMBR needed + if BootCommon.pmbr_action + efi_disk = Storage.GetEntryForMountpoint("/boot/efi")["device"] + efi_disk ||= Storage.GetEntryForMountpoint("/boot")["device"] + efi_disk ||= Storage.GetEntryForMountpoint("/")["device"] + + pmbr_setup(BootCommon.pmbr_action, efi_disk) + end + ret end + def Propose + super + + # for UEFI always set PMBR flag on disk (bnc#872054) + BootCommon.pmbr_action = :add if !BootCommon.was_proposed || Mode.autoinst + end + # Display bootloader summary # @return a list of summary lines diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.36/src/modules/BootSupportCheck.rb new/yast2-bootloader-3.1.46/src/modules/BootSupportCheck.rb --- old/yast2-bootloader-3.1.36/src/modules/BootSupportCheck.rb 2014-05-16 16:13:47.000000000 +0200 +++ new/yast2-bootloader-3.1.46/src/modules/BootSupportCheck.rb 2014-05-29 16:18:44.000000000 +0200 @@ -143,38 +143,13 @@ def check_BootDevice result = true - boot_device = "" - devices = Storage.GetTargetMap boot_device = BootCommon.getBootPartition - boot_disk = BootCommon.getBootDisk - # if (BootStorage::BootPartitionDevice == BootStorage::RootPartitionDevice) - # AddNewProblem (_("Doesn't exist separete /boot partition")); - found_boot = false # check if boot device is on raid0 Builtins.foreach(devices) do |k, v| - # check if boot disk is iscsi disk - # bnc#393928: Installing root system on iscsi disk makes the system useless - if k == boot_disk - # if "iscsi" is true - if Ops.get_boolean(v, "iscsi", false) - AddNewProblem( - Builtins.sformat( - _("The boot device is on iSCSI disk: %1. System may not boot."), - k - ) - ) - Builtins.y2error( - "The boot partition: %1 is on iscsi disk: %2", - boot_device, - k - ) - result = false - end - end Builtins.foreach(Ops.get_list(v, "partitions", [])) do |p| if Ops.get_string(p, "device", "") == boot_device if Ops.get_string(p, "raid_type", "") != "raid1" && -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org