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