Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package yast2-firstboot for openSUSE:Factory
checked in at 2023-12-22 22:40:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-firstboot (Old)
and /work/SRC/openSUSE:Factory/.yast2-firstboot.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-firstboot"
Fri Dec 22 22:40:35 2023 rev:120 rq:1134619 version:5.0.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-firstboot/yast2-firstboot.changes
2023-10-20 23:17:50.564874733 +0200
+++
/work/SRC/openSUSE:Factory/.yast2-firstboot.new.28375/yast2-firstboot.changes
2023-12-22 22:40:37.234429604 +0100
@@ -1,0 +2,6 @@
+Thu Dec 14 20:38:43 UTC 2023 - Josef Reidinger <[email protected]>
+
+- Allow selecting WSL systemd pattern (jsc#PED-5644, jsc#PED-5099)
+- 5.0.1
+
+-------------------------------------------------------------------
Old:
----
yast2-firstboot-5.0.0.tar.bz2
New:
----
yast2-firstboot-5.0.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-firstboot.spec ++++++
--- /var/tmp/diff_new_pack.dnW2d7/_old 2023-12-22 22:40:38.130462572 +0100
+++ /var/tmp/diff_new_pack.dnW2d7/_new 2023-12-22 22:40:38.130462572 +0100
@@ -17,7 +17,7 @@
Name: yast2-firstboot
-Version: 5.0.0
+Version: 5.0.1
Release: 0
Summary: YaST2 - Initial System Configuration
License: GPL-2.0-only
++++++ yast2-firstboot-5.0.0.tar.bz2 -> yast2-firstboot-5.0.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-firstboot-5.0.0/.github/workflows/ci.yml
new/yast2-firstboot-5.0.1/.github/workflows/ci.yml
--- old/yast2-firstboot-5.0.0/.github/workflows/ci.yml 2023-10-18
23:15:41.000000000 +0200
+++ new/yast2-firstboot-5.0.1/.github/workflows/ci.yml 2023-12-22
13:06:13.000000000 +0100
@@ -1,9 +1,8 @@
-
# See
https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
name: CI
-on: [push, pull_request]
+on: [ push, pull_request ]
jobs:
Tests:
@@ -12,36 +11,36 @@
strategy:
fail-fast: false
matrix:
- distro: [ "tumbleweed", "leap_latest" ]
+ distro: [ "tumbleweed" ]
container:
image:
registry.opensuse.org/yast/head/containers_${{matrix.distro}}/yast-ruby
steps:
+ - name: Git Checkout
+ uses: actions/checkout@v2
- - name: Git Checkout
- uses: actions/checkout@v2
-
- - name: Install Dependencies
- run: zypper --non-interactive install --no-recommends
yast2-configuration-management yast2-users
-
- # just for easier debugging...
- - name: Inspect Installed Packages
- run: rpm -qa | sort
-
- - name: Unit Tests
- run: rake test:unit
- # enable code coverage reporting
- env:
- COVERAGE: 1
-
- # send the coverage report to coveralls.io
- - name: Coveralls Report
- # send it only from the TW build to avoid duplicate submits
- if: ${{ matrix.distro == 'tumbleweed' }}
- uses: coverallsapp/github-action@master
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
+ - name: Install Dependencies
+ run: zypper --non-interactive install --no-recommends
+ yast2-configuration-management yast2-users
+
+ # just for easier debugging...
+ - name: Inspect Installed Packages
+ run: rpm -qa | sort
+
+ - name: Unit Tests
+ run: rake test:unit
+ # enable code coverage reporting
+ env:
+ COVERAGE: 1
+
+ # send the coverage report to coveralls.io
+ - name: Coveralls Report
+ # send it only from the TW build to avoid duplicate submits
+ if: ${{ matrix.distro == 'tumbleweed' }}
+ uses: coverallsapp/github-action@master
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
Rubocop:
runs-on: ubuntu-latest
@@ -49,18 +48,17 @@
strategy:
fail-fast: false
matrix:
- distro: [ "leap_latest" ]
+ distro: [ "tumbleweed" ]
container:
image:
registry.opensuse.org/yast/head/containers_${{matrix.distro}}/yast-ruby
steps:
+ - name: Git Checkout
+ uses: actions/checkout@v2
- - name: Git Checkout
- uses: actions/checkout@v2
-
- - name: Rubocop
- run: rake check:rubocop
+ - name: Rubocop
+ run: rake check:rubocop
Package:
runs-on: ubuntu-latest
@@ -68,25 +66,24 @@
strategy:
fail-fast: false
matrix:
- distro: [ "tumbleweed", "leap_latest" ]
+ distro: [ "tumbleweed" ]
container:
image:
registry.opensuse.org/yast/head/containers_${{matrix.distro}}/yast-ruby
steps:
+ - name: Git Checkout
+ uses: actions/checkout@v2
- - name: Git Checkout
- uses: actions/checkout@v2
+ - name: Install Dependencies
+ run: zypper --non-interactive install --no-recommends
docbook-xsl-stylesheets
- - name: Install Dependencies
- run: zypper --non-interactive install --no-recommends
docbook-xsl-stylesheets
+ # just for easier debugging...
+ - name: Inspect Installed Packages
+ run: rpm -qa | sort
- # just for easier debugging...
- - name: Inspect Installed Packages
- run: rpm -qa | sort
-
- - name: Package Build
- run: yast-ci-ruby -o package
+ - name: Package Build
+ run: yast-ci-ruby -o package
Yardoc:
runs-on: ubuntu-latest
@@ -94,18 +91,17 @@
strategy:
fail-fast: false
matrix:
- distro: [ "leap_latest" ]
+ distro: [ "tumbleweed" ]
container:
image:
registry.opensuse.org/yast/head/containers_${{matrix.distro}}/yast-ruby
steps:
+ - name: Git Checkout
+ uses: actions/checkout@v2
- - name: Git Checkout
- uses: actions/checkout@v2
-
- - name: Yardoc
- run: rake check:doc
+ - name: Yardoc
+ run: rake check:doc
# downloading the Docker image takes some time so bundling several fast
# checks into one job avoids that overhead
@@ -115,15 +111,14 @@
strategy:
fail-fast: false
matrix:
- distro: [ "leap_latest" ]
+ distro: [ "tumbleweed" ]
container:
image:
registry.opensuse.org/yast/head/containers_${{matrix.distro}}/yast-ruby
steps:
+ - name: Git Checkout
+ uses: actions/checkout@v2
- - name: Git Checkout
- uses: actions/checkout@v2
-
- - name: POT Check
- run: rake check:pot
+ - name: POT Check
+ run: rake check:pot
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-firstboot-5.0.0/.rubocop.yml
new/yast2-firstboot-5.0.1/.rubocop.yml
--- old/yast2-firstboot-5.0.0/.rubocop.yml 2023-10-18 23:15:41.000000000
+0200
+++ new/yast2-firstboot-5.0.1/.rubocop.yml 2023-12-22 13:06:13.000000000
+0100
@@ -1,6 +1,6 @@
# use the shared YaST defaults
inherit_from:
- /usr/share/YaST2/data/devtools/data/rubocop-0.71.0_yast_style.yml
+ /usr/share/YaST2/data/devtools/data/rubocop-1.24.1_yast_style.yml
# We need to be sure that everything works fine before enabling it
Style/FrozenStringLiteralComment:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-firstboot-5.0.0/doc/testing_wsl.md
new/yast2-firstboot-5.0.1/doc/testing_wsl.md
--- old/yast2-firstboot-5.0.0/doc/testing_wsl.md 1970-01-01
01:00:00.000000000 +0100
+++ new/yast2-firstboot-5.0.1/doc/testing_wsl.md 2023-12-22
13:06:13.000000000 +0100
@@ -0,0 +1,19 @@
+## Testing WSL Changes
+
+This document serve as reminder how is the optimal way to test changes done
for WSL firstboot as working with
+windows server can be linux unfriendly and we would like to test without any
mocking to get the best results.
+
+### Creating Testing APPX
+
+The easiest way is to use OBS. Find the target release for WSL image like
`SUSE:SLE-15-SP6:Update:WSL`
+and branch there `kiwi-images-wsl` that is responsible for creation of appx.
In your branch create package
+yast2-firstboot ( as it is usually inherited from target and does not live in
WSL subproject ) and copy there
+modified sources with rake tarball. It is also mandatory to link or branch
package `wsl-appx` as it ensures
+that certificate used for appx matches with the one used in kiwi.
+Another important think is to ensure that certificate for home repo is valid
and not outdated. To check it use
+`osc signkey --sslcert home:...` and if it is invalid use `osc signkey
--sslcert --create home:...`.
+
+### Installing Modified APPX
+
+Just follow instructions at https://en.opensuse.org/WSL/Manual_Installation
+Appx installer reports quite useless error when there is any issue, so use
help at https://en.opensuse.org/WSL/Debugging_Hints
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-firstboot-5.0.0/package/yast2-firstboot.changes
new/yast2-firstboot-5.0.1/package/yast2-firstboot.changes
--- old/yast2-firstboot-5.0.0/package/yast2-firstboot.changes 2023-10-18
23:15:41.000000000 +0200
+++ new/yast2-firstboot-5.0.1/package/yast2-firstboot.changes 2023-12-22
13:06:13.000000000 +0100
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Thu Dec 14 20:38:43 UTC 2023 - Josef Reidinger <[email protected]>
+
+- Allow selecting WSL systemd pattern (jsc#PED-5644, jsc#PED-5099)
+- 5.0.1
+
+-------------------------------------------------------------------
Wed Aug 30 20:16:10 UTC 2023 - Josef Reidinger <[email protected]>
- 5.0.0 (bsc#1185510)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-firstboot-5.0.0/package/yast2-firstboot.spec
new/yast2-firstboot-5.0.1/package/yast2-firstboot.spec
--- old/yast2-firstboot-5.0.0/package/yast2-firstboot.spec 2023-10-18
23:15:41.000000000 +0200
+++ new/yast2-firstboot-5.0.1/package/yast2-firstboot.spec 2023-12-22
13:06:13.000000000 +0100
@@ -17,7 +17,7 @@
Name: yast2-firstboot
-Version: 5.0.0
+Version: 5.0.1
Release: 0
Summary: YaST2 - Initial System Configuration
License: GPL-2.0-only
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-firstboot-5.0.0/src/lib/y2firstboot/clients/hostname.rb
new/yast2-firstboot-5.0.1/src/lib/y2firstboot/clients/hostname.rb
--- old/yast2-firstboot-5.0.0/src/lib/y2firstboot/clients/hostname.rb
2023-10-18 23:15:41.000000000 +0200
+++ new/yast2-firstboot-5.0.1/src/lib/y2firstboot/clients/hostname.rb
2023-12-22 13:06:13.000000000 +0100
@@ -56,6 +56,8 @@
def initialize
textdomain "firstboot"
+
+ super
end
def run
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-firstboot-5.0.0/src/lib/y2firstboot/clients/licenses.rb
new/yast2-firstboot-5.0.1/src/lib/y2firstboot/clients/licenses.rb
--- old/yast2-firstboot-5.0.0/src/lib/y2firstboot/clients/licenses.rb
2023-10-18 23:15:41.000000000 +0200
+++ new/yast2-firstboot-5.0.1/src/lib/y2firstboot/clients/licenses.rb
2023-12-22 13:06:13.000000000 +0100
@@ -34,6 +34,7 @@
def initialize
textdomain "firstboot"
+ super
@args = GetInstArgs.argmap
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-firstboot-5.0.0/src/lib/y2firstboot/clients/wsl.rb
new/yast2-firstboot-5.0.1/src/lib/y2firstboot/clients/wsl.rb
--- old/yast2-firstboot-5.0.0/src/lib/y2firstboot/clients/wsl.rb
2023-10-18 23:15:41.000000000 +0200
+++ new/yast2-firstboot-5.0.1/src/lib/y2firstboot/clients/wsl.rb
2023-12-22 13:06:13.000000000 +0100
@@ -92,7 +92,7 @@
# TRANSLATORS: Error message, %s is a pattern name
Yast::Report.Error(_("Cannot select pattern\n\"%s\" to install.\n" \
- "Some software might be missing.") % pattern)
+ "Some software might be missing.") % pattern)
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-firstboot-5.0.0/src/lib/y2firstboot/clients/wsl_product_selection.rb
new/yast2-firstboot-5.0.1/src/lib/y2firstboot/clients/wsl_product_selection.rb
---
old/yast2-firstboot-5.0.0/src/lib/y2firstboot/clients/wsl_product_selection.rb
2023-10-18 23:15:41.000000000 +0200
+++
new/yast2-firstboot-5.0.1/src/lib/y2firstboot/clients/wsl_product_selection.rb
2023-12-22 13:06:13.000000000 +0100
@@ -38,12 +38,17 @@
return :auto if products.none?
dialog = Dialogs::WSLProductSelection.new(products,
- default_product: product,
- wsl_gui_pattern: wsl_gui_pattern?)
+ default_product: product,
+ wsl_gui_pattern: wsl_gui_pattern?,
+ wsl_systemd_pattern: wsl_systemd_pattern?)
result = dialog.run
- save(product: dialog.product, wsl_gui_pattern: dialog.wsl_gui_pattern)
if result == :next
+ if result == :next
+ save(product: dialog.product,
+ wsl_gui_pattern: dialog.wsl_gui_pattern,
+ wsl_systemd_pattern: dialog.wsl_systemd_pattern)
+ end
result
end
@@ -52,14 +57,17 @@
WSL_GUI_PATTERN = "wsl_gui".freeze
private_constant :WSL_GUI_PATTERN
+ WSL_SYSTEMD_PATTERN = "wsl_systemd".freeze
+ private_constant :WSL_SYSTEMD_PATTERN
# Saves changes
#
# @param product [Hash] Selected product
# @param wsl_gui_pattern [Boolean] Whether to install WSL GUI pattern
- def save(product:, wsl_gui_pattern:)
+ def save(product:, wsl_gui_pattern:, wsl_systemd_pattern:)
self.product = product
self.wsl_gui_pattern = wsl_gui_pattern
+ self.wsl_systemd_pattern = wsl_systemd_pattern
update_registration
end
@@ -101,6 +109,26 @@
end
end
+ # Whether the WSL systemd pattern should be installed
+ #
+ # @see áºSLConfig
+ #
+ # @return [Boolean]
+ def wsl_systemd_pattern?
+ WSLConfig.instance.patterns.include?(WSL_SYSTEMD_PATTERN)
+ end
+
+ # Sets whether to install the WSL systemd pattern
+ #
+ # @param value [Boolean]
+ def wsl_systemd_pattern=(value)
+ if value
+ WSLConfig.instance.patterns.push(WSL_SYSTEMD_PATTERN).uniq!
+ else
+ WSLConfig.instance.patterns.delete(WSL_SYSTEMD_PATTERN)
+ end
+ end
+
# Updates values stored in registration
#
# Those values indicates to registration what product was selected and
whether the product
@@ -109,7 +137,8 @@
# @see Registration::Storage::InstallationOptions
def update_registration
yaml_product = WSLConfig.instance.product
- force_registration = WSLConfig.instance.product_switched? ||
wsl_gui_pattern?
+ force_registration = WSLConfig.instance.product_switched? ||
+ wsl_gui_pattern? || wsl_systemd_pattern?
Registration::Storage::InstallationOptions.instance.yaml_product =
yaml_product
Registration::Storage::InstallationOptions.instance.force_registration
= force_registration
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-firstboot-5.0.0/src/lib/y2firstboot/dialogs/wsl_product_selection.rb
new/yast2-firstboot-5.0.1/src/lib/y2firstboot/dialogs/wsl_product_selection.rb
---
old/yast2-firstboot-5.0.0/src/lib/y2firstboot/dialogs/wsl_product_selection.rb
2023-10-18 23:15:41.000000000 +0200
+++
new/yast2-firstboot-5.0.1/src/lib/y2firstboot/dialogs/wsl_product_selection.rb
2023-12-22 13:06:13.000000000 +0100
@@ -39,18 +39,26 @@
# @return [Boolean]
attr_reader :wsl_gui_pattern
+ # Whether the WSL systemd pattern was selected
+ #
+ # @return [Boolean]
+ attr_reader :wsl_systemd_pattern
+
# Constructor
#
# @param products [Array<Hash>] All possible products
# @param default_product [Hash] Product selected by default
# @param wsl_gui_pattern [Boolean] Whether WSL GUI pattern is selected
by default
- def initialize(products, default_product: nil, wsl_gui_pattern: false)
+ # @param wsl_systemd_pattern [Boolean] Whether WSL systemd pattern is
selected by default
+ def initialize(products, default_product: nil, wsl_gui_pattern: false,
+ wsl_systemd_pattern: false)
textdomain "firstboot"
super()
@products = products
@product = default_product || products.first
@wsl_gui_pattern = wsl_gui_pattern
+ @wsl_systemd_pattern = wsl_systemd_pattern
end
def next_handler
@@ -65,6 +73,8 @@
_("Product Selection")
end
+ # disable rubocop metrics as yast ui is constructed with methods
+ # rubocop:disable Metrics/AbcSize
def dialog_content
items = products.map { |p| item_for(p) }
@@ -81,24 +91,40 @@
),
VSpacing(2),
# TRANSLATORS:
- Label(_("The WSL GUI pattern provides some needed packages for\n" \
- "a better experience with graphical applications in WSL.")),
+ Left(Label(_("The WSL GUI pattern provides some needed packages
for\n" \
+ "a better experience with graphical applications in
WSL."))),
VSpacing(1),
# TRANSLATORS: check box label
Left(CheckBox(Id(:wsl_gui_pattern),
_("Install WSL GUI pattern (requires registration)"),
- wsl_gui_pattern))
+ wsl_gui_pattern)),
+ VSpacing(2),
+ # TRANSLATORS:
+ Left(Label(_("The WSL systemd pattern provides wsl.conf
adjustment\n" \
+ "and init symlink for systemd enablement in WSL."))),
+ VSpacing(1),
+ # TRANSLATORS: check box label
+ Left(CheckBox(Id(:wsl_systemd_pattern),
+ _("Install WSL systemd pattern (requires registration)"),
+ wsl_systemd_pattern))
)
)
end
+ # rubocop:enable Metrics/AbcSize
def help_text
- # TRANSLATORS: help text (1/2)
+ # TRANSLATORS: help text (1/3)
_("<p>Select the product to use with Windows Subsystem for Linux
(WSL). " \
"Some products might require registration.</p>") +
- # TRANSLATORS: help text (2/2)
- _("<p>To use graphical programs in WSL you need to install the WSL
GUI pattern. " \
- "In that case the system needs to be registered as well.</p>")
+ # TRANSLATORS: help text (2/3)
+ _("<p>For smoother experience with graphical programs in WSL " \
+ "the WSL GUI pattern provides recommended config, tools and
libraries. " \
+ "In that case the system needs to be registered as well.</p>") +
+ # TRANSLATORS: help text (3/3)
+ _("<p>For enablement of systemd in WSL the WSL systemd pattern
provides wsl.conf " \
+ "and /sbin/init adjustments. " \
+ "In that case the system needs to be registered as well. " \
+ "Relaunch is required to use systemd.</p>")
end
private
@@ -146,6 +172,7 @@
def save
@wsl_gui_pattern = Yast::UI.QueryWidget(Id(:wsl_gui_pattern), :Value)
+ @wsl_systemd_pattern = Yast::UI.QueryWidget(Id(:wsl_systemd_pattern),
:Value)
selected_id = Yast::UI.QueryWidget(Id(:product_selector), :Value)
@product = products.find { |p| item_id(p) == selected_id }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-firstboot-5.0.0/test/y2firstboot/clients/wsl_product_selection_test.rb
new/yast2-firstboot-5.0.1/test/y2firstboot/clients/wsl_product_selection_test.rb
---
old/yast2-firstboot-5.0.0/test/y2firstboot/clients/wsl_product_selection_test.rb
2023-10-18 23:15:41.000000000 +0200
+++
new/yast2-firstboot-5.0.1/test/y2firstboot/clients/wsl_product_selection_test.rb
2023-12-22 13:06:13.000000000 +0100
@@ -104,14 +104,16 @@
let(:dialog) do
instance_double(Y2Firstboot::Dialogs::WSLProductSelection,
- run: dialog_result,
- product: selected_product,
- wsl_gui_pattern: wsl_gui_pattern)
+ run: dialog_result,
+ product: selected_product,
+ wsl_gui_pattern: wsl_gui_pattern,
+ wsl_systemd_pattern: wsl_systemd_pattern)
end
let(:dialog_result) { :abort }
let(:selected_product) { nil }
let(:wsl_gui_pattern) { nil }
+ let(:wsl_systemd_pattern) { nil }
let(:product_switched) { false }
@@ -159,6 +161,34 @@
end
end
+ context "if the WSL systemd pattern was selected" do
+ let(:wsl_systemd_pattern) { true }
+
+ before do
+ Y2Firstboot::WSLConfig.instance.patterns = []
+ end
+
+ it "stores the WSL systemd pattern in the WSL config" do
+ subject.run
+
+ expect(Y2Firstboot::WSLConfig.instance.patterns).to
include("wsl_systemd")
+ end
+ end
+
+ context "if the WSL systemd pattern was not selected" do
+ let(:wsl_systemd_pattern) { false }
+
+ before do
+ Y2Firstboot::WSLConfig.instance.patterns = ["wsl_systemd"]
+ end
+
+ it "does not store the WSL systemd pattern in the WSL config" do
+ subject.run
+
+ expect(Y2Firstboot::WSLConfig.instance.patterns).to_not
include("wsl_systemd")
+ end
+ end
+
it "updates the product in registration storage" do
Registration::Storage::InstallationOptions.instance.yaml_product =
nil
@@ -170,6 +200,7 @@
context "if the product was switched" do
let(:product_switched) { true }
let(:wsl_gui_pattern) { false }
+ let(:wsl_systemd_pattern) { false }
it "updates registration storage to force registration" do
Registration::Storage::InstallationOptions.instance.force_registration = false
@@ -200,13 +231,30 @@
context "and the WSL GUI pattern was not selected" do
let(:wsl_gui_pattern) { false }
- it "updates registration storage to not force registration" do
-
Registration::Storage::InstallationOptions.instance.force_registration = true
+ context "and the WSL systemd pattern was selected" do
+ let(:wsl_systemd_pattern) { true }
- subject.run
+ it "updates registration storage to force registration" do
+
Registration::Storage::InstallationOptions.instance.force_registration = false
-
expect(Registration::Storage::InstallationOptions.instance.force_registration)
- .to eq(false)
+ subject.run
+
+
expect(Registration::Storage::InstallationOptions.instance.force_registration)
+ .to eq(true)
+ end
+ end
+
+ context "and the WSL systemd pattern was not selected" do
+ let(:wsl_systemd_pattern) { false }
+
+ it "updates registration storage to not force registration" do
+
Registration::Storage::InstallationOptions.instance.force_registration = true
+
+ subject.run
+
+
expect(Registration::Storage::InstallationOptions.instance.force_registration)
+ .to eq(false)
+ end
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-firstboot-5.0.0/test/y2firstboot/dialogs/wsl_product_selection_test.rb
new/yast2-firstboot-5.0.1/test/y2firstboot/dialogs/wsl_product_selection_test.rb
---
old/yast2-firstboot-5.0.0/test/y2firstboot/dialogs/wsl_product_selection_test.rb
2023-10-18 23:15:41.000000000 +0200
+++
new/yast2-firstboot-5.0.1/test/y2firstboot/dialogs/wsl_product_selection_test.rb
2023-12-22 13:06:13.000000000 +0100
@@ -43,7 +43,9 @@
subject do
described_class.new(products,
- default_product: default_product, wsl_gui_pattern: wsl_gui_pattern)
+ default_product: default_product,
+ wsl_gui_pattern: wsl_gui_pattern,
+ wsl_systemd_pattern: wsl_systemd_pattern)
end
let(:products) { [sles, sled] }
@@ -52,6 +54,7 @@
let(:default_product) { sled }
let(:wsl_gui_pattern) { false }
+ let(:wsl_systemd_pattern) { false }
let(:installed_product) { double(Y2Packager::Resolvable, name: "SLES",
version_version: "15.4") }
before do
@@ -80,6 +83,12 @@
expect(widget).to_not be_nil
end
+ it "shows a check box for selecting the WSL systemd pattern" do
+ widget = find_widget(:wsl_systemd_pattern, subject.send(:dialog_content))
+
+ expect(widget).to_not be_nil
+ end
+
it "automatically selects the default product" do
widget = find_widget(/SLED/, subject.send(:dialog_content))
@@ -105,12 +114,34 @@
expect(widget.params.last).to eq(false)
end
end
+
+ context "when WSL systemd pattern is indicated as selected" do
+ let(:wsl_systemd_pattern) { true }
+
+ it "selects WSL systemd pattern checkbox by default" do
+ widget = find_widget(:wsl_systemd_pattern,
subject.send(:dialog_content))
+
+ expect(widget.params.last).to eq(true)
+ end
+ end
+
+ context "when WSL systemd pattern is not indicated as selected" do
+ let(:wsl_systemd_pattern) { false }
+
+ it "does not select WSL systemd pattern checkbox by default" do
+ widget = find_widget(:wsl_systemd_pattern,
subject.send(:dialog_content))
+
+ expect(widget.params.last).to eq(false)
+ end
+ end
end
describe "#next_handler" do
before do
allow(Yast::UI).to receive(:QueryWidget).and_call_original
allow(Yast::UI).to receive(:QueryWidget).with(Id(:wsl_gui_pattern),
:Value).and_return(true)
+ allow(Yast::UI).to receive(:QueryWidget).with(Id(:wsl_systemd_pattern),
:Value)
+ .and_return(true)
allow(Yast::UI).to receive(:QueryWidget).with(Id(:product_selector),
:Value)
.and_return("SLES:15.4")
end
@@ -123,6 +154,14 @@
expect(subject.wsl_gui_pattern).to eq(true)
end
+ it "saves whether the WSL GUI pattern checkbox was selected" do
+ expect(subject.wsl_systemd_pattern).to eq(false)
+
+ subject.next_handler
+
+ expect(subject.wsl_systemd_pattern).to eq(true)
+ end
+
it "saves the selected product" do
expect(subject.product).to eq(sled)