Script 'mail_helper' called by ro Hello packager, This is just FYI. Your package was checked in in distribution "sle12" by autobuild-member: ro. Here comes the log... ---------------------------%<------------------------------ Hi, here is the log from ci_new_pac /mounts/work_src_done/SLE12/yast2-bootloader -> sle12 ## BNC# 889538 : "[Build0623] AutoYaST Upgrade - Searching for available system - Wrong number of arguments (2 for 1) - popup.rb" (RESOLVED/FIXED) ## BNC# 887553 : "ALL_Languages - SLED 12 - Boot loader - Untranslated strings in help" (ASSIGNED/) ## BNC# 887808 : "An error occurred during boot loader installation." (RESOLVED/FIXED) ## BNC# 880439 : "Unable to install FCOE BFS when have multiple multipath mappers" (RESOLVED/FIXED) Changes: -------- --- /work/SRC/SUSE:SLE-12:GA/yast2-bootloader/yast2-bootloader.changes 2014-07-28 16:43:34.000000000 +0200 +++ /mounts/work_src_done/SLE12/yast2-bootloader/yast2-bootloader.changes 2014-07-30 14:23:36.000000000 +0200 @@ -1,0 +2,27 @@ +Wed Jul 30 14:03:18 CEST 2014 - schubi@suse.de + +- Fixed error popup for unsupported bootloader in autoyast. + (bnc#889538) +- 3.1.76 + +------------------------------------------------------------------- +Wed Jul 30 08:20:59 UTC 2014 - ancor@suse.com + +- Added a missing call to i18n for a string (bnc#887553) +- 3.1.75 + +------------------------------------------------------------------- +Wed Jul 30 06:30:40 UTC 2014 - jreidinger@suse.com + +- Fix crash if during proposal some device map value is nil + ( found by openQA ) +- 3.1.74 + +------------------------------------------------------------------- +Tue Jul 29 09:23:34 UTC 2014 - jreidinger@suse.com + +- Always use device with /boot as first device in device map to + avoid problems with other MBRs (bnc#887808, bnc#880439) +- 3.1.73 + +------------------------------------------------------------------- calling whatdependson for sle12-i586 Packages directly triggered for rebuild: - yast2-bootloader - yast2-kdump - yast2-product-creator - yast2-reipl - yast2-schema - yast2-vm ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/SUSE:SLE-12:GA/yast2-bootloader (Old) and /mounts/work_src_done/SLE12/yast2-bootloader (BS:build ID:42027 MAIL:yast-commit@opensuse.org) (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "yast2-bootloader", Maintainer is "yast-commit@opensuse.org" Old: ---- yast2-bootloader-3.1.72.tar.bz2 New: ---- yast2-bootloader-3.1.76.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-bootloader.spec ++++++ --- /var/tmp/diff_new_pack.P1sDxh/_old 2014-07-30 14:44:36.000000000 +0200 +++ /var/tmp/diff_new_pack.P1sDxh/_new 2014-07-30 14:44:36.000000000 +0200 @@ -17,7 +17,7 @@ Name: yast2-bootloader -Version: 3.1.72 +Version: 3.1.76 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build ++++++ yast2-bootloader-3.1.72.tar.bz2 -> yast2-bootloader-3.1.76.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.72/package/yast2-bootloader.changes new/yast2-bootloader-3.1.76/package/yast2-bootloader.changes --- old/yast2-bootloader-3.1.72/package/yast2-bootloader.changes 2014-07-28 13:30:03.000000000 +0200 +++ new/yast2-bootloader-3.1.76/package/yast2-bootloader.changes 2014-07-30 14:19:33.000000000 +0200 @@ -1,4 +1,31 @@ ------------------------------------------------------------------- +Wed Jul 30 14:03:18 CEST 2014 - schubi@suse.de + +- Fixed error popup for unsupported bootloader in autoyast. + (bnc#889538) +- 3.1.76 + +------------------------------------------------------------------- +Wed Jul 30 08:20:59 UTC 2014 - ancor@suse.com + +- Added a missing call to i18n for a string (bnc#887553) +- 3.1.75 + +------------------------------------------------------------------- +Wed Jul 30 06:30:40 UTC 2014 - jreidinger@suse.com + +- Fix crash if during proposal some device map value is nil + ( found by openQA ) +- 3.1.74 + +------------------------------------------------------------------- +Tue Jul 29 09:23:34 UTC 2014 - jreidinger@suse.com + +- Always use device with /boot as first device in device map to + avoid problems with other MBRs (bnc#887808, bnc#880439) +- 3.1.73 + +------------------------------------------------------------------- Mon Jul 28 07:18:47 UTC 2014 - jreidinger@suse.com diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.72/package/yast2-bootloader.spec new/yast2-bootloader-3.1.76/package/yast2-bootloader.spec --- old/yast2-bootloader-3.1.72/package/yast2-bootloader.spec 2014-07-28 13:30:03.000000000 +0200 +++ new/yast2-bootloader-3.1.76/package/yast2-bootloader.spec 2014-07-30 14:19:33.000000000 +0200 @@ -17,7 +17,7 @@ Name: yast2-bootloader -Version: 3.1.72 +Version: 3.1.76 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.72/src/include/bootloader/grub/helps.rb new/yast2-bootloader-3.1.76/src/include/bootloader/grub/helps.rb --- old/yast2-bootloader-3.1.72/src/include/bootloader/grub/helps.rb 2014-07-28 13:30:03.000000000 +0200 +++ new/yast2-bootloader-3.1.76/src/include/bootloader/grub/helps.rb 2014-07-30 14:19:33.000000000 +0200 @@ -56,7 +56,9 @@ "in <b>Boot Loader Options</b> to update the master boot record if that is needed or configure your other boot manager\n" + "to start this section.</p>" ), - "boot_extended" => "<p><b>Boot from Extended Partition</b> should be selected if your root partition is on \nlogical partition and the /boot partition is missing</p>", + "boot_extended" => _( + "<p><b>Boot from Extended Partition</b> should be selected if your root partition is on \nlogical partition and the /boot partition is missing</p>" + ), "boot_custom" => _( "<p><b>Custom Boot Partition</b> lets you choose a partition to boot from.</p>" ), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.72/src/include/bootloader/routines/autoinstall.rb new/yast2-bootloader-3.1.76/src/include/bootloader/routines/autoinstall.rb --- old/yast2-bootloader-3.1.72/src/include/bootloader/routines/autoinstall.rb 2014-07-28 13:30:03.000000000 +0200 +++ new/yast2-bootloader-3.1.76/src/include/bootloader/routines/autoinstall.rb 2014-07-30 14:19:33.000000000 +0200 @@ -166,8 +166,8 @@ unsupported_bootloaders = ["grub", "zipl", "plilo", "lilo", "elilo"] if ai["loader_type"] && unsupported_bootloaders.include?(exp["loader_type"].downcase) # FIXME this should be better handled by exception and show it properly, but it require too big change now - Popup.Error(_("Unsupported bootloader '%s'. Adapt your AutoYaST profile accordingly."), - exp["loader_type"]) + Popup.Error(_("Unsupported bootloader '%s'. Adapt your AutoYaST profile accordingly.") % + exp["loader_type"]) return nil end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.72/src/modules/BootStorage.rb new/yast2-bootloader-3.1.76/src/modules/BootStorage.rb --- old/yast2-bootloader-3.1.72/src/modules/BootStorage.rb 2014-07-28 13:30:04.000000000 +0200 +++ new/yast2-bootloader-3.1.76/src/modules/BootStorage.rb 2014-07-30 14:19:33.000000000 +0200 @@ -21,6 +21,7 @@ module Yast class BootStorageClass < Module + include Yast::Logger def main textdomain "bootloader" @@ -779,9 +780,7 @@ # This function changes order of devices in device_mapping. # All devices listed in bad_devices are maped to "hdN" are moved to the end - # (with changed number N). And second step is putting device with boot partition - # on top (i.e. device_mapping[dev_with_boot] = "hd0"). - # + # (with changed number N). Priority device are always placed at first place # # Example: # device_mapping = $[ "/dev/sda" : "hd0", # "/dev/sdb" : "hd1", @@ -790,54 +789,52 @@ # "/dev/sde" : "hd4" ]; # bad_devices = [ "/dev/sda", "/dev/sdc" ]; # - # changeOrderInDeviceMapping(bad_devices); - # // after call, device_mapping is: + # changeOrderInDeviceMapping(device_mapping, bad_devices: bad_devices); + # // returns: # device_mapping -> $[ "/dev/sda" : "hd3", # "/dev/sdb" : "hd0", # "/dev/sdc" : "hd4", # "/dev/sdd" : "hd1", # "/dev/sde" : "hd2" ]; - def changeOrderInDeviceMapping(bad_devices) - bad_devices = deep_copy(bad_devices) - cur_id = 0 - keys = [] - value = "" - tmp = "" - tmp2 = "" - - # get keys from device_mapping, it's not possible to use foreach over keys and values - # of device_mapping directly, because during the loop device_mapping is changing. - Builtins.foreach(@device_mapping) do |key, value2| - keys = Builtins.add(keys, key) + def changeOrderInDeviceMapping(device_mapping, bad_devices: [], priority_device: nil) + log.info("Calling change of device map with #{device_mapping}, " + + "bad_devices: #{bad_devices}, priority_device: #{priority_device}") + device_mapping = device_mapping.dup + first_available_id = 0 + keys = device_mapping.keys + result = {} + + if priority_device + result[priority_device] = "hd0" + first_available_id = 1 + old_first_device = device_mapping.key("hd0") + old_device_id = device_mapping[priority_device] + device_mapping[old_first_device] = old_device_id end # put bad_devices at bottom - Builtins.foreach( - Convert.convert(keys, :from => "list", :to => "list <string>") - ) do |key| - value = Ops.get(@device_mapping, key, "") + keys.each do |key| + value = device_mapping[key] + if !value # FIXME this should not happen, but openQA catch it, so be on safe side + log.error("empty value in device map") + next + end # if device is mapped on hdX and this device is _not_ in bad_devices - if Builtins.substring(value, 0, 2) == "hd" && - !Builtins.contains(bad_devices, key) + if value.start_with?("hd") && + !bad_devices.include?(key) && + key != priority_device # get device name of mapped on "hd"+cur_id - tmp = getKey( - Ops.add("hd", Builtins.tostring(cur_id)), - @device_mapping - ) + tmp = device_mapping.key("hd#{first_available_id}") # swap tmp and key devices (swap their mapping) - Ops.set(@device_mapping, tmp, value) - Ops.set( - @device_mapping, - key, - Ops.add("hd", Builtins.tostring(cur_id)) - ) + result[tmp] = value + result[key] = "hd#{first_available_id}" - cur_id = Ops.add(cur_id, 1) + first_available_id += 1 end end - nil + result end # Check if MD raid is build on disks not on paritions @@ -1031,10 +1028,12 @@ @BootPartitionDevice != getKey("hd0", @device_mapping) Builtins.y2milestone("Detected device mapping: %1", @device_mapping) Builtins.y2milestone("Changing order in device mapping needed...") - changeOrderInDeviceMapping(usb_disks) + @device_mapping = changeOrderInDeviceMapping(@device_mapping, bad_devices: usb_disks) end - @bois_id_missing = false if Builtins.size(@device_mapping) == 1 + @device_mapping = changeOrderInDeviceMapping(@device_mapping, + priority_device: @BootPartitionDevice) + @bois_id_missing = false #FIXME never complain about missing bios id as we always have first device boot one if StorageDevices.FloppyPresent Ops.set(@device_mapping, StorageDevices.FloppyDevice, "fd0") end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.72/test/boot_storage_test.rb new/yast2-bootloader-3.1.76/test/boot_storage_test.rb --- old/yast2-bootloader-3.1.72/test/boot_storage_test.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-bootloader-3.1.76/test/boot_storage_test.rb 2014-07-30 14:19:33.000000000 +0200 @@ -0,0 +1,41 @@ +require_relative "test_helper" + +Yast.import "BootStorage" + +describe Yast::BootStorage do + describe ".changeOrderInDeviceMapping" do + it "place priority device on top of device mapping" do + device_map = { "/dev/sda" => "hd0", "/dev/sdb" => "hd1" } + result = { "/dev/sda" => "hd1", "/dev/sdb" => "hd0" } + expect( + Yast::BootStorage.changeOrderInDeviceMapping( + device_map, + priority_device: "/dev/sdb" + ) + ).to eq(result) + end + + it "place bad devices at the end of list" do + device_map = { "/dev/sda" => "hd0", "/dev/sdb" => "hd1" } + result = { "/dev/sda" => "hd1", "/dev/sdb" => "hd0" } + expect( + Yast::BootStorage.changeOrderInDeviceMapping( + device_map, + bad_devices: "/dev/sda" + ) + ).to eq(result) + end + + it "can mix priority and bad devices" do + device_map = { "/dev/sda" => "hd0", "/dev/sdb" => "hd1", "/dev/sdc" => "hd2" } + result = { "/dev/sda" => "hd2", "/dev/sdb" => "hd0", "/dev/sdc" => "hd1" } + expect( + Yast::BootStorage.changeOrderInDeviceMapping( + device_map, + bad_devices: "/dev/sda", + priority_device: "/dev/sdb" + ) + ).to eq(result) + end + end +end continue with "q"... Checked in at Wed Jul 30 14:47:58 CEST 2014 by ro Remember to have fun... -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org