Hello community,

here is the log from the commit of package yast2-installation for 
openSUSE:Factory checked in at 2014-01-09 17:26:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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    
2013-12-19 12:38:26.000000000 +0100
+++ 
/work/SRC/openSUSE:Factory/.yast2-installation.new/yast2-installation.changes   
    2014-01-09 17:26:58.000000000 +0100
@@ -1,0 +2,12 @@
+Wed Jan  8 12:46:34 UTC 2014 - [email protected]
+
+- added capability to install OEM images (fate#316326)
+- added handling Release Notes button (fate#314695)
+
+-------------------------------------------------------------------
+Fri Dec 20 09:32:08 UTC 2013 - [email protected]
+
+- Add abort and fail hooks for installation
+- 3.1.18
+
+-------------------------------------------------------------------

Old:
----
  yast2-installation-3.1.17.tar.bz2

New:
----
  yast2-installation-3.1.18.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yast2-installation.spec ++++++
--- /var/tmp/diff_new_pack.PCrqMj/_old  2014-01-09 17:26:59.000000000 +0100
+++ /var/tmp/diff_new_pack.PCrqMj/_new  2014-01-09 17:26:59.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package yast2-installation
 #
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products 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:        3.1.17
+Version:        3.1.18
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ yast2-installation-3.1.17.tar.bz2 -> yast2-installation-3.1.18.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.17/doc/features/examples/control.oem-image.xml.example
 
new/yast2-installation-3.1.18/doc/features/examples/control.oem-image.xml.example
--- 
old/yast2-installation-3.1.17/doc/features/examples/control.oem-image.xml.example
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/yast2-installation-3.1.18/doc/features/examples/control.oem-image.xml.example
   2014-01-08 15:45:47.000000000 +0100
@@ -0,0 +1,543 @@
+<?xml version="1.0"?>
+<productDefines  xmlns="http://www.suse.com/1.0/yast2ns";
+    xmlns:config="http://www.suse.com/1.0/configns";>
+
+<!--
+This is an example of a control file, which deploys an OEM image instead of
+installing system from packages
+
+Important changes to standard control file:
+- removed all stuff related to package installation (package selection, 
rpmcopy)
+- removed configuration of stuff which is already in the image
+- added oem_image variable to globals section
+
+Workflow consists of
+- installation preparation (language, EULA, network, disk activation)
+- selecting full disk for deployment
+- preparing progress
+- deployment of the image
+- inst_finish steps are set to empty (to reuse reboot time-out)
+-->
+
+<!--
+Work around for the text domain
+textdomain="control"
+-->
+
+    <textdomain>control</textdomain>
+
+    <globals>
+        <!-- OEM image to be bare deployed to the system -->
+        <oem_image>/image.raw</oem_image>
+
+       <additional_kernel_parameters></additional_kernel_parameters>
+        <enable_autologin config:type="boolean">true</enable_autologin>
+       <enable_firewall config:type="boolean">true</enable_firewall>
+       <firewall_enable_ssh config:type="boolean">false</firewall_enable_ssh>
+
+       <!-- FATE #303875, see 
/etc/sysconfig/network/dhcp:WRITE_HOSTNAME_TO_HOSTS -->
+       <write_hostname_to_hosts 
config:type="boolean">false</write_hostname_to_hosts>
+       <!-- FATE #307555, see /etc/sysconfig/boot:RUN_PARALLEL -->
+       <run_init_scripts_in_parallel 
config:type="boolean">true</run_init_scripts_in_parallel>
+
+        <incomplete_translation_treshold>95</incomplete_translation_treshold>
+        <inform_about_suboptimal_distribution 
config:type="boolean">true</inform_about_suboptimal_distribution>
+        <skip_language_dialog config:type="boolean">true</skip_language_dialog>
+        <ui_mode>simple</ui_mode>
+        <enable_clone config:type="boolean">false</enable_clone>
+        <enable_register_hwdata   
config:type="boolean">true</enable_register_hwdata>
+        <enable_register_optional 
config:type="boolean">true</enable_register_optional>
+        <display_register_forcereg 
config:type="boolean">true</display_register_forcereg>
+        <disable_register_w3m config:type="boolean">true</disable_register_w3m>
+        <register_monthly config:type="boolean">false</register_monthly>
+       <manual_online_update config:type="boolean">true</manual_online_update>
+
+       <!-- bnc #359115 comment #14 -->
+       <root_password_as_first_user 
config:type="boolean">true</root_password_as_first_user>
+       <root_password_ca_check 
config:type="boolean">false</root_password_ca_check>
+
+       <!-- Offer online repositories feature in the installation -->
+       <show_online_repositories 
config:type="boolean">true</show_online_repositories>
+       <online_repositories_default 
config:type="boolean">true</online_repositories_default>
+
+        <!-- Guide user to drivers.suse.com if HW was not found 
(FATE#312875)-->
+        <show_drivers_info config:type="boolean">false</show_drivers_info>
+
+       <!-- Offer add-ons in the installation -->
+       <show_addons config:type="boolean">true</show_addons>
+       <addons_default config:type="boolean">false</addons_default>
+
+       <!-- FATE #301937, Save /root content from the installation system to 
the installed system -->
+       <save_instsys_content config:type="list">
+           <save_instsys_item>
+               <instsys_directory>/root/</instsys_directory>
+               <system_directory>/root/inst-sys/</system_directory>
+           </save_instsys_item>
+       </save_instsys_content>
+
+       <!-- FATE #305019: configure the files to copy from a previous 
installation -->
+       <copy_to_system config:type="list">
+           <!-- FATE #300421: Import ssh keys from previous installations -->
+           <copy_to_system_item>
+               <id>import_ssh_keys</id>
+               <copy_to_dir>/</copy_to_dir>
+               <!-- Files that must be all present on the previous system -->
+               <mandatory_files config:type="list">
+                   <file_item>/etc/ssh/ssh_host_key</file_item>
+                   <file_item>/etc/ssh/ssh_host_key.pub</file_item>
+               </mandatory_files>
+               <!-- Files thay may be present -->
+               <optional_files config:type="list">
+                   <file_item>/etc/ssh/ssh_host_dsa_key</file_item>
+                   <file_item>/etc/ssh/ssh_host_dsa_key.pub</file_item>
+                   <file_item>/etc/ssh/ssh_host_rsa_key</file_item>
+                   <file_item>/etc/ssh/ssh_host_rsa_key.pub</file_item>
+                   <file_item>/etc/ssh/ssh_host_ecdsa_key</file_item>
+                   <file_item>/etc/ssh/ssh_host_ecdsa_key.pub</file_item>
+               </optional_files>
+           </copy_to_system_item>
+
+           <!-- FATE #120103: Import Users From Existing Partition -->
+           <copy_to_system_item>
+               <id>import_users</id>
+               <copy_to_dir>/var/lib/YaST2/imported/userdata/</copy_to_dir>
+               <!-- Files that must be all present on the previous system -->
+               <mandatory_files config:type="list">
+                   <file_item>/etc/shadow</file_item>
+                   <file_item>/etc/passwd</file_item>
+                   <file_item>/etc/login.defs</file_item>
+                   <file_item>/etc/group</file_item>
+               </mandatory_files>
+           </copy_to_system_item>
+       </copy_to_system>
+
+       <!-- FATE #303395, Kexec instead of reboot (default 'false') -->
+       <kexec_reboot config:type="boolean">true</kexec_reboot>
+
+       <!--
+           BNC #487565, Some AC steps might create their own UI (rpmcopy, for 
instance)
+           and AC should just recreate its UI without reporting an error.
+           Each ac_item here matches inst_* resp. *_proposal from 
automatic_configuration->ac_item
+       -->
+       <ac_redraw_and_ignore config:type="list">
+           <ac_item>inst_rpmcopy_secondstage</ac_item>
+       </ac_redraw_and_ignore>
+
+       <!-- Configuration for inst_automatic_configuration script -->
+       <automatic_configuration config:type="list">
+           <!--
+               Adding inst_hostname client here, needed to generate random
+               hostname in automatic config (and for 127.0.0.2 hack) (#383336)
+               Must be called before inst_netprobe however, it cannot override 
it later on
+           -->
+           <ac_step>
+               <unique_id>ac_1</unique_id>
+               <text_id>ac_1</text_id>
+               <icon>yast-sw_single</icon>
+               <type>scripts</type>
+               <ac_items config:type="list">
+                   <ac_item>initialization</ac_item>
+                   <ac_item>hostname</ac_item>
+                   <ac_item>netprobe</ac_item>
+                   <ac_item>rpmcopy_secondstage</ac_item>
+               </ac_items>
+           </ac_step>
+           <!-- network proposal -->
+           <ac_step>
+               <unique_id>ac_2</unique_id>
+               <text_id>ac_2</text_id>
+               <icon>yast-network</icon>
+               <type>proposals</type>
+               <ac_items config:type="list">
+                   <ac_item>lan</ac_item>
+                   <ac_item>general</ac_item>
+                   <ac_item>isdn</ac_item>
+                   <ac_item>remote</ac_item>
+                   <ac_item>firewall</ac_item>
+               </ac_items>
+           </ac_step>
+           <!-- hardware proposal -->
+           <ac_step>
+               <unique_id>ac_3</unique_id>
+               <text_id>ac_3</text_id>
+               <icon>yast-hwinfo</icon>
+               <type>proposals</type>
+               <ac_items config:type="list">
+                  <!-- <ac_item>x11</ac_item>  (bnc#441404) -->
+                   <ac_item>printer</ac_item>
+                   <ac_item>sound</ac_item>
+                   <ac_item>tv</ac_item>
+               </ac_items>
+           </ac_step>
+           <!-- finishing configuration -->
+           <ac_step>
+               <unique_id>ac_4</unique_id>
+               <text_id>ac_4</text_id>
+               <icon>yast-sysconfig</icon>
+               <type>scripts</type>
+               <ac_items config:type="list">
+                   <ac_item>addon_update_sources</ac_item>
+                   <ac_item>extrasources</ac_item>
+                   <ac_item>save_hardware_status</ac_item>
+               </ac_items>
+           </ac_step>
+       </automatic_configuration>
+
+       <!-- FATE: #304865: Enhance YaST Modules to cooperate better handling 
the product licenses -->
+       
<base_product_license_directory>/etc/YaST2/licenses/base/</base_product_license_directory>
+
+       <!-- #303798: YaST2 runlevel editor: offer easy enablement and 
configuration of runlevel 4 -->
+       <rle_offer_rulevel_4 config:type="boolean">false</rle_offer_rulevel_4>
+
+       <!-- bnc #431259 -->
+       <default_ntp_setup config:type="boolean">true</default_ntp_setup>
+
+       <!-- FATE: #303893, #305588: Default to enabled kdump -->
+       <enable_kdump config:type="boolean">true</enable_kdump>
+       
+       <!-- to debug deploying, set to 'true' -->
+       <debug_deploying config:type="boolean">false</debug_deploying>
+    </globals>
+
+    <software>
+        <delete_old_packages config:type="boolean">true</delete_old_packages>
+        <selection_type config:type="symbol">auto</selection_type>
+
+       <!-- Bugzilla #327791, if not set, default is true -->
+       <online_repos_preselected 
config:type="boolean">false</online_repos_preselected>
+
+       <!-- FATE #300898, List of external sources accesible during the 
installation time -->
+       
<external_sources_link>http://download.opensuse.org/YaST/Repos/openSUSE_131_Servers.xml</external_sources_link>
+
+       <dropped_packages></dropped_packages>
+       <extra_urls config:type="list">
+           <!-- Default update repository, bnc #381360 -->
+           <extra_url>
+               <baseurl>http://download.opensuse.org/update/13.1/</baseurl>
+                <alias>repo-update</alias>
+                <name>openSUSE-13.1-Update</name>
+               <prod_dir>/</prod_dir>
+               <enabled config:type="boolean">true</enabled>
+               <autorefresh config:type="boolean">true</autorefresh>
+               <priority config:type="integer">99</priority>
+           </extra_url>
+           <extra_url>
+               
<baseurl>http://download.opensuse.org/update/13.1-non-oss/</baseurl>
+                <alias>repo-update-non-oss</alias>
+                <name>openSUSE-13.1-Update-Non-Oss</name>
+               <prod_dir>/</prod_dir>
+               <enabled config:type="boolean">true</enabled>
+               <autorefresh config:type="boolean">true</autorefresh>
+               <priority config:type="integer">99</priority>
+           </extra_url>
+
+           <!-- Replacement for EXTRAURLS and OPTIONALURLS -->
+           <extra_url>
+               
<baseurl>http://download.opensuse.org/distribution/13.1/repo/oss/</baseurl>
+                <alias>repo-oss</alias>
+                <name>openSUSE-13.1-Oss</name>
+               <prod_dir>/</prod_dir>
+               <enabled config:type="boolean">true</enabled>
+               <autorefresh config:type="boolean">true</autorefresh>
+               <priority config:type="integer">99</priority>
+           </extra_url>
+           <extra_url>
+               
<baseurl>http://download.opensuse.org/distribution/13.1/repo/non-oss/</baseurl>
+                <alias>repo-non-oss</alias>
+                <name>openSUSE-13.1-Non-Oss</name>
+               <prod_dir>/</prod_dir>
+               <enabled config:type="boolean">true</enabled>
+               <autorefresh config:type="boolean">true</autorefresh>
+               <priority config:type="integer">99</priority>
+           </extra_url>
+           <extra_url>
+               
<baseurl>http://download.opensuse.org/debug/distribution/13.1/repo/oss/</baseurl>
+                <alias>repo-debug</alias>
+                <name>openSUSE-13.1-Debug</name>
+               <prod_dir>/</prod_dir>
+               <enabled config:type="boolean">false</enabled>
+               <autorefresh config:type="boolean">true</autorefresh>
+               <priority config:type="integer">99</priority>
+           </extra_url>
+            <extra_url>
+                
<baseurl>http://download.opensuse.org/debug/update/13.1/</baseurl>
+                <alias>repo-debug-update</alias>
+                <name>openSUSE-13.1-Update-Debug</name>
+                <prod_dir>/</prod_dir>
+                <enabled config:type="boolean">false</enabled>
+                <autorefresh config:type="boolean">true</autorefresh>
+                <priority config:type="integer">99</priority>
+            </extra_url>
+            <extra_url>
+                
<baseurl>http://download.opensuse.org/debug/update/13.1-non-oss/</baseurl>
+                <alias>repo-debug-update-non-oss</alias>
+                <name>openSUSE-13.1-Update-Debug-Non-Oss</name>
+                <prod_dir>/</prod_dir>
+                <enabled config:type="boolean">false</enabled>
+                <autorefresh config:type="boolean">true</autorefresh>
+                <priority config:type="integer">99</priority>
+            </extra_url>
+
+
+            <extra_url>
+                
<baseurl>http://download.opensuse.org/source/distribution/13.1/repo/oss/</baseurl>
+                <alias>repo-source</alias>
+                <name>openSUSE-13.1-Source</name>
+                <prod_dir>/</prod_dir>
+                <enabled config:type="boolean">false</enabled>
+                <autorefresh config:type="boolean">true</autorefresh>
+                <priority config:type="integer">99</priority>
+            </extra_url>
+       </extra_urls>
+
+       <!-- BNC #424678, Definition of supported desktops -->
+       <supported_desktops config:type="list">
+
+           <one_supported_desktop>
+               <name>gnome</name>
+               <desktop>gnome</desktop>
+               <label_id>desktop_gnome</label_id>
+               <logon>gdm</logon>
+               <cursor>DMZ</cursor>
+               <packages>gdm branding-openSUSE</packages>
+               <order config:type="integer">1</order>
+               <patterns>gnome x11 base</patterns>
+               <icon>pattern-gnome</icon>
+           </one_supported_desktop>
+
+           <one_supported_desktop>
+               <name>kde</name>
+               <!-- BNC #381821, BNC #438212, BNC #667408, BNC #763142 -->
+               <desktop>kde-plasma</desktop>
+               <label_id>desktop_kde</label_id>
+               <logon>kdm</logon>
+               <cursor>DMZ</cursor>
+               <packages>kdm branding-openSUSE</packages>
+               <order config:type="integer">1</order>
+               <patterns>kde x11 base</patterns>
+               <icon>pattern-kde4</icon>
+           </one_supported_desktop>
+
+           <one_supported_desktop>
+               <name>xfce</name>
+               <!-- BNC #667408 -->
+               <desktop>xfce</desktop>
+               <label_id>desktop_xfce</label_id>
+               <logon>lightdm</logon>
+               <cursor>DMZ</cursor>
+               <packages>lightdm branding-openSUSE</packages>
+               <order config:type="integer">4</order>
+               <patterns>xfce x11 base</patterns>
+               <icon>pattern-xfce</icon>
+           </one_supported_desktop>
+
+           <!-- FaTE #307729 LXDE -->
+           <one_supported_desktop>
+               <name>lxde</name>
+               <!-- BNC #667408 -->
+               <desktop>lxde</desktop>
+               <label_id>desktop_lxde</label_id>
+               <logon>lxdm</logon>
+               <cursor>DMZ</cursor>
+               <packages>lxde-common branding-openSUSE</packages>
+               <order config:type="integer">5</order>
+               <patterns>lxde x11 base</patterns>
+               <icon>pattern-lxde</icon>
+           </one_supported_desktop>
+
+           <one_supported_desktop>
+               <name>min_x</name>
+               <desktop>twm</desktop>
+               <label_id>desktop_min_x</label_id>
+               <logon>xdm</logon>
+               <cursor>DMZ</cursor>
+               <packages>xorg-x11-server branding-openSUSE</packages>
+               <order config:type="integer">6</order>
+               <patterns>x11 base</patterns>
+               <icon>yast-x11</icon>
+           </one_supported_desktop>
+
+           <one_supported_desktop>
+               <name>e17</name>
+               <desktop>e17</desktop>
+               <label_id>desktop_e17</label_id>
+               <logon>lightdm</logon>
+               <cursor>DMZ</cursor>
+               <packages>lightdm branding-openSUSE</packages>
+               <order config:type="integer">7</order>
+               <patterns>e17 x11 base</patterns>
+               <icon>pattern-e17</icon>
+           </one_supported_desktop>
+
+           <one_supported_desktop>
+               <name>textmode</name>
+               <desktop>twm</desktop>
+               <label_id>desktop_textmode</label_id>
+               <logon>xdm</logon>
+               <cursor>DMZ</cursor>
+               <packages>branding-openSUSE</packages>
+               <order config:type="integer">8</order>
+               <patterns>minimal_base minimal_base-conflicts</patterns>
+               <icon>yast-sshd</icon>
+           </one_supported_desktop>
+
+       </supported_desktops>
+
+       <!-- FaTE #306967 KDE is preselected desktop -->
+       <default_desktop>kde</default_desktop>
+
+    </software>
+
+    <partitioning>
+        <try_separate_home config:type="boolean">true</try_separate_home>
+        <limit_try_home>7GB</limit_try_home>
+        <root_space_percent>40</root_space_percent>
+        <root_base_size>5GB</root_base_size>
+        <root_max_size>20GB</root_max_size>
+       <proposal_lvm config:type="boolean">false</proposal_lvm>
+       <vm_keep_unpartitioned_region 
config:type="boolean">false</vm_keep_unpartitioned_region>
+       <vm_desired_size>15GB</vm_desired_size>
+       <vm_home_max_size>25GB</vm_home_max_size>
+       <btrfs_increase_percentage 
config:type="integer">100</btrfs_increase_percentage>
+    </partitioning>
+
+    <network>
+        <force_static_ip config:type="boolean">false</force_static_ip>
+        <network_manager>laptop</network_manager>
+       <startmode>ifplugd</startmode>
+    </network>
+
+    <clone_modules config:type="list">
+       <clone_module>language</clone_module>
+       <clone_module>keyboard</clone_module>
+       <clone_module>timezone</clone_module>
+       <clone_module>users</clone_module>
+       <clone_module>networking</clone_module>
+       <clone_module>firewall</clone_module>
+       <clone_module>host</clone_module>
+       <clone_module>routing</clone_module>
+       <clone_module>proxy</clone_module>
+       <clone_module>runlevel</clone_module>
+       <!--  <clone_module>x11</clone_module>  (bnc#441404)  -->
+       <clone_module>nis</clone_module>
+       <clone_module>ldap</clone_module>
+       <clone_module>printer</clone_module>
+       <clone_module>add-on</clone_module>
+       <clone_module>iscsi-client</clone_module>
+       <clone_module>software</clone_module>
+       <clone_module>partitioning</clone_module>
+       <clone_module>bootloader</clone_module>
+       <clone_module>kdump</clone_module>
+       <clone_module>ntp-client</clone_module>
+    </clone_modules>
+
+    <texts>
+       <congratulate>
+           <label>
+&lt;p&gt;&lt;b&gt;Congratulations!&lt;/b&gt;&lt;/p&gt;
+&lt;p&gt;The installation of openSUSE on your machine is complete.
+After clicking &lt;b&gt;Finish&lt;/b&gt;, you can log in to the 
system.&lt;/p&gt;
+&lt;p&gt;Visit us at %1.&lt;/p&gt;
+&lt;p&gt;Have a lot of fun!&lt;br&gt;Your openSUSE Development Team&lt;/p&gt;
+           </label>
+       </congratulate>
+
+       <ac_1><label>Initialization...</label></ac_1>
+       <ac_2><label>Configuring network...</label></ac_2>
+       <ac_3><label>Configuring hardware...</label></ac_3>
+       <ac_4><label>Finishing configuration...</label></ac_4>
+
+       <!--
+           Desktop dialog label. It should not be wider than 75 characters.
+           Please try to keep the same number of lines, if possible
+       -->
+       <desktop_dialog><label>The desktop environment on your computer 
provides the graphical user
+interface for your computer, as well as a suite of applications for
+email, Web browsing, office productivity, games, and utilities to
+manage your computer.
+
+openSUSE offers a choice of desktop environments.  The most widely
+used desktop environments are GNOME and KDE, and they are equally
+supported under openSUSE. Both desktop environments are easy to use,
+highly integrated, and have an attractive look and feel. Each desktop
+environment has a distinct style, so personal taste determines which
+is the most appropriate desktop for you.</label></desktop_dialog>
+
+       <!-- Desktop dialog: desktop names -->
+       <desktop_gnome><label>GNOME Desktop</label></desktop_gnome>
+       <desktop_kde><label>KDE Desktop</label></desktop_kde>
+       <desktop_xfce><label>XFCE Desktop</label></desktop_xfce>
+       <desktop_lxde><label>LXDE Desktop</label></desktop_lxde>
+       <desktop_min_x><label>Minimal X Window</label></desktop_min_x>
+       <desktop_e17><label>Enlightenment Desktop</label></desktop_e17>
+       <desktop_textmode><label>Minimal Server Selection (Text 
Mode)</label></desktop_textmode>
+
+    </texts>
+    <workflows config:type="list">
+
+       <!-- Stage: Initial, Mode: Installation -->
+        <workflow>
+            <defaults>
+                <archs>all</archs>
+               <enable_back>yes</enable_back>
+               <enable_next>yes</enable_next>
+            </defaults>
+           <label>Preparation</label>
+            <mode>installation</mode>
+            <stage>initial</stage>
+            <modules  config:type="list">
+                <module>
+                   <label>Welcome</label>
+                    <name>complex_welcome</name>
+                    <enable_back>no</enable_back>
+                    <enable_next>yes</enable_next>
+                    <arguments>
+                        <first_run>yes</first_run>
+                    </arguments>
+                    <retranslate config:type="boolean">true</retranslate>
+                </module>
+               <module>
+                   <label>Network Activation</label>
+                    <name>lan</name>
+               </module>
+               <module>
+                   <label>Disk Activation</label>
+                    <name>disks_activate</name>
+               </module>
+                <module>
+                   <label>System Analysis</label>
+                    <name>system_analysis</name>
+                </module>
+               <module>
+                   <label>Disk</label>
+                   <name>disk_for_image</name>
+                   <enable_back>yes</enable_back>
+                   <enable_next>yes</enable_next>
+               </module>
+               <!-- FATE #303860: Provide consistent progress during 
installation -->
+               <module>
+                   <label>Perform Installation</label>
+                   <name>prepareprogress</name>
+               </module>
+               <!-- Installation from images -->
+                <module>
+                   <label>Perform Installation</label>
+                    <name>deploy_image</name>
+                </module>
+                <module>
+                   <label>Perform Installation</label>
+                    <name>finish</name>
+                </module>
+            </modules>
+        </workflow>
+    </workflows>
+
+    <!-- must be non-empty in order to be used -->
+    <inst_finish_stages config:type="list">
+      <inst_finish_stage>
+        <label>Reboot...</label>
+        <steps config:type="list">
+        </steps>
+      </inst_finish_stage>
+    </inst_finish_stages>
+</productDefines>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.17/package/yast2-installation.changes 
new/yast2-installation-3.1.18/package/yast2-installation.changes
--- old/yast2-installation-3.1.17/package/yast2-installation.changes    
2013-12-18 16:05:32.000000000 +0100
+++ new/yast2-installation-3.1.18/package/yast2-installation.changes    
2014-01-08 15:45:47.000000000 +0100
@@ -1,4 +1,16 @@
 -------------------------------------------------------------------
+Wed Jan  8 12:46:34 UTC 2014 - [email protected]
+
+- added capability to install OEM images (fate#316326)
+- added handling Release Notes button (fate#314695)
+
+-------------------------------------------------------------------
+Fri Dec 20 09:32:08 UTC 2013 - [email protected]
+
+- Add abort and fail hooks for installation
+- 3.1.18
+
+-------------------------------------------------------------------
 Thu Dec 12 14:50:32 UTC 2013 - [email protected]
 
 - control files have been moved to a separate package/git repo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.17/package/yast2-installation.spec 
new/yast2-installation-3.1.18/package/yast2-installation.spec
--- old/yast2-installation-3.1.17/package/yast2-installation.spec       
2013-12-18 16:05:32.000000000 +0100
+++ new/yast2-installation-3.1.18/package/yast2-installation.spec       
2014-01-08 15:45:47.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-installation
-Version:        3.1.17
+Version:        3.1.18
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.17/src/clients/inst_deploy_image.rb 
new/yast2-installation-3.1.18/src/clients/inst_deploy_image.rb
--- old/yast2-installation-3.1.17/src/clients/inst_deploy_image.rb      
2013-12-18 16:05:32.000000000 +0100
+++ new/yast2-installation-3.1.18/src/clients/inst_deploy_image.rb      
2014-01-08 15:45:47.000000000 +0100
@@ -33,16 +33,26 @@
       Yast.import "Report"
       Yast.import "ProductFeatures"
       Yast.import "PackagesUI"
+      Yast.import "Misc"
 
       textdomain "installation"
 
-      # There is nothing to do
-      if !Installation.image_installation
-        Builtins.y2milestone("No images have been selected")
-        # bnc #395030
-        # Use less memory
-        ImageInstallation.FreeInternalVariables
-        return :auto
+      # OEM image if target disk is defined
+      oem_image = !InstData.image_target_disk.nil?
+
+      if oem_image
+        path = ProductFeatures.GetStringFeature("globals", "oem_image")
+        ImageInstallation.PrepareOEMImage(path)
+        Misc.boot_msg = _("The system will reboot now...")
+      else
+        # There is nothing to do
+        if !Installation.image_installation
+          Builtins.y2milestone("No images have been selected")
+          # bnc #395030
+          # Use less memory
+          ImageInstallation.FreeInternalVariables
+          return :auto
+        end
       end
 
       Builtins.y2milestone("Deploying images")
@@ -139,15 +149,15 @@
 
       Wizard.SetTitleIcon("yast-inst-mode")
 
-      # Set where the images will be downloaded
-      SourceManager.InstInitSourceMoveDownloadArea
-
-      # Deploy the images
-      @dep_ret = ImageInstallation.DeployImages(
-        @images,
-        Installation.destdir,
-        nil
-      )
+      # in case of OEM image deployment, there is no disk available
+      if oem_image
+        target = InstData.image_target_disk
+      else
+        # Set where the images will be downloaded
+        SourceManager.InstInitSourceMoveDownloadArea
+        target = Installation.destdir
+      end
+      @dep_ret = ImageInstallation.DeployImages(@images, target, nil)
       Builtins.y2milestone("DeployImages returned: %1", @dep_ret)
 
       # BNC #444209
@@ -168,9 +178,13 @@
 
       # Load the libzypp state from the system (with images deployed)
       PackageCallbacks.RegisterEmptyProgressCallbacks
-      Pkg.TargetInitialize(Installation.destdir)
-      Pkg.TargetLoad
-      PackageCallbacks.RestorePreviousProgressCallbacks
+      if oem_image
+        #TODO later when adding more functionality: mount the deployed image 
for inst_finish
+      else
+        Pkg.TargetInitialize(Installation.destdir)
+        Pkg.TargetLoad
+        PackageCallbacks.RestorePreviousProgressCallbacks
+      end
 
       # Restore the states stored by StoreAllChanges()
       if ImageInstallation.RestoreAllChanges != true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.17/src/clients/inst_disk_for_image.rb 
new/yast2-installation-3.1.18/src/clients/inst_disk_for_image.rb
--- old/yast2-installation-3.1.17/src/clients/inst_disk_for_image.rb    
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-installation-3.1.18/src/clients/inst_disk_for_image.rb    
2014-01-08 15:45:47.000000000 +0100
@@ -0,0 +1,110 @@
+# encoding: utf-8
+
+# 
------------------------------------------------------------------------------
+# Copyright (c) 2013 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.
+# 
------------------------------------------------------------------------------
+#
+# Summary: Ask for disk to deploy image to
+#
+
+module Yast
+  # Asks for disk to deploy an image to.
+  # Useful for OEM image installation (replacing contents of the full disk),
+  # not for regular installation process
+  class InstDiskForImageClient < Client
+    def main
+      Yast.import "UI"
+
+      textdomain "installation"
+
+      Yast.import "Popup"
+      Yast.import "GetInstArgs"
+      Yast.import "Wizard"
+      Yast.import "Storage"
+      Yast.import "InstData"
+
+      @test_mode = WFM.Args.include?("test")
+
+      show_disk_for_image_dialog
+
+      ret = nil
+      disk = nil
+
+      continue_buttons = [:next, :back, :close, :abort]
+      while !continue_buttons.include?(ret) do
+        ret = UI.UserInput
+
+        if ret == :next
+          disk = UI.QueryWidget(Id(:disk), :Value)
+          ret = WFM.CallFunction("inst_doit", [])
+          if ret == :next
+            InstData.image_target_disk = disk
+          else
+            ret = nil
+          end
+        elsif ret == :abort
+          ret = nil unless Popup.ConfirmAbort(:painless)
+        end
+      end
+
+      return ret
+    end
+
+
+    private
+
+    def disks_to_use
+      target_map = Storage.GetTargetMap
+      Builtins.y2milestone("TM: %1", target_map)
+      # FIXME: move blacklist to Storage
+      used_by_blacklist = [ :CT_DMRAID, :CT_DMMULTIPATH, :CT_MDPART ]
+      target_map.select { | key, value |
+        Storage.IsDiskType(value["type"]) && (! used_by_blacklist.include? 
value["used_by"])
+      }.keys
+    end
+
+    def disk_for_image_dialog
+      MarginBox(1, 0.5,
+        VBox(
+          Left(Label(_("Select the disk to deploy the image to."))),
+          Left(Label(_("All data on the disk will be destroyed!!!"))),
+          VSpacing(0.5),
+          SelectionBox(Id(:disk), _("&Disk to Use"), disks_to_use)
+        )
+      )
+    end
+
+    def disk_for_image_help_text
+      _("Select the disk, which the image will be deployed to. " +
+        "All data on the disk will be destroyed and the disk will be " +
+        "partitioned as defined in the image.")
+    end
+
+    def show_disk_for_image_dialog
+      Wizard.SetContents(
+        _("Hard Disk for Image Deployment"),
+        disk_for_image_dialog,
+        disk_for_image_help_text,
+        GetInstArgs.enable_back || @test_mode,
+        GetInstArgs.enable_next || @test_mode
+      )
+    end
+  end
+end
+
+Yast::InstDiskForImageClient.new.main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.17/src/clients/inst_prepareprogress.rb 
new/yast2-installation-3.1.18/src/clients/inst_prepareprogress.rb
--- old/yast2-installation-3.1.17/src/clients/inst_prepareprogress.rb   
2013-12-18 16:05:32.000000000 +0100
+++ new/yast2-installation-3.1.18/src/clients/inst_prepareprogress.rb   
2014-01-08 15:45:47.000000000 +0100
@@ -126,6 +126,26 @@
         }
       ]
 
+      # own workflow for OEM image deployment
+      if InstData.image_target_disk
+        @stages = [
+          {
+            "name"        => "images",
+            "description" => _("Deploying Images..."),
+            "value"       => 300000, # just make it longer than inst_finish, 
TODO: better value later
+            "units"       => :kb
+          },
+          {
+            "name"        => "finish",
+            "description" => _("Finishing Basic Installation"),
+            # fixed value
+            "value"       => 100,
+            "units"       => :sec
+          }
+        ]
+    
+      end
+
       SlideShow.Setup(@stages)
 
       @ret_val = :auto
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.17/src/clients/inst_proposal.rb 
new/yast2-installation-3.1.18/src/clients/inst_proposal.rb
--- old/yast2-installation-3.1.17/src/clients/inst_proposal.rb  2013-12-18 
16:05:32.000000000 +0100
+++ new/yast2-installation-3.1.18/src/clients/inst_proposal.rb  2014-01-08 
15:45:47.000000000 +0100
@@ -1081,10 +1081,6 @@
           Builtins.y2milestone("Not using CWM tabs...")
         end
       end
-      if Stage.stage == "initial"
-        # push button
-        Wizard.ShowReleaseNotesButton(_("&Show Release Notes"), "rel_notes")
-      end
 
       nil
     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.17/src/clients/inst_system_analysis.rb 
new/yast2-installation-3.1.18/src/clients/inst_system_analysis.rb
--- old/yast2-installation-3.1.17/src/clients/inst_system_analysis.rb   
2013-12-18 16:05:32.000000000 +0100
+++ new/yast2-installation-3.1.18/src/clients/inst_system_analysis.rb   
2014-01-08 15:45:47.000000000 +0100
@@ -54,6 +54,7 @@
 
       Yast.include self, "installation/misc.rb"
       Yast.include self, "packager/storage_include.rb"
+      Yast.include self, "packager/load_release_notes.rb"
 
       if Mode.autoinst || Mode.autoupgrade
         Report.Import(
@@ -493,6 +494,13 @@
       else
         @packager_initialized = true
         Packages.InitializeAddOnProducts
+        if load_release_notes(Packages.GetBaseSourceID)
+          # push button
+          Wizard.ShowReleaseNotesButton(_("Re&lease Notes..."), "rel_notes")
+          UI::SetReleaseNotes( { Product.name => @media_text } )
+        end
+
+
       end
 
       # reregister callbacks
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.17/src/clients/inst_worker_initial.rb 
new/yast2-installation-3.1.18/src/clients/inst_worker_initial.rb
--- old/yast2-installation-3.1.17/src/clients/inst_worker_initial.rb    
2013-12-18 16:05:32.000000000 +0100
+++ new/yast2-installation-3.1.18/src/clients/inst_worker_initial.rb    
2014-01-08 15:45:47.000000000 +0100
@@ -101,9 +101,6 @@
         WFM.CallFunction("inst_check_autoinst_mode", [])
       end
 
-      # Show the "Release Notes" button
-      Wizard.ShowReleaseNotesButton(_("Re&lease Notes..."), 
"show_release_notes")
-
       @ret = nil
 
       # --- Runing the installation workflow ---
@@ -117,6 +114,7 @@
 
       # Installation has been aborted
       if @ret == :abort
+        Hooks.run 'installation_aborted'
         # tell linuxrc that we aborted
         Linuxrc.WriteYaSTInf({ "Aborted" => "1" })
       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.17/src/clients/installation.rb 
new/yast2-installation-3.1.18/src/clients/installation.rb
--- old/yast2-installation-3.1.17/src/clients/installation.rb   2013-12-18 
16:05:32.000000000 +0100
+++ new/yast2-installation-3.1.18/src/clients/installation.rb   2014-01-08 
15:45:47.000000000 +0100
@@ -82,6 +82,8 @@
         Report.Error(_("No workflow defined for this kind of installation."))
       end
 
+      Hooks.run 'installation_failure' if @ret == false
+
       Builtins.y2milestone("Installation ret: %1", @ret)
       Builtins.y2milestone("=== installation ===")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.17/src/modules/ImageInstallation.rb 
new/yast2-installation-3.1.18/src/modules/ImageInstallation.rb
--- old/yast2-installation-3.1.17/src/modules/ImageInstallation.rb      
2013-12-18 16:05:32.000000000 +0100
+++ new/yast2-installation-3.1.18/src/modules/ImageInstallation.rb      
2014-01-08 15:45:47.000000000 +0100
@@ -472,6 +472,31 @@
       # FIXME error checking
     end
 
+    def DeployDiskImage(id, target)
+      InitRepo()
+
+      file = Ops.get_string(@_images, [id, "file"], "")
+      Builtins.y2milestone("Deploying disk image %1 (%2) on %3", id, file, 
target)
+      file = Builtins.sformat("%1/%2", @_image_path, file)
+      # BNC #409927
+      # Checking files for signatures
+      image = Pkg.SourceProvideDigestedFile(@_repo, 1, file, false)
+
+      if image.nil?
+        Builtins.y2error("File %1 not found on media", file)
+        return false
+      end
+
+      Builtins.y2milestone("Copying the image")
+      cmd = Builtins.sformat("dd bs=1048576 if=%1 of=%2", image, target) #1MB 
of block size
+      out = SCR.Execute(path(".target.bash_output"), cmd)
+      Builtins.y2milestone("Executing %1 returned %2", cmd, out)
+
+      RemoveTemporaryImage(image)
+
+      out["exit"] == 0
+    end
+
     # Mount an image of the filesystem type
     # Does not integrate to the system, mounts on target
     # @param [String] id string the id of the image
@@ -579,6 +604,8 @@
         return temporary ? MountFsImage(id, target) : DeployFsImage(id, target)
       elsif type == "tar"
         return DeployTarImage(id, target)
+      elsif type == "raw"
+        return DeployDiskImage(id, target)
       end
 
       Builtins.y2error("Unknown type of image: %1", type)
@@ -768,6 +795,13 @@
       Ops.greater_or_equal(matching_patterns, patterns_in_imagesets)
     end
 
+    def PrepareOEMImage(path)
+      AddImage(
+        "OEM", path, "raw"
+      )
+      @_image_order = [ path ]
+    end
+
     # Find a set of images which suites selected patterns
     # @param [Array<String>] patterns a list of patterns which are selected
     # @return [Boolean] true on success or when media does not contain any 
images
@@ -1482,6 +1516,7 @@
     publish :function => :StoreAllChanges, :type => "void ()"
     publish :function => :RestoreAllChanges, :type => "boolean ()"
     publish :function => :FreeInternalVariables, :type => "void ()"
+    publish :function => :PrepareOEMImage, :type => "void ()"
   end
 
   ImageInstallation = ImageInstallationClass.new
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-installation-3.1.17/src/modules/InstData.rb 
new/yast2-installation-3.1.18/src/modules/InstData.rb
--- old/yast2-installation-3.1.17/src/modules/InstData.rb       2013-12-18 
16:05:32.000000000 +0100
+++ new/yast2-installation-3.1.18/src/modules/InstData.rb       2014-01-08 
15:45:47.000000000 +0100
@@ -88,6 +88,11 @@
 
       # <-- copy files -- config
 
+      # variables for OEM image installation
+
+      # disk to use for OEM image
+      @image_target_disk = nil
+
       # EOF
     end
 
@@ -104,6 +109,7 @@
     publish :variable => :localDisabledProposals, :type => "list <string>"
     publish :variable => :copy_files_use_control_file, :type => "boolean"
     publish :variable => :additional_copy_files, :type => "list <map>"
+    publish :variable => :image_target_disk, :type => "string"
   end
 
   InstData = InstDataClass.new

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to