Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package yast2-installation for openSUSE:Factory checked in at 2021-12-12 00:55:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-installation (Old) and /work/SRC/openSUSE:Factory/.yast2-installation.new.2520 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-installation" Sun Dec 12 00:55:50 2021 rev:485 rq:939171 version:4.4.28 Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-installation/yast2-installation.changes 2021-12-03 20:35:53.284115787 +0100 +++ /work/SRC/openSUSE:Factory/.yast2-installation.new.2520/yast2-installation.changes 2021-12-12 00:56:03.446520433 +0100 @@ -1,0 +2,15 @@ +Thu Dec 9 16:07:34 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz> + +- Improve the self-update process, do not read the products from + the installation medium (bsc#1193536) +- Adde more /etc/os-release replacements in the self-update URL +- 4.4.28 + +------------------------------------------------------------------- +Thu Dec 9 14:11:35 UTC 2021 - Imobach Gonzalez Sosa <igonzalezs...@suse.com> + +- Display the correct title in the welcome screen depending + on its content (related to bsc#1193223 and bsc#1192230). +- 4.4.27 + +------------------------------------------------------------------- Old: ---- yast2-installation-4.4.26.tar.bz2 New: ---- yast2-installation-4.4.28.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-installation.spec ++++++ --- /var/tmp/diff_new_pack.Nx22z4/_old 2021-12-12 00:56:04.150520915 +0100 +++ /var/tmp/diff_new_pack.Nx22z4/_new 2021-12-12 00:56:04.154520918 +0100 @@ -17,7 +17,7 @@ Name: yast2-installation -Version: 4.4.26 +Version: 4.4.28 Release: 0 Summary: YaST2 - Installation Parts License: GPL-2.0-only ++++++ yast2-installation-4.4.26.tar.bz2 -> yast2-installation-4.4.28.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.4.26/doc/SELF_UPDATE.md new/yast2-installation-4.4.28/doc/SELF_UPDATE.md --- old/yast2-installation-4.4.26/doc/SELF_UPDATE.md 2021-12-03 16:46:11.000000000 +0100 +++ new/yast2-installation-4.4.28/doc/SELF_UPDATE.md 2021-12-10 16:21:25.000000000 +0100 @@ -8,9 +8,9 @@ ### :information_source: Note The self update feature is removed from the updated SLE Service Pack media -(the updated media released after the initial SP release), these media already -contain the updated installer and the included updates could conflict with -the self updates. +(the updated media released after the initial SP release, so called "quarterly +updates"), these media already contain the updated installer and the included +updates could conflict with the self updates. If you need to patch the installer on these updated media you have to use a driver update disk (DUD). @@ -31,7 +31,7 @@ Please, take into account that self-update will be skipped if any option disables it (boot parameter *or* AutoYaST profile). -During the rest of this document it is assumed that self-update is enabled. +For the rest of this document it is assumed that the self-update is enabled. ## Basic Workflow @@ -136,11 +136,11 @@ The registration server is then asked for the list of update repositories. In order to determine such list, the product `name`, `version` and - `architecture` are used + `architecture` are used. - In case of a multi-product installation medium, as the installer is the same - for all the included products, the product `name` can be hard-coded in the - `control.xml` file with the `/globals/self_update_id` XML node. + The product `name` and `version` are hard-coded in the + `control.xml` file in the `/globals/self_update_id` and + `/globals/self_update_version` XML nodes. ```xml <globals> @@ -148,6 +148,9 @@ </globals> ``` + If the `self_update_version` value is missing then the `VERSION_ID` value + from the `/etc/os-release` file is used as a fallback. + 4. Hard-coded in the `control.xml` file on the installation medium (thus it depends on the base product): @@ -157,6 +160,9 @@ </globals> ``` + The variables are documented in the [variable expansion](#variable-expansion) + section below. + The first suitable URL will be used. There are two exceptions: * If no update URL is found then the self-update is skipped. @@ -201,9 +207,15 @@ The URL can contain a variable `$arch` that will be replaced by the system's architecture, such as `x86_64`, `i586`, `s390x`, etc. -YaST uses [libzypp](https://github.com/openSUSE/libzypp/blob/e68b5df6c96e3f1d140ba15e2a9e85a990210f37/zypp/ZConfig.cc#L63) -for detecting the system architecture so the `$arch` expansion is compatible -with the expansion used in usual repository URLs. +The URLs can contain these variables which are replaced by YaST: +- `$arch` - is replaced by the RPM package architecture used by the machine + (like `x86_64` or `ppc64le`) +- These variables are replaced by the value from the `/etc/os-release` file: + - `$os_release_name` => `NAME` (e.g. `SLE`) + - `$os_release_id` => `ID` (e.g. `sle`) + - `$os_release_version` => `VERSION` (e.g. `15-SP4`) + - `$os_release_version_id` => `VERSION_ID` (e.g. `15.4`) + ### Actual URLs @@ -211,7 +223,8 @@ `https://updates.suse.com/SUSE/Updates/$PRODUCT/$VERSION/$ARCH/update` where - PRODUCT is like OpenStack-Cloud, SLE-DESKTOP, SLE-SDK, SLE-SERVER, - VERSION (for SLE-SERVER) is like 12, 12-SP1, -- ARCH is one of `aarch64` `ppc64le` `s390x` `x86_64` +- ARCH is one of `aarch64`, `ppc64le`, `s390x` or `x86_64` + (all archs supported by the SLE product line) For the self-update the *PRODUCT* is replaced with *PRODUCT*-INSTALLER, producing these repository paths @@ -230,7 +243,7 @@ If any unexpected version is found then an error is displayed and the self-update step is completely skipped. -Is is possible to skip this validation is special cases and force applying the +It is possible to skip this validation is special cases and force applying the updates despite the version mismatch by setting environment variable `Y2_FORCE_SELF_UPDATE=1`. *This should be done only in special cases (testing) when you know what you are doing!* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.4.26/doc/control-file.md new/yast2-installation-4.4.28/doc/control-file.md --- old/yast2-installation-4.4.26/doc/control-file.md 2021-12-03 16:46:11.000000000 +0100 +++ new/yast2-installation-4.4.28/doc/control-file.md 2021-12-10 16:21:25.000000000 +0100 @@ -1028,6 +1028,9 @@ * `mount_point` *(string, no default value)* Directory where the volume will be mounted in the system. + * `mount_options` *(string, no default value)* + Fstab options separated by comma. If this option is not given, then YaST will set + default mount options depending on the mount point and the filesystem type. * `proposed` *(boolean, default: `true`)* Default value of the user setting deciding whether this volume should be created or skipped. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.4.26/package/yast2-installation.changes new/yast2-installation-4.4.28/package/yast2-installation.changes --- old/yast2-installation-4.4.26/package/yast2-installation.changes 2021-12-03 16:46:11.000000000 +0100 +++ new/yast2-installation-4.4.28/package/yast2-installation.changes 2021-12-10 16:21:25.000000000 +0100 @@ -1,4 +1,19 @@ ------------------------------------------------------------------- +Thu Dec 9 16:07:34 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz> + +- Improve the self-update process, do not read the products from + the installation medium (bsc#1193536) +- Adde more /etc/os-release replacements in the self-update URL +- 4.4.28 + +------------------------------------------------------------------- +Thu Dec 9 14:11:35 UTC 2021 - Imobach Gonzalez Sosa <igonzalezs...@suse.com> + +- Display the correct title in the welcome screen depending + on its content (related to bsc#1193223 and bsc#1192230). +- 4.4.27 + +------------------------------------------------------------------- Fri Dec 3 06:53:52 UTC 2021 - Imobach Gonzalez Sosa <igonzalezs...@suse.com> - Display the product's license when only 1 product is available diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.4.26/package/yast2-installation.spec new/yast2-installation-4.4.28/package/yast2-installation.spec --- old/yast2-installation-4.4.26/package/yast2-installation.spec 2021-12-03 16:46:11.000000000 +0100 +++ new/yast2-installation-4.4.28/package/yast2-installation.spec 2021-12-10 16:21:25.000000000 +0100 @@ -17,7 +17,7 @@ Name: yast2-installation -Version: 4.4.26 +Version: 4.4.28 Release: 0 Summary: YaST2 - Installation Parts License: GPL-2.0-only diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.4.26/src/lib/installation/dialogs/complex_welcome.rb new/yast2-installation-4.4.28/src/lib/installation/dialogs/complex_welcome.rb --- old/yast2-installation-4.4.26/src/lib/installation/dialogs/complex_welcome.rb 2021-12-03 16:46:11.000000000 +0100 +++ new/yast2-installation-4.4.28/src/lib/installation/dialogs/complex_welcome.rb 2021-12-10 16:21:25.000000000 +0100 @@ -59,9 +59,13 @@ # # @return [String] Dialog's title def title - return license_or_product_title if available_products? - - _("Language and Keyboard Selection") + if products.size > 1 + _("Language, Keyboard and Product Selection") + elsif show_license? + _("Language, Keyboard and License Agreement") + else + _("Language and Keyboard Selection") + end end # Dialog content @@ -184,20 +188,6 @@ VWeight(1, VStretch()) end end - - # Title of the dialog in case there is some product available. - # - # The title can vary depending if the license agreement or the product - # selection is shown. - # - # @return [String] Dialog's title - def license_or_product_title - if show_license? - _("Language, Keyboard and License Agreement") - else - _("Language, Keyboard and Product Selection") - end - end end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.4.26/src/lib/installation/update_repositories_finder.rb new/yast2-installation-4.4.28/src/lib/installation/update_repositories_finder.rb --- old/yast2-installation-4.4.26/src/lib/installation/update_repositories_finder.rb 2021-12-03 16:46:11.000000000 +0100 +++ new/yast2-installation-4.4.28/src/lib/installation/update_repositories_finder.rb 2021-12-10 16:21:25.000000000 +0100 @@ -86,7 +86,6 @@ return [] unless defined?(::Registration::UrlHelpers) # load the base product from the installation medium, # the registration server needs it for evaluating the self update URL - add_installation_repo urls = update_urls_from_connect urls ? urls.map { |u| UpdateRepository.new(u, :default) } : [] end @@ -152,7 +151,11 @@ # Converts the string into an URI if it's valid # # Substituting $arch pattern with the architecture of the current system. - # Substituting $os_release_version pattern with the release of the current system. + # Substituting these variables with the /etc/os-release content: + # $os_release_name => NAME + # $os_release_id => ID + # $os_release_version => VERSION + # $os_release_version_id => VERSION_ID # # @return [URI,nil] The string converted into a URL; nil if it's # not a valid URL. @@ -161,28 +164,17 @@ def get_url_from(url) return nil unless url.is_a?(::String) real_url = url.gsub(/\$arch\b/, Yast::Pkg.GetArchitecture) + real_url = real_url.gsub(/\$os_release_name\b/, + Yast::OSRelease.ReleaseName) + real_url = real_url.gsub(/\$os_release_id\b/, + Yast::OSRelease.id) + real_url = real_url.gsub(/\$os_release_version_id\b/, + Yast::OSRelease.ReleaseVersion) real_url = real_url.gsub(/\$os_release_version\b/, Yast::OSRelease.ReleaseVersionHumanReadable) URI.regexp.match(real_url) ? URI(real_url) : nil end - # Loads the base product from the installation medium - def add_installation_repo - base_url = Yast::InstURL.installInf2Url("") - initial_repository = Yast::Pkg.SourceCreateBase(base_url, "") - - until initial_repository - log.error "Adding the installation repository failed" - # ask user to retry - base_url = Packages.UpdateSourceURL(base_url) - - # aborted by user - return false if base_url == "" - - initial_repository = Yast::Pkg.SourceCreateBase(base_url, "") - end - end - # Return the URL of the preferred registration server # # Determined in the following order: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-4.4.26/test/lib/dialogs/complex_welcome_test.rb new/yast2-installation-4.4.28/test/lib/dialogs/complex_welcome_test.rb --- old/yast2-installation-4.4.26/test/lib/dialogs/complex_welcome_test.rb 2021-12-03 16:46:11.000000000 +0100 +++ new/yast2-installation-4.4.28/test/lib/dialogs/complex_welcome_test.rb 2021-12-10 16:21:25.000000000 +0100 @@ -29,8 +29,42 @@ let(:products) { [] } describe "#title" do - it "returns a string" do - expect(widget.title).to be_a(::String) + context "when more than one product exists" do + let(:products) do + [instance_double("Y2Packager::ProductSpec"), instance_double("Y2Packager::ProductSpec")] + end + + it "returns 'Language, Keyboard and Product Selection'" do + expect(widget.title).to eq("Language, Keyboard and Product Selection") + end + end + + context "when just a single product exists" do + let(:products) do + [instance_double("Y2Packager::ProductSpec", license?: license?)] + end + + context "and it has a license" do + let(:license?) { true } + + it "returns 'Language, Keyboard and License Agreement" do + expect(widget.title).to eq("Language, Keyboard and License Agreement") + end + end + + context "but it has no license" do + let(:license?) { false } + + it "returns 'Language and Keyboard Selection" do + expect(widget.title).to eq("Language and Keyboard Selection") + end + end + end + + context "when there are not products" do + it "returns 'Language and Keyboard Selection" do + expect(widget.title).to eq("Language and Keyboard Selection") + end end end