Hello community, here is the log from the commit of package yast2-installation for openSUSE:Factory checked in at 2018-03-04 11:50:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-installation (Old) and /work/SRC/openSUSE:Factory/.yast2-installation.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-installation" Sun Mar 4 11:50:36 2018 rev:397 rq:581740 version:4.0.36 Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-installation/yast2-installation.changes 2018-02-14 09:18:07.100843590 +0100 +++ /work/SRC/openSUSE:Factory/.yast2-installation.new/yast2-installation.changes 2018-03-04 11:50:39.526349917 +0100 @@ -1,0 +2,23 @@ +Thu Mar 1 14:48:45 UTC 2018 - shundham...@suse.com + +- Pass args to parent class constructor (bsc#1083500) +- 4.0.36 + +------------------------------------------------------------------- +Tue Feb 27 12:23:03 UTC 2018 - jreidin...@suse.com + +- fix marking texts for translation (bsc#1081361, bsc#1083015) +- 4.0.35 + +------------------------------------------------------------------- +Tue Feb 27 01:41:17 UTC 2018 - an...@suse.com + +- More gentle handling of aborts caused by hardware probing errors + (bsc#1079228, bsc#1079817, bsc#1063059, bsc#1080554, bsc#1076776, + bsc#1070459 and some others). +- Re-enable the old fix for bsc#298049 (abort button during ongoing + hardware probing). +- Cleanup of dead code +- 4.0.34 + +------------------------------------------------------------------- Old: ---- yast2-installation-4.0.33.tar.bz2 New: ---- yast2-installation-4.0.36.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-installation.spec ++++++ --- /var/tmp/diff_new_pack.MqQ4lD/_old 2018-03-04 11:50:40.106328906 +0100 +++ /var/tmp/diff_new_pack.MqQ4lD/_new 2018-03-04 11:50:40.110328761 +0100 @@ -17,7 +17,7 @@ Name: yast2-installation -Version: 4.0.33 +Version: 4.0.36 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -46,9 +46,9 @@ # Yast::Packages.check_remote_installation_packages BuildRequires: yast2-packager >= 4.0.9 -# Y2Storage::StorageManager#activate accepts an argument -BuildRequires: yast2-storage-ng >= 4.0.43 -Requires: yast2-storage-ng >= 4.0.43 +# Y2Storage::StorageManager#activate and #probe as boolean +BuildRequires: yast2-storage-ng >= 4.0.114 +Requires: yast2-storage-ng >= 4.0.114 # Mandatory language in Product#release_notes Requires: yast2 >= 4.0.49 @@ -66,11 +66,6 @@ # Yast::Packages.check_remote_installation_packages Requires: yast2-packager >= 4.0.9 -# FIXME: some code present in this package still depends on the old yast2-storage -# and will break without this dependency. That's acceptable at this point of the -# migration to storage-ng. See installer-hacks.md in the yast-storage-ng repo. -# Requires: yast2-storage >= 2.24.1 - # use in startup scripts Requires: initviocons ++++++ yast2-installation-4.0.33.tar.bz2 -> yast2-installation-4.0.36.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.0.33/package/yast2-installation.changes new/yast2-installation-4.0.36/package/yast2-installation.changes --- old/yast2-installation-4.0.33/package/yast2-installation.changes 2018-02-13 14:06:44.000000000 +0100 +++ new/yast2-installation-4.0.36/package/yast2-installation.changes 2018-03-01 16:08:50.000000000 +0100 @@ -1,4 +1,27 @@ ------------------------------------------------------------------- +Thu Mar 1 14:48:45 UTC 2018 - shundham...@suse.com + +- Pass args to parent class constructor (bsc#1083500) +- 4.0.36 + +------------------------------------------------------------------- +Tue Feb 27 12:23:03 UTC 2018 - jreidin...@suse.com + +- fix marking texts for translation (bsc#1081361, bsc#1083015) +- 4.0.35 + +------------------------------------------------------------------- +Tue Feb 27 01:41:17 UTC 2018 - an...@suse.com + +- More gentle handling of aborts caused by hardware probing errors + (bsc#1079228, bsc#1079817, bsc#1063059, bsc#1080554, bsc#1076776, + bsc#1070459 and some others). +- Re-enable the old fix for bsc#298049 (abort button during ongoing + hardware probing). +- Cleanup of dead code +- 4.0.34 + +------------------------------------------------------------------- Tue Feb 13 12:53:44 UTC 2018 - jreidin...@suse.com - Ensure previous role selection is cleared when doing desktop diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.0.33/package/yast2-installation.spec new/yast2-installation-4.0.36/package/yast2-installation.spec --- old/yast2-installation-4.0.33/package/yast2-installation.spec 2018-02-13 14:06:44.000000000 +0100 +++ new/yast2-installation-4.0.36/package/yast2-installation.spec 2018-03-01 16:08:50.000000000 +0100 @@ -16,7 +16,7 @@ # Name: yast2-installation -Version: 4.0.33 +Version: 4.0.36 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -45,9 +45,9 @@ # Yast::Packages.check_remote_installation_packages BuildRequires: yast2-packager >= 4.0.9 -# Y2Storage::StorageManager#activate accepts an argument -BuildRequires: yast2-storage-ng >= 4.0.43 -Requires: yast2-storage-ng >= 4.0.43 +# Y2Storage::StorageManager#activate and #probe as boolean +BuildRequires: yast2-storage-ng >= 4.0.114 +Requires: yast2-storage-ng >= 4.0.114 # Mandatory language in Product#release_notes Requires: yast2 >= 4.0.49 @@ -65,11 +65,6 @@ # Yast::Packages.check_remote_installation_packages Requires: yast2-packager >= 4.0.9 -# FIXME: some code present in this package still depends on the old yast2-storage -# and will break without this dependency. That's acceptable at this point of the -# migration to storage-ng. See installer-hacks.md in the yast-storage-ng repo. -# Requires: yast2-storage >= 2.24.1 - # use in startup scripts Requires: initviocons diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.0.33/src/lib/installation/clients/inst_system_analysis.rb new/yast2-installation-4.0.36/src/lib/installation/clients/inst_system_analysis.rb --- old/yast2-installation-4.0.33/src/lib/installation/clients/inst_system_analysis.rb 2018-02-13 14:06:44.000000000 +0100 +++ new/yast2-installation-4.0.36/src/lib/installation/clients/inst_system_analysis.rb 2018-03-01 16:08:50.000000000 +0100 @@ -30,6 +30,13 @@ module Yast class InstSystemAnalysisClient < Client + include Yast::Logger + + # Custom exception class to indicate the user (or the AutoYaST profile) + # decided to abort the installation due to a libstorage-ng error + class AbortError < RuntimeError + end + def main Yast.import "UI" @@ -50,13 +57,6 @@ Yast.import "ProductFeatures" Yast.import "Progress" Yast.import "Report" -# storage-ng -# rubocop:disable Style/BlockComments -=begin - Yast.import "Storage" - Yast.import "StorageControllers" - Yast.import "StorageDevices" -=end Yast.import "Wizard" Yast.import "PackageCallbacks" @@ -66,15 +66,7 @@ # This dialog in not interactive # always return `back when came from the previous dialog - if GetInstArgs.going_back -# storage-ng -=begin - Storage.ActivateHld(false) -=end - return :back - end - - @found_controllers = true + return :back if GetInstArgs.going_back @packager_initialized = false @@ -104,28 +96,8 @@ actions_todo << _("Probe FireWire devices") actions_doing << _("Probing FireWire devices...") actions_functions << fun_ref(method(:ActionFireWire), "boolean ()") - -# storage-ng -=begin - actions_todo << _("Probe floppy disk devices") - actions_doing << _("Probing floppy disk devices...") - actions_functions << fun_ref(method(:ActionFloppyDisks), "boolean ()") -=end end -# storage-ng -# As soon as we introduce support for RAID or multipath, we'll need to replace -# StorageController with a new OOP way of probing and loading controllers -=begin - actions_todo << _("Probe hard disk controllers") - actions_doing << _("Probing hard disk controllers...") - actions_functions << fun_ref(method(:ActionHHDControllers), "boolean ()") - - actions_todo << _("Load kernel modules for hard disk controllers") - actions_doing << _("Loading kernel modules for hard disk controllers...") - actions_functions << fun_ref(method(:ActionLoadModules), "boolean ()") -=end - WFM.CallFunction("inst_features", []) end @@ -163,12 +135,17 @@ if Popup.ConfirmAbort(:painless) Builtins.y2warning("User decided to abort the installation") - next :abort + return :abort end end - ret = run_function.call - Builtins.y2milestone("Function %1 returned %2", run_function, ret) + begin + ret = run_function.call + Builtins.y2milestone("Function %1 returned %2", run_function, ret) + rescue AbortError + return :abort + end + # Return in case of restart is needed return ret if ret == :restart_yast end @@ -186,73 +163,27 @@ # Function definitions --> - # -------------------------------------------------------------- - # USB - # -------------------------------------------------------------- + # USB initialization def ActionUSB Hotplug.StartUSB true end - # -------------------------------------------------------------- - # FireWire (ieee1394) - # -------------------------------------------------------------- + # FireWire (ieee1394) initialization def ActionFireWire Hotplug.StartFireWire true end - # -------------------------------------------------------------- - # Floppy - # -------------------------------------------------------------- - def ActionFloppyDisks - StorageDevices.FloppyReady - - true - end - - # -------------------------------------------------------------- - # Hard disk controllers - # 1. Probe - # 2. Initialize (module loading) - # -------------------------------------------------------------- - # In live_eval mode, all modules have been loaded by linuxrc. But - # they are loaded by StorageControllers::Initialize(). Well, there - # also was another reason for skipping StorageControllers::Probe () - # but nobody seems to remember more. - # -------------------------------------------------------------- - def ActionHHDControllers - @found_controllers = Ops.greater_than(StorageControllers.Probe, 0) - - true - end - - # -------------------------------------------------------------- - # Don't abort or even warn if no storage controllers can be - # found. Disks might be detected even without proper knowledge - # about the controller. There's a warning below if no disks were - # found. - # -------------------------------------------------------------- - def ActionLoadModules - StorageControllers.Initialize - - true - end - - # -------------------------------------------------------------- - # Hard disks - # -------------------------------------------------------------- + # Hard disks initialization + # + # @raise [AbortError] if an error is found and the installation must + # be aborted because of such error def ActionHDDProbe - storage = Y2Storage::StorageManager.instance - # Activate high level devices (RAID, multipath, LVM, encryption...) - # and (re)probe. Reprobing ensures we don't bring bug#806454 back and - # invalidates cached proposal, so we are also safe from bug#865579. - storage.activate(activate_callbacks) - storage.probe - - devicegraph = storage.probed + init_storage + devicegraph = storage_manager.probed # additonal error when HW was not found drivers_info = _( @@ -264,37 +195,23 @@ end if devicegraph.empty? - if @found_controllers || Arch.s390 - if !(Mode.autoinst || Mode.autoupgrade) - # pop-up error report - Report.Error( - Builtins.sformat( - _( - "No hard disks were found for the installation.\n" \ - "Please check your hardware!\n" \ - "%1\n" - ), - drivers_info - ) + if Mode.auto + Report.Warning( + # TRANSLATORS: Error pop-up + _( + "No hard disks were found for the installation.\n" \ + "During an automatic installation, they might be detected later.\n" \ + "(especially on S/390 or iSCSI systems)\n" ) - else - Report.Warning( - _( - "No hard disks were found for the installation.\n" \ - "During an automatic installation, they might be detected later.\n" \ - "(especially on S/390 or iSCSI systems)\n" - ) - ) - end + ) else - # pop-up error report Report.Error( Builtins.sformat( + # TRANSLATORS: Error pop-up _( - "No hard disks and no hard disk controllers were\n" \ - "found for the installation.\n" \ - "Check your hardware.\n" \ - "%1\n" + "No hard disks were found for the installation.\n" \ + "Please check your hardware!\n" \ + "%1\n" ), drivers_info ) @@ -347,6 +264,8 @@ true end + private + # Return the activate callbacks for libstorage-ng # # When running AutoYaST, it will use a different set of callbacks. @@ -359,5 +278,27 @@ return nil unless Mode.auto Y2Autoinstallation::ActivateCallbacks.new end + + # Activates high level devices (RAID, multipath, LVM, encryption...) + # and (re)probes + # + # Reprobing ensures we don't bring bug#806454 back and invalidates cached + # proposal, so we are also safe from bug#865579. + # + # @raise [AbortError] if an error is found and the installation must + # be aborted because of such error + def init_storage + success = storage_manager.activate(activate_callbacks) + success &&= storage_manager.probe + return if success + + log.info "A storage error was raised and the installation must be aborted." + raise AbortError, "User aborted" + end + + # @return [Y2Storage::StorageManager] + def storage_manager + @storage_manager ||= Y2Storage::StorageManager.instance + end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.0.33/src/lib/installation/dialogs/complex_welcome.rb new/yast2-installation-4.0.36/src/lib/installation/dialogs/complex_welcome.rb --- old/yast2-installation-4.0.33/src/lib/installation/dialogs/complex_welcome.rb 2018-02-13 14:06:44.000000000 +0100 +++ new/yast2-installation-4.0.36/src/lib/installation/dialogs/complex_welcome.rb 2018-03-01 16:08:50.000000000 +0100 @@ -42,6 +42,7 @@ # @param products [Array<Y2Packager::Product>] List of available products # @param disable_buttons [Array<Symbol>] List of buttons to disable def initialize(products, disable_buttons: []) + textdomain "installation" @products = products @disable_buttons = disable_buttons.map { |b| "#{b}_button" } end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.0.33/src/lib/installation/dialogs/registration_url_dialog.rb new/yast2-installation-4.0.36/src/lib/installation/dialogs/registration_url_dialog.rb --- old/yast2-installation-4.0.33/src/lib/installation/dialogs/registration_url_dialog.rb 2018-02-13 14:06:44.000000000 +0100 +++ new/yast2-installation-4.0.36/src/lib/installation/dialogs/registration_url_dialog.rb 2018-03-01 16:08:50.000000000 +0100 @@ -24,6 +24,11 @@ module Installation class RegistrationURLDialog < ::Installation::URLDialog + def initialize(*args) + textdomain "installation" + super + end + def help_text # TRANSLATORS: Help text alerting the user about a invalid url _("<p>\n" \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.0.33/src/lib/installation/widgets/system_roles_radio_buttons.rb new/yast2-installation-4.0.36/src/lib/installation/widgets/system_roles_radio_buttons.rb --- old/yast2-installation-4.0.33/src/lib/installation/widgets/system_roles_radio_buttons.rb 2018-02-13 14:06:44.000000000 +0100 +++ new/yast2-installation-4.0.36/src/lib/installation/widgets/system_roles_radio_buttons.rb 2018-03-01 16:08:50.000000000 +0100 @@ -44,6 +44,7 @@ # selection is lost when the widget is redrawn. # FIXME: It will not be needed once RadioButtons widget take care of it self.handle_all_events = true + textdomain "installation" end def store diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.0.33/test/lib/clients/inst_system_analysis_test.rb new/yast2-installation-4.0.36/test/lib/clients/inst_system_analysis_test.rb --- old/yast2-installation-4.0.33/test/lib/clients/inst_system_analysis_test.rb 2018-02-13 14:06:44.000000000 +0100 +++ new/yast2-installation-4.0.36/test/lib/clients/inst_system_analysis_test.rb 2018-03-01 16:08:50.000000000 +0100 @@ -31,6 +31,8 @@ let(:devicegraph) { instance_double(Y2Storage::Devicegraph, empty?: false) } let(:auto) { false } + let(:activate_result) { true } + let(:probe_result) { true } before do allow(client).to receive(:require).with("autoinstall/activate_callbacks") @@ -38,11 +40,13 @@ before do allow(Y2Storage::StorageManager).to receive(:instance).and_return(storage) + allow(storage).to receive(:activate).and_return activate_result + allow(storage).to receive(:probe).and_return probe_result allow(Yast::Mode).to receive(:auto).and_return(auto) end it "uses default activation callbacks" do - expect(storage).to receive(:activate).with(nil) + expect(storage).to receive(:activate).with(nil).and_return true client.ActionHDDProbe end @@ -54,9 +58,28 @@ before { stub_const("Y2Autoinstallation::ActivateCallbacks", callbacks_class) } it "uses AutoYaST activation callbacks" do - expect(storage).to receive(:activate).with(callbacks) + expect(storage).to receive(:activate).with(callbacks).and_return true client.ActionHDDProbe end end + + context "when activation fails and the error is not recovered" do + let(:activate_result) { false } + + it "does not probe and raises AbortError" do + expect(storage).to_not receive(:probe) + expect { client.ActionHDDProbe } + .to raise_error Yast::InstSystemAnalysisClient::AbortError + end + end + + context "when probing fails and the error is not recovered" do + let(:probe_result) { false } + + it "raises AbortError" do + expect { client.ActionHDDProbe } + .to raise_error Yast::InstSystemAnalysisClient::AbortError + end + end end end