Compare commits

...

35 Commits

Author SHA1 Message Date
Lukas Ruzicka fbaf1652d8 Create test suite for Desktop Keyring
This adds both the Gnome and the KDE tests to test the
Desktop Keyring. After a discussion with the Brno team,
how this could be tested without the need to rely on
external servers to log into, we set up a local FTP server,
we will log into it and remember the credentials and verify
that the credentials will be stored in the keyring correctly.
2024-04-26 11:22:25 +02:00
Adam Williamson 5cd9c83e73 Ensure repos are set up for cockpit tests
When running these tests on updates we inherit the main disk
image from server_cockpit_default, which has the repo config,
but the actual repo data is on HDD_3 which is not inherited.
We need to re-download the updates here to ensure they're
available to the tests (the automatic update test installs the
dnf-automatic package, so it should pull it from the update repo
if it is part of the update being tested).

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-25 16:52:09 -07:00
Adam Williamson a7ec8ada2b container build test: configure for dnf5
When testing the update that implements the dnf5 switchover, we
need to patch the kiwi config on the fly for dnf5.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-25 15:29:15 -07:00
Adam Williamson 4c53e53e87 Big needle update for GTK 4.15.0
Here's all the needles that *weren't* hit in the updates tests.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-25 12:48:16 -07:00
Adam Williamson 46c0719e66 Let installedupdatepkgs generation take longer in a container
From https://openqa.fedoraproject.org/tests/2594954 it looks
like this takes more than three minutes for updates with hundreds
of packages when running in a container (in the container build/
validate test). So, let's give it more time in that case.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-25 10:51:51 -07:00
Adam Williamson 09f1317691 Update various needles for GTK 4.15.0
These are only the ones from update tests, there will be more in
the Rawhide compose tomorrow.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-23 17:19:01 -07:00
Adam Williamson 18edc46417 Add variant KDE color select needle for F39 respin
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-23 17:17:00 -07:00
Adam Williamson 56281a41bd Update a FIXME notice
The bug number is wrong and I can't find the right one, d'oh.
We could *probably* safely remove this right now but I'm not
100% sure, I think it should be fine when F38 is EOL.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-22 17:56:44 -07:00
Adam Williamson c6d808ed23 Revert "Give `systemctl stop ipa.service` longer due to RHBZ #2100282"
This reverts commit b203f41f55.
The bug has been worked around for some time with a downstream
patch. Dropping the extended timeout means we'll notice if the
workaround is dropped prematurely or stops working.
2024-04-22 17:29:44 -07:00
Adam Williamson 691e82b1f9 Drop workaround for RHBZ #1943943
This whole complicated loop looks like it's no longer needed for
current KDE. It seems like we always refresh, then we hit
"Update All", and from there we go straight to "Restart Now".
Clicking the button always seems to work, we never seem to need
to click "Refresh" again. So, let's drop it and simply expect to
see and click Restart Now.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-22 17:04:52 -07:00
Adam Williamson bdae22d7de Drop another config-manager fixme
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-22 16:52:54 -07:00
Adam Williamson b614a38d6c Revert "Make evince test handle #2183356 (wrong save target on flatpak)"
This reverts commit 278b1e32b0.
The bug it worked around seems to have been fixed.
2024-04-22 16:52:05 -07:00
Adam Williamson ce2c511588 Revert "live_build: hack anaconda-webui out of kickstart on g-i-s update"
This reverts commit 0425be0d8e. We
only needed it for that one update and it went stable ages ago.
2024-04-22 16:33:47 -07:00
Adam Williamson 9f2d44a181 drop a FIXME on enabling/disabling repos with sed
dnf5 config-manager can now do this, but the syntax is different
to dnf4, and honestly, it seems easier to just stick with this
going forward than make it conditional on dnf version until
dnf4 goes away. So let's stop marking this as a FIXME.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-22 16:14:29 -07:00
Adam Williamson f4bd3c6f58 Add a container build test
This test, much like _live_build or _installer_build, builds a
container image in a way intended to be as similar as possible
to how official compose images are built. The purpose of the test
is to make sure updates do not break official container image
builds.

At the end of the test, we also check that the built container
is functional (at least, that we can run a 'hello world' command
in it). This can't really be rolled into podman.pm because that
test is more about testing podman itself, and it's just a one-
liner here anyway. We also run the 'if any packages from the
update are installed, are they the versions from the update?'
check inside the container, which required giving that check the
ability to 'wrap' the rpm commands to run inside a container.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-22 16:01:41 -07:00
Adam Williamson d65aac4c83 Drop a no-longer-needed workaround
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-19 16:30:52 -07:00
Adam Williamson f9cda76860 Revert "Install composefs with podman/toolbox to workaround #2275820"
This reverts commit 7b29a8f1b2.
It should no longer be needed now containers-common added a
dependency.
2024-04-19 16:29:58 -07:00
Adam Williamson 5a548fd3c7 Update GNOME lock screen needle
Seems they changed it from the user's initials to a generic icon.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-19 16:18:34 -07:00
Adam Williamson b976fb2d58 Yet another KDE system tray expander needle
Don't know why we need so many of these. There's something odd
about the panel in Plasma 6, I think.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-19 16:17:57 -07:00
Adam Williamson 4b3ee64ee8 Update gnome_reboot_confirm needle
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-18 12:59:41 -07:00
Adam Williamson dd20d1f224 Add a missing needle for KDE graphical upgrade tests
This is the variant we hit when upgrading from Fedora 40 (the
button looks a bit different than on F39). Without it the test
for Rawhide (which upgrades from F40) will fail.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-18 12:55:48 -07:00
Adam Williamson 7b29a8f1b2 Install composefs with podman/toolbox to workaround #2275820
containers-common seems to have inadvertently introduced a hard
dependency on composefs, but not expressed it as a package dep.
While I'm trying to get that fixed, let's ensure the podman and
toolbox tests don't fail on it.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-17 16:58:39 -07:00
Lukas Ruzicka d3a6beda3d Add the graphical upgrade tests.
This PR builds on some elements of the current upgrade process,
such as upgrade_boot, upgrade_preinstall, upgrade_postinstall, but
replaces the upgrade_run with graphical_upgrade_run to use graphical
methods to upgrade the system.
This would not be possible without necessary settings, that are
performed by graphical_upgrade_prerequisites.
Works for both Gnome and KDE.
2024-04-15 23:08:58 -07:00
Adam Williamson 34eba25858 KDE apps_startstop firewall: type password faster
This is obviously more prone to mistypes, but firewall-config
seems to be timing out if we take more than 25 seconds to type
the password, and we take juuust too long with type_very_safely,
even after tweaking the sleeps to shorter wait_still_screens
here. We could twiddle with those even more, but let's just go
with type_safely for now, if that turns out to be too unreliable
I'll change tack.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-15 23:08:20 -07:00
Adam Williamson a8f547f5ef Fix check_prerelease when we don't care
I inadvertently broke this in the logic change in the previous
commit to this.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-14 08:36:50 -07:00
Adam Williamson 86c975e49a Whoops, fix a wait_still_screen call from last commit
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-13 14:59:14 -07:00
Adam Williamson 7465985c50 Add some waits to root password creation on ARM
This is failing quite consistently lately because we're typing
too fast, we need to wait a bit after the sudo su at least. Let's
be safer.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-13 14:22:30 -07:00
Adam Williamson a07ad20240 Add FEDORA-2024-b156c57ef1 as F40 workaround to fix upgrades
See https://bugzilla.redhat.com/show_bug.cgi?id=2274833. Upgrades
from F39 to F40 fail without this.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-12 18:59:41 -07:00
Adam Williamson fcbb00d0ac Drop workaround which went stable weeks ago
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-12 18:59:24 -07:00
Adam Williamson adedf40b6f apps_startstop: don't rollback, defend against KDE mistypes
This comes from trying to fix the annoying recurring problem with
mistypes in KDE which has been going on since at least December.
First, we add the attempt to kind of 'precache' the kicker menu
in aasetting.pm. Then, I thought, all this snapshot loading has
to be putting a lot of load on the workers. And when each subtest
passes, it shouldn't really be necessary - they all end with
quit_with_shortcut(), which verifies that the app exited and we
got back to a blank desktop, so successful subtests should not
usually interfere with each other. We probably only want to
rollback on *failed* subtests, which is in fact openQA's default
behavior. There only seems to be one case where a test changes the
system state such that later tests might be affected, so I kept
always_rollback just for that one. I've run this through three
cycles on GNOME and KDE and it looks good.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-12 15:53:48 -07:00
Adam Williamson 2880edced1 More KDE needle updates
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-12 12:11:04 -07:00
Adam Williamson 96c75c5e28 Update tour needles for upstream changes
Various changes to the Tour text needed needle updates. The
final screen doesn't say "Have a nice day!" any more, so let's
rename that needle.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-12 12:04:25 -07:00
Adam Williamson 6b6cd20956 clocks/timer: don't always expect 'start' button
Since 46, the 1 minute button is a quickstart, it doesn't just
set the timer but starts it. So we can't always expect to have
to click the start button. Let's keep it working both ways for
now for respin testing, we can drop it once we're sure we're not
doing any testing on F39 any more.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-12 11:11:58 -07:00
Adam Williamson 394794989b Update KDE printing needle for some upstream change
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-12 10:06:51 -07:00
Adam Williamson 4938c0e5ae Make pre-release check a soft failure on osbuild images
osbuild is struggling with the pre-release warnings ATM:

https://pagure.io/fedora-iot/issue/57
https://github.com/osbuild/images/issues/515

Until that mess is cleaned up we can't really make sensible
assertions for osbuild images, so let's make the check a soft
failure for now (now we know about the bugs, we want to let
the rest of the tests run and not block them on this).

Note for IoT the behaviour has never really been correct (IoT
images never get pre-release warnings), but the logic in this
check matches the wrong behaviour (IoT composes always have
RC- labels even when they're clearly not RCs), so the test
didn't fail. While fixing this in osbuild we might try to get
'correct' behaviour for IoT, and then we'd need to tweak the
logic here.

While we're at it, tweak the implementation a bit; without this
tweak, implementing this 'soft fail if osbuild' behaviour is more
awkward and ugly.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-04-12 09:00:25 -07:00
710 changed files with 5752 additions and 134 deletions

View File

@ -476,7 +476,7 @@ sub get_workarounds {
my %workarounds = (
"38" => [],
"39" => [],
"40" => ["FEDORA-2024-01fd5aa621"],
"40" => [],
"41" => [],
);
my $advortasks = $workarounds{$version};
@ -496,7 +496,8 @@ sub disable_updates_repos {
both => 0,
@_
);
# FIXME as of 2023-06-20 dnf5 doesn't have config-manager plugin yet :(
# we used to do this with config-manager, but the syntax differs
# 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.repo' if ($args{both});
unless (script_run 'test -f /etc/yum.repos.d/fedora-updates-testing-modular.repo') {
@ -1230,6 +1231,7 @@ sub advisory_check_nonmatching_packages {
# older version from the frozen release repo
my %args = (
fatal => 1,
wrapper => "",
@_
);
# can't do anything useful when testing a side tag
@ -1241,6 +1243,11 @@ sub advisory_check_nonmatching_packages {
# unnecessarily in post_fail_hook
return if (get_var("_ACNMP_DONE"));
script_run 'touch /tmp/installedupdatepkgs.txt';
my $rpmcmd = "rpm";
my $timeout = 180;
my $wrapper = $args{wrapper};
$rpmcmd = "$wrapper rpm" if ($wrapper);
$timeout = 360 if ($wrapper);
# this creates /tmp/installedupdatepkgs.txt as a sorted list of installed
# packages with the same name as packages from the update, in the same form
# as /mnt/updatepkgs.txt. The '--last | head -1' tries to handle the
@ -1254,7 +1261,7 @@ sub advisory_check_nonmatching_packages {
# (we need four to reach bash, and half of them get eaten by perl or
# something along the way). Yes, it only works with *single* quotes. Yes,
# I hate escaping
script_run 'for pkg in $(cat /mnt/updatepkgnames.txt); do rpm -q $pkg && rpm -q $pkg --last | head -1 | cut -d" " -f1 | sed -e \'s,\^,\\\\\\\\^,g\' | xargs rpm -q --qf "%{SOURCERPM} %{NAME} %{EPOCHNUM} %{VERSION} %{RELEASE}\n" >> /tmp/installedupdatepkgs.txt; done', timeout => 180;
script_run 'for pkg in $(cat /mnt/updatepkgnames.txt); do ' . $rpmcmd . ' -q $pkg && ' . $rpmcmd . ' -q $pkg --last | head -1 | cut -d" " -f1 | sed -e \'s,\^,\\\\\\\\^,g\' | xargs ' . $rpmcmd . ' -q --qf "%{SOURCERPM} %{NAME} %{EPOCHNUM} %{VERSION} %{RELEASE}\n" >> /tmp/installedupdatepkgs.txt; done', timeout => $timeout;
script_run 'sort -u -o /tmp/installedupdatepkgs.txt /tmp/installedupdatepkgs.txt';
# for debugging, may as well always upload these, can't hurt anything
upload_logs "/tmp/installedupdatepkgs.txt", failok => 1;
@ -1274,7 +1281,7 @@ sub advisory_check_nonmatching_packages {
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");
set_var("_ACNMP_DONE", "1") unless $wrapper;
die $message;
}
else {
@ -1476,6 +1483,8 @@ sub check_prerelease {
$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/);
# bail if we've decided we don't care
return if ($prerelease > 1);
# 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
@ -1483,14 +1492,20 @@ sub check_prerelease {
# really a big deal either way whether a nightly live image has
# the tags or not. So we don't.
# For all prerelease requiring ISOs, assert that prerelease is there.
if ($prerelease == 1) {
assert_screen "prerelease_note";
}
elsif ($prerelease == 0) {
# If the prerelease note is shown, where it should not be, die!
if (check_screen "prerelease_note") {
die "The PRERELEASE tag is shown, but it should NOT be.";
my $gotpr = 0;
# sigh, perl and booleans...
$gotpr = 1 if (check_screen "prerelease_note", 15);
my $msg = $prerelease ? "Pre-release warning not shown!" : "Pre-release warning shown when it should not be!";
unless ($prerelease == $gotpr) {
# FIXME we haven't got pre-release handling right with osbuild yet
# https://pagure.io/fedora-iot/issue/57
# https://github.com/osbuild/images/issues/515
my $flavor = get_var('FLAVOR');
if ($flavor =~ m/IoT|osbuild/) {
record_soft_failure $msg;
}
else {
die $msg;
}
}
}

13
main.pm
View File

@ -122,7 +122,16 @@ sub load_upgrade_tests() {
autotest::loadtest "tests/${pu}.pm";
}
}
autotest::loadtest "tests/upgrade_run.pm";
# If we want the upgrade run with GUI tools, we need
# to load a GUI set of tests
if (get_var("GUI_UPGRADE")) {
autotest::loadtest("tests/graphical_upgrade_prerequisites.pm");
autotest::loadtest("tests/graphical_upgrade_run.pm");
}
# otherwise go with the CLI variant
else {
autotest::loadtest "tests/upgrade_run.pm";
}
# handle additional postinstall tests
if (get_var("POSTINSTALL")) {
set_var('POSTINSTALL', "upgrade_postinstall " . get_var("POSTINSTALL"));
@ -239,7 +248,6 @@ sub _load_early_postinstall_tests {
# Appropriate login method for install type
if (get_var("DESKTOP")) {
_load_instance("tests/_graphical_wait_login", $instance);
_load_instance("tests/_snapshot_only") if (get_var("LOGIN_SNAPSHOT"));
}
# Test non-US input at this point, on language tests
if (get_var("SWITCHED_LAYOUT") || get_var("INPUT_METHOD")) {
@ -255,7 +263,6 @@ sub _load_early_postinstall_tests {
# the installation is interrupted on purpose.
unless (get_var("DESKTOP") || get_var("CRASH_REPORT")) {
_load_instance("tests/_console_wait_login", $instance);
_load_instance("tests/_snapshot_only") if (get_var("LOGIN_SNAPSHOT"));
}
}

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 591,
"width": 42,
"ypos": 46,
"height": 19,
"type": "match"
}
],
"properties": [],
"tags": [
"apps_run_calendar"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 61,
"type": "match",
"height": 21,
"width": 76,
"xpos": 546
}
],
"properties": [],
"tags": [
"apps_run_clocks"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 458,
"width": 65,
"ypos": 90,
"height": 21,
"type": "match"
}
],
"properties": [],
"tags": [
"apps_run_contacts"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"height": 22,
"type": "match",
"ypos": 90,
"width": 138,
"xpos": 443
}
],
"properties": [],
"tags": [
"apps_run_diskusage"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 479,
"width": 66,
"type": "match",
"height": 20,
"ypos": 90
}
],
"properties": [],
"tags": [
"apps_run_fonts"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 446,
"width": 129,
"ypos": 119,
"type": "match",
"height": 19
}
],
"properties": [],
"tags": [
"apps_run_gvim"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 483,
"width": 37,
"height": 19,
"type": "match",
"ypos": 39
}
],
"properties": [],
"tags": [
"apps_run_logs"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 162,
"type": "match",
"height": 19,
"xpos": 486,
"width": 51
}
],
"properties": [],
"tags": [
"apps_run_monitor"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 445,
"width": 131,
"type": "match",
"height": 19,
"ypos": 131
}
],
"properties": [],
"tags": [
"apps_run_scan"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 271,
"ypos": 113,
"width": 142,
"height": 24,
"type": "match"
}
],
"properties": [],
"tags": [
"apps_run_seahorse"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"ypos": 115,
"type": "match",
"height": 21,
"xpos": 494,
"width": 71
}
],
"properties": [],
"tags": [
"apps_run_texteditor",
"apps_run_editor"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 378,
"type": "match",
"height": 23,
"width": 84,
"xpos": 45
}
],
"properties": [],
"tags": [
"apps_settings_menu_background"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 159,
"height": 64,
"type": "match",
"width": 137,
"xpos": 229
}
],
"properties": [],
"tags": [
"archiver_archive_created"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 238,
"width": 116,
"height": 55,
"type": "match",
"ypos": 169
}
],
"properties": [],
"tags": [
"archiver_archive_extracted"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 693,
"width": 48,
"height": 19,
"type": "match",
"ypos": 308
}
],
"properties": [],
"tags": [
"archiver_button_create"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 315,
"width": 90,
"ypos": 497,
"type": "match",
"height": 22
}
],
"properties": [],
"tags": [
"archiver_context_archive"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"width": 58,
"xpos": 311,
"height": 21,
"type": "match",
"ypos": 204
}
],
"properties": [],
"tags": [
"archiver_context_extract"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 626,
"width": 96,
"height": 43,
"type": "match",
"ypos": 562
}
],
"properties": [],
"tags": [
"archiver_select_tarxz"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"width": 80,
"xpos": 20,
"type": "match",
"height": 20,
"ypos": 322
}
],
"properties": [],
"tags": [
"gnome_open_location_pictures"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"width": 144,
"xpos": 260,
"type": "match",
"height": 128,
"ypos": 166
}
],
"properties": [],
"tags": [
"calc_about_shown"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 850 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 378,
"height": 21,
"type": "match",
"width": 37,
"xpos": 381
}
],
"properties": [],
"tags": [
"calc_button_mod"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"width": 88,
"xpos": 173,
"type": "match",
"height": 29,
"ypos": 185
}
],
"properties": [],
"tags": [
"calc_credits_shown"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 765 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 363,
"width": 121,
"height": 23,
"type": "match",
"ypos": 487
}
],
"properties": [],
"tags": [
"calc_menu_about"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 884 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 292,
"type": "match",
"height": 34,
"xpos": 162,
"width": 147
}
],
"properties": [],
"tags": [
"calc_result_O9qsL"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 899 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 225,
"type": "match",
"height": 108,
"xpos": 428,
"width": 171
}
],
"properties": [],
"tags": [
"chars_about_shown"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"width": 67,
"xpos": 56,
"type": "match",
"height": 80,
"ypos": 90
}
],
"properties": [],
"tags": [
"chars_character_copied"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

View File

@ -0,0 +1,22 @@
{
"area": [
{
"xpos": 358,
"width": 72,
"type": "match",
"height": 21,
"ypos": 229
},
{
"ypos": 397,
"height": 20,
"type": "match",
"xpos": 357,
"width": 65
}
],
"properties": [],
"tags": [
"chars_credits_shown"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 226,
"type": "match",
"height": 27,
"width": 189,
"xpos": 392
}
],
"properties": [],
"tags": [
"chars_legal_shown"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

View File

@ -0,0 +1,22 @@
{
"area": [
{
"xpos": 598,
"width": 66,
"ypos": 513,
"height": 22,
"type": "match"
},
{
"type": "match",
"height": 85,
"ypos": 300,
"width": 113,
"xpos": 457
}
],
"properties": [],
"tags": [
"chars_love_eyes_dialogue"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"height": 20,
"type": "match",
"ypos": 405,
"xpos": 45,
"width": 68
}
],
"properties": [],
"tags": [
"chars_select_activities"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"width": 120,
"xpos": 47,
"ypos": 268,
"height": 23,
"type": "match"
}
],
"properties": [],
"tags": [
"chars_select_animals"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 42,
"width": 46,
"ypos": 537,
"type": "match",
"height": 23
}
],
"properties": [],
"tags": [
"chars_select_flags"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"width": 93,
"xpos": 44,
"type": "match",
"height": 22,
"ypos": 313
}
],
"properties": [],
"tags": [
"chars_select_food"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"height": 22,
"type": "match",
"ypos": 223,
"xpos": 44,
"width": 101
}
],
"properties": [],
"tags": [
"chars_select_people"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"height": 22,
"type": "match",
"ypos": 493,
"width": 65,
"xpos": 43
}
],
"properties": [],
"tags": [
"chars_select_symbols"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"height": 19,
"type": "match",
"ypos": 360,
"width": 106,
"xpos": 47
}
],
"properties": [],
"tags": [
"chars_select_travel"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 115,
"type": "match",
"height": 18,
"width": 509,
"xpos": 235
}
],
"properties": [],
"tags": [
"clocks_alarm_inactive"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"width": 102,
"xpos": 230,
"height": 28,
"type": "match",
"ypos": 106
}
],
"properties": [],
"tags": [
"clocks_alarm_snooze_confirmed"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"width": 74,
"xpos": 466,
"ypos": 495,
"height": 22,
"type": "match"
}
],
"properties": [],
"tags": [
"clocks_button_add_alarm"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 485,
"width": 55,
"type": "match",
"height": 20,
"ypos": 629
}
],
"properties": [],
"tags": [
"clocks_button_alarm_snooze"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"height": 22,
"type": "match",
"ypos": 569,
"width": 51,
"xpos": 488
}
],
"properties": [],
"tags": [
"clocks_button_alarm_stop"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 526,
"width": 96,
"ypos": 43,
"height": 23,
"type": "match"
}
],
"properties": [],
"tags": [
"clocks_button_stopwatch"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 46,
"type": "match",
"height": 19,
"width": 65,
"xpos": 665
}
],
"properties": [],
"tags": [
"clocks_button_timer"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 264,
"type": "match",
"height": 20,
"xpos": 374,
"width": 41
}
],
"properties": [],
"tags": [
"clocks_button_timer_minute"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"height": 17,
"type": "match",
"ypos": 45,
"width": 68,
"xpos": 294
}
],
"properties": [],
"tags": [
"clocks_button_world"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 187,
"type": "match",
"height": 23,
"xpos": 216,
"width": 124
}
],
"properties": [],
"tags": [
"clocks_city_added_bratislava"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 220,
"width": 84,
"ypos": 188,
"type": "match",
"height": 21
}
],
"properties": [],
"tags": [
"clocks_city_added_reykjavik"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -0,0 +1,22 @@
{
"area": [
{
"height": 64,
"type": "match",
"ypos": 336,
"xpos": 488,
"width": 21
},
{
"height": 57,
"type": "match",
"ypos": 700,
"width": 90,
"xpos": 411
}
],
"properties": [],
"tags": [
"clocks_city_details"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,22 @@
{
"area": [
{
"xpos": 485,
"width": 58,
"type": "match",
"height": 19,
"ypos": 157
},
{
"height": 33,
"type": "match",
"ypos": 259,
"width": 92,
"xpos": 355
}
],
"properties": [],
"tags": [
"clocks_credits_shown"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

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