Hello community,

here is the log from the commit of package yast2-registration for 
openSUSE:Factory checked in at 2020-06-10 00:36:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-registration (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-registration.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-registration"

Wed Jun 10 00:36:29 2020 rev:54 rq:810011 version:4.3.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-registration/yast2-registration.changes    
2020-05-15 23:50:22.809320245 +0200
+++ 
/work/SRC/openSUSE:Factory/.yast2-registration.new.3606/yast2-registration.changes
  2020-06-10 00:36:46.509134115 +0200
@@ -1,0 +2,7 @@
+Thu May 28 10:50:51 UTC 2020 - Martin Vidner <mvid...@suse.com>
+
+- Declining/refusal of an addon license means canceling all addons.
+  (bsc#1169577)
+- 4.3.1
+
+-------------------------------------------------------------------

Old:
----
  yast2-registration-4.3.0.tar.bz2

New:
----
  yast2-registration-4.3.1.tar.bz2

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

Other differences:
------------------
++++++ yast2-registration.spec ++++++
--- /var/tmp/diff_new_pack.CC5z6v/_old  2020-06-10 00:36:48.937140628 +0200
+++ /var/tmp/diff_new_pack.CC5z6v/_new  2020-06-10 00:36:48.941140639 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-registration
-Version:        4.3.0
+Version:        4.3.1
 Release:        0
 Summary:        YaST2 - Registration Module
 License:        GPL-2.0-only

++++++ yast2-registration-4.3.0.tar.bz2 -> yast2-registration-4.3.1.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-registration-4.3.0/package/yast2-registration.changes 
new/yast2-registration-4.3.1/package/yast2-registration.changes
--- old/yast2-registration-4.3.0/package/yast2-registration.changes     
2020-05-12 16:52:18.000000000 +0200
+++ new/yast2-registration-4.3.1/package/yast2-registration.changes     
2020-05-28 18:25:51.000000000 +0200
@@ -1,4 +1,11 @@
 -------------------------------------------------------------------
+Thu May 28 10:50:51 UTC 2020 - Martin Vidner <mvid...@suse.com>
+
+- Declining/refusal of an addon license means canceling all addons.
+  (bsc#1169577)
+- 4.3.1
+
+-------------------------------------------------------------------
 Tue May 12 14:43:44 UTC 2020 - josef Reidinger <jreidinger@localhost>
 
 - Autoyast schema: Allow optional types for string and map objects
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-registration-4.3.0/package/yast2-registration.spec 
new/yast2-registration-4.3.1/package/yast2-registration.spec
--- old/yast2-registration-4.3.0/package/yast2-registration.spec        
2020-05-12 16:52:18.000000000 +0200
+++ new/yast2-registration-4.3.1/package/yast2-registration.spec        
2020-05-28 18:25:51.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-registration
-Version:        4.3.0
+Version:        4.3.1
 Release:        0
 Summary:        YaST2 - Registration Module
 License:        GPL-2.0-only
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-registration-4.3.0/src/lib/registration/addon.rb 
new/yast2-registration-4.3.1/src/lib/registration/addon.rb
--- old/yast2-registration-4.3.0/src/lib/registration/addon.rb  2020-05-12 
16:52:18.000000000 +0200
+++ new/yast2-registration-4.3.1/src/lib/registration/addon.rb  2020-05-28 
18:25:51.000000000 +0200
@@ -26,7 +26,8 @@
 require "y2packager/resolvable"
 
 module Registration
-  # this is a wrapper class around SUSE::Connect::Product object
+  # A wrapper class around SUSE::Connect::Product object,
+  # https://rubydoc.info/github/SUSE/connect/SUSE/Connect/Product
   class Addon
     extend Yast::I18n
     include Yast::I18n
@@ -38,6 +39,7 @@
       # read the remote add-on from the registration server
       # @param registration [Registration::Registration] use this object for
       #  reading the remote add-ons
+      # @return [Array<Addon>]
       def find_all(registration)
         return @cached_addons if @cached_addons
 
@@ -83,7 +85,7 @@
         @auto_selected = nil
       end
 
-      # list of auto selected add-ons
+      # @return [Array<Addon>] auto selected add-ons
       def auto_selected
         @auto_selected ||= detect_auto_selection
       end
@@ -155,6 +157,7 @@
         result
       end
 
+      # @return [Array<Addon>]
       def load_addons(registration)
         pure_addons = registration.get_addon_list
         # get IDs of the already activated addons
@@ -172,6 +175,7 @@
         end
       end
 
+      # @return [Array<Addon>]
       def detect_auto_selection
         required = selected + registered
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-registration-4.3.0/src/lib/registration/ui/addon_eula_dialog.rb 
new/yast2-registration-4.3.1/src/lib/registration/ui/addon_eula_dialog.rb
--- old/yast2-registration-4.3.0/src/lib/registration/ui/addon_eula_dialog.rb   
2020-05-12 16:52:18.000000000 +0200
+++ new/yast2-registration-4.3.1/src/lib/registration/ui/addon_eula_dialog.rb   
2020-05-28 18:25:51.000000000 +0200
@@ -48,6 +48,9 @@
           false
         )
 
+        # Default: no EULA specified => accepted
+        eula_ret = :accepted
+
         addons.each do |addon|
           next unless addon.eula_acceptance_needed?
           next if addon.registered?
@@ -55,10 +58,13 @@
           log.info "Addon '#{addon.name}' has an EULA at #{addon.eula_url}"
           eula_ret = accept_eula(addon)
 
-          return eula_ret if eula_ret != :next
+          # any declined license needs to be handled separately
+          break if eula_ret != :accepted
         end
 
-        :next
+        # go back if any EULA has not been accepted, let the user
+        # deselect the not accepted extension
+        eula_ret == :accepted ? :next : eula_ret
       end
 
     private
@@ -104,34 +110,35 @@
         display_optional_info(File.join(tmpdir, "README.BETA"))
       end
 
-      # run the EULA agreement dialog
+      # Run the EULA agreement dialog.
       # @param [EulaReader] eula_reader read EULAs
-      # @return [Symbol] :accepted, :back, :abort, :halt - user input
+      # @return [Symbol] :accepted, :back
       def run_eula_dialog(eula_reader)
         base_product = false
-        cancel_action = "refuse"
+        cancel_action = "abort"
         ret = 
Yast::ProductLicense.HandleLicenseDialogRet(arg_ref(eula_reader.licenses),
           base_product, cancel_action)
+        ret = :back if ret == :abort
         log.debug "EULA dialog result: #{ret}"
         ret
       end
 
-      # ask user to accept an addon EULA
+      # Ask user to accept an addon EULA.
+      # Declining (refusing) the license is translated into Back
+      # which will fit nicely from the caller's point of view.
       # @param [Addon] addon the addon
-      # @return [Symbol] :back, :abort, :halt
+      # @return [Symbol] :accepted, :back
       def accept_eula(addon)
         Dir.mktmpdir("extension-eula-") do |tmpdir|
           return :back unless download_eula(addon, tmpdir)
 
           eula_reader = EulaReader.new(tmpdir)
           license = find_license(addon, eula_reader)
-          return :next if license && license.accepted?
+          return :accepted if license && license.accepted?
 
           setup_eula_dialog(addon, eula_reader, tmpdir)
           ret = run_eula_dialog(eula_reader)
           license.accept! if ret == :accepted
-
-          return :next if [:accepted, :refused].include?(ret)
           ret
         end
       ensure
@@ -144,6 +151,7 @@
         Yast::InstShowInfo.show_info_txt(info_file) if File.exist?(info_file)
       end
 
+      # @return [Y2Packager::License]
       def find_license(addon, eula_reader)
         license_file = eula_reader.licenses[Y2Packager::License::DEFAULT_LANG]
         return nil unless license_file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-registration-4.3.0/test/registration/ui/addon_eula_dialog_test.rb 
new/yast2-registration-4.3.1/test/registration/ui/addon_eula_dialog_test.rb
--- old/yast2-registration-4.3.0/test/registration/ui/addon_eula_dialog_test.rb 
2020-05-12 16:52:18.000000000 +0200
+++ new/yast2-registration-4.3.1/test/registration/ui/addon_eula_dialog_test.rb 
2020-05-28 18:25:51.000000000 +0200
@@ -57,7 +57,7 @@
 
     context "when there are EULA acceptances pending" do
       let(:addons) { [addon_with_eula, second_addon_with_eula] }
-      let(:first_dialog_response) { :refused }
+      let(:first_dialog_response) { :accepted }
       let(:second_dialog_response) { :accepted }
 
       before do
@@ -76,8 +76,8 @@
       context "and the user wants to abort" do
         let(:first_dialog_response) { :abort }
 
-        it "returns :abort" do
-          expect(subject.run).to eq(:abort)
+        it "returns :back anyway" do
+          expect(subject.run).to eq(:back)
         end
       end
 
@@ -124,15 +124,15 @@
 
       before do
         allow(Yast::ProductLicense).to receive(:HandleLicenseDialogRet)
-          .and_return(:refused)
+          .and_return(:abort)
       end
 
       it "does not set it as accepted" do
         expect(product_license).to_not receive(:accept!)
       end
 
-      it "returns :next" do
-        expect(dialog.run).to eq(:next)
+      it "returns :back" do
+        expect(dialog.run).to eq(:back)
       end
     end
   end
@@ -198,8 +198,8 @@
     context "when the license was previously accepted" do
       let(:accepted?) { true }
 
-      it "returns :next" do
-        expect(dialog.send(:accept_eula, addon)).to eq(:next)
+      it "returns :accepted" do
+        expect(dialog.send(:accept_eula, addon)).to eq(:accepted)
       end
 
       it "does not show the eula" do


Reply via email to