Hello community, here is the log from the commit of package yast2-installation for openSUSE:Factory checked in at 2019-02-04 16:10:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-installation (Old) and /work/SRC/openSUSE:Factory/.yast2-installation.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "yast2-installation" Mon Feb 4 16:10:02 2019 rev:415 rq:670588 version:4.1.35 Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-installation/yast2-installation.changes 2018-12-31 09:44:15.886321007 +0100 +++ /work/SRC/openSUSE:Factory/.yast2-installation.new.28833/yast2-installation.changes 2019-02-04 16:10:03.929986002 +0100 @@ -1,0 +2,22 @@ +Fri Feb 1 13:13:31 CET 2019 - schubi@suse.de + +- Copying SSH keys from a privious installation into the new one: + Set the right file permissions for the SSH deamon (bnc#1122303). +- 4.1.35 + +------------------------------------------------------------------- +Thu Jan 3 10:51:28 UTC 2019 - jreidinger@suse.com + +- remove no longer used SCR agents without replacement: + sysconfig.boot, sysconfig.fam, etc.passwd and + install_inf workarounds for aliases and options +- remove no longer used clients: + - inst_ask_online_update replaced by registration for SLE and + online_repos for openSUSE. + - inst_check_autoinst_mode dropped without replacement. Floppy + support was dropped. + - inst_scenarios replaced by system roles. + - update_wizard_steps replaced by direct call of code without + client + +------------------------------------------------------------------- Old: ---- yast2-installation-4.1.34.tar.bz2 New: ---- yast2-installation-4.1.35.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-installation.spec ++++++ --- /var/tmp/diff_new_pack.FUBzNa/_old 2019-02-04 16:10:04.517985636 +0100 +++ /var/tmp/diff_new_pack.FUBzNa/_new 2019-02-04 16:10:04.517985636 +0100 @@ -1,7 +1,7 @@ # # spec file for package yast2-installation # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: yast2-installation -Version: 4.1.34 +Version: 4.1.35 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -233,13 +233,8 @@ %{yast_libdir}/transfer # agents -%{yast_scrconfdir}/etc_passwd.scr -%{yast_scrconfdir}/cfg_boot.scr %{yast_scrconfdir}/cfg_windowmanager.scr -%{yast_scrconfdir}/cfg_fam.scr %{yast_scrconfdir}/etc_install_inf.scr -%{yast_scrconfdir}/etc_install_inf_alias.scr -%{yast_scrconfdir}/etc_install_inf_options.scr %{yast_scrconfdir}/run_df.scr # fillup %{_fillupdir}/sysconfig.security-checksig ++++++ yast2-installation-4.1.34.tar.bz2 -> yast2-installation-4.1.35.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/doc/control-file.md new/yast2-installation-4.1.35/doc/control-file.md --- old/yast2-installation-4.1.34/doc/control-file.md 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/doc/control-file.md 2019-02-01 15:06:41.000000000 +0100 @@ -727,7 +727,7 @@ ``` They were requested in FATE#317481 and they are an evolution of the earlier -concept of Server Scenarios used in SLE 11. +concept of Server Scenarios used in SLE 11. The server scenarios were dropped. Example: @@ -807,107 +807,6 @@ The *services* part currently only supports enabling additional services which is done by specifying *service* with its *name* as seen in the example. -### System Scenarios - -System scenarios contain the definition of the *inst_scenarios* dialog in the -first stage installation. It offers several base scenarios, but only one -of them can be selected. - -Example of configured scenarios: - -```xml - <productDefines xmlns="http://www.suse.com/1.0/yast2ns" - xmlns:config="http://www.suse.com/1.0/configns"> - <software> - - <!-- list of supported scenarios --> - <system_scenarios config:type="list"> - - <!-- one scenario --> - <system_scenario> - <!-- 'id' matches the text 'scenario_game_server' --> - <id>scenario_game_server</id> - <!-- space-separated list of patterns --> - <patterns>game_server-pattern high-load-server</patterns> - <!-- plain icon filename (from the 32x32 directory) without suffix --> - <icon>yast-system</icon> - </system_scenario> - - <system_scenario> - <id>scenario_web_server</id> - <patterns>web_server-pattern</patterns> - <icon>yast-http-server</icon> - </system_scenario> - - <system_scenario> - <id>scenario_nfs_server</id> - <patterns>nfs_server-pattern</patterns> - <icon>yast-nfs-server</icon> - </system_scenario> - - </system_scenarios> - - <!-- this scenario (id) is selected by default --> - <default_system_scenario>scenario_nfs_server</default_system_scenario> - - </software> - - <texts> - - <!-- dialog caption --> - <scenarios_caption><label>Server Base Scenario</label></scenarios_caption> - <!-- informative text between caption and listed scenarios --> - <scenarios_text><label>SUSE Linux Enterprise Server offers several base scenarios. - Choose the one that matches your server the best.</label></scenarios_text> - - <!-- matches the 'id' of one 'system_scenario' --> - <scenario_game_server><label>Game Server</label></scenario_game_server> - <scenario_web_server><label>Web Server</label></scenario_web_server> - <scenario_nfs_server><label>NFS Server</label></scenario_nfs_server> - - </texts> - </productDefines> -``` - -System scenarios are defined in the *software* section. The -*system_scenarios* section consists of several *system_scenario* definitions. -Each *system_scenario* consists of: - -- *id* - unique identificator of a selection. - -- *patterns* - space-separated list of patterns covering the software - scenario. - -- *icon* - plain icon filename (from the 32x32 theme directory) without - suffix. - -Selection labels must be defined in the [texts](#control_texts) section. -Scenarios *id*s are used as link identificators. - -```xml - <software> - <system_scenario> - <id></id> - </system_scenario> - </software> - - <texts> - <><label>Some Label</label></> - </texts> -``` - -The *software* section can also contain an optional *default_system_scenario* -that defines the id of the default scenario. - -There are some important texts that have to be defined for the dialog -layout: - -- *scenarios_caption* - used as a dialog caption for the "scenarios" - dialog. - -- *scenarios_text* - used as an informative text describing the - available selections below. - ### Partitioning
**Note:** this section describes the format implemented by yast2-storage diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/package/yast2-installation.changes new/yast2-installation-4.1.35/package/yast2-installation.changes --- old/yast2-installation-4.1.34/package/yast2-installation.changes 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/package/yast2-installation.changes 2019-02-01 15:06:41.000000000 +0100 @@ -1,4 +1,26 @@
+Fri Feb 1 13:13:31 CET 2019 - schubi@suse.de + +- Copying SSH keys from a privious installation into the new one: + Set the right file permissions for the SSH deamon (bnc#1122303). +- 4.1.35 + +------------------------------------------------------------------- +Thu Jan 3 10:51:28 UTC 2019 - jreidinger@suse.com + +- remove no longer used SCR agents without replacement: + sysconfig.boot, sysconfig.fam, etc.passwd and + install_inf workarounds for aliases and options +- remove no longer used clients: + - inst_ask_online_update replaced by registration for SLE and + online_repos for openSUSE. + - inst_check_autoinst_mode dropped without replacement. Floppy + support was dropped. + - inst_scenarios replaced by system roles. + - update_wizard_steps replaced by direct call of code without + client + +------------------------------------------------------------------- Mon Dec 17 09:03:47 UTC 2018 - jlopez@suse.com - Hardening commands execution (part of bsc#1118291). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/package/yast2-installation.spec new/yast2-installation-4.1.35/package/yast2-installation.spec --- old/yast2-installation-4.1.34/package/yast2-installation.spec 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/package/yast2-installation.spec 2019-02-01 15:06:41.000000000 +0100 @@ -16,7 +16,7 @@ # Name: yast2-installation -Version: 4.1.34 +Version: 4.1.35 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -232,13 +232,8 @@ %{yast_libdir}/transfer # agents -%{yast_scrconfdir}/etc_passwd.scr -%{yast_scrconfdir}/cfg_boot.scr %{yast_scrconfdir}/cfg_windowmanager.scr -%{yast_scrconfdir}/cfg_fam.scr %{yast_scrconfdir}/etc_install_inf.scr -%{yast_scrconfdir}/etc_install_inf_alias.scr -%{yast_scrconfdir}/etc_install_inf_options.scr %{yast_scrconfdir}/run_df.scr # fillup %{_fillupdir}/sysconfig.security-checksig diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/clients/inst_ask_online_update.rb new/yast2-installation-4.1.35/src/clients/inst_ask_online_update.rb --- old/yast2-installation-4.1.34/src/clients/inst_ask_online_update.rb 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/clients/inst_ask_online_update.rb 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -require "installation/clients/inst_ask_online_update" -Yast::InstAskOnlineUpdateClient.new.main diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/clients/inst_check_autoinst_mode.rb new/yast2-installation-4.1.35/src/clients/inst_check_autoinst_mode.rb --- old/yast2-installation-4.1.34/src/clients/inst_check_autoinst_mode.rb 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/clients/inst_check_autoinst_mode.rb 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -require "installation/clients/inst_check_autoinst_mode" -Yast::InstCheckAutoinstModeClient.new.main diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/clients/inst_scenarios.rb new/yast2-installation-4.1.35/src/clients/inst_scenarios.rb --- old/yast2-installation-4.1.34/src/clients/inst_scenarios.rb 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/clients/inst_scenarios.rb 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -require "installation/clients/inst_scenarios" -Yast::InstScenariosClient.new.main diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/clients/update_wizard_steps.rb new/yast2-installation-4.1.35/src/clients/update_wizard_steps.rb --- old/yast2-installation-4.1.34/src/clients/update_wizard_steps.rb 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/clients/update_wizard_steps.rb 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -require "installation/clients/update_wizard_steps" -Yast::UpdateWizardStepsClient.new.main diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/lib/installation/clients/inst_ask_online_update.rb new/yast2-installation-4.1.35/src/lib/installation/clients/inst_ask_online_update.rb --- old/yast2-installation-4.1.34/src/lib/installation/clients/inst_ask_online_update.rb 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/lib/installation/clients/inst_ask_online_update.rb 1970-01-01 01:00:00.000000000 +0100 @@ -1,160 +0,0 @@ -# encoding: utf-8 - -# ------------------------------------------------------------------------------ -# Copyright (c) 2006-2012 Novell, Inc. All Rights Reserved. -# -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of version 2 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 Novell, Inc. -# -# To contact Novell about this file by physical or electronic mail, you may find -# current contact information at www.novell.com. -# ------------------------------------------------------------------------------ - -# File: clients/inst_ask_online_update.ycp -# Module: Installation -# Summary: Ask if the user wants to run an online update during installation -# Authors: J. Daniel Schmidt <jdsn@suse.de> -# -# Ask if the user wants to run an online update during installation -# -# $Id: inst_ask_online_update.ycp 1 2006-02-17 13:20:02Z jdsn $ -module Yast - class InstAskOnlineUpdateClient < Client - def main - Yast.import "Pkg" - Yast.import "UI" - textdomain "installation" - - # FIXME: move to yast2-registration later, it doesn't belog here - - Yast.import "Wizard" - Yast.import "Popup" - Yast.import "GetInstArgs" - Yast.import "CustomDialogs" - Yast.import "Directory" - Yast.import "Language" - Yast.import "Mode" - Yast.import "String" - Yast.import "Label" - Yast.import "Internet" - Yast.import "Installation" - Yast.import "NetworkService" - - # BNC #572734 - if GetInstArgs.going_back - Builtins.y2milestone("going_back -> returning `auto") - return :auto - end - - # BNC #450229 - # There used to be >if (!Internet::do_you)< - if NetworkService.isNetworkRunning != true - Builtins.y2milestone("No network running, skipping online update...") - return :auto - end - - @ui = UI.GetDisplayInfo - - @argmap = GetInstArgs.argmap - - # strings for "ask for online update"-popup - @ask_update_run_btn = _("Run Update") - @ask_update_skip_btn = _("Skip Update") - - @online_update = _("Online Update") - @ask_update_main = _("Run Online Update now?") - - @help = _( - "Select whether to run an online update now.\nYou may skip this step and run an online update later.\n" - ) - - # vv MAIN (WIZARD) LAYOUT vv - @sr_layout = nil - @sr_layout = HVSquash( - VBox( - Left(Label(@ask_update_main)), - Left( - RadioButtonGroup( - Id(:run_update), - HBox( - HSpacing(1), - VBox( - Left(RadioButton(Id(:update), @ask_update_run_btn, true)), - Left(RadioButton(Id(:noupdate), @ask_update_skip_btn)) - ), - HSpacing(1) - ) - ) - ) - ) - ) - - @contents = VBox(VSpacing(0.5), @sr_layout, VSpacing(0.5)) - # ^^ END MAIN LAYOUT ^^ - - # check if there are some patches available - - # BNC #447080 - Pkg.TargetInitialize(Installation.destdir) - Pkg.TargetLoad - Pkg.SourceStartManager(true) - - # Patches need solver run to be selected - Pkg.PkgSolve(true) - - @selected = Pkg.ResolvableCountPatches(:affects_pkg_manager) - Builtins.y2milestone( - "Available patches for pkg management: %1", - @selected - ) - if Ops.less_than(@selected, 1) - @selected = Pkg.ResolvableCountPatches(:all) - Builtins.y2milestone("All available patches: %1", @selected) - if Ops.less_than(@selected, 1) - Builtins.y2milestone("No patch available, skiping offer to run YOU") - Internet.do_you = false - return :next - end - end - - # check if we are in installation workflow or running independently (for development) - Wizard.CreateDialog if Mode.normal - - Wizard.SetContents( - @online_update, - @contents, - @help, - GetInstArgs.enable_back, - GetInstArgs.enable_next - ) - - @ret = nil - loop do - @ret = Wizard.UserInput - - if @ret == :abort - break if Mode.normal - break if Popup.ConfirmAbort(:incomplete) - elsif @ret == :help - Wizard.ShowHelp(@help) - elsif @ret == :next - # Skipping online update - # needed later BNC #450229 - Internet.do_you = !UI.QueryWidget(Id(:noupdate), :Value) - end - break if [:next, :back].include?(@ret) - end - - Convert.to_symbol(@ret) - end - end -end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/lib/installation/clients/inst_check_autoinst_mode.rb new/yast2-installation-4.1.35/src/lib/installation/clients/inst_check_autoinst_mode.rb --- old/yast2-installation-4.1.34/src/lib/installation/clients/inst_check_autoinst_mode.rb 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/lib/installation/clients/inst_check_autoinst_mode.rb 1970-01-01 01:00:00.000000000 +0100 @@ -1,77 +0,0 @@ -# encoding: utf-8 - -# ------------------------------------------------------------------------------ -# Copyright (c) 2006-2012 Novell, Inc. All Rights Reserved. -# -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of version 2 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 Novell, Inc. -# -# To contact Novell about this file by physical or electronic mail, you may find -# current contact information at www.novell.com. -# ------------------------------------------------------------------------------ - -# File: clients/inst_check_autoinst_mode.ycp -# Package: Installation -# Summary: Installation mode selection, checking for autoinst.xml on floppy -# Authors: Lukas Ocilka <locilka@suse.cz> -# -# $Id$ -# -module Yast - class InstCheckAutoinstModeClient < Client - def main - textdomain "installation" - -# storage-ng -# rubocop:disable Style/BlockComments -=begin - Yast.import "StorageDevices" -=end - Yast.import "Mode" - - Builtins.y2milestone("Checking for autoinst.xml on floppy...") - -# storage-ng -=begin - # do we have a floppy drive attached ? - if StorageDevices.FloppyReady - # Try to load settings from disk, if a floppy is present - SCR.Execute( - path(".target.mount"), - [StorageDevices.FloppyDevice, "/media/floppy"], - "-t auto" - ) - - # Check for autoinst.xml. if available - # set mode to autoinst. Later, the file is parsed and installation - # is performed automatically. - - if Ops.greater_than( - SCR.Read(path(".target.size"), "/media/floppy/autoinst.xml"), - 0 - ) - Builtins.y2milestone("Found control file, switching to autoinst mode") - Mode.SetMode("autoinstallation") - # initialize Report behavior - # Default in autoinst mode is showing messages and warnings with timeout of 10 sec. - # Errors are shown without timeout. - end - SCR.Execute(path(".target.umount"), "/media/floppy") - end -=end - - true - - # EOF - end - end -end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/lib/installation/clients/inst_scenarios.rb new/yast2-installation-4.1.35/src/lib/installation/clients/inst_scenarios.rb --- old/yast2-installation-4.1.34/src/lib/installation/clients/inst_scenarios.rb 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/lib/installation/clients/inst_scenarios.rb 1970-01-01 01:00:00.000000000 +0100 @@ -1,308 +0,0 @@ -# encoding: utf-8 - -# ------------------------------------------------------------------------------ -# Copyright (c) 2006-2012 Novell, Inc. All Rights Reserved. -# -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of version 2 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 Novell, Inc. -# -# To contact Novell about this file by physical or electronic mail, you may find -# current contact information at www.novell.com. -# ------------------------------------------------------------------------------ - -# File: clients/inst_scenarios.ycp -# Package: Installation (First Stage) -# Summary: Server/Desktop Scenarios -# Authors: Lukas Ocilka <locilka@suse.cz> -# -# $Id$ -module Yast - class InstScenariosClient < Client - def main - Yast.import "UI" - Yast.import "Pkg" - # See FATE: #304373: Align installation process to use scenarios for Server in early stage - - textdomain "installation" - - Yast.import "Arch" - Yast.import "ProductControl" - Yast.import "ProductFeatures" - Yast.import "Wizard" - Yast.import "Icon" - Yast.import "Installation" - Yast.import "Popup" - Yast.import "PackageCallbacks" - Yast.import "Report" - Yast.import "Packages" - Yast.import "DefaultDesktop" - Yast.import "PackagesProposal" - - @test_mode = false - - if Ops.greater_than(Builtins.size(WFM.Args), 0) && - Ops.is_string?(WFM.Args(0)) - Builtins.y2milestone("Args: %1", WFM.Args) - @test_mode = true if WFM.Args(0) == "test" - end - - # load supported scenarios from control file - @any_scenarios = ProductFeatures.GetFeature( - "software", - "system_scenarios" - ) - - if @any_scenarios.nil? || @any_scenarios == "" || @any_scenarios == [] - Builtins.y2error("Undefined software->system_scenarios") - return :auto - end - - @system_scenarios = Convert.convert( - @any_scenarios, - from: "any", - to: "list <map <string, string>>" - ) - - # Remove Xen/KVM Virtualization Host Server Installation for non-x86_64 (bnc#702103, bnc#795067) - @system_scenarios = Builtins.filter(@system_scenarios) do |one_scenario| - if Builtins.issubstring( - Ops.get(one_scenario, "id", "---"), - "virtualization_host" - ) && - !Arch.x86_64 - Builtins.y2milestone("removing Xen Virtualization Host Server option") - next false - end - true - end - - @packages_proposal_ID = "inst_scenarios" - - # adjusting test mode - not used in installation - if @test_mode - Wizard.CreateDialog - Pkg.TargetInit(Installation.destdir, true) - Pkg.SourceStartManager(true) - # pre-select - Builtins.foreach( - Builtins.splitstring( - Ops.get(@system_scenarios, [0, "patterns"], ""), - " \t" - ) - ) { |one_pattern| Pkg.ResolvableInstall(one_pattern, :pattern) } - Pkg.PkgSolve(true) - end - - Builtins.y2milestone("Supported scenarios: %1", @system_scenarios) - - # TRANSLATORS: help text - @dialog_help = _( - "<p>Select the scenario that meets your needs best.\nAdditional software can be selected later in software proposal.</p>\n" - ) - - # Adjust dialog - Wizard.SetContents( - ProductControl.GetTranslatedText("scenarios_caption"), - GetDialogContents(), - @dialog_help, - true, - true - ) - - SelectAppropriateRadioButton() - - @user_input = nil - @ret = :auto - - # Handle user input - loop do - @user_input = UI.UserInput - - if @user_input == :next - @chosen_selection = Convert.to_string( - UI.QueryWidget(Id(:scenarios), :CurrentButton) - ) - - if @chosen_selection.nil? || @chosen_selection == "" - # TRANSLATORS: pop-up message - Report.Message(_("Choose one scenario, please.")) - else - SelectPatterns(@chosen_selection) - @ret = :next - break - end - elsif @user_input == :back - @ret = :back - break - elsif @user_input == :abort || @user_input == :cancel - if Popup.ConfirmAbort(:painless) - @ret = :abort - break - end - else - Builtins.y2error("Unexpected ret: %1", @user_input) - end - end - - # test mode - not used in installation - Wizard.CloseDialog if @test_mode - - Builtins.y2milestone("Returning: %1", @ret) - @ret - # EOF - end - - # Adjusts UI - selected radio button - def SelectAppropriateRadioButton - patterns = Pkg.ResolvableProperties("", :pattern, "") - - selected_id = nil - - # check all scenarios - Builtins.foreach(@system_scenarios) do |one_scenario| - patterns_required = Builtins.splitstring( - Ops.get(one_scenario, "patterns", ""), - " \t" - ) - matching_patterns = 0 - Builtins.foreach(patterns) do |one_pattern| - if Builtins.contains( - patterns_required, - Ops.get_string(one_pattern, "name", "") - ) && - (Ops.get_symbol(one_pattern, "status", :a) == :installed || - Ops.get_symbol(one_pattern, "status", :a) == :selected) - matching_patterns = Ops.add(matching_patterns, 1) - end - end - # there are some matching patterns - # they match required patterns - if Ops.greater_than(matching_patterns, 0) && - Ops.greater_or_equal( - matching_patterns, - Builtins.size(patterns_required) - ) - Builtins.y2milestone( - "Matching: %1 (%2)", - Ops.get(one_scenario, "id", ""), - Ops.get(one_scenario, "patterns", "") - ) - if selected_id.nil? - selected_id = Ops.get(one_scenario, "id", "") - else - Builtins.y2warning("Scenario %1 already selected", selected_id) - end - end - end - - # matching patterns found - if !selected_id.nil? - UI.ChangeWidget(Id(:scenarios), :CurrentButton, selected_id) - - # using fallback from control file - else - default_selection = ProductFeatures.GetStringFeature( - "software", - "default_system_scenario" - ) - - if default_selection.nil? || default_selection == "" - Builtins.y2warning("No default selection defined") - else - Builtins.y2milestone("Pre-selecting default selection") - if UI.WidgetExists(Id(default_selection)) - UI.ChangeWidget(Id(:scenarios), :CurrentButton, default_selection) - else - Builtins.y2error("No such selection: %1", default_selection) - end - end - end - - nil - end - - def SelectPatterns(chosen_selection) - Builtins.y2milestone("User selected: %1", chosen_selection) - - # select newly selected patterns for installation - Builtins.foreach(@system_scenarios) do |one_scenario| - if Ops.get(one_scenario, "id", "---") == chosen_selection - patterns_to_install = Builtins.splitstring( - Ops.get(one_scenario, "patterns", ""), - " \t" - ) - # Select new list of patterns - PackagesProposal.SetResolvables( - @packages_proposal_ID, - :pattern, - patterns_to_install - ) - raise Break - end - end - - # conflicts with the default desktop feature, thus it removes - # the resolvables that the DefaultDesktop could require - Builtins.y2warning("Removing all default_desktop related resolvables...") - DefaultDesktop.SetDesktop(nil) - - nil - end - - def GetDialogContents - dialog_content = VBox() - - Builtins.foreach(@system_scenarios) do |one_scenario| - dialog_content = Builtins.add( - dialog_content, - HBox( - HWeight( - 1, - if Ops.get(one_scenario, "icon", "") == "" - Empty() - else - HBox( - Image(Icon.IconPath(Ops.get(one_scenario, "icon", "")), ""), - HSpacing(2) - ) - end - ), - Left( - RadioButton( - Id(Ops.get(one_scenario, "id", "")), - ProductControl.GetTranslatedText( - Ops.get(one_scenario, "id", "") - ) - ) - ), - HStretch() - ) - ) - dialog_content = Builtins.add(dialog_content, VSpacing(0.8)) - end - - dialog_content = VBox( - Label(ProductControl.GetTranslatedText("scenarios_text")), - VSpacing(2), - HSquash( - Frame( - # TRANSLATORS: frame label - _("Choose Scenario"), - RadioButtonGroup(Id(:scenarios), MarginBox(2, 1.3, dialog_content)) - ) - ) - ) - - deep_copy(dialog_content) - end - end -end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/lib/installation/clients/inst_worker_initial.rb new/yast2-installation-4.1.35/src/lib/installation/clients/inst_worker_initial.rb --- old/yast2-installation-4.1.34/src/lib/installation/clients/inst_worker_initial.rb 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/lib/installation/clients/inst_worker_initial.rb 2019-02-01 15:06:41.000000000 +0100 @@ -94,11 +94,6 @@ # Shows fallback message if running in textmode (if used as fallback) ShowTextFallbackMessage() - # First stage - if !Mode.screen_shot && !Stage.firstboot - WFM.CallFunction("inst_check_autoinst_mode", []) - end - @ret = nil # --- Runing the installation workflow --- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/lib/installation/clients/umount_finish.rb new/yast2-installation-4.1.35/src/lib/installation/clients/umount_finish.rb --- old/yast2-installation-4.1.34/src/lib/installation/clients/umount_finish.rb 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/lib/installation/clients/umount_finish.rb 2019-02-01 15:06:41.000000000 +0100 @@ -44,11 +44,8 @@ Yast.import "Installation" Yast.import "Hotplug" - Yast.import "Vendor" Yast.import "String" - Yast.import "Internet" Yast.import "FileUtils" - Yast.import "ProductFeatures" @ret = nil @func = "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/lib/installation/clients/update_wizard_steps.rb new/yast2-installation-4.1.35/src/lib/installation/clients/update_wizard_steps.rb --- old/yast2-installation-4.1.34/src/lib/installation/clients/update_wizard_steps.rb 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/lib/installation/clients/update_wizard_steps.rb 1970-01-01 01:00:00.000000000 +0100 @@ -1,53 +0,0 @@ -# encoding: utf-8 - -# ------------------------------------------------------------------------------ -# Copyright (c) 2006-2012 Novell, Inc. All Rights Reserved. -# -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of version 2 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 Novell, Inc. -# -# To contact Novell about this file by physical or electronic mail, you may find -# current contact information at www.novell.com. -# ------------------------------------------------------------------------------ - -# File: -# update_wizard_steps.ycp -# -# Module: -# Installation -# -# Authors: -# Lukas Ocilka <locilka@suse.cz> -# -# Summary: -# Script can be called from another installation modules. -# It has been designed just to redraw the installation -# steps. Call it only if needed. -# WFM::call ("update_wizard_steps") -# -# $Id$ -# -module Yast - class UpdateWizardStepsClient < Client - def main - Yast.import "UI" - textdomain "installation" - - Yast.include self, "installation/misc.rb" - - Builtins.y2milestone("Updating/redrawing wizard steps...") - UpdateWizardSteps() - - :auto - end - end -end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/lib/installation/ssh_key.rb new/yast2-installation-4.1.35/src/lib/installation/ssh_key.rb --- old/yast2-installation-4.1.34/src/lib/installation/ssh_key.rb 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/lib/installation/ssh_key.rb 2019-02-01 15:06:41.000000000 +0100 @@ -47,7 +47,16 @@ files.each do |file| path = File.join(dir, file.filename) IO.write(path, file.content) - File.chmod(file.permissions, path) + if file.filename =~ /^ssh_host_.*key$/ + # ssh deamon accepts only private keys with restricted + # file permissions. + log.info("Set permissions of #{file.filename} to 0o600") + File.chmod(0o600, path) + else + # Taking already given permissions + log.info("Set permissions of #{file.filename} to 0o#{file.permissions.to_s(8)}") + File.chmod(file.permissions, path) + end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/scrconf/cfg_boot.scr new/yast2-installation-4.1.35/src/scrconf/cfg_boot.scr --- old/yast2-installation-4.1.34/src/scrconf/cfg_boot.scr 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/scrconf/cfg_boot.scr 1970-01-01 01:00:00.000000000 +0100 @@ -1,15 +0,0 @@ -/** - * File: - * cfg_boot.scr - * Summary: - * SCR Agent for reading/writing /etc/sysconfig/boot - * using the sysconfig-agent - * - * Read/Sets the values defined in <tt>/etc/sysconfig/boot</tt> - * in an easy manner. - */ -.sysconfig.boot - -`ag_ini( - `SysConfigFile("/etc/sysconfig/boot") -) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/scrconf/cfg_fam.scr new/yast2-installation-4.1.35/src/scrconf/cfg_fam.scr --- old/yast2-installation-4.1.34/src/scrconf/cfg_fam.scr 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/scrconf/cfg_fam.scr 1970-01-01 01:00:00.000000000 +0100 @@ -1,16 +0,0 @@ -/** - * File: - * cfg_windowmanager.scr - * Summary: - * SCR Agent for reading/writing /etc/sysconfig/windowmanager - * using the sysconfig-agent - * $Id$ - * - * Read/Sets the values defined in <tt>/etc/sysconfig/windowmanager</tt> - * in an easy manner. - */ -.sysconfig.fam - -`ag_ini( - `SysConfigFile("/etc/sysconfig/fam") -) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/scrconf/etc_install_inf.scr new/yast2-installation-4.1.35/src/scrconf/etc_install_inf.scr --- old/yast2-installation-4.1.34/src/scrconf/etc_install_inf.scr 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/scrconf/etc_install_inf.scr 2019-02-01 15:06:41.000000000 +0100 @@ -15,7 +15,7 @@ * (true) * * WARNING! Ini agent cannot handle multiple entries with the same name, - * such as Alias in install.inf. Use .etc.install_inf_alias instead. + * such as Alias in install.inf. * * $Id$ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/scrconf/etc_install_inf_alias.scr new/yast2-installation-4.1.35/src/scrconf/etc_install_inf_alias.scr --- old/yast2-installation-4.1.34/src/scrconf/etc_install_inf_alias.scr 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/scrconf/etc_install_inf_alias.scr 1970-01-01 01:00:00.000000000 +0100 @@ -1,39 +0,0 @@ -/** - * File: etc_install_inf_alias.scr - * Summary: Agent for reading/writing module aliases in /etc/install.inf - * Access: read only - * Author: Martin Vidner <mvidner@suse.cz> - * - * Bug #24836: ini agent cannot handle multiple Alias entries. - * - * Example: - * Dir(.etc.install_inf_alias) - * (["eth0", "eth1"]) - ** - * Read(.etc.install_inf_alias.eth0) - * ("pcnet32") - * - * $Id$ - */ -.etc.install_inf_alias - -`ag_ini( - `IniAgent( "/etc/install.inf", - $[ - "options" : [ "read_only", "global_values", "flat" ], - // Everything except the pattern in "params" is a comment. - // I love negated regexps. - "comments" : [ - "^[ \t]*[^A].*", - "^[ \t]*A[^l].*", - "^[ \t]*Al[^i].*", - "^[ \t]*Ali[^a].*", - "^[ \t]*Alia[^s].*", - "^[ \t]*Alias[^ \t:].*", - ], - "params" : [ - $[ "match" : [ "^[ \t]*Alias[ \t]*:[ \t]*(.*)[ \t]+(.*)[ \t]*$", "Alias: %s %s" ] ] - ] - ] - ) -) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/scrconf/etc_install_inf_options.scr new/yast2-installation-4.1.35/src/scrconf/etc_install_inf_options.scr --- old/yast2-installation-4.1.34/src/scrconf/etc_install_inf_options.scr 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/scrconf/etc_install_inf_options.scr 1970-01-01 01:00:00.000000000 +0100 @@ -1,39 +0,0 @@ -/** - * File: etc_install_inf_options.scr - * Summary: Agent for reading/writing module options in /etc/install.inf - * Access: read only - * Author: Martin Vidner <mvidner@suse.cz> - * - * Example: - * Dir(.etc.install_inf_options) - * (["3c59x"]) - ** - * Read(.etc.install_inf_options.eth0) - * ("debug=6") - * - * $Id$ - */ -.etc.install_inf_options - -`ag_ini( - `IniAgent( "/etc/install.inf", - $[ - "options" : [ "read_only", "global_values", "flat" ], - // Everything except the pattern in "params" is a comment. - // I love negated regexps. - "comments" : [ - "^[ \t]*[^O].*", - "^[ \t]*O[^p].*", - "^[ \t]*Op[^t].*", - "^[ \t]*Opt[^i].*", - "^[ \t]*Opti[^o].*", - "^[ \t]*Optio[^n].*", - "^[ \t]*Option[^s].*", - "^[ \t]*Options[^ \t:].*", - ], - "params" : [ - $[ "match" : [ "^[ \t]*Options[ \t]*:[ \t]*([^ \t]*)[ \t]+(.*)$", "Options: %s %s" ] ] - ] - ] - ) -) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/src/scrconf/etc_passwd.scr new/yast2-installation-4.1.35/src/scrconf/etc_passwd.scr --- old/yast2-installation-4.1.34/src/scrconf/etc_passwd.scr 2018-12-17 16:18:09.000000000 +0100 +++ new/yast2-installation-4.1.35/src/scrconf/etc_passwd.scr 1970-01-01 01:00:00.000000000 +0100 @@ -1,73 +0,0 @@ -/** - * File: - * etc_passwd.scr - * Summary: - * SCR Agent for reading /etc/passwd - * Access: - * read-only - * Authors: - * Unknown <yast2-hacker@suse.de> - * See: - * anyagent - * libscr - * man passwd(5) - * Example: - * Read(.etc.passwd) - * ([$["fullname":"root", "gid":0, "home":"/root", "password":"x", - * "shell":"/bin/bash", "uid":0, "username":"root"], - * $["fullname":"bin", "gid":1, "home":"/bin", "password":"x", - * "shell":"/bin/bash", "uid":1, "username":"bin"], - * $["fullname":"daemon", "gid":2,"home":"/sbin", "password":"x", - * ... - * ]) - * - * $Id$ - * - * Returns a <b>list of maps</b>. Each map (list-entry) corresponds - * with one user. - * Keys for the maps are: "username", "password", "uid", "gid", "fullname", "home" and "shell". - */ -.etc.passwd - -`ag_anyagent( - `Description ( - (`File("/etc/passwd")), // real filename - "#", // Comment - true, - (`List ( - `Or ( - `Tuple ( - `username (`String("+")), - ":", - `password (`String ("")), - ":", - `uid (`String ("")), - ":", - `gid (`String ("")), - ":", - `fullname (`String ("")), - ":", - `home (`String ("")), - ":", - `shell (`String ("")) - ), - - `Tuple ( - `username (`String ("^:")), - ":", - `password (`Or (`String ("^:"), "")), - ":", - `uid (`Number ()), - ":", - `gid (`Number ()), - ":", - `fullname (`Or (`String ("^:"), "")), - ":", - `home (`String ("^:")), - ":", - `shell (`String ("^\n")) - )), - "\n" - )) - ) -) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.1.34/test/ssh_key_test.rb new/yast2-installation-4.1.35/test/ssh_key_test.rb --- old/yast2-installation-4.1.34/test/ssh_key_test.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-installation-4.1.35/test/ssh_key_test.rb 2019-02-01 15:06:41.000000000 +0100 @@ -0,0 +1,23 @@ +#! /usr/bin/env rspec + +require_relative "./test_helper" +require "installation/ssh_key" + +describe Installation::SshKey do + subject(:sshkey) { Installation::SshKey.new("ssh_host_ed25519_key") } + + describe "#write_files" do + before do + sshkey.read_files(FIXTURES_DIR.join("root2/etc/ssh", subject.name).to_s) + end + + it "writes ssh keys with the right permissions" do + expect(IO).to receive(:write).twice + expect(File).to receive(:chmod).with(0o600, + "/mnt/etc/ssh/ssh_host_ed25519_key") + expect(File).to receive(:chmod).with(sshkey.files[1].permissions, + "/mnt/etc/ssh/#{sshkey.files[1].filename}") + sshkey.write_files("/mnt/etc/ssh") + end + end +end