Compare commits
163 Commits
402baba336
...
b2c243c4c8
Author | SHA1 | Date | |
---|---|---|---|
|
b2c243c4c8 | ||
|
725c9b67b6 | ||
|
6b8f8daf3a | ||
|
e9e6923513 | ||
|
0a20118727 | ||
|
803da8422d | ||
|
7f75a35bfd | ||
|
77d6f3128c | ||
|
c68bd6bcb3 | ||
|
eb78e04325 | ||
|
ce00bc94f1 | ||
|
8a54cff407 | ||
|
63ae1774cb | ||
|
d69af30671 | ||
|
a0564f47aa | ||
|
75406ee7f4 | ||
|
977d491e8b | ||
|
11820faa84 | ||
|
aa6ff861d2 | ||
|
79bad931ce | ||
|
f15f1e0bd7 | ||
|
6d793de3f9 | ||
|
de4cb908ba | ||
|
d3c97a64be | ||
|
9ec6d3bf23 | ||
|
b3b39a79d9 | ||
|
905376e320 | ||
|
69534aa8fc | ||
|
9f327ab7a0 | ||
|
e2b856c675 | ||
|
39981c39ea | ||
|
8e974f291a | ||
|
c4a87f2ae2 | ||
|
eae4ef7a1f | ||
|
2769fb7e58 | ||
|
50464f5522 | ||
|
11044fe96c | ||
|
aa0d887155 | ||
|
5f1a8eb355 | ||
|
d761df56b2 | ||
|
b4910cee94 | ||
|
d194b9d2af | ||
|
c0fab57f18 | ||
|
04704dc912 | ||
|
b1d3fae677 | ||
|
81d5d2f408 | ||
|
5cd10597e0 | ||
|
5c2b2e6c29 | ||
|
87b572e535 | ||
|
5ad36cf3c7 | ||
|
145bbb10af | ||
|
d4b17daeaa | ||
|
e9e967c4bf | ||
|
1f4324b270 | ||
|
b7487e97e9 | ||
|
ec34439004 | ||
|
7955c092d6 | ||
|
d88c8e4335 | ||
|
6d2974f722 | ||
|
c65071f879 | ||
|
52f3897eec | ||
|
52af1011dc | ||
|
9d2a6b6652 | ||
|
3244d17d67 | ||
|
24bbce64a3 | ||
|
28dfad9743 | ||
|
14b48e7bca | ||
|
b0e6f2bc0c | ||
|
aebdf08eb5 | ||
|
70271f1397 | ||
|
91f4a24b20 | ||
|
31691a317b | ||
|
0b5aabcc57 | ||
|
d109fbdb43 | ||
|
092cc5dd05 | ||
|
c392480f92 | ||
|
4315e5ff6f | ||
|
82abc61432 | ||
|
f94f34d0dd | ||
|
a650a3b33d | ||
|
7657b8bb16 | ||
|
a7dbff27fa | ||
|
4200e6a73f | ||
|
47302e9451 | ||
|
bb1f6e6ba0 | ||
|
e99bf18c4f | ||
|
635ff8941e | ||
|
75534a30df | ||
|
381a79f06f | ||
|
5309466098 | ||
|
39e26ed029 | ||
|
358695e417 | ||
|
4ca41e5b71 | ||
|
22387fddfb | ||
|
6146b6eba9 | ||
|
f96f591e46 | ||
|
21222f6a03 | ||
|
1c4a93eeaa | ||
|
a9412b14ae | ||
|
e49b5f9645 | ||
|
201fddcb72 | ||
|
9130518862 | ||
|
0c32f1634d | ||
|
00665f23e9 | ||
|
edc3bd9762 | ||
|
e0fb862233 | ||
|
3cd5a9cfc2 | ||
|
c24e3fa9a1 | ||
|
6fea5cc452 | ||
|
3c3ed87966 | ||
|
9a95ece8d3 | ||
|
531df88d37 | ||
|
76bce2bc04 | ||
|
958366d15d | ||
|
cbb9bb59d4 | ||
|
eed86f4feb | ||
|
c17181d8e5 | ||
|
a7cd9f30db | ||
|
9f6113d581 | ||
|
23ebeb2269 | ||
|
76711fd039 | ||
|
1b2dbf1c3d | ||
|
1cbb7ba2af | ||
|
80236fdb9b | ||
|
a2ca3fc2b1 | ||
|
b4eebff26e | ||
|
1e3c5796f2 | ||
|
7379f7636d | ||
|
3da4f4e8bb | ||
|
bd317e001f | ||
|
175b056ce7 | ||
|
5c15f96fab | ||
|
c123762f7b | ||
|
20de2be255 | ||
|
d4d9adc463 | ||
|
3211f29e58 | ||
|
6fe3ec37b3 | ||
|
89551b72ee | ||
|
c0031fc140 | ||
|
04537e3abb | ||
|
d3150edae3 | ||
|
e8ed3a2a96 | ||
|
0faa55586d | ||
|
6cc668d4c3 | ||
|
19b8f8d172 | ||
|
234f103c44 | ||
|
cda78a4020 | ||
|
6a9ab101bf | ||
|
c2996c5ce7 | ||
|
fd3a6d1941 | ||
|
5132786456 | ||
|
4be9ce3e88 | ||
|
9a7bcf9573 | ||
|
9cffe4e3d4 | ||
|
b8b46753e2 | ||
|
b9307b1a2c | ||
|
b23a52e88b | ||
|
cfb3b793e3 | ||
|
8d6328ba8a | ||
|
d515ad1195 | ||
|
3f951b47d8 | ||
|
56fc429870 | ||
|
8ccad8844a |
@ -30,8 +30,14 @@ sub select_disks {
|
|||||||
# Anaconda hub
|
# Anaconda hub
|
||||||
assert_screen "anaconda_main_hub", 300;
|
assert_screen "anaconda_main_hub", 300;
|
||||||
# Damn animation delay can cause bad clicks here too - wait for it
|
# Damn animation delay can cause bad clicks here too - wait for it
|
||||||
sleep 1;
|
wait_still_screen 3;
|
||||||
assert_and_click "anaconda_main_hub_install_destination";
|
assert_and_click "anaconda_main_hub_install_destination";
|
||||||
|
# it seems that sometimes the first click doesn't work with wayland
|
||||||
|
# on anaconda. we can't reproduce this manually, so work around it
|
||||||
|
# by just clicking again, this is safe even if the first click
|
||||||
|
# *did* work
|
||||||
|
sleep 1;
|
||||||
|
click_lastmatch;
|
||||||
|
|
||||||
# this is awkward, but on the install_repository_hd_variation test,
|
# this is awkward, but on the install_repository_hd_variation test,
|
||||||
# we have two disks but in F39 and F40 anaconda knows we're using
|
# we have two disks but in F39 and F40 anaconda knows we're using
|
||||||
@ -184,9 +190,20 @@ sub custom_blivet_format_partition {
|
|||||||
my %args = @_;
|
my %args = @_;
|
||||||
# Start editing the partition and select the Format option
|
# Start editing the partition and select the Format option
|
||||||
assert_and_click "anaconda_blivet_part_edit";
|
assert_and_click "anaconda_blivet_part_edit";
|
||||||
|
# workaround another case where first click doesn't always work
|
||||||
|
# on Wayland
|
||||||
|
unless (check_screen "anaconda_blivet_part_format", 10) {
|
||||||
|
assert_and_click "anaconda_blivet_part_edit";
|
||||||
|
}
|
||||||
assert_and_click "anaconda_blivet_part_format";
|
assert_and_click "anaconda_blivet_part_format";
|
||||||
# Select the appropriate filesystem type.
|
# Select the appropriate filesystem type.
|
||||||
assert_and_click "anaconda_blivet_part_drop_select";
|
assert_and_click "anaconda_blivet_part_drop_select";
|
||||||
|
unless (check_screen "anaconda_blivet_part_fs_$args{type}", 5) {
|
||||||
|
record_soft_failure "https://bugzilla.redhat.com/show_bug.cgi?id=2324231";
|
||||||
|
for (1 .. 15) {
|
||||||
|
send_key "up";
|
||||||
|
}
|
||||||
|
}
|
||||||
assert_and_click "anaconda_blivet_part_fs_$args{type}";
|
assert_and_click "anaconda_blivet_part_fs_$args{type}";
|
||||||
wait_still_screen 2;
|
wait_still_screen 2;
|
||||||
# Fill in the label if needed.
|
# Fill in the label if needed.
|
||||||
|
@ -63,7 +63,7 @@ sub init() {
|
|||||||
# If this should change in the future, we would need to enhance this routine.
|
# If this should change in the future, we would need to enhance this routine.
|
||||||
sub x11_start_program {
|
sub x11_start_program {
|
||||||
my ($self, $program, $timeout, $options) = @_;
|
my ($self, $program, $timeout, $options) = @_;
|
||||||
send_key "alt-f2";
|
send_key(get_var("DESKTOP") eq "i3" ? "alt-d" : "alt-f2");
|
||||||
assert_screen "desktop_runner";
|
assert_screen "desktop_runner";
|
||||||
type_string $program, 20;
|
type_string $program, 20;
|
||||||
sleep 5; # because of KDE dialog - SUSE guys are doing the same!
|
sleep 5; # because of KDE dialog - SUSE guys are doing the same!
|
||||||
|
@ -1,46 +0,0 @@
|
|||||||
package modularity;
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
use base 'Exporter';
|
|
||||||
use Exporter;
|
|
||||||
use lockapi;
|
|
||||||
use testapi;
|
|
||||||
use utils;
|
|
||||||
|
|
||||||
our @EXPORT = qw(parse_module_list is_listed);
|
|
||||||
|
|
||||||
# This subroutine takes the output from the dnf module list command
|
|
||||||
# and deletes all unnecessary stuff and returns an array of hash
|
|
||||||
# references where each hash consists of (module, stream, profile).
|
|
||||||
# The subroutine only recognizes one profile but it is enough
|
|
||||||
# for the sake of the modularity testing.
|
|
||||||
|
|
||||||
sub parse_module_list {
|
|
||||||
my $output = shift;
|
|
||||||
my @output_lines = split(/\n/, $output);
|
|
||||||
my @parsed_list;
|
|
||||||
|
|
||||||
foreach my $line (@output_lines) {
|
|
||||||
my ($module, $stream, $profile) = split(/\s+/, $line);
|
|
||||||
unless ($module =~ /Fedora|Last|Hint|Name|^$/) {
|
|
||||||
$profile =~ s/,$//;
|
|
||||||
my %module = ("module" => $module, "stream" => $stream, "profile" => $profile);
|
|
||||||
push(@parsed_list, \%module);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return @parsed_list;
|
|
||||||
}
|
|
||||||
|
|
||||||
# This subroutine iterates over the given list of module hashes and returns True
|
|
||||||
# if it finds it in the list.
|
|
||||||
sub is_listed {
|
|
||||||
my ($module, $stream, $listref) = @_;
|
|
||||||
my $found = 0;
|
|
||||||
foreach (@{$listref}) {
|
|
||||||
if ($_->{module} eq $module and $_->{stream} eq $stream) {
|
|
||||||
$found = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $found;
|
|
||||||
}
|
|
193
lib/utils.pm
@ -4,10 +4,9 @@ use strict;
|
|||||||
|
|
||||||
use base 'Exporter';
|
use base 'Exporter';
|
||||||
use Exporter;
|
use Exporter;
|
||||||
|
|
||||||
use lockapi;
|
use lockapi;
|
||||||
use testapi qw(is_serial_terminal :DEFAULT);
|
use testapi qw(is_serial_terminal :DEFAULT);
|
||||||
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 setup_repos repo_setup get_workarounds disable_updates_repos 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 disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log repos_mirrorlist register_application get_registered_applications solidify_wallpaper check_and_install_git download_testdata make_serial_writable set_update_notification_timestamp kde_doublek_workaround/;
|
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 setup_repos repo_setup get_workarounds disable_updates_repos cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop quit_firefox advisory_get_installed_packages acnp_handle_output advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log repos_mirrorlist register_application get_registered_applications desktop_launch_terminal solidify_wallpaper check_and_install_git download_testdata make_serial_writable set_update_notification_timestamp kde_doublek_workaround dm_perform_login/;
|
||||||
|
|
||||||
|
|
||||||
# We introduce this global variable to hold the list of applications that have
|
# We introduce this global variable to hold the list of applications that have
|
||||||
@ -475,8 +474,10 @@ sub get_workarounds {
|
|||||||
my $version = shift || get_var("VERSION");
|
my $version = shift || get_var("VERSION");
|
||||||
my %workarounds = (
|
my %workarounds = (
|
||||||
"39" => [],
|
"39" => [],
|
||||||
"40" => ["FEDORA-2024-f86a143437"],
|
"40" => [],
|
||||||
"41" => [],
|
"41" => [],
|
||||||
|
"42" => ["FEDORA-2024-b3e53a2b43"],
|
||||||
|
"eln" => [],
|
||||||
);
|
);
|
||||||
my $advortasks = $workarounds{$version};
|
my $advortasks = $workarounds{$version};
|
||||||
return @$advortasks;
|
return @$advortasks;
|
||||||
@ -499,10 +500,6 @@ sub disable_updates_repos {
|
|||||||
# on dnf 4 vs. dnf 5 and really sed is just as easy
|
# on dnf 4 vs. dnf 5 and really sed is just as easy
|
||||||
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates-testing.repo';
|
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates-testing.repo';
|
||||||
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates.repo' if ($args{both});
|
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates.repo' if ($args{both});
|
||||||
unless (script_run 'test -f /etc/yum.repos.d/fedora-updates-testing-modular.repo') {
|
|
||||||
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates-testing-modular.repo';
|
|
||||||
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates-modular.repo' if ($args{both});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub _repo_setup_compose {
|
sub _repo_setup_compose {
|
||||||
@ -517,12 +514,11 @@ sub _repo_setup_compose {
|
|||||||
my $location = get_var("LOCATION");
|
my $location = get_var("LOCATION");
|
||||||
return unless $location;
|
return unless $location;
|
||||||
disable_updates_repos(both => 1);
|
disable_updates_repos(both => 1);
|
||||||
# we use script_run here as the rawhide and modular repo files
|
# we use script_run here as the rawhide repo files
|
||||||
# won't always exist and we don't want to bother testing or
|
# won't always exist and we don't want to bother testing or
|
||||||
# predicting their existence; assert_script_run doesn't buy you
|
# predicting their existence; assert_script_run doesn't buy you
|
||||||
# much with sed as it'll return 0 even if it replaced nothing
|
# much with sed as it'll return 0 even if it replaced nothing
|
||||||
script_run "sed -i -e 's,^metalink,#metalink,g' -e 's,^mirrorlist,#mirrorlist,g' -e 's,^#baseurl.*basearch,baseurl=${location}/Everything/\$basearch,g' -e 's,^#baseurl.*source,baseurl=${location}/Everything/source,g' /etc/yum.repos.d/{fedora,fedora-rawhide}.repo", 0;
|
script_run "sed -i -e 's,^metalink,#metalink,g' -e 's,^mirrorlist,#mirrorlist,g' -e 's,^#baseurl.*basearch,baseurl=${location}/Everything/\$basearch,g' -e 's,^#baseurl.*source,baseurl=${location}/Everything/source,g' /etc/yum.repos.d/{fedora,fedora-rawhide}.repo", 0;
|
||||||
script_run "sed -i -e 's,^metalink,#metalink,g' -e 's,^mirrorlist,#mirrorlist,g' -e 's,^#baseurl.*basearch,baseurl=${location}/Modular/\$basearch,g' -e 's,^#baseurl.*source,baseurl=${location}/Modular/source,g' /etc/yum.repos.d/{fedora-modular,fedora-rawhide-modular}.repo", 0;
|
|
||||||
|
|
||||||
# this can be used for debugging if something is going wrong
|
# this can be used for debugging if something is going wrong
|
||||||
# unless (script_run 'pushd /etc/yum.repos.d && tar czvf yumreposd.tar.gz * && popd') {
|
# unless (script_run 'pushd /etc/yum.repos.d && tar czvf yumreposd.tar.gz * && popd') {
|
||||||
@ -593,8 +589,12 @@ sub setup_repos {
|
|||||||
if ($args{waonly} || $tag || $copr) {
|
if ($args{waonly} || $tag || $copr) {
|
||||||
return unless (@was);
|
return unless (@was);
|
||||||
}
|
}
|
||||||
# if we got this far, we're definitely downloading *something*
|
# if we got this far, we're definitely downloading *something* so
|
||||||
script_run "dnf -y install createrepo_c bodhi-client koji", 300;
|
# install the download tools. split bodhi-client out because it
|
||||||
|
# isn't there on ELN currently, which means we can't use workarounds
|
||||||
|
# specified as update IDs on ELN
|
||||||
|
script_run "dnf -y install createrepo_c koji", 300;
|
||||||
|
script_run "dnf -y install bodhi-client", 300;
|
||||||
get_setup_repos_script;
|
get_setup_repos_script;
|
||||||
my $wastring = join(',', @was);
|
my $wastring = join(',', @was);
|
||||||
my $udstring;
|
my $udstring;
|
||||||
@ -701,8 +701,11 @@ sub _repo_setup_updates {
|
|||||||
disable_updates_repos(both => 0) if ($version > $currrel);
|
disable_updates_repos(both => 0) if ($version > $currrel);
|
||||||
# use the buildroot repo on Rawhide: see e.g.
|
# use the buildroot repo on Rawhide: see e.g.
|
||||||
# https://pagure.io/fedora-ci/general/issue/376 for why
|
# https://pagure.io/fedora-ci/general/issue/376 for why
|
||||||
if (get_var("VERSION") eq get_var("RAWREL") && get_var("TEST") ne "support_server") {
|
if ($version eq get_var("RAWREL") && get_var("TEST") ne "support_server") {
|
||||||
assert_script_run 'printf "[koji-rawhide]\nname=koji-rawhide\nbaseurl=https://kojipkgs.fedoraproject.org/repos/rawhide/latest/' . $arch . '/\ncost=2000\nenabled=1\ngpgcheck=0\n" > /etc/yum.repos.d/koji-rawhide.repo';
|
assert_script_run 'printf "[koji-rawhide]\nname=koji-rawhide\nbaseurl=https://kojipkgs.fedoraproject.org/repos/f' . $version . '-build/latest/' . $arch . '/\ncost=2000\nenabled=1\ngpgcheck=0\n" > /etc/yum.repos.d/koji-rawhide.repo';
|
||||||
|
}
|
||||||
|
if (lc(get_var("VERSION")) eq "eln" && get_var("TEST") ne "support_server") {
|
||||||
|
assert_script_run 'printf "[koji-eln]\nname=koji-eln\nbaseurl=https://kojipkgs.fedoraproject.org/repos/eln-build/latest/' . $arch . '/\ncost=2000\nenabled=1\ngpgcheck=0\n" > /etc/yum.repos.d/koji-eln.repo';
|
||||||
}
|
}
|
||||||
if (get_var("CANNED")) {
|
if (get_var("CANNED")) {
|
||||||
# install and use en_US.UTF-8 locale for consistent sort
|
# install and use en_US.UTF-8 locale for consistent sort
|
||||||
@ -729,7 +732,7 @@ sub _repo_setup_updates {
|
|||||||
# above (and their deps, which dnf will include automatically),
|
# above (and their deps, which dnf will include automatically),
|
||||||
# just in case they're in the update under test; otherwise we
|
# just in case they're in the update under test; otherwise we
|
||||||
# get a bogus failure for the package not being updated
|
# get a bogus failure for the package not being updated
|
||||||
script_run "dnf -y remove bodhi-client createrepo_c koji", 600 if (get_var("INSTALL") && !get_var("CANNED"));
|
script_run "dnf -y remove createrepo_c koji", 600 if (get_var("INSTALL") && !get_var("CANNED"));
|
||||||
}
|
}
|
||||||
# exit the toolbox on CANNED
|
# exit the toolbox on CANNED
|
||||||
if (get_var("CANNED")) {
|
if (get_var("CANNED")) {
|
||||||
@ -809,12 +812,23 @@ sub console_initial_setup {
|
|||||||
sub handle_welcome_screen {
|
sub handle_welcome_screen {
|
||||||
# handle the 'welcome' screen on GNOME and KDE since F38. shared
|
# handle the 'welcome' screen on GNOME and KDE since F38. shared
|
||||||
# in a few places
|
# in a few places
|
||||||
if (check_screen "getting_started", 45) {
|
my %args = @_;
|
||||||
|
my $timeout = $args{timeout} || 45;
|
||||||
|
if (check_screen "getting_started", $timeout) {
|
||||||
if (get_var("DESKTOP") eq "kde") {
|
if (get_var("DESKTOP") eq "kde") {
|
||||||
# just closing it seems to result in it running again on
|
# just closing it seems to result in it running again on
|
||||||
# next boot, so let's click Skip
|
# next boot, so let's click Skip
|
||||||
click_lastmatch;
|
click_lastmatch;
|
||||||
}
|
}
|
||||||
|
elsif (get_var("DESKTOP") eq "i3") {
|
||||||
|
# Press enter to start config, then move one line down
|
||||||
|
# and press enter once more to confirm.
|
||||||
|
send_key("ret");
|
||||||
|
sleep(1);
|
||||||
|
send_key("down");
|
||||||
|
sleep(1);
|
||||||
|
send_key("ret");
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
send_key "alt-f4";
|
send_key "alt-f4";
|
||||||
# for GNOME 40, alt-f4 doesn't work
|
# for GNOME 40, alt-f4 doesn't work
|
||||||
@ -865,29 +879,28 @@ sub gnome_initial_setup {
|
|||||||
# now, we're going to figure out how many of them this test will
|
# now, we're going to figure out how many of them this test will
|
||||||
# *actually* see...
|
# *actually* see...
|
||||||
if ($args{live}) {
|
if ($args{live}) {
|
||||||
# this is the flow we see when booting an F40+ Workstation live
|
# this is the flow we expect to see when booting live images
|
||||||
# we only get language and keyboard
|
# with anaconda webui, though as of 2024-08 it is unused as
|
||||||
|
# the patch has been dropped due to maintenance difficulty
|
||||||
@nexts = ('language', 'keyboard');
|
@nexts = ('language', 'keyboard');
|
||||||
}
|
}
|
||||||
if ($args{prelogin}) {
|
if ($args{prelogin}) {
|
||||||
# 'language', 'keyboard' and 'timezone' were skipped between F28
|
# On releases that use anaconda gtkui on live images, we
|
||||||
# and F39 in the 'new user' mode by
|
# configure g-i-s to skip 'language', 'keyboard' and 'timezone'
|
||||||
|
# using a custom vendor.conf:
|
||||||
# https://fedoraproject.org//wiki/Changes/ReduceInitialSetupRedundancy
|
# https://fedoraproject.org//wiki/Changes/ReduceInitialSetupRedundancy
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1474787 ,
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1474787 ,
|
||||||
# except 'language' was never *really* skipped (see above)
|
# but 'language' is never *really* skipped (see above)
|
||||||
if ($relnum < 41) {
|
if ($relnum < 42) {
|
||||||
@nexts = grep { $_ ne 'keyboard' } @nexts;
|
@nexts = grep { $_ ne 'keyboard' } @nexts;
|
||||||
@nexts = grep { $_ ne 'timezone' } @nexts;
|
@nexts = grep { $_ ne 'timezone' } @nexts;
|
||||||
}
|
}
|
||||||
# From gnome-initial-setup 45~beta-3 on, no screens are
|
# if g-i-s ran before anaconda (as expected on the live + webui
|
||||||
# skipped in vendor.conf. 'language' and 'keyboard' should be
|
# flow), anaconda forwards a g-i-s state file to the installed
|
||||||
# skipped (meaning 'language' is turned into 'welcome' and
|
# system, causing it to skip 'language' and 'keyboard' (meaning
|
||||||
# 'keyboard' is really skipped) on live installs because we saw
|
# 'language' is turned into 'welcome' and 'keyboard' is really
|
||||||
# them already, but this only works from anaconda 39.32.2 /
|
# skipped)
|
||||||
# 40.3 onwards. network installs and disk image deployments
|
if (match_has_tag "start_setup") {
|
||||||
# will show these screens (which is good for disk image
|
|
||||||
# deployments, but redundant for network installs)
|
|
||||||
elsif (match_has_tag "start_setup") {
|
|
||||||
# if we saw start_setup, that means 'language' was skipped
|
# if we saw start_setup, that means 'language' was skipped
|
||||||
# and we can assume 'keyboard' will also be skipped
|
# and we can assume 'keyboard' will also be skipped
|
||||||
@nexts = grep { $_ ne 'keyboard' } @nexts;
|
@nexts = grep { $_ ne 'keyboard' } @nexts;
|
||||||
@ -1105,25 +1118,13 @@ sub check_desktop {
|
|||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($activematched) {
|
if ($activematched) {
|
||||||
# make sure we got to inactive after active
|
# make sure we got to inactive after active
|
||||||
die "never reached apps_menu_button_inactive!" unless (match_has_tag "apps_menu_button_inactive");
|
die "never reached apps_menu_button_inactive!" unless (match_has_tag "apps_menu_button_inactive");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub download_modularity_tests {
|
|
||||||
# Download the modularity test script, place in the system and then
|
|
||||||
# modify the access rights to make it executable.
|
|
||||||
my ($whitelist) = @_;
|
|
||||||
# we need python3-yaml for the script to run
|
|
||||||
assert_script_run 'dnf -y install python3-yaml', 180;
|
|
||||||
assert_script_run 'curl --retry-delay 10 --max-time 30 --retry 5 -o /root/test.py https://pagure.io/fedora-qa/modularity_testing_scripts/raw/master/f/modular_functions.py', timeout => 180;
|
|
||||||
if ($whitelist eq 'whitelist') {
|
|
||||||
assert_script_run 'curl --retry-delay 10 --max-time 30 --retry 5 -o /root/whitelist https://pagure.io/fedora-qa/modularity_testing_scripts/raw/master/f/whitelist', timeout => 180;
|
|
||||||
}
|
|
||||||
assert_script_run 'chmod 755 /root/test.py';
|
|
||||||
}
|
|
||||||
|
|
||||||
sub quit_firefox {
|
sub quit_firefox {
|
||||||
# Quit Firefox, handling the 'close multiple tabs' warning screen if
|
# Quit Firefox, handling the 'close multiple tabs' warning screen if
|
||||||
# it shows up. Expects to quit to a recognizable console
|
# it shows up. Expects to quit to a recognizable console
|
||||||
@ -1235,6 +1236,27 @@ sub advisory_get_installed_packages {
|
|||||||
upload_logs "/mnt/testedpkgs.txt", failok => 1;
|
upload_logs "/mnt/testedpkgs.txt", failok => 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub acnp_handle_output {
|
||||||
|
my ($ret, $wrapper, $fatal) = @_;
|
||||||
|
# handle output of updvercheck.py. Split out so the lorax
|
||||||
|
# tests can use the same logic
|
||||||
|
if ($ret == 2) {
|
||||||
|
record_soft_failure "Some update package(s) not installed, but this is probably OK, see script output";
|
||||||
|
}
|
||||||
|
if ($ret == 1 || $ret == 3) {
|
||||||
|
my $message = "Package(s) from update not installed when it should have been! See script output";
|
||||||
|
$message = "Script failed unexpectedly!" if ($ret == 1);
|
||||||
|
if ($fatal) {
|
||||||
|
set_var("_ACNMP_DONE", "1") unless $wrapper;
|
||||||
|
die $message;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
# if we're already in post_fail_hook, we don't want to die again
|
||||||
|
record_info $message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sub advisory_check_nonmatching_packages {
|
sub advisory_check_nonmatching_packages {
|
||||||
# For update tests (this only works if we've been through
|
# For update tests (this only works if we've been through
|
||||||
# _repo_setup_updates), figure out if we have a different version
|
# _repo_setup_updates), figure out if we have a different version
|
||||||
@ -1290,23 +1312,7 @@ sub advisory_check_nonmatching_packages {
|
|||||||
my $cmd = 'python3 ./updvercheck.py /mnt/updatepkgs.txt /tmp/installedupdatepkgs.txt';
|
my $cmd = 'python3 ./updvercheck.py /mnt/updatepkgs.txt /tmp/installedupdatepkgs.txt';
|
||||||
$cmd .= " $advisory" if ($advisory);
|
$cmd .= " $advisory" if ($advisory);
|
||||||
my $ret = script_run $cmd;
|
my $ret = script_run $cmd;
|
||||||
# 2 is warnings only, 3 is problems, 1 means the script died in
|
acnp_handle_output($ret, $wrapper, $args{fatal});
|
||||||
# some other way (probably a bug)
|
|
||||||
if ($ret == 2) {
|
|
||||||
record_soft_failure "Some update package(s) not installed, but this is probably OK, see script output";
|
|
||||||
}
|
|
||||||
if ($ret == 1 || $ret == 3) {
|
|
||||||
my $message = "Package(s) from update not installed when it should have been! See script output";
|
|
||||||
$message = "Script failed unexpectedly!" if ($ret == 1);
|
|
||||||
if ($args{fatal}) {
|
|
||||||
set_var("_ACNMP_DONE", "1") unless $wrapper;
|
|
||||||
die $message;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
# if we're already in post_fail_hook, we don't want to die again
|
|
||||||
record_info $message;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub select_rescue_mode {
|
sub select_rescue_mode {
|
||||||
@ -1375,13 +1381,15 @@ sub menu_launch_type {
|
|||||||
# launcher, typing the specified string and hitting enter. Pass
|
# launcher, typing the specified string and hitting enter. Pass
|
||||||
# the string to be typed to launch whatever it is you want.
|
# the string to be typed to launch whatever it is you want.
|
||||||
my $app = shift;
|
my $app = shift;
|
||||||
|
my $key = 'super';
|
||||||
|
$key = 'alt-d' if (get_var("DESKTOP") eq "i3");
|
||||||
|
if (get_var("DESKTOP") eq "kde") {
|
||||||
# To overcome BZ2097208, let's move the mouse out of the way
|
# To overcome BZ2097208, let's move the mouse out of the way
|
||||||
# and give the launcher some time to take the correct focus.
|
# and give the launcher some time to take the correct focus.
|
||||||
if (get_var("DESKTOP") eq "kde") {
|
|
||||||
diag("Moving the mouse away from the launcher.");
|
diag("Moving the mouse away from the launcher.");
|
||||||
mouse_set(1, 1);
|
mouse_set(1, 1);
|
||||||
}
|
}
|
||||||
wait_screen_change { send_key 'super'; };
|
wait_screen_change { send_key $key; };
|
||||||
# srsly KDE y u so slo
|
# srsly KDE y u so slo
|
||||||
wait_still_screen 3;
|
wait_still_screen 3;
|
||||||
type_very_safely $app;
|
type_very_safely $app;
|
||||||
@ -1601,6 +1609,22 @@ sub register_application {
|
|||||||
print("APPLICATION REGISTERED: $application \n");
|
print("APPLICATION REGISTERED: $application \n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# launch a terminal from a desktop, using the most efficient/reliable
|
||||||
|
# approach (not appropriate if we really need to test launching it a
|
||||||
|
# specific way)
|
||||||
|
sub desktop_launch_terminal {
|
||||||
|
my $desktop = get_var("DESKTOP");
|
||||||
|
if ($desktop eq "i3") {
|
||||||
|
send_key "alt-ret";
|
||||||
|
}
|
||||||
|
elsif ($desktop eq "kde") {
|
||||||
|
send_key "ctrl-alt-t";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
menu_launch_type "terminal";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# The KDE desktop tests are very difficult to maintain, because the transparency
|
# The KDE desktop tests are very difficult to maintain, because the transparency
|
||||||
# of the menu requires a lot of different needles to cover the elements.
|
# of the menu requires a lot of different needles to cover the elements.
|
||||||
# Therefore it is useful to change the background to a solid colour.
|
# Therefore it is useful to change the background to a solid colour.
|
||||||
@ -1644,7 +1668,8 @@ sub solidify_wallpaper {
|
|||||||
}
|
}
|
||||||
elsif ($desktop eq "gnome") {
|
elsif ($desktop eq "gnome") {
|
||||||
# Start the terminal to set up backgrounds.
|
# Start the terminal to set up backgrounds.
|
||||||
menu_launch_type "gnome-terminal";
|
desktop_launch_terminal;
|
||||||
|
assert_screen "apps_run_terminal";
|
||||||
# wait to be sure it's fully open
|
# wait to be sure it's fully open
|
||||||
wait_still_screen(stilltime => 5, similarity_level => 38);
|
wait_still_screen(stilltime => 5, similarity_level => 38);
|
||||||
# When the application opens, run command in it to set the background to black
|
# When the application opens, run command in it to set the background to black
|
||||||
@ -1752,7 +1777,8 @@ sub set_update_notification_timestamp {
|
|||||||
sub start_applications {
|
sub start_applications {
|
||||||
my @applications = @_;
|
my @applications = @_;
|
||||||
# Open the terminal
|
# Open the terminal
|
||||||
menu_launch_type("terminal");
|
desktop_launch_terminal;
|
||||||
|
assert_screen("apps_run_terminal");
|
||||||
wait_still_screen(2);
|
wait_still_screen(2);
|
||||||
# Iterate over the application list
|
# Iterate over the application list
|
||||||
# and start each application from it.
|
# and start each application from it.
|
||||||
@ -1772,11 +1798,46 @@ sub start_applications {
|
|||||||
# close operation before we do anything 'real'. this is repeated in
|
# close operation before we do anything 'real'. this is repeated in
|
||||||
# several tests so we share it here
|
# several tests so we share it here
|
||||||
sub kde_doublek_workaround {
|
sub kde_doublek_workaround {
|
||||||
|
my %args = @_;
|
||||||
|
$args{key} //= 'k';
|
||||||
wait_screen_change { send_key 'super'; };
|
wait_screen_change { send_key 'super'; };
|
||||||
wait_still_screen 3;
|
wait_still_screen 3;
|
||||||
send_key "k";
|
send_key $args{key};
|
||||||
wait_still_screen 5;
|
wait_still_screen 5;
|
||||||
send_key "esc";
|
send_key 'esc';
|
||||||
|
wait_still_screen 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
# handle login at a graphical DM once we have reached the initial
|
||||||
|
# DM screen. Factored out of _graphical_wait_login for reuse by
|
||||||
|
# tests that reboot and need to login afterwards
|
||||||
|
sub dm_perform_login {
|
||||||
|
my ($desktop, $password) = @_;
|
||||||
|
# GDM 3.24.1 dumps a cursor in the middle of the screen here...
|
||||||
|
mouse_hide;
|
||||||
|
if ($desktop eq 'gnome') {
|
||||||
|
# we have to hit enter to get the password dialog, and it
|
||||||
|
# doesn't always work for some reason so just try it three
|
||||||
|
# times
|
||||||
|
send_key_until_needlematch("graphical_login_input", "ret", 3, 5);
|
||||||
|
}
|
||||||
|
assert_screen "graphical_login_input";
|
||||||
|
# seems like we often double-type on aarch64 if we start right
|
||||||
|
# away
|
||||||
|
wait_still_screen(stilltime => 5, similarity_level => 38);
|
||||||
|
if (get_var("SWITCHED_LAYOUT")) {
|
||||||
|
# see _do_install_and_reboot; when layout is switched
|
||||||
|
# user password is doubled to contain both US and native
|
||||||
|
# chars
|
||||||
|
desktop_switch_layout 'ascii';
|
||||||
|
type_very_safely $password;
|
||||||
|
desktop_switch_layout 'native';
|
||||||
|
type_very_safely $password;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
type_very_safely $password;
|
||||||
|
}
|
||||||
|
send_key "ret";
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
7
main.pm
@ -352,11 +352,8 @@ sub load_postinstall_tests() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# load the ADVISORY / KOJITASK post-install test - this records which
|
# load the ADVISORY / KOJITASK post-install test - this records which
|
||||||
# update or task packages were actually installed during the test. Don't
|
# update or task packages were actually installed during the test.
|
||||||
# do this for netinst tests; as these just use the default install repo,
|
if (get_var("ADVISORY_OR_TASK") && !get_var("NO_ADVISORY_POST")) {
|
||||||
# they will not get the packages from the update. But installs from live
|
|
||||||
# image and ostree installer image should get them.
|
|
||||||
if (get_var("ADVISORY_OR_TASK") && get_var("TEST") ne "install_default_update_netinst") {
|
|
||||||
# don't do this for support server unless the update is for the same
|
# don't do this for support server unless the update is for the same
|
||||||
# release as the support server disk image, as we don't install the
|
# release as the support server disk image, as we don't install the
|
||||||
# updates on support server when they differ
|
# updates on support server when they differ
|
||||||
|
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 787,
|
||||||
|
"width": 135,
|
||||||
|
"type": "match",
|
||||||
|
"ypos": 34,
|
||||||
|
"height": 14
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"LANGUAGE-french",
|
||||||
|
"prerelease_note"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 172 KiB |
15
needles/anaconda/identification/version_42-20240814.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 812,
|
||||||
|
"ypos": 15,
|
||||||
|
"width": 86,
|
||||||
|
"height": 16,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"version_42_ident"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/identification/version_42-20240814.png
Normal file
After Width: | Height: | Size: 145 KiB |
@ -3,13 +3,13 @@
|
|||||||
{
|
{
|
||||||
"height": 16,
|
"height": 16,
|
||||||
"type": "match",
|
"type": "match",
|
||||||
"ypos": 200,
|
"xpos": 812,
|
||||||
"width": 31,
|
"width": 86,
|
||||||
"xpos": 44
|
"ypos": 15
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"properties": [],
|
"properties": [],
|
||||||
"tags": [
|
"tags": [
|
||||||
"user_confirm_jack"
|
"version_42_ident"
|
||||||
]
|
]
|
||||||
}
|
}
|
BIN
needles/anaconda/identification/version_42-20240815.png
Normal file
After Width: | Height: | Size: 154 KiB |
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"width": 178,
|
||||||
|
"xpos": 55,
|
||||||
|
"ypos": 55,
|
||||||
|
"height": 27
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"version_42_ident"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/identification/version_42-webui-20240814.png
Normal file
After Width: | Height: | Size: 75 KiB |
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 17,
|
||||||
|
"ypos": 512,
|
||||||
|
"type": "match",
|
||||||
|
"width": 178,
|
||||||
|
"xpos": 608
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_install_destination_save_passphrase",
|
||||||
|
"ENV-DISTRI-fedora",
|
||||||
|
"LANGUAGE-french"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 221 KiB |
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 40,
|
||||||
|
"ypos": 340,
|
||||||
|
"width": 19,
|
||||||
|
"height": 17
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_install_destination_select_disk_1"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 120 KiB |
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 17,
|
||||||
|
"xpos": 40,
|
||||||
|
"ypos": 340,
|
||||||
|
"type": "match",
|
||||||
|
"width": 19
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_install_destination_select_disk_1"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 41 KiB |
@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"width": 314,
|
||||||
|
"type": "match",
|
||||||
|
"height": 20,
|
||||||
|
"xpos": 705,
|
||||||
|
"ypos": 670
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"width": 48,
|
||||||
|
"ypos": 732,
|
||||||
|
"xpos": 902,
|
||||||
|
"height": 14
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_install_done",
|
||||||
|
"ENV-DISTRI-fedora",
|
||||||
|
"LANGUAGE-english"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 17 KiB |
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 15,
|
||||||
|
"xpos": 260,
|
||||||
|
"ypos": 317,
|
||||||
|
"width": 68,
|
||||||
|
"type": "match",
|
||||||
|
"click_point": {
|
||||||
|
"xpos": 6.5,
|
||||||
|
"ypos": 7.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_install_root_password_screen",
|
||||||
|
"ENV-DISTRI-fedora"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 30 KiB |
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"width": 73,
|
||||||
|
"height": 17,
|
||||||
|
"xpos": 245,
|
||||||
|
"ypos": 161
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"width": 62,
|
||||||
|
"height": 17,
|
||||||
|
"xpos": 255,
|
||||||
|
"ypos": 264
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ypos": 50,
|
||||||
|
"height": 24,
|
||||||
|
"xpos": 11,
|
||||||
|
"type": "match",
|
||||||
|
"width": 57
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_install_user_creation_screen",
|
||||||
|
"ENV-DISTRI-fedora",
|
||||||
|
"LANGUAGE-english"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 51 KiB |
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"width": 49,
|
||||||
|
"xpos": 218,
|
||||||
|
"height": 31,
|
||||||
|
"ypos": 194
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"LANGUAGE-arabic",
|
||||||
|
"anaconda_select_install_lang_filtered"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 105 KiB |
16
needles/anaconda/lang_select/install_lang-eln-20241016.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 361,
|
||||||
|
"height": 28,
|
||||||
|
"ypos": 111,
|
||||||
|
"type": "match",
|
||||||
|
"width": 87
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_select_install_lang",
|
||||||
|
"ENV-DISTRI-fedora"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/lang_select/install_lang-eln-20241016.png
Normal file
After Width: | Height: | Size: 150 KiB |
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"width": 171,
|
||||||
|
"type": "match",
|
||||||
|
"ypos": 210,
|
||||||
|
"height": 18,
|
||||||
|
"xpos": 606
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_select_install_lang_selected",
|
||||||
|
"anaconda_select_install_lang_filtered",
|
||||||
|
"ENV-DISTRI-fedora",
|
||||||
|
"LANGUAGE-english"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 47 KiB |
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"width": 110,
|
||||||
|
"ypos": 706,
|
||||||
|
"xpos": 888,
|
||||||
|
"height": 17
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_main_hub_begin_installation",
|
||||||
|
"ENV-DISTRI-fedora",
|
||||||
|
"LANGUAGE-english"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/main_hub/begin_installation-eln-20241016.png
Normal file
After Width: | Height: | Size: 43 KiB |
15
needles/anaconda/network/address_add-20241021.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 18,
|
||||||
|
"xpos": 663,
|
||||||
|
"ypos": 267,
|
||||||
|
"width": 35,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_network_address_add"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/network/address_add-20241021.png
Normal file
After Width: | Height: | Size: 72 KiB |
15
needles/anaconda/network/ipv4-20241017.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"width": 86,
|
||||||
|
"ypos": 143,
|
||||||
|
"height": 17,
|
||||||
|
"xpos": 513
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_network_ipv4"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/network/ipv4-20241017.png
Normal file
After Width: | Height: | Size: 174 KiB |
15
needles/anaconda/network/method-20241021.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"width": 342,
|
||||||
|
"xpos": 69,
|
||||||
|
"height": 15,
|
||||||
|
"ypos": 192
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_network_method"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/network/method-20241021.png
Normal file
After Width: | Height: | Size: 176 KiB |
15
needles/anaconda/network/method_manual-20241021.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"ypos": 255,
|
||||||
|
"xpos": 137,
|
||||||
|
"height": 18,
|
||||||
|
"width": 52,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_network_method_manual"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/network/method_manual-20241021.png
Normal file
After Width: | Height: | Size: 182 KiB |
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 339,
|
||||||
|
"ypos": 346,
|
||||||
|
"width": 116,
|
||||||
|
"height": 16,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_blivet_part_boot_selected"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 140 KiB |
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"width": 51,
|
||||||
|
"xpos": 412,
|
||||||
|
"height": 12,
|
||||||
|
"ypos": 212
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_blivet_vdb_selected"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 150 KiB |
15
needles/anaconda/webui/anaconda_webui_select-20240925.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 270,
|
||||||
|
"ypos": 337,
|
||||||
|
"width": 50,
|
||||||
|
"height": 17,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_webui_select"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/webui/anaconda_webui_select-20240925.png
Normal file
After Width: | Height: | Size: 47 KiB |
24
needles/anaconda/webui/install_done-webui-exit-20241026.json
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"ypos": 148,
|
||||||
|
"type": "match",
|
||||||
|
"height": 58,
|
||||||
|
"width": 58,
|
||||||
|
"xpos": 483
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ypos": 341,
|
||||||
|
"type": "match",
|
||||||
|
"height": 17,
|
||||||
|
"width": 31,
|
||||||
|
"xpos": 442
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_install_done",
|
||||||
|
"ENV-DISTRI-fedora",
|
||||||
|
"LANGUAGE-english"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/webui/install_done-webui-exit-20241026.png
Normal file
After Width: | Height: | Size: 90 KiB |
17
needles/anaconda/webui/select_disk_1-webui-20240925.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 363,
|
||||||
|
"ypos": 188,
|
||||||
|
"width": 17,
|
||||||
|
"height": 24
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_install_destination_select_disk_1",
|
||||||
|
"ENV-DISTRI-fedora",
|
||||||
|
"ENV-FLAVOR-server"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/webui/select_disk_1-webui-20240925.png
Normal file
After Width: | Height: | Size: 112 KiB |
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 17,
|
||||||
|
"xpos": 364,
|
||||||
|
"width": 154,
|
||||||
|
"type": "match",
|
||||||
|
"ypos": 726
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-fedora",
|
||||||
|
"LANGUAGE-english",
|
||||||
|
"anaconda_webui_begin_installation"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/webui/webui_begin_installation-20240819.png
Normal file
After Width: | Height: | Size: 92 KiB |
15
needles/anaconda/webui/webui_disk_select-20240925.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 24,
|
||||||
|
"ypos": 249,
|
||||||
|
"xpos": 266,
|
||||||
|
"width": 141,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"anaconda_webui_disk_select"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/anaconda/webui/webui_disk_select-20240925.png
Normal file
After Width: | Height: | Size: 124 KiB |
15
needles/background/41_background-20240816.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 457,
|
||||||
|
"ypos": 249,
|
||||||
|
"width": 130,
|
||||||
|
"height": 37,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"41_background"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/background/41_background-20240816.png
Normal file
After Width: | Height: | Size: 776 KiB |
16
needles/background/41_background_dark-20240816.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 459,
|
||||||
|
"ypos": 248,
|
||||||
|
"width": 127,
|
||||||
|
"height": 39,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"41_background",
|
||||||
|
"41_background_dark"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/background/41_background_dark-20240816.png
Normal file
After Width: | Height: | Size: 968 KiB |
15
needles/browser/kernelorg_patch-nocss-20240801.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 17,
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 410,
|
||||||
|
"width": 55,
|
||||||
|
"ypos": 736
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"browser_kernelorg_patch"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/browser/kernelorg_patch-nocss-20240801.png
Normal file
After Width: | Height: | Size: 224 KiB |
19
needles/cockpit/cockpit_updates_auto_all-20240829.json
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"click_point": {
|
||||||
|
"xpos": 8,
|
||||||
|
"ypos": 8
|
||||||
|
},
|
||||||
|
"width": 44,
|
||||||
|
"height": 19,
|
||||||
|
"xpos": 534,
|
||||||
|
"ypos": 316
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"cockpit_updates_auto_all"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/cockpit/cockpit_updates_auto_all-20240829.png
Normal file
After Width: | Height: | Size: 117 KiB |
15
needles/cockpit/logs_entry_detail-codefile-20240816.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 16,
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 263,
|
||||||
|
"width": 81,
|
||||||
|
"ypos": 519
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"cockpit_logs_detail"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/cockpit/logs_entry_detail-codefile-20240816.png
Normal file
After Width: | Height: | Size: 192 KiB |
15
needles/console/console_in_toolbox-20241005.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 1,
|
||||||
|
"width": 20,
|
||||||
|
"ypos": 753,
|
||||||
|
"type": "match",
|
||||||
|
"height": 14
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"console_in_toolbox"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/console/console_in_toolbox-20241005.png
Normal file
After Width: | Height: | Size: 84 KiB |
15
needles/console/console_in_toolbox-fcos-20241011.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 1,
|
||||||
|
"height": 14,
|
||||||
|
"ypos": 385,
|
||||||
|
"type": "match",
|
||||||
|
"width": 20
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"console_in_toolbox"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/console/console_in_toolbox-fcos-20241011.png
Normal file
After Width: | Height: | Size: 40 KiB |
25
needles/console/root_logged_in-dracut-20241005.json
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 71,
|
||||||
|
"width": 72,
|
||||||
|
"ypos": 625,
|
||||||
|
"type": "match",
|
||||||
|
"height": 14
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"xpos": 48,
|
||||||
|
"ypos": 753,
|
||||||
|
"width": 30,
|
||||||
|
"height": 15,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"root_logged_in",
|
||||||
|
"root_console",
|
||||||
|
"root_console_dracut",
|
||||||
|
"ENV-DISTRI-fedora"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/console/root_logged_in-dracut-20241005.png
Normal file
After Width: | Height: | Size: 95 KiB |
16
needles/firefox/download_complete-20241030.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 884,
|
||||||
|
"width": 16,
|
||||||
|
"height": 19,
|
||||||
|
"type": "match",
|
||||||
|
"ypos": 86
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"browser_download_complete",
|
||||||
|
"firefox_download_complete"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/firefox/download_complete-20241030.png
Normal file
After Width: | Height: | Size: 293 KiB |
30
needles/firefox/firefox-kde-20241107.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"width": 17,
|
||||||
|
"ypos": 56,
|
||||||
|
"height": 18,
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 88
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"width": 17,
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 991,
|
||||||
|
"height": 18,
|
||||||
|
"ypos": 56
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ypos": 91,
|
||||||
|
"xpos": 369,
|
||||||
|
"type": "match",
|
||||||
|
"height": 17,
|
||||||
|
"width": 19
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"firefox",
|
||||||
|
"browser"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/firefox/firefox-kde-20241107.png
Normal file
After Width: | Height: | Size: 942 KiB |
16
needles/firefox/firefox_close_tabs-20241112.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"width": 78,
|
||||||
|
"ypos": 207,
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 631,
|
||||||
|
"height": 14
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"apps_run_firefox_stop",
|
||||||
|
"firefox_close_tabs"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/firefox/firefox_close_tabs-20241112.png
Normal file
After Width: | Height: | Size: 166 KiB |
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"area": [
|
"area": [
|
||||||
{
|
{
|
||||||
"height": 15,
|
"ypos": 17,
|
||||||
"xpos": 40,
|
"xpos": 447,
|
||||||
"ypos": 217,
|
|
||||||
"type": "match",
|
"type": "match",
|
||||||
"width": 31
|
"height": 15,
|
||||||
|
"width": 135
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"properties": [],
|
"properties": [],
|
||||||
"tags": [
|
"tags": [
|
||||||
"user_confirm_jack"
|
"abrt_runs"
|
||||||
]
|
]
|
||||||
}
|
}
|
BIN
needles/gnome/apps/abrt_runs-20241105.png
Normal file
After Width: | Height: | Size: 38 KiB |
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"area": [
|
"area": [
|
||||||
{
|
{
|
||||||
"width": 39,
|
|
||||||
"height": 21,
|
|
||||||
"type": "match",
|
"type": "match",
|
||||||
"xpos": 185,
|
"height": 21,
|
||||||
"ypos": 165
|
"xpos": 447,
|
||||||
|
"ypos": 46,
|
||||||
|
"width": 133
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"properties": [],
|
"properties": [],
|
||||||
"tags": [
|
"tags": [
|
||||||
"user_confirm_jack"
|
"apps_run_abrt"
|
||||||
]
|
]
|
||||||
}
|
}
|
BIN
needles/gnome/apps/apps_run_abrt-20241105.png
Normal file
After Width: | Height: | Size: 26 KiB |
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"area": [
|
"area": [
|
||||||
{
|
{
|
||||||
"height": 21,
|
"width": 133,
|
||||||
"width": 39,
|
"ypos": 46,
|
||||||
"ypos": 165,
|
|
||||||
"type": "match",
|
"type": "match",
|
||||||
"xpos": 185
|
"height": 21,
|
||||||
|
"xpos": 447
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"properties": [],
|
"properties": [],
|
||||||
"tags": [
|
"tags": [
|
||||||
"user_confirm_jack"
|
"apps_run_abrt"
|
||||||
]
|
]
|
||||||
}
|
}
|
BIN
needles/gnome/apps/apps_run_abrt-20241106.png
Normal file
After Width: | Height: | Size: 27 KiB |
15
needles/gnome/apps/apps_run_gvim-20240909.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"width": 129,
|
||||||
|
"xpos": 446,
|
||||||
|
"ypos": 119,
|
||||||
|
"type": "match",
|
||||||
|
"height": 19
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"apps_run_gvim"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/gnome/apps/apps_run_gvim-20240909.png
Normal file
After Width: | Height: | Size: 444 KiB |
22
needles/gnome/apps/apps_run_terminal-20240813.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"width": 25,
|
||||||
|
"xpos": 280,
|
||||||
|
"type": "match",
|
||||||
|
"ypos": 168,
|
||||||
|
"height": 21
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ypos": 125,
|
||||||
|
"xpos": 192,
|
||||||
|
"width": 25,
|
||||||
|
"type": "match",
|
||||||
|
"height": 20
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"apps_run_terminal"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/gnome/apps/apps_run_terminal-20240813.png
Normal file
After Width: | Height: | Size: 654 KiB |
15
needles/gnome/apps/apps_run_tour-20240909.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"width": 141,
|
||||||
|
"xpos": 442,
|
||||||
|
"ypos": 545,
|
||||||
|
"type": "match",
|
||||||
|
"height": 31
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"apps_run_tour"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/gnome/apps/apps_run_tour-20240909.png
Normal file
After Width: | Height: | Size: 45 KiB |
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 64,
|
||||||
|
"type": "match",
|
||||||
|
"width": 137,
|
||||||
|
"xpos": 229,
|
||||||
|
"ypos": 159
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"archiver_archive_created"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 33 KiB |
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 229,
|
||||||
|
"height": 64,
|
||||||
|
"ypos": 159,
|
||||||
|
"width": 137,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"value": "icon seems wrong, will report",
|
||||||
|
"name": "workaround"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"archiver_archive_created"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 83 KiB |
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"height": 64,
|
||||||
|
"xpos": 229,
|
||||||
|
"ypos": 159,
|
||||||
|
"width": 137
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"name": "workaround",
|
||||||
|
"value": "icon seems wrong, will report"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"archiver_archive_created"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 90 KiB |
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"ypos": 193,
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 670,
|
||||||
|
"width": 71,
|
||||||
|
"height": 19
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"archiver_button_create"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/gnome/apps/archiver/archiver_button_create-20240811.png
Normal file
After Width: | Height: | Size: 142 KiB |
15
needles/gnome/apps/archiver/archiver_file_one-20240811.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"ypos": 155,
|
||||||
|
"xpos": 257,
|
||||||
|
"width": 86,
|
||||||
|
"type": "match",
|
||||||
|
"height": 71
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"archiver_file_one"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/gnome/apps/archiver/archiver_file_one-20240811.png
Normal file
After Width: | Height: | Size: 86 KiB |
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 671,
|
||||||
|
"width": 57,
|
||||||
|
"ypos": 345,
|
||||||
|
"height": 22
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"archiver_format_selector"
|
||||||
|
]
|
||||||
|
}
|