From 76711fd0396754893dde8b4b1e175358c99a9bf3 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Tue, 20 Aug 2024 16:15:55 -0700 Subject: [PATCH] Tweak _boot_to_anaconda and g-i-s flow for new Rawhide g-i-s We're dropping the live user mode patch from g-i-s downstream because it's just too hard to maintain, apparently. So on Rawhide the live image will boot to the welcome screen as normal, but running the installer will give you newui rather than webui. If you need a language other than English you have to sort it out at the desktop before running the installer. On first boot, g-i-s will show *all* screens, not skipping language, keyboard layout or timezone, because we did not see those in the installer. This adapts the tests to handle the new flow, and should still work with the other flows. Signed-off-by: Adam Williamson --- lib/utils.pm | 31 ++++++++++++++++--------------- tests/_boot_to_anaconda.pm | 7 +++++-- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/lib/utils.pm b/lib/utils.pm index 182be559..3e674845 100644 --- a/lib/utils.pm +++ b/lib/utils.pm @@ -861,29 +861,30 @@ sub gnome_initial_setup { # now, we're going to figure out how many of them this test will # *actually* see... if ($args{live}) { - # this is the flow we see when booting an F40+ Workstation live - # we only get language and keyboard + # this is the flow we expect to see when booting live images + # with anaconda webui, though as of 2024-08 it is unused as + # the patch has been dropped due to maintenance difficulty @nexts = ('language', 'keyboard'); } if ($args{prelogin}) { - # 'language', 'keyboard' and 'timezone' were skipped between F28 - # and F42 in the 'new user' mode by + # On releases that use anaconda gtkui, we configure g-i-s to + # skip 'language', 'keyboard' and 'timezone' using a custom + # vendor.conf: # https://fedoraproject.org//wiki/Changes/ReduceInitialSetupRedundancy # https://bugzilla.redhat.com/show_bug.cgi?id=1474787 , - # except 'language' was never *really* skipped (see above) - if ($relnum < 42) { + # but 'language' is never *really* skipped (see above) + unless (get_var("_ANACONDA_WEBUI")) { @nexts = grep { $_ ne 'keyboard' } @nexts; @nexts = grep { $_ ne 'timezone' } @nexts; } - # From gnome-initial-setup 45~beta-3 on, no screens are - # skipped in vendor.conf. 'language' and 'keyboard' should be - # skipped (meaning 'language' is turned into 'welcome' and - # 'keyboard' is really skipped) on live installs because we saw - # them already, but this only works from anaconda 39.32.2 / - # 40.3 onwards. network installs and disk image deployments - # will show these screens (which is good for disk image - # deployments, but redundant for network installs) - elsif (match_has_tag "start_setup") { + # On releases that use anaconda-webui, we use vendor.conf to + # skip 'language' and 'keyboard' (meaning 'language' is turned + # into 'welcome' and 'keyboard' is really skipped) on live + # installs because we saw them already. network installs and + # disk image deployments will show these screens (which is good + # for disk image deployments, but redundant for network + # installs) + if (match_has_tag "start_setup") { # if we saw start_setup, that means 'language' was skipped # and we can assume 'keyboard' will also be skipped @nexts = grep { $_ ne 'keyboard' } @nexts; diff --git a/tests/_boot_to_anaconda.pm b/tests/_boot_to_anaconda.pm index 69197ecd..242d5d0e 100644 --- a/tests/_boot_to_anaconda.pm +++ b/tests/_boot_to_anaconda.pm @@ -151,7 +151,10 @@ sub run { $count -= 1; assert_screen ["live_start_anaconda_icon", "apps_menu_button_active", "next_button"], 300; if (match_has_tag "next_button") { - # we're on F39+ Workstation and looking at gnome-initial-setup + # we're looking at gnome-initial-setup - this + # is what we expect on images that use anaconda + # webui, though as of 2024-08 it's disabled due + # to maintenance difficulty # completing g-i-s launches the installer gnome_initial_setup(live => 1); $launched = 1; @@ -180,7 +183,7 @@ sub run { while ($tries) { $tries -= 1; assert_and_click("live_start_anaconda_icon", dclick => $dclick); - last if (check_screen "anaconda_select_install_lang", 180); + last if (check_screen ["anaconda_select_install_lang", "anaconda_webui_welcome"], 180); die "Launching installer failed after 5 tries!" unless ($tries); } }