commit yast2-installation for openSUSE:Factory
![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package yast2-installation for openSUSE:Factory checked in at 2014-01-21 07:02:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 2014-01-09 17:26:58.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.yast2-installation.new/yast2-installation.changes 2014-01-23 15:59:03.000000000 +0100 @@ -1,0 +2,6 @@ +Mon Jan 13 09:58:46 UTC 2014 - jreidinger@suse.com + +- add clone proposal and finish client (FATE#308539) +- 3.1.19 + +------------------------------------------------------------------- Old: ---- yast2-installation-3.1.18.tar.bz2 New: ---- yast2-installation-3.1.19.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-installation.spec ++++++ --- /var/tmp/diff_new_pack.QMQtG9/_old 2014-01-23 15:59:04.000000000 +0100 +++ /var/tmp/diff_new_pack.QMQtG9/_new 2014-01-23 15:59:04.000000000 +0100 @@ -17,12 +17,13 @@ Name: yast2-installation -Version: 3.1.18 +Version: 3.1.19 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build Source0: %{name}-%{version}.tar.bz2 +Url: http://github.com/yast/yast-installation Requires: yast2-ruby-bindings >= 1.0.0 Summary: YaST2 - Installation Parts @@ -42,8 +43,8 @@ # Linuxrc.keys BuildRequires: yast2 >= 3.1.9 -# AutoinstConfig::getProposalList -Requires: autoyast2-installation >= 2.17.1 +# clone_system client +Requires: autoyast2-installation >= 3.1.5 # ProductProfile Requires: yast2 >= 3.1.9 @@ -193,6 +194,7 @@ %dir /usr/share/autoinstall/modules %dir %{yast_yncludedir}/installation %{yast_yncludedir}/installation/* +%{yast_libdir}/installation # agents %{yast_scrconfdir}/etc_passwd.scr ++++++ yast2-installation-3.1.18.tar.bz2 -> yast2-installation-3.1.19.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.18/doc/installation_clients.md new/yast2-installation-3.1.19/doc/installation_clients.md --- old/yast2-installation-3.1.18/doc/installation_clients.md 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-installation-3.1.19/doc/installation_clients.md 2014-01-20 16:55:14.000000000 +0100 @@ -0,0 +1,61 @@ +Installation Clients +====================== + +Installation uses some special clients for inst modules. The goal of this +article is to describe which one is needed for each task. + + +Wizard Plug-in (`inst_` client) +----------------------------------------- + +When a new dialog needs to be added into the installation work-flow then a new +client with `inst_` prefix needs to be created. (In general it can be any +client, this is a convention. The work-flow manager can find also the clients +without the prefix.) + +The new client needs to be added to the installation control file to (the work-flow +section)[TODO link], and the file must be present in the inst-sys during +installation. (It can be part of the inst-sys or it can be added dynamically +from an add-on media or via (Driver Update)[http://en.opensuse.org/SDB:Linuxrc#p_dud]) + + +Installation Summary Plug-in (`_proposal` client) +----------------------------------------------------------- + +When a new module should be seen only in the installation summary page or in a +different proposal screen, then a client with suffix `_proposal` is used. Such +client must accept string as the first parameter which specifies the action +which is being performed and a `Hash` as the second parameter with optional +arguments. + +The proposals are defined in the installation control file in (the proposal +section)[TODO link]. + +The actions can be: + +- `"MakeProposal"` that creates a proposal for the module. It can have parameter `"force_reset"` + that can force reset and create a new one from scratch. Response is a `Hash` with proposal text, + optional link definitions and a help text. **TODO specify exactly format.** +- `"AskUser"` for automatic or manual user request to change the proposed configuration. Parameter is + `"chosen_id"` which specify action. It can be `"id"` from `"Description"` action + which should open dialog to modify values or links specified in `"MakeProposal"` + which should do action depending on link like disable service. Returns if proposal changed. **TODO exact structure** +- `"Description"` to get the description of the proposal in rich text, menu item and its `"id"`. + **TODO describe here exact structure and examples** +- `"Write"` to write the settings. Called only if the proposal is not skipped. **TODO looks like now all proposals are skipped** + + +Write Plug-in at the End of Installation (`_finish` client ) +-------------------------------------------- + +When a module needs to write its settings at the end of installation then a +client with suffix `_finish` is used. Such client must accept string as the +first parameter which specifies the action that is being performed. + +The list finish clients is specified in `inst_finish.rb` client. + +Actions can be: + +- `"Info"` that gets the information about client (like number of steps, its title + and in which mode it should be used). **TODO exact structure and example** +- `"Write"` to write the settings. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.18/package/yast2-installation.changes new/yast2-installation-3.1.19/package/yast2-installation.changes --- old/yast2-installation-3.1.18/package/yast2-installation.changes 2014-01-08 15:45:47.000000000 +0100 +++ new/yast2-installation-3.1.19/package/yast2-installation.changes 2014-01-20 16:55:14.000000000 +0100 @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Mon Jan 13 09:58:46 UTC 2014 - jreidinger@suse.com + +- add clone proposal and finish client (FATE#308539) +- 3.1.19 + +------------------------------------------------------------------- Wed Jan 8 12:46:34 UTC 2014 - jsrain@suse.cz - added capability to install OEM images (fate#316326) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.18/package/yast2-installation.spec new/yast2-installation-3.1.19/package/yast2-installation.spec --- old/yast2-installation-3.1.18/package/yast2-installation.spec 2014-01-08 15:45:47.000000000 +0100 +++ new/yast2-installation-3.1.19/package/yast2-installation.spec 2014-01-20 16:55:14.000000000 +0100 @@ -17,7 +17,7 @@ Name: yast2-installation -Version: 3.1.18 +Version: 3.1.19 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -25,6 +25,7 @@ Group: System/YaST License: GPL-2.0 +Url: http://github.com/yast/yast-installation Requires: yast2-ruby-bindings >= 1.0.0 Summary: YaST2 - Installation Parts @@ -39,8 +40,8 @@ # Linuxrc.keys BuildRequires: yast2 >= 3.1.9 -# AutoinstConfig::getProposalList -Requires: autoyast2-installation >= 2.17.1 +# clone_system client +Requires: autoyast2-installation >= 3.1.5 # ProductProfile Requires: yast2 >= 3.1.9 @@ -190,6 +191,7 @@ %dir /usr/share/autoinstall/modules %dir %{yast_yncludedir}/installation %{yast_yncludedir}/installation/* +%{yast_libdir}/installation # agents %{yast_scrconfdir}/etc_passwd.scr diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.18/src/Makefile.am new/yast2-installation-3.1.19/src/Makefile.am --- old/yast2-installation-3.1.18/src/Makefile.am 2014-01-08 15:45:47.000000000 +0100 +++ new/yast2-installation-3.1.19/src/Makefile.am 2014-01-20 16:55:14.000000000 +0100 @@ -8,6 +8,8 @@ modules/SystemFilesCopy.rb client_DATA = \ + clients/clone_proposal.rb \ + clients/clone_finish.rb \ clients/copy_files_finish.rb \ clients/copy_logs_finish.rb \ clients/copy_systemfiles_finish.rb \ @@ -100,6 +102,11 @@ fillup_DATA = \ fillup/sysconfig.security-checksig -EXTRA_DIST = $(module_DATA) $(client_DATA) $(ynclude_DATA) $(scrconf_DATA) $(schemafiles_DATA) $(desktop_DATA) $(fillup_DATA) +ylibdir = "${yast2dir}/lib/installation" +ylib_DATA = \ + lib/installation/clone_settings.rb + + +EXTRA_DIST = $(module_DATA) $(client_DATA) $(ynclude_DATA) $(scrconf_DATA) $(schemafiles_DATA) $(desktop_DATA) $(fillup_DATA) $(ylib_DATA) include $(top_srcdir)/Makefile.am.common diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.18/src/clients/clone_finish.rb new/yast2-installation-3.1.19/src/clients/clone_finish.rb --- old/yast2-installation-3.1.18/src/clients/clone_finish.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-installation-3.1.19/src/clients/clone_finish.rb 2014-01-20 16:55:14.000000000 +0100 @@ -0,0 +1,70 @@ +# encoding: utf-8 + +# ------------------------------------------------------------------------------ +# Copyright (c) 2014 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. +# ------------------------------------------------------------------------------ + + +module Yast + import "Installation" + + class CloneFinishClient < Client + def main + + textdomain "installation" + + func = "" + + # Check arguments + args = WFM.Args + if args.size > 0 && args[0].is_a?(::String) + func = args[0] + end + + Builtins.y2milestone("starting clone_finish") + Builtins.y2debug("func=%1", func) + + case func + when "Info" + return { + "steps" => 1, + # progress step title + "title" => _( + "Generating AutoYaST profile if needed..." + ), + "when" => [:installation] + } + when "Write" + WFM.call("clone_proposal", ["Write"]) + + # copy from insts_sys to target system + if File.exists? "/root/autoinst.xml" + WFM.Execute(path(".local.bash"), "cp /root/autoinst.xml #{Installation.destdir}/root/autoinst.xml") + end + + Builtins.y2milestone("clone_finish Write finished") + else + raise ("unknown function: #{func}") + end + + return nil + end + end +end + +Yast::CloneFinishClient.new.main diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.18/src/clients/clone_proposal.rb new/yast2-installation-3.1.19/src/clients/clone_proposal.rb --- old/yast2-installation-3.1.18/src/clients/clone_proposal.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-installation-3.1.19/src/clients/clone_proposal.rb 2014-01-20 16:55:14.000000000 +0100 @@ -0,0 +1,125 @@ +require "installation/clone_settings" + +module Yast + import "UI" + import "Label" + + class CloneProposalClient < Client + CLONE_ENABLE_LINK = "clone_enable" + CLONE_DISABLE_LINK = "clone_disable" + CLONE_ACTION_ID = "clone" + + def main + textdomain "installation" + + @clone_settings = ::Installation::CloneSettings.instance + Yast.import "Installation" + Yast.import "ProductFeatures" + + func = WFM.Args(0) + param = WFM.Args(1) + + product_clone_active = ProductFeatures.GetBooleanFeature( + "globals", + "enable_clone" + ) + if @clone_settings.enabled.nil? + y2milestone("Set default value for cloning") + @clone_settings.enabled = product_clone_active + end + + case func + when "MakeProposal" + @clone_settings.enabled = product_clone_active if param["force_reset"] + + ret = { + "preformatted_proposal" => proposal_text, + "links" => [CLONE_ENABLE_LINK, CLONE_DISABLE_LINK], + # TRANSLATORS: help text + "help" => _( + "<p>Use <b>Clone System Settings</b> if you want to create an AutoYaST profile.\n" + + "AutoYaST is a way to do a complete SUSE Linux installation without user interaction. AutoYaST\n" + + "needs a profile to know what the installed system should look like. If this option is\n" + + "selected, a profile of the current system is stored in <tt>/root/autoinst.xml</tt>.</p>" + ) + } + when "AskUser" + chosen_id = Ops.get(param, "chosen_id") + Builtins.y2milestone( + "Clone proposal change requested, id %1", + chosen_id + ) + + case chosen_id + when CLONE_DISABLE_LINK + @clone_settings.enabled = false + when CLONE_ENABLE_LINK + @clone_settings.enabled = true + when CLONE_ACTION_ID + clone_dialog + else + raise "Unexpected value #{chosen_id}" + end + + ret = { "workflow_sequence" => :next } + when "Description" + ret = { + # this is a heading + "rich_text_title" => _("Clone System Configuration"), + # this is a menu entry + "menu_title" => _("&Clone System Configuration"), + "id" => CLONE_ACTION_ID + } + when "Write" + WFM.call "clone_system" if @clone_settings.enabled? + ret = true + else + raise "Unsuported action #{func}" + end + + return ret + end + + def proposal_text + ret = "<ul><li>\n" + + if @clone_settings.enabled? + ret << Builtins.sformat( + # TRANSLATORS: Installation overview + # IMPORTANT: Please, do not change the HTML link <a href="...">...</a>, only visible text + _( + "The AutoYaST profile will be written under /root/autoinst.xml (<a href=\"%1\">do not write it</a>)." + ), + CLONE_DISABLE_LINK + ) + else + ret << Builtins.sformat( + # TRANSLATORS: Installation overview + # IMPORTANT: Please, do not change the HTML link <a href="...">...</a>, only visible text + _( + "The AutoYaST profile will not be saved (<a href=\"%1\">write it</a>)." + ), + CLONE_ENABLE_LINK + ) + end + + ret << "</li></ul>\n" + end + + def clone_dialog + dialog = VBox( + CheckBox(Id(:value_holder), _("Write AutoYaST profile to /root/autoinst.xml"), + @clone_settings.enabled? + ), + PushButton(Id(:ok), Label.OKButton) + ) + + UI.OpenDialog dialog + UI.UserInput + @clone_settings.enabled = UI.QueryWidget(:value_holder, :Value) + UI.CloseDialog + end + end +end + +Yast::CloneProposalClient.new.main diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.18/src/clients/inst_finish.rb new/yast2-installation-3.1.19/src/clients/inst_finish.rb --- old/yast2-installation-3.1.18/src/clients/inst_finish.rb 2014-01-08 15:45:47.000000000 +0100 +++ new/yast2-installation-3.1.19/src/clients/inst_finish.rb 2014-01-20 16:55:14.000000000 +0100 @@ -129,6 +129,7 @@ "autoinst_scripts1", "copy_files", "copy_systemfiles", + "clone", # For live installer only Mode.live_installation ? "live_copy_files" : "", "switch_scr" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.18/src/lib/installation/clone_settings.rb new/yast2-installation-3.1.19/src/lib/installation/clone_settings.rb --- old/yast2-installation-3.1.18/src/lib/installation/clone_settings.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-installation-3.1.19/src/lib/installation/clone_settings.rb 2014-01-20 16:55:14.000000000 +0100 @@ -0,0 +1,11 @@ +require "singleton" + +module Installation + # helper module to make proposal value persistent + class CloneSettings + include Singleton + + attr_accessor :enabled + alias_method :enabled?, :enabled + end +end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.1.18/startup/Makefile.am new/yast2-installation-3.1.19/startup/Makefile.am --- old/yast2-installation-3.1.18/startup/Makefile.am 2014-01-08 15:45:47.000000000 +0100 +++ new/yast2-installation-3.1.19/startup/Makefile.am 2014-01-20 16:55:14.000000000 +0100 @@ -4,7 +4,6 @@ ystartupbindir=$(ystartupdir)/startup ystartupbin_SCRIPTS = \ - AUTHOR \ YaST2.First-Stage \ YaST2.Second-Stage \ YaST2.call \ -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de