Hello community,

here is the log from the commit of package yast2-installation for 
openSUSE:Factory checked in at 2016-05-10 09:26:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-installation (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-installation.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-installation"

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-installation/yast2-installation.changes    
2016-04-28 20:31:05.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.yast2-installation.new/yast2-installation.changes   
    2016-05-10 09:26:39.000000000 +0200
@@ -1,0 +2,14 @@
+Fri May  6 11:09:28 UTC 2016 - jsr...@suse.cz
+
+- get more texts for roles dialog from control file, allow
+  a general label (bsc#974625)
+- 3.1.184
+
+-------------------------------------------------------------------
+Thu May  5 13:39:46 UTC 2016 - an...@suse.com
+
+- Always read the lists of local users in the previous system to
+  have them available during user importing (part of fate#319624)
+- 3.1.183
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ yast2-installation.spec ++++++
--- /var/tmp/diff_new_pack.zpvWN2/_old  2016-05-10 09:26:40.000000000 +0200
+++ /var/tmp/diff_new_pack.zpvWN2/_new  2016-05-10 09:26:40.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-installation
-Version:        3.1.182
+Version:        3.1.184
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -121,7 +121,8 @@
 
 Recommends:     yast2-registration
 Recommends:     yast2-online-update
-Recommends:     yast2-users
+# UsersDatabase class
+Recommends:     yast2-users >= 3.1.49
 Recommends:     yast2-firewall
 Recommends:     release-notes
 Recommends:     curl

++++++ yast2-installation-3.1.182.tar.bz2 -> yast2-installation-3.1.184.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-installation-3.1.182/doc/SELF_UPDATE.md 
new/yast2-installation-3.1.184/doc/SELF_UPDATE.md
--- old/yast2-installation-3.1.182/doc/SELF_UPDATE.md   2016-04-28 
15:04:36.000000000 +0200
+++ new/yast2-installation-3.1.184/doc/SELF_UPDATE.md   2016-05-09 
14:24:55.000000000 +0200
@@ -73,3 +73,14 @@
 self-update is performed).
 
 However, the user changes will be re-applied on top of the installer updates.
+
+## Resume installation
+
+Any client called before the self update step is responsible to remember its 
state (if
+needed) and automatically going to the next dialog after the YaST restart.
+Once the self update step is reached again it will remove the restarting flag.
+
+Currently there is no API available for remembering the client states. The 
easiest
+way is to store the configuration into an YAML file and load it when 
restarting the
+installer. See the 
[example](https://github.com/yast/yast-installation/pull/367/files#diff-4c91d6424e08c9bef9237f7d959fc0c2R48)
+in the `inst_complex_welcome` client.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-installation-3.1.182/doc/control-file.md 
new/yast2-installation-3.1.184/doc/control-file.md
--- old/yast2-installation-3.1.182/doc/control-file.md  2016-04-28 
15:04:36.000000000 +0200
+++ new/yast2-installation-3.1.184/doc/control-file.md  2016-05-09 
14:24:55.000000000 +0200
@@ -875,6 +875,24 @@
     </system_roles>
 
     <texts>
+      <!-- Caption of the whole dialog -->
+      <roles_caption><label>System Role</label></roles_caption>
+      <!-- Few lines of text above the selection of the roles -->
+      <roles_text>
+        <label>System Roles are predefined use cases which adjust the system
+to be installed tailored for the selected scenario.
+Choose the one which matches your system best.</label>
+      </roles_text>
+      <!-- Help text of the roles dialog -->
+      <roles_help>
+        <label>&lt;p&gt;The system roles adjustments are in the range from 
package selection up
+to disk partitioning. By choosing a system role, the system is
+configured accordingly to match the use case of the role. The settings
+defined by a role can be overridden in the next steps if 
necessary.&lt;/p&gt;</label>
+      </roles_help>
+
+
+
       <plain><label>General Server</label></plain>
       <plain_description>
         <label>Suitable for physical machines.</label>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.182/package/yast2-installation.changes 
new/yast2-installation-3.1.184/package/yast2-installation.changes
--- old/yast2-installation-3.1.182/package/yast2-installation.changes   
2016-04-28 15:04:36.000000000 +0200
+++ new/yast2-installation-3.1.184/package/yast2-installation.changes   
2016-05-09 14:24:55.000000000 +0200
@@ -1,4 +1,18 @@
 -------------------------------------------------------------------
+Fri May  6 11:09:28 UTC 2016 - jsr...@suse.cz
+
+- get more texts for roles dialog from control file, allow
+  a general label (bsc#974625)
+- 3.1.184
+
+-------------------------------------------------------------------
+Thu May  5 13:39:46 UTC 2016 - an...@suse.com
+
+- Always read the lists of local users in the previous system to
+  have them available during user importing (part of fate#319624)
+- 3.1.183
+
+-------------------------------------------------------------------
 Wed Apr 20 10:47:12 UTC 2016 - knut.anders...@suse.com
 
 - Disk Activation step will be skipped in case of installer update
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.182/package/yast2-installation.spec 
new/yast2-installation-3.1.184/package/yast2-installation.spec
--- old/yast2-installation-3.1.182/package/yast2-installation.spec      
2016-04-28 15:04:36.000000000 +0200
+++ new/yast2-installation-3.1.184/package/yast2-installation.spec      
2016-05-09 14:24:55.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-installation
-Version:        3.1.182
+Version:        3.1.184
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -117,7 +117,8 @@
 
 Recommends:    yast2-registration
 Recommends:    yast2-online-update
-Recommends:    yast2-users
+# UsersDatabase class
+Recommends:    yast2-users >= 3.1.49
 Recommends:    yast2-firewall
 Recommends:    release-notes
 Recommends:    curl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.182/src/lib/installation/clients/inst_pre_install.rb 
new/yast2-installation-3.1.184/src/lib/installation/clients/inst_pre_install.rb
--- 
old/yast2-installation-3.1.182/src/lib/installation/clients/inst_pre_install.rb 
    2016-04-28 15:04:36.000000000 +0200
+++ 
new/yast2-installation-3.1.184/src/lib/installation/clients/inst_pre_install.rb 
    2016-05-09 14:24:55.000000000 +0200
@@ -20,6 +20,8 @@
 # 
------------------------------------------------------------------------------
 module Yast
   class InstPreInstallClient < Client
+    include Yast::Logger
+
     def main
       Yast.import "Storage"
       Yast.import "FileSystems"
@@ -83,6 +85,8 @@
         end
       end
 
+      read_users
+
       # free the memory
       @useful_partitions = nil
 
@@ -124,46 +128,10 @@
       wanted_files = deep_copy(wanted_files)
       optional_files = deep_copy(optional_files)
       Builtins.y2milestone("Searching for files: %1", wanted_files)
-      mnt_tmpdir = Ops.add(Directory.tmpdir, "/tmp_mnt_for_check")
-
-      mnt_tmpdir = SystemFilesCopy.CreateDirectoryIfMissing(mnt_tmpdir)
-
-      # CreateDirectory failed
-      return nil if mnt_tmpdir.nil?
 
       files_found_on_partitions = {}
 
-      Builtins.foreach(@useful_partitions) do |partition|
-        partition_device = Ops.get_string(partition, "device", "")
-        Builtins.y2milestone("Mounting %1 to %2", partition_device, mnt_tmpdir)
-        already_mounted = Builtins.sformat(
-          "grep '[\\t ]%1[\\t ]' /proc/mounts",
-          mnt_tmpdir
-        )
-        am = Convert.to_map(
-          SCR.Execute(path(".target.bash_output"), already_mounted)
-        )
-        if Ops.get_integer(am, "exit", -1) == 0 &&
-            Ops.greater_than(Builtins.size(Ops.get_string(am, "stdout", "")), 
0)
-          Builtins.y2warning(
-            "%1 is already mounted, trying to umount...",
-            mnt_tmpdir
-          )
-          if Convert.to_boolean(SCR.Execute(path(".target.umount"), 
mnt_tmpdir)) != true
-            Builtins.y2error("Cannot umount %1", mnt_tmpdir)
-          end
-        end
-        # mounting read-only
-        if !Convert.to_boolean(
-          SCR.Execute(
-            path(".target.mount"),
-            [partition_device, mnt_tmpdir],
-            "-o ro,noatime"
-          )
-          )
-          Builtins.y2error("Mounting falied!")
-          next
-        end
+      each_mounted_partition do |device, mnt_tmpdir|
         files_found = true
         one_partition_files_found = {}
         Builtins.foreach(wanted_files) do |wanted_file|
@@ -197,28 +165,8 @@
           end
           Ops.set(one_partition_files_found, wanted_file, file_time)
         end
-        if files_found
-          Ops.set(
-            files_found_on_partitions,
-            partition_device,
-            one_partition_files_found
-          )
-        end
-        # bnc #427879
-        exec = Convert.to_map(
-          SCR.Execute(
-            path(".target.bash_output"),
-            Builtins.sformat("fuser -v '%1' 2>&1", String.Quote(mnt_tmpdir))
-          )
-        )
-        if Ops.get_string(exec, "stdout", "") != ""
-          Builtins.y2error("Processes in %1: %2", mnt_tmpdir, exec)
-        end
-        # umounting
-        Builtins.y2milestone("Umounting %1", partition_device)
-        if !Convert.to_boolean(SCR.Execute(path(".target.umount"), mnt_tmpdir))
-          Builtins.y2error("Umount failed!")
-        end
+        next unless files_found
+        Ops.set(files_found_on_partitions, device, one_partition_files_found)
       end
 
       Builtins.y2milestone("Files found: %1", files_found_on_partitions)
@@ -257,6 +205,23 @@
       nil
     end
 
+    # Stores all found user databases (/etc/passwd and friends) into
+    # UsersDatabase.all, so it can be used during the users import step
+    def read_users
+      require_users_database
+      return unless defined? Users::UsersDatabase
+      each_mounted_partition do |device, mount_point|
+        log.info "Reading users information from #{device}"
+        Users::UsersDatabase.import(mount_point)
+      end
+    end
+
+    def require_users_database
+      require "users/users_database"
+    rescue LoadError
+      log.error "UsersDatabase not found. YaST2-users is missing, old or 
broken."
+    end
+
     def Initialize
       Builtins.y2milestone("Evaluating all current partitions")
 
@@ -332,5 +297,49 @@
 
       nil
     end
+
+  protected
+
+    def each_mounted_partition(&block)
+      mnt_tmpdir = "#{Directory.tmpdir}/tmp_mnt_for_check"
+      mnt_tmpdir = SystemFilesCopy.CreateDirectoryIfMissing(mnt_tmpdir)
+
+      # CreateDirectory failed
+      if mnt_tmpdir.nil?
+        log.error "Error creating temporary directory"
+        return
+      end
+
+      @useful_partitions.each do |partition|
+        partition_device = partition["device"] || ""
+        log.info "Mounting #{partition_device} to #{mnt_tmpdir}"
+        already_mounted = Builtins.sformat(
+          "grep '[\\t ]%1[\\t ]' /proc/mounts",
+          mnt_tmpdir
+        )
+        am = SCR.Execute(path(".target.bash_output"), already_mounted)
+        if am["exit"] == 0 && !am["stdout"].to_s.empty?
+          log.warning "#{mnt_tmpdir} is already mounted, trying to umount..."
+          log.error("Cannot umount #{mnt_tmpdir}") unless 
SCR.Execute(path(".target.umount"), mnt_tmpdir)
+        end
+        # mounting read-only
+        if !SCR.Execute(path(".target.mount"), [partition_device, mnt_tmpdir], 
"-o ro,noatime")
+          log.error "Mounting falied!"
+          next
+        end
+
+        block.call(partition_device, mnt_tmpdir)
+
+        # bnc #427879
+        exec = SCR.Execute(
+          path(".target.bash_output"),
+          Builtins.sformat("fuser -v '%1' 2>&1", String.Quote(mnt_tmpdir))
+        )
+        log.error("Processes in #{mnt_tmpdir}: #{exec}") unless 
exec["stdout"].to_s.empty?
+        # umounting
+        log.info "Umounting #{partition_device}"
+        log.error("Umount failed!") unless SCR.Execute(path(".target.umount"), 
mnt_tmpdir)
+      end
+    end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.182/src/lib/installation/select_system_role.rb 
new/yast2-installation-3.1.184/src/lib/installation/select_system_role.rb
--- old/yast2-installation-3.1.182/src/lib/installation/select_system_role.rb   
2016-04-28 15:04:36.000000000 +0200
+++ new/yast2-installation-3.1.184/src/lib/installation/select_system_role.rb   
2016-05-09 14:24:55.000000000 +0200
@@ -45,24 +45,19 @@
     end
 
     def dialog_title
-      _("System Role")
+      Yast::ProductControl.GetTranslatedText("roles_caption")
     end
 
     def help_text
-      ""                    # no Help, besides the descriptions in dialog body
+      Yast::ProductControl.GetTranslatedText("roles_help")
     end
 
     def dialog_content
-      ui_roles = role_attributes.each_with_object(VBox()) do |r, vbox|
-        vbox << Left(RadioButton(Id(r[:id]), r[:label]))
-        vbox << HBox(
-          HSpacing(Yast::UI.TextMode ? 4 : 2),
-          Left(Label(r[:description]))
-        )
-        vbox << VSpacing(2)
-      end
-
-      RadioButtonGroup(Id(:roles), ui_roles)
+      VBox(
+        Left(Label(Yast::ProductControl.GetTranslatedText("roles_text"))),
+        VSpacing(2),
+        role_buttons
+      )
     end
 
     def create_dialog
@@ -95,6 +90,19 @@
       Yast::ProductFeatures.ClearOverlay
     end
 
+    def role_buttons
+      ui_roles = role_attributes.each_with_object(VBox()) do |r, vbox|
+        vbox << Left(RadioButton(Id(r[:id]), r[:label]))
+        vbox << HBox(
+          HSpacing(Yast::UI.TextMode ? 4 : 2),
+          Left(Label(r[:description]))
+        )
+        vbox << VSpacing(2)
+      end
+
+      RadioButtonGroup(Id(:roles), ui_roles)
+    end
+
     def apply_role(role_id)
       log.info "Applying system role '#{role_id}'"
       features = raw_roles.find { |r| r["id"] == role_id }


Reply via email to