Hello community,
here is the log from the commit of package yast2-installation for openSUSE:Factory checked in at 2016-03-09 15:16:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-installation (Old)
and /work/SRC/openSUSE:Factory/.yast2-installation.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-installation"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-installation/yast2-installation.changes 2016-03-01 09:34:37.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-installation.new/yast2-installation.changes 2016-03-09 15:16:54.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Mar 4 14:24:49 UTC 2016 - mvidner@suse.com
+
+- Added a System Role step in the installation (FATE#317481).
+- 3.1.172
+
+-------------------------------------------------------------------
Old:
----
yast2-installation-3.1.171.tar.bz2
New:
----
yast2-installation-3.1.172.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-installation.spec ++++++
--- /var/tmp/diff_new_pack.KP3lee/_old 2016-03-09 15:16:55.000000000 +0100
+++ /var/tmp/diff_new_pack.KP3lee/_new 2016-03-09 15:16:55.000000000 +0100
@@ -17,7 +17,7 @@
Name: yast2-installation
-Version: 3.1.171
+Version: 3.1.172
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -40,9 +40,8 @@
BuildRequires: yast2-devtools >= 3.1.10
BuildRequires: rubygem(rspec)
-# Base clients for inst clients
-# Arch::is_zkvm
-BuildRequires: yast2 >= 3.1.162
+# ProductFeatures.SetOverlay
+BuildRequires: yast2 >= 3.1.177
# Yast::Remote
BuildRequires: yast2-network
@@ -50,8 +49,8 @@
# AutoinstSoftware.SavePackageSelection()
Requires: autoyast2-installation >= 3.1.105
-# Wizard.OpenLeftTitleNextBackDialog
-Requires: yast2 >= 3.1.126
+# ProductFeatures.SetOverlay
+Requires: yast2 >= 3.1.177
# Language::GetLanguageItems and other API
# Language::Set (handles downloading the translation extensions)
++++++ yast2-installation-3.1.171.tar.bz2 -> yast2-installation-3.1.172.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/.rubocop.yml new/yast2-installation-3.1.172/.rubocop.yml
--- old/yast2-installation-3.1.171/.rubocop.yml 2016-02-29 13:49:28.000000000 +0100
+++ new/yast2-installation-3.1.172/.rubocop.yml 2016-03-09 09:50:30.000000000 +0100
@@ -33,12 +33,6 @@
Metrics/PerceivedComplexity:
Max: 63
-# Offense count: 6
-# Cop supports --auto-correct.
-# Configuration parameters: EnforcedStyle, SupportedStyles.
-Style/AccessModifierIndentation:
- Enabled: false
-
# Offense count: 85
Style/Documentation:
Enabled: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/doc/control-file.md new/yast2-installation-3.1.172/doc/control-file.md
--- old/yast2-installation-3.1.171/doc/control-file.md 2016-02-29 13:49:28.000000000 +0100
+++ new/yast2-installation-3.1.172/doc/control-file.md 2016-03-09 09:50:30.000000000 +0100
@@ -842,6 +842,59 @@
Text ID used for desktop selection label.
+### System Roles
+
+System Roles, if defined in the control file, are presented during
+the first stage of the installation. The user will select one of them
+and they will affect the proposed configuration of Partitioning and Software.
+
+They were requested in FATE#317481 and they are an evolution of the earlier
+concept of Server Scenarios used in SLE 11.
+
+Example:
+
+```xml
+http://www.suse.com/1.0/yast2ns"
+ xmlns:config="http://www.suse.com/1.0/configns">
+ <!-- ... -->
+
+
+ <id>plain</id>
+ <!-- nothing else here, no overrides -->
+
+
+
+ <id>virtualization_host_kvm</id>
+ <partitioning>
+ true
+ </partitioning>
+ <software>
+ base Minimal kvm_server
+ </software>
+
+
+
+ <texts>
+ <plain><label>General Server</label></plain>
+
+ <label>Suitable for physical machines.</label>
+
+
+ <label>KVM Virtualization Host</label>
+
+
+ <label>Will install the appropriate packages.
+Will use LVM disk layout.</label>
+
+ </texts>
+</productDefines>
+```
+
+Each role has a short label and a few lines of description in the *texts*
+section, identified by a matching *id* element. The contents of *partitioning*
+and *software* are merged with the corresponding top-level definitions. See
+[Partitioning](#partitioning) and [Software](#software).
+
### System Scenarios
System scenarios contain definition of dialog *inst\_scenarios* in the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/doc/installation_overview.md new/yast2-installation-3.1.172/doc/installation_overview.md
--- old/yast2-installation-3.1.171/doc/installation_overview.md 2016-02-29 13:49:28.000000000 +0100
+++ new/yast2-installation-3.1.172/doc/installation_overview.md 2016-03-09 09:50:30.000000000 +0100
@@ -183,5 +183,5 @@
in `/y2update/control.xml`, `/control.xml` and `/etc/YaST2/control.xml` and each SUSE product will
have their own file.
-Quite nice [documentation](doc/control-file.md) lives in this repository about
+Quite nice [documentation](control-file.md) lives in this repository about
the content of these files.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/package/yast2-installation.changes new/yast2-installation-3.1.172/package/yast2-installation.changes
--- old/yast2-installation-3.1.171/package/yast2-installation.changes 2016-02-29 13:49:28.000000000 +0100
+++ new/yast2-installation-3.1.172/package/yast2-installation.changes 2016-03-09 09:50:30.000000000 +0100
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Fri Mar 4 14:24:49 UTC 2016 - mvidner@suse.com
+
+- Added a System Role step in the installation (FATE#317481).
+- 3.1.172
+
+-------------------------------------------------------------------
Mon Feb 29 09:05:16 UTC 2016 - mfilka@suse.com
- bsc#956473
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/package/yast2-installation.spec new/yast2-installation-3.1.172/package/yast2-installation.spec
--- old/yast2-installation-3.1.171/package/yast2-installation.spec 2016-02-29 13:49:28.000000000 +0100
+++ new/yast2-installation-3.1.172/package/yast2-installation.spec 2016-03-09 09:50:30.000000000 +0100
@@ -17,7 +17,7 @@
Name: yast2-installation
-Version: 3.1.171
+Version: 3.1.172
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -37,9 +37,8 @@
BuildRequires: yast2-devtools >= 3.1.10
BuildRequires: rubygem(rspec)
-# Base clients for inst clients
-# Arch::is_zkvm
-BuildRequires: yast2 >= 3.1.162
+# ProductFeatures.SetOverlay
+BuildRequires: yast2 >= 3.1.177
# Yast::Remote
BuildRequires: yast2-network
@@ -47,8 +46,8 @@
# AutoinstSoftware.SavePackageSelection()
Requires: autoyast2-installation >= 3.1.105
-# Wizard.OpenLeftTitleNextBackDialog
-Requires: yast2 >= 3.1.126
+# ProductFeatures.SetOverlay
+Requires: yast2 >= 3.1.177
# Language::GetLanguageItems and other API
# Language::Set (handles downloading the translation extensions)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/src/Makefile.am new/yast2-installation-3.1.172/src/Makefile.am
--- old/yast2-installation-3.1.171/src/Makefile.am 2016-02-29 13:49:28.000000000 +0100
+++ new/yast2-installation-3.1.172/src/Makefile.am 2016-03-09 09:50:30.000000000 +0100
@@ -50,6 +50,7 @@
clients/inst_save_hardware_status.rb \
clients/inst_scenarios.rb \
clients/inst_system_analysis.rb \
+ clients/inst_system_role.rb \
clients/inst_upgrade_urls.rb \
clients/inst_welcome.rb \
clients/inst_worker_continue.rb \
@@ -111,6 +112,7 @@
lib/installation/proposal_runner.rb \
lib/installation/proposal_store.rb \
lib/installation/remote_finish_client.rb \
+ lib/installation/select_system_role.rb \
lib/installation/snapshots_finish.rb
ylibclientdir = "${yast2dir}/lib/installation/clients"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/src/clients/inst_system_role.rb new/yast2-installation-3.1.172/src/clients/inst_system_role.rb
--- old/yast2-installation-3.1.171/src/clients/inst_system_role.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-installation-3.1.172/src/clients/inst_system_role.rb 2016-03-09 09:50:30.000000000 +0100
@@ -0,0 +1,2 @@
+require "installation/select_system_role"
+Installation::SelectSystemRole.new.run
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/src/lib/installation/cio_ignore.rb new/yast2-installation-3.1.172/src/lib/installation/cio_ignore.rb
--- old/yast2-installation-3.1.171/src/lib/installation/cio_ignore.rb 2016-02-29 13:49:28.000000000 +0100
+++ new/yast2-installation-3.1.172/src/lib/installation/cio_ignore.rb 2016-03-09 09:50:31.000000000 +0100
@@ -26,7 +26,7 @@
end
end
- private
+ private
def kvm?
File.exist?("/proc/sysinfo") &&
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/src/lib/installation/clients/inst_disk_for_image.rb new/yast2-installation-3.1.172/src/lib/installation/clients/inst_disk_for_image.rb
--- old/yast2-installation-3.1.171/src/lib/installation/clients/inst_disk_for_image.rb 2016-02-29 13:49:28.000000000 +0100
+++ new/yast2-installation-3.1.172/src/lib/installation/clients/inst_disk_for_image.rb 2016-03-09 09:50:31.000000000 +0100
@@ -65,7 +65,7 @@
ret
end
- private
+ private
def disks_to_use
target_map = Storage.GetTargetMap
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/src/lib/installation/clients/inst_upgrade_urls.rb new/yast2-installation-3.1.172/src/lib/installation/clients/inst_upgrade_urls.rb
--- old/yast2-installation-3.1.171/src/lib/installation/clients/inst_upgrade_urls.rb 2016-02-29 13:49:28.000000000 +0100
+++ new/yast2-installation-3.1.172/src/lib/installation/clients/inst_upgrade_urls.rb 2016-03-09 09:50:31.000000000 +0100
@@ -1242,7 +1242,7 @@
:next
end
- private
+ private
# FIXME: share this code better
def target_distribution
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/src/lib/installation/select_system_role.rb new/yast2-installation-3.1.172/src/lib/installation/select_system_role.rb
--- old/yast2-installation-3.1.171/src/lib/installation/select_system_role.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-installation-3.1.172/src/lib/installation/select_system_role.rb 2016-03-09 09:50:31.000000000 +0100
@@ -0,0 +1,112 @@
+# Copyright (c) 2016 SUSE LLC.
+# All Rights Reserved.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 or 3 of the GNU General
+# Public License as published by the Free Software Foundation.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, contact SUSE LLC.
+
+# To contact SUSE about this file by physical or electronic mail,
+# you may find current contact information at www.suse.com
+
+require "yast"
+require "ui/installation_dialog"
+Yast.import "ProductControl"
+Yast.import "ProductFeatures"
+
+module Installation
+ class SelectSystemRole < ::UI::InstallationDialog
+ def initialize
+ super
+
+ textdomain "installation"
+ end
+
+ def run
+ if raw_roles.empty?
+ log.info "No roles defined, skipping their dialog"
+ return :auto # skip forward or backward
+ end
+
+ super
+ end
+
+ def dialog_title
+ _("System Role")
+ end
+
+ def help_text
+ "" # no Help, besides the descriptions in dialog body
+ end
+
+ def dialog_content
+ ui_roles = role_attributes.each_with_object(VBox()) do |r, vbox|
+ vbox << Left(RadioButton(Id(r[:id]), r[:label]))
+ vbox << HBox(
+ HSpacing(4),
+ Left(Label(r[:description]))
+ )
+ vbox << VSpacing(2)
+ end
+
+ RadioButtonGroup(Id(:roles), ui_roles)
+ end
+
+ def create_dialog
+ clear_role
+ ok = super
+ Yast::UI.ChangeWidget(Id(:roles), :CurrentButton, role_attributes.first[:id])
+ ok
+ end
+
+ def next_handler
+ role_id = Yast::UI.QueryWidget(Id(:roles), :CurrentButton)
+ apply_role(role_id)
+
+ super
+ end
+
+ private
+
+ def clear_role
+ Yast::ProductFeatures.ClearOverlay
+ end
+
+ def apply_role(role_id)
+ log.info "Applying system role '#{role_id}'"
+ features = raw_roles.find { |r| r["id"] == role_id }
+ features = features.dup
+ features.delete("id")
+ Yast::ProductFeatures.SetOverlay(features)
+ end
+
+ # the contents is an overlay for ProductFeatures sections
+ # [
+ # { "id" => "foo", "partitioning" => ... },
+ # { "id" => "bar", "partitioning" => ... , "software" => ...},
+ # ]
+ # @return [Array Object}>]
+ def raw_roles
+ Yast::ProductControl.productControl.fetch("system_roles", [])
+ end
+
+ def role_attributes
+ raw_roles.map do |r|
+ id = r["id"]
+
+ {
+ id: id,
+ label: Yast::ProductControl.GetTranslatedText(id),
+ description: Yast::ProductControl.GetTranslatedText(id + "_description")
+ }
+ end
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/src/lib/installation/snapshots_finish.rb new/yast2-installation-3.1.172/src/lib/installation/snapshots_finish.rb
--- old/yast2-installation-3.1.171/src/lib/installation/snapshots_finish.rb 2016-02-29 13:49:28.000000000 +0100
+++ new/yast2-installation-3.1.172/src/lib/installation/snapshots_finish.rb 2016-03-09 09:50:31.000000000 +0100
@@ -41,7 +41,7 @@
_("Creating root filesystem snapshot...")
end
- private
+ private
def create_post_snapshot
pre_number = Yast2::FsSnapshotStore.load("update")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/test/Makefile.am new/yast2-installation-3.1.172/test/Makefile.am
--- old/yast2-installation-3.1.171/test/Makefile.am 2016-02-29 13:49:28.000000000 +0100
+++ new/yast2-installation-3.1.172/test/Makefile.am 2016-03-09 09:50:31.000000000 +0100
@@ -8,6 +8,7 @@
proposal_store_test.rb \
proposal_runner_test.rb \
remote_finish_test.rb \
+ select_system_role_test.rb \
snapshots_finish_test.rb
TEST_EXTENSIONS = .rb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/test/cio_ignore_test.rb new/yast2-installation-3.1.172/test/cio_ignore_test.rb
--- old/yast2-installation-3.1.171/test/cio_ignore_test.rb 2016-02-29 13:49:28.000000000 +0100
+++ new/yast2-installation-3.1.172/test/cio_ignore_test.rb 2016-03-09 09:50:31.000000000 +0100
@@ -6,7 +6,6 @@
describe ::Installation::CIOIgnore do
describe "enable/disable" do
-
it "take AutoYaST cio_ignore setting" do
allow(Yast::Mode).to receive(:autoinst).and_return(true)
allow(Yast::AutoinstConfig).to receive(:cio_ignore).and_return(false)
@@ -21,7 +20,6 @@
::Installation::CIOIgnore.instance.reset
expect(::Installation::CIOIgnore.instance.enabled).to eq(true)
end
-
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/test/select_system_role_test.rb new/yast2-installation-3.1.172/test/select_system_role_test.rb
--- old/yast2-installation-3.1.171/test/select_system_role_test.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-installation-3.1.172/test/select_system_role_test.rb 2016-03-09 09:50:31.000000000 +0100
@@ -0,0 +1,69 @@
+#! /usr/bin/env rspec
+
+require_relative "./test_helper"
+
+require "installation/select_system_role"
+Yast.import "ProductControl"
+
+describe ::Installation::SelectSystemRole do
+ subject { Installation::SelectSystemRole.new }
+
+ before do
+ allow(Yast::ProductControl).to receive(:GetTranslatedText) do |s|
+ "Lorem Ipsum #{s}"
+ end
+
+ allow(Yast::UI).to receive(:ChangeWidget)
+ end
+
+ describe "#run" do
+ context "when no roles are defined" do
+ before do
+ allow(Yast::ProductControl).to receive(:productControl)
+ .and_return("system_roles" => [])
+ end
+
+ it "does not display dialog, and returns :auto" do
+ expect(Yast::Wizard).to_not receive(:SetContents)
+ expect(subject.run).to eq(:auto)
+ end
+ end
+
+ context "when some roles are defined" do
+ let(:control_file_roles) do
+ [
+ { "id" => "foo", "partitioning" => { "format" => true } },
+ { "id" => "bar", "software" => { "desktop" => "knome" } }
+ ]
+ end
+
+ before do
+ allow(Yast::ProductControl).to receive(:productControl)
+ .and_return("system_roles" => control_file_roles)
+ end
+
+ it "displays dialog, and sets ProductFeatures on Next" do
+ allow(Yast::Wizard).to receive(:SetContents)
+ allow(Yast::UI).to receive(:UserInput)
+ .and_return(:next)
+ allow(Yast::UI).to receive(:QueryWidget)
+ .with(Id(:roles), :CurrentButton).and_return("foo")
+
+ expect(Yast::ProductFeatures).to receive(:ClearOverlay)
+ expect(Yast::ProductFeatures).to receive(:SetOverlay) # .with
+
+ expect(subject.run).to eq(:next)
+ end
+
+ it "displays dialog, and leaves ProductFeatures on Back" do
+ allow(Yast::Wizard).to receive(:SetContents)
+ allow(Yast::UI).to receive(:UserInput)
+ .and_return(:back)
+ expect(Yast::ProductFeatures).to receive(:ClearOverlay)
+ expect(Yast::ProductFeatures).to_not receive(:SetOverlay)
+
+ expect(subject.run).to eq(:back)
+ end
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.171/test/test_helper.rb new/yast2-installation-3.1.172/test/test_helper.rb
--- old/yast2-installation-3.1.171/test/test_helper.rb 2016-02-29 13:49:28.000000000 +0100
+++ new/yast2-installation-3.1.172/test/test_helper.rb 2016-03-09 09:50:31.000000000 +0100
@@ -3,6 +3,7 @@
ENV["Y2DIR"] = y2dirs.unshift(srcdir).join(":")
require "yast"
+require "yast/rspec"
# fake AutoinstConfigClass class which is not supported by Ubuntu
module Yast