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 - [email protected]
+
+- Pass args to parent class constructor (bsc#1083500)
+- 4.0.36
+
+-------------------------------------------------------------------
+Tue Feb 27 12:23:03 UTC 2018 - [email protected]
+
+- fix marking texts for translation (bsc#1081361, bsc#1083015)
+- 4.0.35
+
+-------------------------------------------------------------------
+Tue Feb 27 01:41:17 UTC 2018 - [email protected]
+
+- 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 - [email protected]
+
+- Pass args to parent class constructor (bsc#1083500)
+- 4.0.36
+
+-------------------------------------------------------------------
+Tue Feb 27 12:23:03 UTC 2018 - [email protected]
+
+- fix marking texts for translation (bsc#1081361, bsc#1083015)
+- 4.0.35
+
+-------------------------------------------------------------------
+Tue Feb 27 01:41:17 UTC 2018 - [email protected]
+
+- 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 - [email protected]
- 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