Hello community,

here is the log from the commit of package yast2-packager for openSUSE:Factory 
checked in at 2016-02-16 09:27:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-packager (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-packager.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-packager"

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-packager/yast2-packager.changes    
2016-01-05 21:54:12.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-packager.new/yast2-packager.changes       
2016-02-16 09:27:38.000000000 +0100
@@ -1,0 +2,15 @@
+Thu Feb 11 15:25:26 CET 2016 - sch...@suse.de
+
+- Allowing AutoYaST to confirm licenses.
+  (Fate#318945)
+- 3.1.89
+
+-------------------------------------------------------------------
+Wed Jan 27 12:16:51 UTC 2016 - lsle...@suse.cz
+
+- Fixed selecting additional products during system installation
+  (do not select previously unselected products after adding
+  repositories from the registration server) (bsc#963036)
+- 3.1.88
+
+-------------------------------------------------------------------

Old:
----
  yast2-packager-3.1.87.tar.bz2

New:
----
  yast2-packager-3.1.89.tar.bz2

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

Other differences:
------------------
++++++ yast2-packager.spec ++++++
--- /var/tmp/diff_new_pack.0zCocL/_old  2016-02-16 09:27:39.000000000 +0100
+++ /var/tmp/diff_new_pack.0zCocL/_new  2016-02-16 09:27:39.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-packager
-Version:        3.1.87
+Version:        3.1.89
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ yast2-packager-3.1.87.tar.bz2 -> yast2-packager-3.1.89.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-packager-3.1.87/package/yast2-packager.changes 
new/yast2-packager-3.1.89/package/yast2-packager.changes
--- old/yast2-packager-3.1.87/package/yast2-packager.changes    2016-01-04 
10:28:11.000000000 +0100
+++ new/yast2-packager-3.1.89/package/yast2-packager.changes    2016-02-12 
10:53:12.000000000 +0100
@@ -1,4 +1,19 @@
 -------------------------------------------------------------------
+Thu Feb 11 15:25:26 CET 2016 - sch...@suse.de
+
+- Allowing AutoYaST to confirm licenses.
+  (Fate#318945)
+- 3.1.89
+
+-------------------------------------------------------------------
+Wed Jan 27 12:16:51 UTC 2016 - lsle...@suse.cz
+
+- Fixed selecting additional products during system installation
+  (do not select previously unselected products after adding
+  repositories from the registration server) (bsc#963036)
+- 3.1.88
+
+-------------------------------------------------------------------
 Mon Jan  4 09:23:54 UTC 2016 - jreidin...@suse.com
 
 - do not crash if adding unknown repo type (bnc#960460)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-packager-3.1.87/package/yast2-packager.spec 
new/yast2-packager-3.1.89/package/yast2-packager.spec
--- old/yast2-packager-3.1.87/package/yast2-packager.spec       2016-01-04 
10:28:11.000000000 +0100
+++ new/yast2-packager-3.1.89/package/yast2-packager.spec       2016-02-12 
10:53:12.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-packager
-Version:        3.1.87
+Version:        3.1.89
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-packager-3.1.87/src/modules/Packages.rb 
new/yast2-packager-3.1.89/src/modules/Packages.rb
--- old/yast2-packager-3.1.87/src/modules/Packages.rb   2016-01-04 
10:28:11.000000000 +0100
+++ new/yast2-packager-3.1.89/src/modules/Packages.rb   2016-02-12 
10:53:12.000000000 +0100
@@ -788,30 +788,29 @@
       nil
     end
 
-    # Reset package selection, but keep objects of specified type
-    # @param [Array<Symbol>] keep a list of symbols specifying type of objects 
to be kept
+    # Reset package selection, but keep the selected objects of the specified 
type
+    # @param [Array<Symbol>] keep a list of symbols specifying type of objects 
to be kept selected
     def Reset(keep)
-      keep = deep_copy(keep)
       restore = []
-      Builtins.foreach(keep) do |type|
-        selected = Pkg.ResolvableProperties("", type, "")
-        Builtins.foreach(selected) do |s|
-          restore = Builtins.add(
-            restore,
-            { "type" => type, "name" => Ops.get_string(s, "name", "") }
-          )
+
+      # collect the currently selected resolvables
+      keep.each do |type|
+        resolvables = Pkg.ResolvableProperties("", type, "")
+
+        resolvables.each do |resolvable|
+          # only selected items but ignore the selections done by solver,
+          # during restoration they would be changed to be selected by YaST 
and they
+          # will be selected by solver again anyway
+          next if resolvable["status"] != :selected || 
resolvable["transact_by"] == :solver
+
+          restore << [resolvable["name"], type]
         end
       end
 
-      # This reset keep user-made changes
-      # BNC #446406
+      # This keeps the user-made changes (BNC#446406)
       Pkg.PkgApplReset
-      Builtins.foreach(restore) do |res|
-        Pkg.ResolvableInstall(
-          Ops.get_string(res, "name", ""),
-          Ops.get_symbol(res, "type")
-        )
-      end
+
+      restore.each { |name, type| Pkg.ResolvableInstall(name, type) }
 
       @system_packages_selected = false
 
@@ -2211,7 +2210,7 @@
     # Make a proposal for package selection
     #
     # @param [Boolean] force_reset force reset (fully resets the proposal and 
creates a new one)
-    # @param [Boolean] reinit re-initialize (soft-reset, doesn't reset 
resolbavle manually selected by user)
+    # @param [Boolean] reinit re-initialize (soft-reset, doesn't reset 
resolvable manually selected by user)
     #
     # @return [Hash] for the API proposal
     def Proposal(force_reset, reinit, simple)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-packager-3.1.87/src/modules/ProductLicense.rb 
new/yast2-packager-3.1.89/src/modules/ProductLicense.rb
--- old/yast2-packager-3.1.87/src/modules/ProductLicense.rb     2016-01-04 
10:28:11.000000000 +0100
+++ new/yast2-packager-3.1.89/src/modules/ProductLicense.rb     2016-02-12 
10:53:12.000000000 +0100
@@ -1174,27 +1174,16 @@
       InstShowInfo.show_info_txt(@info_file) if @info_file != nil
 
       # initial loop
-      ret = nil
-
-      # set timeout for autoinstallation
-      # bugzilla #206706
-      if Mode.autoinst || Mode.autoupgrade
-        Builtins.y2milestone(
-          "AutoYaST: License has been accepted automatically"
-        )
-        ret = :accepted
-      else
-        ret = (
-          licenses_ref = arg_ref(licenses);
-          _HandleLicenseDialogRet_result = HandleLicenseDialogRet(
-            licenses_ref,
-            base_product,
-            action
-          );
-          licenses = licenses_ref.value;
-          _HandleLicenseDialogRet_result
-        )
-      end
+      ret = (
+        licenses_ref = arg_ref(licenses);
+        _HandleLicenseDialogRet_result = HandleLicenseDialogRet(
+          licenses_ref,
+          base_product,
+          action
+        );
+        licenses = licenses_ref.value;
+        _HandleLicenseDialogRet_result
+      )
 
       if ret == :accepted && license_ident != nil
         # store already accepted license ID
@@ -1342,27 +1331,18 @@
       Wizard.SetTitleIcon("yast-license")
       Wizard.SetFocusToNextButton
 
-      # set timeout for autoinstallation
-      # bugzilla #206706
-      if Mode.autoinst
-        Builtins.y2milestone(
-          "AutoYaST: License has been accepted automatically"
-        )
-        ret = :accepted
-      else
-        tmp_licenses = {}
-        ret = (
-          tmp_licenses_ref = arg_ref(tmp_licenses);
-          _HandleLicenseDialogRet_result = HandleLicenseDialogRet(
-            tmp_licenses_ref,
-            base_product,
-            action
-          );
-          tmp_licenses = tmp_licenses_ref.value;
-          _HandleLicenseDialogRet_result
-        )
-        Builtins.y2milestone("Dialog ret: %1", ret)
-      end
+      tmp_licenses = {}
+      ret = (
+        tmp_licenses_ref = arg_ref(tmp_licenses);
+        _HandleLicenseDialogRet_result = HandleLicenseDialogRet(
+          tmp_licenses_ref,
+          base_product,
+          action
+        );
+        tmp_licenses = tmp_licenses_ref.value;
+        _HandleLicenseDialogRet_result
+      )
+      Builtins.y2milestone("Dialog ret: %1", ret)
 
       # store already accepted license IDs
       Builtins.foreach(license_idents) do |license_ident|
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-packager-3.1.87/test/packages_test.rb 
new/yast2-packager-3.1.89/test/packages_test.rb
--- old/yast2-packager-3.1.87/test/packages_test.rb     2016-01-04 
10:28:11.000000000 +0100
+++ new/yast2-packager-3.1.89/test/packages_test.rb     2016-02-12 
10:53:12.000000000 +0100
@@ -158,6 +158,17 @@
     DEFAULT_PATTERN.merge(properties)
   end
 
+  DEFAULT_PRODUCT = {
+    "name" => "name",
+    "version" => "1.0.0",
+    "status" => :available,
+    "transact_by" => :app_high,
+  }
+
+  def product(properties = {})
+    DEFAULT_PRODUCT.merge(properties)
+  end
+
   describe "#SelectSystemPatterns" do
     context "if this is the initial run or it is being reinitialized" do
       context "and patterns are not unselected by user" do
@@ -836,4 +847,36 @@
       end
     end
   end
+
+  describe "#Reset" do
+    # Reset all package changes done by YaST then re-select only the products
+    # which previously were selected. (see bsc#963036).
+    it "does not select previously unselected items" do
+      allow(Yast::Pkg).to receive(:PkgApplReset)
+
+      allow(Yast::Pkg).to receive(:ResolvableProperties).and_return(
+        [product("name" => "p1", "status" => :selected), product("name" => 
"p2")]
+      )
+
+      expect(Yast::Pkg).to receive(:ResolvableInstall).with("p1", :product)
+      expect(Yast::Pkg).not_to receive(:ResolvableInstall).with("p2", :product)
+
+      Yast::Packages.Reset([:product])
+    end
+
+    # When restoring the selected products ignore the items selected by solver
+    # (to not change their "transact_by" value). They will be selected again by
+    # solver if they are still needed.
+    it "does not restore items selected by solver" do
+      allow(Yast::Pkg).to receive(:PkgApplReset)
+
+      allow(Yast::Pkg).to receive(:ResolvableProperties).and_return(
+        [product("name" => "p1", "status" => :selected, "transact_by" => 
:solver)]
+      )
+
+      expect(Yast::Pkg).not_to receive(:ResolvableInstall).with("p1", :product)
+
+      Yast::Packages.Reset([:product])
+    end
+  end
 end


Reply via email to