Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package yast2-packager for openSUSE:Factory 
checked in at 2021-12-03 20:35:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-packager (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-packager.new.31177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-packager"

Fri Dec  3 20:35:27 2021 rev:416 rq:935228 version:4.4.17

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-packager/yast2-packager.changes    
2021-11-23 22:12:35.314477449 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-packager.new.31177/yast2-packager.changes 
2021-12-03 20:35:40.736161639 +0100
@@ -1,0 +2,19 @@
+Thu Dec  2 14:39:19 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz>
+
+- Unify the Yes/No popup button IDs (bsc#1193326)
+- 4.4.17
+
+-------------------------------------------------------------------
+Thu Dec  2 12:58:16 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz>
+
+- Properly set the custom repository name (#1191491)
+- 4.4.16
+
+-------------------------------------------------------------------
+Wed Dec  1 12:52:52 UTC 2021 - Imobach Gonzalez Sosa <igonzalezs...@suse.com>
+
+- Add the register_target property to ProductSpec so it is
+  available in all the derived classes (bsc#1193212).
+- 4.4.15
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ yast2-packager.spec ++++++
--- /var/tmp/diff_new_pack.eRLwuj/_old  2021-12-03 20:35:41.336159446 +0100
+++ /var/tmp/diff_new_pack.eRLwuj/_new  2021-12-03 20:35:41.340159431 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-packager
-Version:        4.4.14
+Version:        4.4.17
 Release:        0
 Summary:        YaST2 - Package Library
 License:        GPL-2.0-or-later
@@ -36,8 +36,8 @@
 BuildRequires:  yast2-storage-ng >= 4.0.141
 # break the yast2-packager -> yast2-storage-ng -> yast2-packager build cycle
 #!BuildIgnore: yast2-packager
-# ProductSpec API
-BuildRequires:  yast2 >= 4.4.21
+# Product#register_target
+BuildRequires:  yast2 >= 4.4.25
 # raw_name
 BuildRequires:  yast2-pkg-bindings >= 4.2.8
 # Augeas lenses
@@ -48,8 +48,8 @@
 Requires:       yast2-country-data >= 2.16.3
 # raw_name
 Requires:       yast2-pkg-bindings >= 4.2.8
-# ProductSpec API
-Requires:       yast2 >= 4.4.21
+# Product#register_target
+Requires:       yast2 >= 4.4.25
 # unzipping license file
 Requires:       unzip
 # HTTP, FTP, HTTPS modules (inst_productsources.ycp)

++++++ yast2-packager-4.4.14.tar.bz2 -> yast2-packager-4.4.17.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-packager-4.4.14/package/yast2-packager.changes 
new/yast2-packager-4.4.17/package/yast2-packager.changes
--- old/yast2-packager-4.4.14/package/yast2-packager.changes    2021-11-22 
09:37:55.000000000 +0100
+++ new/yast2-packager-4.4.17/package/yast2-packager.changes    2021-12-02 
16:22:46.000000000 +0100
@@ -1,10 +1,29 @@
 -------------------------------------------------------------------
+Thu Dec  2 14:39:19 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz>
+
+- Unify the Yes/No popup button IDs (bsc#1193326)
+- 4.4.17
+
+-------------------------------------------------------------------
+Thu Dec  2 12:58:16 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz>
+
+- Properly set the custom repository name (#1191491)
+- 4.4.16
+
+-------------------------------------------------------------------
+Wed Dec  1 12:52:52 UTC 2021 - Imobach Gonzalez Sosa <igonzalezs...@suse.com>
+
+- Add the register_target property to ProductSpec so it is
+  available in all the derived classes (bsc#1193212).
+- 4.4.15
+
+-------------------------------------------------------------------
 Mon Nov 22 08:22:46 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz>
 
 - Use consistent names for the Full medium repositories
   (bsc#1191652)
 - 4.4.14
-  
+
 -------------------------------------------------------------------
 Fri Nov 12 13:02:17 UTC 2021 - Imobach Gonzalez Sosa <igonzalezs...@suse.com>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-packager-4.4.14/package/yast2-packager.spec 
new/yast2-packager-4.4.17/package/yast2-packager.spec
--- old/yast2-packager-4.4.14/package/yast2-packager.spec       2021-11-22 
09:37:55.000000000 +0100
+++ new/yast2-packager-4.4.17/package/yast2-packager.spec       2021-12-02 
16:22:46.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-packager
-Version:        4.4.14
+Version:        4.4.17
 Release:        0
 Summary:        YaST2 - Package Library
 License:        GPL-2.0-or-later
@@ -36,8 +36,8 @@
 BuildRequires:  yast2-storage-ng >= 4.0.141
 # break the yast2-packager -> yast2-storage-ng -> yast2-packager build cycle
 #!BuildIgnore: yast2-packager
-# ProductSpec API
-BuildRequires:  yast2 >= 4.4.21
+# Product#register_target
+BuildRequires:  yast2 >= 4.4.25
 # raw_name
 BuildRequires:  yast2-pkg-bindings >= 4.2.8
 # Augeas lenses
@@ -48,8 +48,8 @@
 Requires:       yast2-country-data >= 2.16.3
 # raw_name
 Requires:       yast2-pkg-bindings >= 4.2.8
-# ProductSpec API
-Requires:       yast2 >= 4.4.21
+# Product#register_target
+Requires:       yast2 >= 4.4.25
 # unzipping license file
 Requires:       unzip
 # HTTP, FTP, HTTPS modules (inst_productsources.ycp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-packager-4.4.14/src/include/packager/repositories_include.rb 
new/yast2-packager-4.4.17/src/include/packager/repositories_include.rb
--- old/yast2-packager-4.4.14/src/include/packager/repositories_include.rb      
2021-11-22 09:37:55.000000000 +0100
+++ new/yast2-packager-4.4.17/src/include/packager/repositories_include.rb      
2021-12-02 16:22:46.000000000 +0100
@@ -1,5 +1,6 @@
 require "y2packager/product_spec_readers/full"
 require "y2packager/product"
+require "cgi"
 
 # encoding: utf-8
 module Yast
@@ -100,7 +101,7 @@
         return :ok
       end
 
-      found_products = scan_products(expanded_url, url)
+      found_products = scan_products(expanded_url, url, preferred_name)
       newSources = []
 
       enter_again = false
@@ -345,8 +346,11 @@
   private
 
     # scan the repository URL and return the available products
-    # @return [Array<Y2Packager::RepoProductSpec>] Found products
-    def scan_products(_expanded_url, original_url)
+    # @param _expanded_url [String] expanded repository URL
+    # @param original_url [String] original repository URL
+    # @param preferred_name [String] user preferred name or empty string
+    # @return [Array<Y2Packager::ProductLocation>] Found products
+    def scan_products(_expanded_url, original_url, preferred_name)
       # use the selected base product during installation,
       # in installed system or during upgrade use the installed base product
       base_product = if Stage.initial && !Mode.update
@@ -362,33 +366,9 @@
       # add at least one product if the scan result is empty (no product info 
available)
       # to try adding the repository at the root (/) of the medium
       if found_products.empty?
-        url_path = URL.Parse(original_url)["path"]
-        p_elems = url_path.split("/")
-
-        fallback = Packages.fallback_name
-
-        if p_elems.size > 1
-          url_path = Ops.get(
-            p_elems,
-            Ops.subtract(Builtins.size(p_elems), 1),
-            fallback
-          )
-
-          if url_path.nil? || url_path == ""
-            url_path = Ops.get(
-              p_elems,
-              Ops.subtract(Builtins.size(p_elems), 2),
-              fallback
-            )
-
-            url_path = fallback if url_path.nil? || url_path == ""
-          end
-        elsif url_path == "/"
-          url_path = fallback
-        end
-
+        name = propose_name(preferred_name, original_url)
         found_products << Y2Packager::RepoProductSpec.new(
-          name: url_path, # FIXME: how is this addon selected?
+          name: name, # FIXME: how is this addon selected?
           dir:  "/"
         )
       end
@@ -396,6 +376,27 @@
       found_products
     end
 
+    # Propose a repository name
+    #   - use the user defined name if it is set
+    #   - otherwise use the last URL path element
+    #   - if it is empty then use the default fallback
+    # @param preferred_name [String] user entered name or empty string
+    # @param url [String] repository URL
+    # @return [String] repository name
+    def propose_name(preferred_name, url)
+      # if preferred name is set then use it
+      return preferred_name unless preferred_name.empty?
+
+      # otherwise use the last URL path element
+      path = URL.Parse(url)["path"].split("/").delete_if(&:empty?)
+      if path.empty?
+        # if it is empty then use the fallback
+        Packages.fallback_name
+      else
+        CGI.unescape(path.last)
+      end
+    end
+
     # propose the repository alias (based on the product name)
     # @return [String] an unique alias
     def propose_alias(product_name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-packager-4.4.14/src/lib/y2packager/control_product_spec.rb 
new/yast2-packager-4.4.17/src/lib/y2packager/control_product_spec.rb
--- old/yast2-packager-4.4.14/src/lib/y2packager/control_product_spec.rb        
2021-11-22 09:37:55.000000000 +0100
+++ new/yast2-packager-4.4.17/src/lib/y2packager/control_product_spec.rb        
2021-12-02 16:22:46.000000000 +0100
@@ -28,8 +28,6 @@
   class ControlProductSpec < ProductSpec
     # @return [String] License URL
     attr_reader :license_url
-    # @return [String] Registration target name used for registering the 
product
-    attr_reader :register_target
 
     # @param register_target [String] The registration target name used
     #   for registering the product, the $arch variable is replaced
@@ -37,10 +35,8 @@
     # @param license_url [String] License URL
     def initialize(name:, version:, arch:, display_name:, order:, 
license_url:, register_target:)
       super(name: name, version: version, display_name: display_name, arch: 
arch,
-            order: order, base: true)
+            order: order, base: true, register_target: register_target)
 
-      # expand the "$arch" placeholder
-      @register_target = register_target&.gsub("$arch", arch) || ""
       @license_url = license_url
     end
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-packager-4.4.14/src/lib/y2packager/product_spec.rb 
new/yast2-packager-4.4.17/src/lib/y2packager/product_spec.rb
--- old/yast2-packager-4.4.14/src/lib/y2packager/product_spec.rb        
2021-11-22 09:37:55.000000000 +0100
+++ new/yast2-packager-4.4.17/src/lib/y2packager/product_spec.rb        
2021-12-02 16:22:46.000000000 +0100
@@ -50,6 +50,9 @@
     # @return [Boolean] Determine whether it is a base product
     attr_reader :base
 
+    # @return [String] Registration target name used for registering the 
product
+    attr_reader :register_target
+
     class << self
       # Returns the specs for the base products
       #
@@ -106,7 +109,7 @@
     # @param version [String] version ("15.2")
     # @param arch [String] The architecture ("x86_64")
     # @param display_name [String] The user visible name ("SUSE Linux 
Enterprise Server 15 SP2")
-    def initialize(name:, version:, arch:, display_name:, order: 1, base: true)
+    def initialize(name:, version:, arch:, display_name:, order: 1, base: 
true, register_target: "")
       @name = name
       @version = version
       @arch = arch
@@ -114,6 +117,10 @@
       @order = order
       @base = base
       @selected = false
+
+      @register_target = register_target
+      # expand the "$arch" placeholder
+      @register_target = @register_target.gsub("$arch", arch.to_s) if arch
     end
 
     def selected?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-packager-4.4.14/src/modules/SlideShowCallbacks.rb 
new/yast2-packager-4.4.17/src/modules/SlideShowCallbacks.rb
--- old/yast2-packager-4.4.14/src/modules/SlideShowCallbacks.rb 2021-11-22 
09:37:55.000000000 +0100
+++ new/yast2-packager-4.4.17/src/modules/SlideShowCallbacks.rb 2021-12-02 
16:22:46.000000000 +0100
@@ -194,7 +194,7 @@
     def YesNoButtonBox
       yes_button = PushButton(Id(:yes), Opt(:key_F10), Label.YesButton)
       no_button = PushButton(
-        Id(:no_button),
+        Id(:no),
         Opt(:default, :key_F9),
         Label.NoButton
       )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-packager-4.4.14/test/lib/product_upgrade_test.rb 
new/yast2-packager-4.4.17/test/lib/product_upgrade_test.rb
--- old/yast2-packager-4.4.14/test/lib/product_upgrade_test.rb  2021-11-22 
09:37:55.000000000 +0100
+++ new/yast2-packager-4.4.17/test/lib/product_upgrade_test.rb  2021-12-02 
16:22:46.000000000 +0100
@@ -126,7 +126,7 @@
 
   describe ".obsolete_upgrades" do
     before do
-      allow(Y2Packager::Resolvable).to receive(:find).with(kind: :product)
+      allow(Y2Packager::Resolvable).to receive(:find).with({ kind: :product }, 
[:register_target])
         .and_return(suma_products)
     end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-packager-4.4.14/test/repositories_include_test.rb 
new/yast2-packager-4.4.17/test/repositories_include_test.rb
--- old/yast2-packager-4.4.14/test/repositories_include_test.rb 2021-11-22 
09:37:55.000000000 +0100
+++ new/yast2-packager-4.4.17/test/repositories_include_test.rb 2021-12-02 
16:22:46.000000000 +0100
@@ -207,4 +207,54 @@
       end
     end
   end
+
+  # the "propose_name" method is private so use send() in the tests
+  describe ".propose_name" do
+    context "user provided a repository name" do
+      it "returns the name provided by user" do
+        preferred_name = "my repository"
+        url = "http://example.com";
+        ret = RepositoryIncludeTester.send(:propose_name, preferred_name, url)
+        expect(ret).to eq(preferred_name)
+      end
+    end
+
+    context "no user provided repository name" do
+      it "returns a name created from the last URL path element" do
+        preferred_name = ""
+        url = "http://example.com/Leap-15.3";
+        ret = RepositoryIncludeTester.send(:propose_name, preferred_name, url)
+        expect(ret).to eq("Leap-15.3")
+      end
+
+      it "returns a name created from the last non-empty URL path element" do
+        preferred_name = ""
+        url = "http://example.com/Leap-15.3/";
+        ret = RepositoryIncludeTester.send(:propose_name, preferred_name, url)
+        expect(ret).to eq("Leap-15.3")
+      end
+
+      it "returns an unescaped URL path" do
+        preferred_name = ""
+        url = "http://example.com/Leap%2015.3/";
+        ret = RepositoryIncludeTester.send(:propose_name, preferred_name, url)
+        # %20 (0x20) => " "
+        expect(ret).to eq("Leap 15.3")
+      end
+
+      it "returns the fallback name if the path is root" do
+        preferred_name = ""
+        url = "http://example.com/";
+        ret = RepositoryIncludeTester.send(:propose_name, preferred_name, url)
+        expect(ret).to eq(Yast::Packages.fallback_name)
+      end
+
+      it "returns the fallback name if the path is empty" do
+        preferred_name = ""
+        url = "http://example.com";
+        ret = RepositoryIncludeTester.send(:propose_name, preferred_name, url)
+        expect(ret).to eq(Yast::Packages.fallback_name)
+      end
+    end
+  end
 end

Reply via email to