Merge branch 'develop' into add_post_scripts

This commit is contained in:
Trevor Cooper 2024-07-11 20:59:09 -07:00
commit 10f41baf30
Signed by: tcooper
GPG Key ID: 52364D7BBCEB35B8
148 changed files with 1927 additions and 397 deletions

View File

@ -107,6 +107,6 @@ These variables should be set when tests are scheduled (when running `isos post`
| `PREVREL` | the previous stable Rocky release at the time of the test run |
| `UP1REL` | the source release for "1-release" upgrade tests (usually but not always same as `CURRREL`) |
| `UP2REL` | the source release for "2-release" upgrade tests (currently always same as `PREVREL`) |
| `LOCATION` | contains Pungi base compose location (something like `https://kojipkgs.rockylinux.org/compose/branched/Rocky-8.4-20210801.n.0/compose/`) |
| `LOCATION` | Rocky doesn't replicate compose process used by upstream distribution. `LOCATION` has three general use cases: substitution value for `REPOSITORY_VARIATION` or `REPOSITORY_GRAPHICAL` in `templates.fif.json`, within `utils.pm` in `_repo_setup_compose` which is not valid for Rocky and within `support_server.pm` in `_pxe_setup` to pull the kernel and initrd used for PXE installs. Required value is repository URL prefix, eg. `https://download.rockylinux.org/pub/rocky/8/`. |
| `DNF_CONTENTDIR` | the value to change `/etc/dnf/vars/contentdir` to (eg. `stg/rocky`) allowing repository reconfiguration to point at staging (usually but not always used with `DNF_RELEASEVER`) |
| `DNF_RELEASEVER` | the value to change `/etc/dnf/vars/releasever` to (eg. `8.8-Beta`) allowing repository reconfiguration to point at a specific release (usually but not always used with `DNF_CONTENTDIR`) |

View File

@ -212,6 +212,11 @@ def generate_job_templates(products, profiles, testsuites):
jobtemplate['group_name'] = "Rocky PowerPC Updates"
else:
jobtemplate['group_name'] = "Rocky PowerPC"
elif jobtemplate['machine_name'] in ('s390x'):
if 'updates' in product['flavor']:
jobtemplate['group_name'] = "Rocky s390x Updates"
else:
jobtemplate['group_name'] = "Rocky s390x"
elif jobtemplate['machine_name'] in ('aarch64', 'ARM'):
if 'updates' in product['flavor']:
jobtemplate['group_name'] = "Rocky AArch64 Updates"

View File

@ -366,9 +366,9 @@ sub get_full_repo {
# repo URL with flavor and arch, leave hd & NFS ones alone
# (as for those tests we just use a mounted ISO and URL is complete)
if ($repourl !~ m/^(nfs|hd:)/) {
# Everything variant doesn't exist for modular composes atm,
# only Server
$repourl .= "/" . get_var("ARCH") . "/os";
# Rocky Linux default repo is BaseOS. This subdirectory
# should be added to ${LOCATION}.
$repourl .= "/BaseOS/" . get_var("ARCH") . "/os";
}
return $repourl;
}

View File

@ -13,8 +13,12 @@ our @EXPORT = qw(start_cockpit select_cockpit_update check_updates);
sub start_cockpit {
# Starting from a console, get to a browser with Cockpit (running
# on localhost) shown. If $login is truth-y, also log in. Assumes
# on localhost) shown. If login is truth-y, also log in. If login
# and admin are both truthy, also gain admin privileges. Assumes
# X and Firefox are installed.
my %args = @_;
$args{login} //= 0;
$args{admin} //= 1;
my $login = shift || 0;
# https://bugzilla.redhat.com/show_bug.cgi?id=1439429
assert_script_run "sed -i -e 's,enable_xauth=1,enable_xauth=0,g' /usr/bin/startx";
@ -25,11 +29,17 @@ sub start_cockpit {
# this happened on early Modular Server composes...
record_soft_failure "Unbranded Cockpit" if (match_has_tag "cockpit_login_unbranded");
wait_still_screen(stilltime => 5, similarity_level => 45);
if ($login) {
type_safely "root";
if ($args{login}) {
type_safely "test";
wait_screen_change { send_key "tab"; };
type_safely get_var("ROOT_PASSWORD", "weakpassword");
type_safely get_var("USER_PASSWORD", "weakpassword");
send_key "ret";
if ($args{admin}) {
assert_and_click "cockpit_admin_enable";
assert_screen "cockpit_admin_password";
type_safely get_var("USER_PASSWORD", "weakpassword");
send_key "ret";
}
assert_screen "cockpit_main";
# wait for any animation or other weirdness
# can't use wait_still_screen because of that damn graph

View File

@ -9,15 +9,15 @@ use testapi;
our @EXPORT = qw/prepare_test_packages verify_installed_packages verify_updated_packages/;
# enable the openqa test package repositories and install the main
# test packages, remove pandoc-common and install the fake one
# test packages, remove acpica-tools and install the fake one
sub prepare_test_packages {
# remove pandoc-common if installed (we don't use assert
# remove acpica-tools if installed (we don't use assert
# here in case it's not)
script_run 'dnf -y remove pandoc-common', 180;
script_run 'dnf -y remove acpica-tools', 180;
# grab the test repo definitions
assert_script_run 'curl -o /etc/yum.repos.d/openqa-testrepo-1.repo https://git.resf.org/testing/openqa-testrepos/raw/branch/main/openqa-testrepo-1.repo';
# install the test packages from repo1
assert_script_run 'dnf -y --disablerepo=* --enablerepo=openqa-testrepo-1 install pandoc-common';
assert_script_run 'dnf -y --disablerepo=* --enablerepo=openqa-testrepo-1 install acpica-tools';
if (get_var("DESKTOP") eq 'kde' && get_var("TEST") eq 'desktop_update_graphical') {
# kick pkcon so our special update will definitely get installed
assert_script_run 'pkcon refresh force';
@ -27,15 +27,15 @@ sub prepare_test_packages {
# check our test packages installed correctly (this is a test that dnf
# actually does what it claims)
sub verify_installed_packages {
validate_script_output 'rpm -q pandoc-common', sub { $_ =~ m/^pandoc-common-1.1.noarch$/ };
assert_script_run 'rpm -V pandoc-common';
validate_script_output 'rpm -q acpica-tools', sub { $_ =~ m/^acpica-tools-1-1.noarch$/ };
assert_script_run 'rpm -V acpica-tools';
}
# check updating the test packages and the fake pandoc-common work
# check updating the test packages and the fake acpica-tools work
# as expected
sub verify_updated_packages {
# we don't know what version of pandoc-common we'll actually
# we don't know what version of acpica-tools we'll actually
# get, so just check it's *not* the fake one
validate_script_output 'rpm -q pandoc-common', sub { $_ !~ m/^pandoc-common-1-1.noarch$/ };
assert_script_run 'rpm -V pandoc-common';
validate_script_output 'rpm -q acpica-tools', sub { $_ !~ m/^acpica-tools-1-1.noarch$/ };
assert_script_run 'rpm -V acpica-tools';
}

View File

@ -56,14 +56,12 @@ sub setup_tap_static {
}
sub get_host_dns {
# get DNS server addresses from the host
my @forwards;
open(FH, '<', "/etc/resolv.conf");
while (<FH>) {
if ($_ =~ m/^nameserver +(.+)/) {
push @forwards, $1;
}
}
# get DNS server addresses from the host. Assumes host uses
# systemd-resolved and doesn't use IPv6, for now
my $result = `/usr/bin/resolvectl status | grep Servers | tail -1 | cut -d: -f2-`;
# FIXME this is gonna break when we have IPv6 DNS servers on the
# worker hosts
my @forwards = split(' ', $result);
return @forwards;
}

View File

@ -8,7 +8,7 @@ use Exporter;
use feature "switch";
use lockapi;
use testapi;
our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type repo_setup setup_workaround_repo cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop download_modularity_tests quit_firefox advisory_get_installed_packages advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut lo_dismiss_tip disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number get_version_major get_code_name check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log click_unwanted_notifications repos_mirrorlist register_application get_registered_applications solidify_wallpaper/;
our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type repo_setup cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop download_modularity_tests quit_firefox advisory_get_installed_packages advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut lo_dismiss_tip disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number get_version_major get_code_name check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log click_unwanted_notifications repos_mirrorlist register_application get_registered_applications solidify_wallpaper/;
# We introduce this global variable to hold the list of applications that have
# registered during the apps_startstop_test when they have sucessfully run.
@ -433,9 +433,12 @@ sub repos_mirrorlist {
# the infra repo is updated but mirrormanager metadata checksums
# have not been updated, and the infra repo is rejected as its
# metadata checksum isn't known to MM
# NOTE: For Rocky CURRREL is used to specify/select HDD1 for multi-host
# tests, for example *8.10-BETA*qcow2, and repo names are
# really tied to the major version in Rocky.
my $files = shift;
my $currentversion = get_var("CURRREL");
if ($currentversion eq '8') {
my $currentversion = get_var("VERSION");
if (get_version_major($currentversion) eq '8') {
$files ||= "/etc/yum.repos.d/Rocky*.repo";
}
else {
@ -450,58 +453,10 @@ sub cleanup_workaround_repo {
script_run "rm -f /etc/yum.repos.d/workarounds.repo";
}
sub setup_workaround_repo {
# we periodically need to pull an update from updates-testing in
# to fix some bug or other. so, here's an organized way to do it.
# we do this here so the workaround packages are in the repo data
# but *not* in the package lists generated above (those should
# only include packages from the update under test). we'll define
# a hash of releases and update IDs. if no workarounds are needed
# for any release, the hash can be empty and this will do nothing
my $version = shift || get_var("VERSION");
cleanup_workaround_repo;
script_run "dnf -y install bodhi-client createrepo", 300;
# write a repo config file, unless this is the support_server test
# and it is running on a different release than the update is for
# (in this case we need the repo to exist but do not want to use
# it on the actual support_server system)
unless (get_var("TEST") eq "support_server" && $version ne get_var("CURRREL")) {
assert_script_run 'printf "[workarounds]\nname=Workarounds repo\nbaseurl=file:///opt/workarounds_repo\nenabled=1\nmetadata_expire=1\ngpgcheck=0" > /etc/yum.repos.d/workarounds.repo';
}
assert_script_run "mkdir -p /opt/workarounds_repo";
assert_script_run "pushd /opt/workarounds_repo";
my %workarounds = (
"32" => [],
"33" => [],
"34" => ["FEDORA-2021-d7b1dc57fe"]
);
# then we'll download each update for our release:
my $advortasks = $workarounds{$version};
foreach my $advortask (@$advortasks) {
my $cmd = "bodhi updates download --updateid=$advortask";
if ($advortask =~ /^\d+$/) {
my $arch = get_var("ARCH");
$cmd = "koji download-task --arch=$arch --arch=noarch $advortask";
}
my $count = 3;
my $success = 0;
while ($count) {
if (script_run $cmd, 180) {
$count -= 1;
}
else {
$count = 0;
$success = 1;
}
}
die "Workaround update download failed!" unless $success;
}
# and create repo metadata
assert_script_run "createrepo .";
assert_script_run "popd";
}
sub _repo_setup_compose {
# doesn't work for Rocky
my $distri = get_var("DISTRI");
return if ($distri eq "rocky");
# doesn't work for IoT or CoreOS, anything that hits this on those
# paths must work with default mirror config...
my $subvariant = get_var("SUBVARIANT");
@ -531,6 +486,9 @@ sub _repo_setup_compose {
}
sub _repo_setup_updates {
# doesn't work for Rocky
my $distri = get_var("DISTRI");
return if ($distri eq "rocky");
# Appropriate repo setup steps for testing a Bodhi update
# Check if we already ran, bail if so
return unless script_run "test -f /etc/yum.repos.d/advisory.repo";
@ -552,8 +510,6 @@ sub _repo_setup_updates {
assert_script_run "dnf config-manager --set-disabled updates-testing-modular";
}
}
# set up the workaround repo
setup_workaround_repo;
# Set up an additional repo containing the update or task packages. We do
# this rather than simply running a one-time update because it may be the
@ -1224,16 +1180,11 @@ sub check_prerelease {
# defaults to False, but if the compose has a label and it's an
# 'RC' or 'Update' or 'SecurityFix' compose (see definition of
# SUPPORTED_MILESTONES in productmd.composeinfo), the default is
# True. AFAICS, Fedora's pungi configs don't explicitly set this,
# but rely on the heuristic. So for installer images, we expect
# isFinal to be True for RC candidate composes and post-release
# nightly Cloud, IoT etc. composes (these are also marked as 'RC'
# composes), but False for Rawhide and Branched nightly composes
# and Beta candidate composes. For installer images built by our
# own _installer_build test, we control whether --isfinal is set
# or not; we pass it if the update is for a stable release, we do
# not pass it if the update is for Branched. Live images do not
# have the buildstamp file.
# True. Not sure if Rocky's pungi configs explicitly set this,
# or rely on the heuristic. So for installer images, we expect
# isFinal to be True for RC candidate and final composes, but
# False for LookAhead and Beta candidate composes. Live images
# do not have the buildstamp file.
# 2. If there's no buildstamp file, the value of the environment
# variable ANACONDA_ISFINAL is used as `product.isFinal`, default
@ -1241,22 +1192,11 @@ sub check_prerelease {
# wrapper script sets ANACONDA_ISFINAL based on the release field
# of whatever package provides system-release: if it starts with
# "0.", it sets ANACONA_ISFINAL to "false", otherwise it sets it
# to "true". So for live images, we expect isFinal to be True
# unless the fedora-release-common package release starts with 0.
# to "true".
# 3. If `product.isFinal` is False, the pre-release warning and
# tags are shown; if it is False, they are not shown.
# We don't really need to check this stuff for update tests, as
# the only installer images we test on updates are ones we build
# ourselves; there's no value to this check for those really.
# For compose tests, we will expect to see the pre-release tags if
# the compose is Rawhide, or a Beta candidate, or it's a nightly
# and we're checking an installer image. If it's an RC or Updates
# candidate, or a respin release, we expect NOT to see the tags.
# If it's a nightly and we're checking a live image, we don't do
# the check.
# bail if this is an update test
return if (get_var("ADVISORY OR TASK"));
@ -1264,25 +1204,18 @@ sub check_prerelease {
# any other value means we don't care
my $prerelease = 10;
# if this is RC or update compose we absolutely *MUST NOT* see tags
# if this is RC we absolutely *MUST NOT* see tags
my $label = get_var("LABEL");
$prerelease = 0 if ($label =~ /^(RC|Update)-/);
$prerelease = 0 if ($label =~ /^RC/);
# if it's a Beta compose we *MUST* see tags
$prerelease = 1 if ($label =~ /^Beta-/);
my $version = get_var('VERSION');
# if it's Rawhide we *MUST* see tags
$prerelease = 1 if ($version eq "Rawhide");
$prerelease = 1 if ($label =~ /^(B(?i)eta(?-i))/);
my $build = get_var('BUILD');
# if it's a nightly installer image we should see tags
$prerelease = 1 if ($build =~ /\.n\.\d+/ && !get_var("LIVE"));
# if it's a respin compose we *MUST NOT* see tags
$prerelease = 0 if ($build =~ /Respin/);
# we *could* go to a console and parse fedora-release-common
# to decide if a nightly live image should have tags or not, but
# it seems absurd as we're almost reinventing the code that
# decides whether to show the tags, at that point, and it's not
# really a big deal either way whether a nightly live image has
# the tags or not. So we don't.
$prerelease = 1 if ($build =~ /\.t\.\d+/ && !get_var("LIVE"));
# check based on ISO name, does not work for 8.x boot-iso name(s) which must use
# LABEL
my $iso = get_var('ISO');
$prerelease = 1 if ($iso =~ /^Rocky-\d+\.\d+-(B(?i)eta(?-i)|LookAhead)-(x86_64|aarch64|ppc64le|s390x)-(boot|dvd\d?|minimal).iso/);
# For all prerelease requiring ISOs, assert that prerelease is there.
if ($prerelease == 1) {

View File

@ -0,0 +1,16 @@
{
"area": [
{
"ypos": 220,
"type": "match",
"height": 35,
"width": 384,
"xpos": 41
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_help_create_user"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 9,
"width": 384,
"type": "match",
"height": 35,
"ypos": 126
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_help_create_user"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"height": 34,
"width": 446,
"xpos": 41,
"type": "match",
"ypos": 220
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_help_install_destination"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 39,
"height": 39,
"width": 490,
"type": "match",
"ypos": 217
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_help_installation_source"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"height": 38,
"ypos": 123,
"type": "match",
"xpos": 9,
"width": 499
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_help_language_selection"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"height": 39,
"width": 700,
"xpos": 41,
"type": "match",
"ypos": 218
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_help_network_host_name"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"type": "match",
"width": 676,
"height": 38,
"xpos": 42,
"ypos": 218
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_help_progress"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"type": "match",
"width": 454,
"height": 35,
"xpos": 40,
"ypos": 219
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_help_root_password"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"ypos": 125,
"height": 35,
"width": 454,
"xpos": 8,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_help_root_password"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"height": 36,
"xpos": 39,
"width": 488,
"type": "match",
"ypos": 218
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_help_select_packages"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"width": 488,
"xpos": 7,
"type": "match",
"ypos": 124,
"height": 36
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_help_select_packages"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"type": "match",
"height": 36,
"xpos": 41,
"width": 457,
"ypos": 194
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_help_summary"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"ypos": 33,
"height": 19,
"type": "match",
"width": 145,
"xpos": 91
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-arabic",
"prerelease_note"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"type": "match",
"xpos": 734,
"width": 143,
"height": 19,
"ypos": 31
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-french",
"prerelease_note"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"width": 159,
"xpos": 754,
"type": "match",
"ypos": 35,
"height": 24
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-japanese",
"prerelease_note"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"type": "match",
"xpos": 135,
"width": 675,
"height": 32,
"ypos": 9
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-japanese",
"topbar_generic"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"ypos": 34,
"height": 27,
"width": 159,
"xpos": 754,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"prerelease_note"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

@ -0,0 +1,21 @@
{
"area": [
{
"type": "match",
"xpos": 754,
"width": 253,
"height": 23,
"ypos": 546,
"click_point": {
"xpos": 239.5,
"ypos": 12.5
}
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-arabic",
"anaconda_install_destination_encrypt_data"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"ypos": 544,
"height": 23,
"width": 127,
"xpos": 786,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-arabic",
"anaconda_install_destination_encrypt_data"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"xpos": 650,
"ypos": 743,
"width": 335,
"height": 18,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-arabic",
"anaconda_install_weak_password"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

View File

@ -0,0 +1,28 @@
{
"area": [
{
"height": 22,
"width": 114,
"click_point": {
"xpos": 57,
"ypos": 11
},
"ypos": 695,
"xpos": 15,
"type": "match"
},
{
"type": "match",
"ypos": 639,
"xpos": 5,
"height": 19,
"width": 390
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-arabic",
"anaconda_install_done"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -0,0 +1,24 @@
{
"area": [
{
"height": 11,
"width": 36,
"type": "match",
"ypos": 145,
"xpos": 398
},
{
"xpos": 43,
"ypos": 746,
"width": 393,
"height": 11,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-russian",
"anaconda_install_weak_password"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"ypos": 211,
"height": 19,
"width": 105,
"xpos": 58,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"ENV-FLAVOR-server",
"anaconda_install_source_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"height": 15,
"ypos": 733,
"type": "match",
"xpos": 953,
"width": 27
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-japanese",
"anaconda_select_install_lang_continue"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

View File

@ -0,0 +1,24 @@
{
"area": [
{
"height": 32,
"ypos": 173,
"xpos": 221,
"width": 50,
"type": "match"
},
{
"type": "match",
"xpos": 469,
"width": 75,
"height": 36,
"ypos": 173
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-japanese",
"anaconda_select_install_lang_filtered"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"width": 93,
"xpos": 607,
"type": "match",
"ypos": 199,
"height": 16
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-japanese",
"anaconda_select_install_lang_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"ypos": 217,
"type": "match",
"xpos": 41,
"height": 38,
"width": 544
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_help_language_support",
"anaconda_help_language_selection"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

View File

@ -1,10 +1,10 @@
{
"area": [
{
"width": 45,
"height": 17,
"xpos": 411,
"ypos": 134,
"xpos": 228,
"ypos": 360,
"width": 64,
"height": 20,
"type": "match"
}
],
@ -14,4 +14,4 @@
"LANGUAGE-arabic",
"anaconda_network_connected"
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

View File

@ -0,0 +1,21 @@
{
"area": [
{
"xpos": 12,
"width": 89,
"type": "match",
"height": 21,
"ypos": 705,
"click_point": {
"xpos": 44.5,
"ypos": 10.5
}
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-arabic",
"anaconda_main_hub_begin_installation"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@ -0,0 +1,31 @@
{
"area": [
{
"xpos": 91,
"ypos": 339,
"width": 175,
"height": 21,
"type": "match"
},
{
"xpos": 265,
"ypos": 339,
"width": 43,
"height": 35,
"type": "match"
},
{
"xpos": 91,
"ypos": 360,
"width": 53,
"height": 18,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-arabic",
"anaconda_network_connected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -0,0 +1,24 @@
{
"area": [
{
"xpos": 26,
"ypos": 685,
"type": "match",
"width": 175,
"height": 21
},
{
"type": "match",
"width": 39,
"height": 19,
"xpos": 415,
"ypos": 133
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-arabic",
"anaconda_network_connected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View File

@ -1,11 +1,11 @@
{
"area": [
{
"type": "match",
"ypos": 133,
"height": 17,
"xpos": 568,
"width": 66
"ypos": 133,
"type": "match",
"width": 60,
"height": 17
}
],
"properties": [],

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

@ -0,0 +1,24 @@
{
"area": [
{
"xpos": 737,
"ypos": 341,
"width": 125,
"height": 35,
"type": "match"
},
{
"xpos": 782,
"ypos": 379,
"width": 51,
"height": 15,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-french",
"anaconda_network_connected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@ -1,17 +1,17 @@
{
"area": [
{
"width": 89,
"height": 22,
"xpos": 588,
"ypos": 136,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-japanese",
"anaconda_network_connected"
]
}
{
"area": [
{
"xpos": 737,
"ypos": 335,
"width": 71,
"height": 44,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-japanese",
"anaconda_network_connected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"width": 88,
"height": 25,
"type": "match",
"ypos": 136,
"xpos": 587
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-japanese",
"anaconda_network_connected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 719,
"height": 18,
"type": "match",
"ypos": 359,
"width": 105
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"anaconda_network_connected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"xpos": 733,
"ypos": 340,
"width": 83,
"height": 37,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-russian",
"anaconda_network_connected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

View File

@ -1,11 +1,11 @@
{
"area": [
{
"xpos": 604,
"height": 17,
"width": 84,
"type": "match",
"ypos": 133
"ypos": 131,
"xpos": 603,
"height": 23,
"width": 83,
"type": "match"
}
],
"properties": [],

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"ypos": 124,
"height": 35,
"type": "match",
"width": 411,
"xpos": 587
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-arabic",
"anaconda_graphical-server_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"height": 34,
"ypos": 126,
"xpos": 27,
"width": 392,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-french",
"anaconda_graphical-server_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"height": 41,
"ypos": 136,
"type": "match",
"xpos": 47,
"width": 400
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-japanese",
"anaconda_graphical-server_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"ypos": 128,
"height": 35,
"type": "match",
"width": 418,
"xpos": 28
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-russian",
"anaconda_graphical-server_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"xpos": 497,
"width": 77,
"type": "match",
"height": 56,
"ypos": 330
}
],
"properties": [],
"tags": [
"anaconda_part_fs",
"anaconda_part_fs_ext4_selected",
"ENV-DISTRI-rocky"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"ypos": 37,
"height": 23,
"width": 52,
"xpos": 950,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-arabic",
"anaconda_spoke_done"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"width": 52,
"xpos": 950,
"type": "match",
"ypos": 38,
"height": 23
}
],
"properties": [],
"tags": [
"ENV-DISTRI-rocky",
"LANGUAGE-arabic",
"anaconda_spoke_done"
]
}

Some files were not shown because too many files have changed in this diff Show More