Hello community, here is the log from the commit of package yast2 for openSUSE:Factory checked in at 2019-10-27 13:36:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2 (Old) and /work/SRC/openSUSE:Factory/.yast2.new.2990 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2" Sun Oct 27 13:36:05 2019 rev:464 rq:742906 version:4.2.29 Changes: -------- --- /work/SRC/openSUSE:Factory/yast2/yast2.changes 2019-10-21 12:27:12.707879832 +0200 +++ /work/SRC/openSUSE:Factory/.yast2.new.2990/yast2.changes 2019-10-27 13:36:07.076898578 +0100 @@ -1,0 +2,7 @@ +Fri Oct 25 12:57:30 UTC 2019 - Josef Reidinger <[email protected]> + +- Support for products on control file during upgrade + (jsc#SLE-7214) +- 4.2.29 + +------------------------------------------------------------------- Old: ---- yast2-4.2.28.tar.bz2 New: ---- yast2-4.2.29.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2.spec ++++++ --- /var/tmp/diff_new_pack.NKUK3Q/_old 2019-10-27 13:36:07.660899321 +0100 +++ /var/tmp/diff_new_pack.NKUK3Q/_new 2019-10-27 13:36:07.664899327 +0100 @@ -17,7 +17,7 @@ Name: yast2 -Version: 4.2.28 +Version: 4.2.29 Release: 0 Summary: YaST2 Main Package License: GPL-2.0-only ++++++ yast2-4.2.28.tar.bz2 -> yast2-4.2.29.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-4.2.28/library/packages/src/lib/y2packager/product.rb new/yast2-4.2.29/library/packages/src/lib/y2packager/product.rb --- old/yast2-4.2.28/library/packages/src/lib/y2packager/product.rb 2019-10-18 14:32:16.000000000 +0200 +++ new/yast2-4.2.29/library/packages/src/lib/y2packager/product.rb 2019-10-25 16:27:19.000000000 +0200 @@ -98,7 +98,10 @@ # # @return [Product] Selected base product def selected_base - available_base_products.find(&:selected?) + products = Y2Packager::ProductReader.new.available_base_products(force_repos: true) + selected = products.find(&:selected?) + selected ||= products.first + selected end # Return the products with a given status diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-4.2.28/library/packages/src/lib/y2packager/product_reader.rb new/yast2-4.2.29/library/packages/src/lib/y2packager/product_reader.rb --- old/yast2-4.2.28/library/packages/src/lib/y2packager/product_reader.rb 2019-10-18 14:32:16.000000000 +0200 +++ new/yast2-4.2.29/library/packages/src/lib/y2packager/product_reader.rb 2019-10-25 16:27:19.000000000 +0200 @@ -16,6 +16,7 @@ Yast.import "Pkg" Yast.import "Linuxrc" +Yast.import "Stage" module Y2Packager # Read the product information from libzypp @@ -71,14 +72,26 @@ # Available products # # @return [Array<Product>] Available products - def all_products + def all_products(force_repos: false) linuxrc_special_products = if Yast::Linuxrc.InstallInf("specialproduct") linuxrc_string(Yast::Linuxrc.InstallInf("specialproduct")).split(",") else [] end - @all_products ||= available_products.each_with_object([]) do |prod, all_products| + return @all_products if @all_products && !force_repos + + if Yast::Stage.initial && Y2Packager::MediumType.online? && !force_repos + return Y2Packager::ProductControlProduct.products.each_with_object([]) do |p, result| + result << Y2Packager::Product.new(name: p.name, display_name: p.label, + version: p.version, arch: p.arch, + installation_package: "Test") # just hack as we do not know current package name yet + end + end + + @all_products = [] + + available_products.each do |prod| prod_pkg = product_package(prod["product_package"]) if prod_pkg @@ -95,28 +108,32 @@ displayorder = Regexp.last_match[1].to_i if Regexp.last_match end - all_products << Y2Packager::Product.new( + @all_products << Y2Packager::Product.new( name: prod["name"], short_name: prod["short_name"], display_name: prod["display_name"], version: prod["version"], arch: prod["arch"], category: prod["category"], vendor: prod["vendor"], order: displayorder, installation_package: installation_package_mapping[prod["name"]] ) end + + @all_products end # In installation Read the available libzypp base products for installation # @return [Array<Y2Packager::Product>] the found available base products, # the products are sorted by the 'displayorder' provides value - def available_base_products + def available_base_products(force_repos: false) # If no product contains a 'system-installation()' tag but there is only 1 product, # we assume that it is the base one. - if all_products.size == 1 && installation_package_mapping.empty? - log.info "Assuming that #{all_products.inspect} is the base product." - return all_products + products = all_products(force_repos: force_repos) + if products.size == 1 && installation_package_mapping.empty? + log.info "Assuming that #{products.inspect} is the base product." + return products end + log.info "all products #{products}" # only installable products - products = all_products.select(&:installation_package).sort(&::Y2Packager::PRODUCT_SORTER) + products = products.select(&:installation_package).sort(&::Y2Packager::PRODUCT_SORTER) log.info "available base products #{products}" products end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-4.2.28/library/packages/test/y2packager/product_test.rb new/yast2-4.2.29/library/packages/test/y2packager/product_test.rb --- old/yast2-4.2.28/library/packages/test/y2packager/product_test.rb 2019-10-18 14:32:16.000000000 +0200 +++ new/yast2-4.2.29/library/packages/test/y2packager/product_test.rb 2019-10-25 16:27:19.000000000 +0200 @@ -32,7 +32,7 @@ let(:selected) { instance_double(Y2Packager::Product, selected?: true) } it "returns base selected packages" do - allow(described_class).to receive(:available_base_products) + allow(reader).to receive(:available_base_products) .and_return([not_selected, selected]) expect(described_class.selected_base).to eq(selected) @@ -115,7 +115,7 @@ let(:selected) { instance_double(Y2Packager::Product, selected?: true) } it "returns base selected packages" do - allow(described_class).to receive(:available_base_products) + allow(reader).to receive(:available_base_products) .and_return([not_selected, selected]) expect(described_class.selected_base).to eq(selected) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-4.2.28/package/yast2.changes new/yast2-4.2.29/package/yast2.changes --- old/yast2-4.2.28/package/yast2.changes 2019-10-18 14:32:16.000000000 +0200 +++ new/yast2-4.2.29/package/yast2.changes 2019-10-25 16:27:19.000000000 +0200 @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Fri Oct 25 12:57:30 UTC 2019 - Josef Reidinger <[email protected]> + +- Support for products on control file during upgrade + (jsc#SLE-7214) +- 4.2.29 + +------------------------------------------------------------------- Fri Oct 18 12:20:52 UTC 2019 - Josef Reidinger <[email protected]> - Fix showing details for accessing media error (bsc#1153297) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-4.2.28/package/yast2.spec new/yast2-4.2.29/package/yast2.spec --- old/yast2-4.2.28/package/yast2.spec 2019-10-18 14:32:16.000000000 +0200 +++ new/yast2-4.2.29/package/yast2.spec 2019-10-25 16:27:19.000000000 +0200 @@ -17,7 +17,7 @@ Name: yast2 -Version: 4.2.28 +Version: 4.2.29 Release: 0 Summary: YaST2 Main Package License: GPL-2.0-only
