Merge branch 'develop' into packageset-aarch64
@ -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`) |
|
||||
|
@ -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"
|
||||
|
@ -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;
|
||||
}
|
||||
|
116
lib/utils.pm
@ -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,60 +453,6 @@ sub cleanup_workaround_repo {
|
||||
script_run "rm -f /etc/yum.repos.d/workarounds.repo";
|
||||
}
|
||||
|
||||
sub setup_workaround_repo {
|
||||
# doesn't work for Rocky
|
||||
my $distri = get_var("DISTRI");
|
||||
return if ($distri eq "rocky");
|
||||
# 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");
|
||||
@ -561,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
|
||||
@ -1233,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
|
||||
@ -1250,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"));
|
||||
|
||||
@ -1273,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) {
|
||||
|
@ -0,0 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 220,
|
||||
"type": "match",
|
||||
"height": 35,
|
||||
"width": 384,
|
||||
"xpos": 41
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"anaconda_help_create_user"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 236 KiB |
@ -0,0 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 9,
|
||||
"width": 384,
|
||||
"type": "match",
|
||||
"height": 35,
|
||||
"ypos": 126
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"anaconda_help_create_user"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 207 KiB |
@ -0,0 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"height": 34,
|
||||
"width": 446,
|
||||
"xpos": 41,
|
||||
"type": "match",
|
||||
"ypos": 220
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"anaconda_help_install_destination"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 211 KiB |
@ -0,0 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 39,
|
||||
"height": 39,
|
||||
"width": 490,
|
||||
"type": "match",
|
||||
"ypos": 217
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"anaconda_help_installation_source"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 271 KiB |
@ -0,0 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"height": 38,
|
||||
"ypos": 123,
|
||||
"type": "match",
|
||||
"xpos": 9,
|
||||
"width": 499
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"anaconda_help_language_selection"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 258 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 247 KiB |
@ -0,0 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"width": 676,
|
||||
"height": 38,
|
||||
"xpos": 42,
|
||||
"ypos": 218
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"anaconda_help_progress"
|
||||
]
|
||||
}
|
BIN
needles/anaconda/help/rocky-anaconda_help_progress-20240222.png
Normal file
After Width: | Height: | Size: 265 KiB |
@ -0,0 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"width": 454,
|
||||
"height": 35,
|
||||
"xpos": 40,
|
||||
"ypos": 219
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"anaconda_help_root_password"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 242 KiB |
@ -0,0 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 125,
|
||||
"height": 35,
|
||||
"width": 454,
|
||||
"xpos": 8,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"anaconda_help_root_password"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 239 KiB |
@ -0,0 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"height": 36,
|
||||
"xpos": 39,
|
||||
"width": 488,
|
||||
"type": "match",
|
||||
"ypos": 218
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"anaconda_help_select_packages"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 352 KiB |
@ -0,0 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"width": 488,
|
||||
"xpos": 7,
|
||||
"type": "match",
|
||||
"ypos": 124,
|
||||
"height": 36
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"anaconda_help_select_packages"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 322 KiB |
@ -0,0 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"height": 36,
|
||||
"xpos": 41,
|
||||
"width": 457,
|
||||
"ypos": 194
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"anaconda_help_summary"
|
||||
]
|
||||
}
|
BIN
needles/anaconda/help/rocky-anaconda_help_summary-20240222.png
Normal file
After Width: | Height: | Size: 129 KiB |
@ -0,0 +1,17 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 33,
|
||||
"height": 19,
|
||||
"type": "match",
|
||||
"width": 145,
|
||||
"xpos": 91
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"LANGUAGE-arabic",
|
||||
"prerelease_note"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 111 KiB |
@ -0,0 +1,17 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"xpos": 734,
|
||||
"width": 143,
|
||||
"height": 19,
|
||||
"ypos": 31
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"LANGUAGE-french",
|
||||
"prerelease_note"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 35 KiB |
@ -0,0 +1,17 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"width": 159,
|
||||
"xpos": 754,
|
||||
"type": "match",
|
||||
"ypos": 35,
|
||||
"height": 24
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"LANGUAGE-japanese",
|
||||
"prerelease_note"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 32 KiB |
@ -0,0 +1,17 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"xpos": 135,
|
||||
"width": 675,
|
||||
"height": 32,
|
||||
"ypos": 9
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"LANGUAGE-japanese",
|
||||
"topbar_generic"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 123 KiB |
@ -0,0 +1,16 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 34,
|
||||
"height": 27,
|
||||
"width": 159,
|
||||
"xpos": 754,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"prerelease_note"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 51 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 91 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 158 KiB |
@ -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"
|
||||
]
|
||||
}
|
BIN
needles/anaconda/install_source/rocky-http_selected-20240507.png
Normal file
After Width: | Height: | Size: 203 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 262 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 262 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 262 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 252 KiB |
@ -0,0 +1,17 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 228,
|
||||
"ypos": 360,
|
||||
"width": 64,
|
||||
"height": 20,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"LANGUAGE-arabic",
|
||||
"anaconda_network_connected"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 306 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 106 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 69 KiB |
@ -0,0 +1,17 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 568,
|
||||
"ypos": 133,
|
||||
"type": "match",
|
||||
"width": 60,
|
||||
"height": 17
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"LANGUAGE-french",
|
||||
"anaconda_network_connected"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 74 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 37 KiB |
@ -0,0 +1,17 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 131,
|
||||
"xpos": 603,
|
||||
"height": 23,
|
||||
"width": 83,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"LANGUAGE-russian",
|
||||
"anaconda_network_connected"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 73 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 206 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 235 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 225 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 242 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 106 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 336 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 206 KiB |
@ -0,0 +1,17 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"height": 18,
|
||||
"xpos": 14,
|
||||
"ypos": 128,
|
||||
"width": 132,
|
||||
"type": "match",
|
||||
"match": 82
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"console_in_toolbox"
|
||||
]
|
||||
}
|
BIN
needles/console/rocky-toolbox-console_in_toolbox-20240208.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
@ -0,0 +1,17 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 744,
|
||||
"height": 22,
|
||||
"xpos": 14,
|
||||
"type": "match",
|
||||
"match": 82,
|
||||
"width": 135
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"console_in_toolbox"
|
||||
]
|
||||
}
|
BIN
needles/console/rocky-toolbox-console_in_toolbox-20240209.png
Normal file
After Width: | Height: | Size: 74 KiB |
@ -0,0 +1,18 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 961,
|
||||
"ypos": 34,
|
||||
"type": "match",
|
||||
"height": 24,
|
||||
"width": 52
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"DESKTOP-gnome",
|
||||
"ENV-DISTRI-rocky",
|
||||
"LANGUAGE-arabic",
|
||||
"gdm_spoke_done"
|
||||
]
|
||||
}
|
BIN
needles/gnome/arabic/rocky-gdm_spoke_done_arabic-20240623.png
Normal file
After Width: | Height: | Size: 26 KiB |
@ -0,0 +1,17 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 488,
|
||||
"width": 49,
|
||||
"type": "match",
|
||||
"height": 22,
|
||||
"ypos": 478
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"ENV-DISTRI-rocky",
|
||||
"LANGUAGE-japanese",
|
||||
"desktop_input_source_japanese"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 58 KiB |
@ -3,5 +3,5 @@
|
||||
"$id": "fif-arch.json",
|
||||
"title": "FIF arch schema",
|
||||
"type": "string",
|
||||
"enum": [ "x86_64", "arm", "aarch64", "ppc64le" ]
|
||||
"enum": [ "x86_64", "arm", "aarch64", "ppc64le", "s390x" ]
|
||||
}
|
||||
|
@ -84,40 +84,40 @@
|
||||
"machine": "aarch64",
|
||||
"product": "rocky-updates-server-upgrade-aarch64-*"
|
||||
},
|
||||
"rocky-updates-server-upgrade-x86_64-*-64bit": {
|
||||
"machine": "64bit",
|
||||
"rocky-updates-server-upgrade-x86_64-*-bios": {
|
||||
"machine": "bios",
|
||||
"product": "rocky-updates-server-upgrade-x86_64-*"
|
||||
},
|
||||
"rocky-updates-server-aarch64-*-aarch64": {
|
||||
"machine": "aarch64",
|
||||
"product": "rocky-updates-server-aarch64-*"
|
||||
},
|
||||
"rocky-updates-server-x86_64-*-64bit": {
|
||||
"machine": "64bit",
|
||||
"rocky-updates-server-x86_64-*-bios": {
|
||||
"machine": "bios",
|
||||
"product": "rocky-updates-server-x86_64-*"
|
||||
},
|
||||
"rocky-updates-workstation-upgrade-aarch64-*-aarch64": {
|
||||
"machine": "aarch64",
|
||||
"product": "rocky-updates-workstation-upgrade-aarch64-*"
|
||||
},
|
||||
"rocky-updates-workstation-upgrade-x86_64-*-64bit": {
|
||||
"machine": "64bit",
|
||||
"rocky-updates-workstation-upgrade-x86_64-*-bios": {
|
||||
"machine": "bios",
|
||||
"product": "rocky-updates-workstation-upgrade-x86_64-*"
|
||||
},
|
||||
"rocky-updates-workstation-aarch64-*-aarch64": {
|
||||
"machine": "aarch64",
|
||||
"product": "rocky-updates-workstation-aarch64-*"
|
||||
},
|
||||
"rocky-updates-workstation-x86_64-*-64bit": {
|
||||
"machine": "64bit",
|
||||
"rocky-updates-workstation-x86_64-*-bios": {
|
||||
"machine": "bios",
|
||||
"product": "rocky-updates-workstation-x86_64-*"
|
||||
},
|
||||
"rocky-updates-minimal-aarch64-*-aarch64": {
|
||||
"machine": "aarch64",
|
||||
"product": "rocky-updates-minimal-aarch64-*"
|
||||
},
|
||||
"rocky-updates-minimal-x86_64-*-64bit": {
|
||||
"machine": "64bit",
|
||||
"rocky-updates-minimal-x86_64-*-bios": {
|
||||
"machine": "bios",
|
||||
"product": "rocky-updates-minimal-x86_64-*"
|
||||
}
|
||||
},
|
||||
@ -125,7 +125,7 @@
|
||||
"advisory_boot": {
|
||||
"profiles": {
|
||||
"rocky-updates-server-aarch64-*-aarch64": 40,
|
||||
"rocky-updates-server-x86_64-*-64bit": 40
|
||||
"rocky-updates-server-x86_64-*-bios": 40
|
||||
},
|
||||
"settings": {
|
||||
"ADVISORY_BOOT_TEST": "1",
|
||||
@ -136,116 +136,116 @@
|
||||
},
|
||||
"base_selinux": {
|
||||
"profiles": {
|
||||
"rocky-updates-minimal-x86_64-*-64bit": 40,
|
||||
"rocky-updates-minimal-x86_64-*-bios": 40,
|
||||
"rocky-updates-server-aarch64-*-aarch64": 40,
|
||||
"rocky-updates-server-x86_64-*-64bit": 40,
|
||||
"rocky-updates-workstation-x86_64-*-64bit": 40
|
||||
"rocky-updates-server-x86_64-*-bios": 40,
|
||||
"rocky-updates-workstation-x86_64-*-bios": 40
|
||||
}
|
||||
},
|
||||
"base_service_manipulation": {
|
||||
"profiles": {
|
||||
"rocky-updates-minimal-x86_64-*-64bit": 40,
|
||||
"rocky-updates-minimal-x86_64-*-bios": 40,
|
||||
"rocky-updates-server-aarch64-*-aarch64": 40,
|
||||
"rocky-updates-server-x86_64-*-64bit": 40,
|
||||
"rocky-updates-workstation-x86_64-*-64bit": 40
|
||||
"rocky-updates-server-x86_64-*-bios": 40,
|
||||
"rocky-updates-workstation-x86_64-*-bios": 40
|
||||
}
|
||||
},
|
||||
"base_services_start": {
|
||||
"profiles": {
|
||||
"rocky-updates-minimal-x86_64-*-64bit": 40,
|
||||
"rocky-updates-minimal-x86_64-*-bios": 40,
|
||||
"rocky-updates-server-aarch64-*-aarch64": 40,
|
||||
"rocky-updates-server-x86_64-*-64bit": 40,
|
||||
"rocky-updates-workstation-x86_64-*-64bit": 40
|
||||
"rocky-updates-server-x86_64-*-bios": 40,
|
||||
"rocky-updates-workstation-x86_64-*-bios": 40
|
||||
}
|
||||
},
|
||||
"base_update_cli": {
|
||||
"profiles": {
|
||||
"rocky-updates-minimal-x86_64-*-64bit": 40,
|
||||
"rocky-updates-minimal-x86_64-*-bios": 40,
|
||||
"rocky-updates-server-aarch64-*-aarch64": 40,
|
||||
"rocky-updates-server-x86_64-*-64bit": 40,
|
||||
"rocky-updates-workstation-x86_64-*-64bit": 40
|
||||
"rocky-updates-server-x86_64-*-bios": 40,
|
||||
"rocky-updates-workstation-x86_64-*-bios": 40
|
||||
}
|
||||
},
|
||||
"base_reboot_unmount": {
|
||||
"profiles": {
|
||||
"rocky-updates-minimal-x86_64-*-64bit": 40,
|
||||
"rocky-updates-minimal-x86_64-*-bios": 40,
|
||||
"rocky-updates-server-aarch64-*-aarch64": 40,
|
||||
"rocky-updates-server-x86_64-*-64bit": 40,
|
||||
"rocky-updates-workstation-x86_64-*-64bit": 40
|
||||
"rocky-updates-server-x86_64-*-bios": 40,
|
||||
"rocky-updates-workstation-x86_64-*-bios": 40
|
||||
}
|
||||
},
|
||||
"base_system_logging": {
|
||||
"profiles": {
|
||||
"rocky-updates-minimal-x86_64-*-64bit": 40,
|
||||
"rocky-updates-minimal-x86_64-*-bios": 40,
|
||||
"rocky-updates-server-aarch64-*-aarch64": 40,
|
||||
"rocky-updates-server-x86_64-*-64bit": 40,
|
||||
"rocky-updates-workstation-x86_64-*-64bit": 40
|
||||
"rocky-updates-server-x86_64-*-bios": 40,
|
||||
"rocky-updates-workstation-x86_64-*-bios": 40
|
||||
}
|
||||
},
|
||||
"desktop_background": {
|
||||
"profiles": {
|
||||
"rocky-updates-workstation-aarch64-*-aarch64": 30,
|
||||
"rocky-updates-workstation-x86_64-*-64bit": 30
|
||||
"rocky-updates-workstation-x86_64-*-bios": 30
|
||||
}
|
||||
},
|
||||
"desktop_browser": {
|
||||
"profiles": {
|
||||
"rocky-updates-workstation-aarch64-*-aarch64": 30,
|
||||
"rocky-updates-workstation-x86_64-*-64bit": 30
|
||||
"rocky-updates-workstation-x86_64-*-bios": 30
|
||||
}
|
||||
},
|
||||
"desktop_printing": {
|
||||
"profiles": {
|
||||
"rocky-updates-workstation-aarch64-*-aarch64": 30,
|
||||
"rocky-updates-workstation-x86_64-*-64bit": 30
|
||||
"rocky-updates-workstation-x86_64-*-bios": 30
|
||||
}
|
||||
},
|
||||
"desktop_terminal": {
|
||||
"profiles": {
|
||||
"rocky-updates-workstation-aarch64-*-aarch64": 30,
|
||||
"rocky-updates-workstation-x86_64-*-64bit": 30
|
||||
"rocky-updates-workstation-x86_64-*-bios": 30
|
||||
}
|
||||
},
|
||||
"desktop_update_graphical": {
|
||||
"profiles": {
|
||||
"rocky-updates-workstation-aarch64-*-aarch64": 30,
|
||||
"rocky-updates-workstation-x86_64-*-64bit": 30
|
||||
"rocky-updates-workstation-x86_64-*-bios": 30
|
||||
}
|
||||
},
|
||||
"server_cockpit_basic": {
|
||||
"profiles": {
|
||||
"rocky-updates-server-aarch64-*-aarch64": 40,
|
||||
"rocky-updates-server-x86_64-*-64bit": 40
|
||||
"rocky-updates-server-x86_64-*-bios": 40
|
||||
}
|
||||
},
|
||||
"server_cockpit_default": {
|
||||
"profiles": {
|
||||
"rocky-updates-server-aarch64-*-aarch64": 40,
|
||||
"rocky-updates-server-x86_64-*-64bit": 40
|
||||
"rocky-updates-server-x86_64-*-bios": 40
|
||||
}
|
||||
},
|
||||
"server_cockpit_updates": {
|
||||
"profiles": {
|
||||
"rocky-updates-server-aarch64-*-aarch64": 40,
|
||||
"rocky-updates-server-x86_64-*-64bit": 40
|
||||
"rocky-updates-server-x86_64-*-bios": 40
|
||||
}
|
||||
},
|
||||
"server_database_client": {
|
||||
"profiles": {
|
||||
"rocky-updates-server-aarch64-*-aarch64": 40,
|
||||
"rocky-updates-server-x86_64-*-64bit": 40
|
||||
"rocky-updates-server-x86_64-*-bios": 40
|
||||
}
|
||||
},
|
||||
"server_firewall_default": {
|
||||
"profiles": {
|
||||
"rocky-updates-server-aarch64-*-aarch64": 40,
|
||||
"rocky-updates-server-x86_64-*-64bit": 40
|
||||
"rocky-updates-server-x86_64-*-bios": 40
|
||||
}
|
||||
},
|
||||
"upgrade_desktop_encrypted_64bit": {
|
||||
"profiles": {
|
||||
"rocky-updates-workstation-upgrade-aarch64-*-aarch64": 40,
|
||||
"rocky-updates-workstation-upgrade-x86_64-*-64bit": 40
|
||||
"rocky-updates-workstation-upgrade-x86_64-*-bios": 40
|
||||
}
|
||||
}
|
||||
}
|
||||
|
29
tests/_secure_boot_fallback.pm
Normal file
@ -0,0 +1,29 @@
|
||||
use base "installedtest";
|
||||
use strict;
|
||||
use testapi;
|
||||
use utils;
|
||||
|
||||
sub run {
|
||||
my $self = shift;
|
||||
if (not(check_screen "root_console", 0)) {
|
||||
$self->root_console(tty => 4);
|
||||
}
|
||||
script_run 'efibootmgr';
|
||||
# now try deleting the "rocky" boot entry and rebooting, to check the fallback path
|
||||
assert_script_run('efibootmgr -b $(efibootmgr | grep -i rocky | cut -f1 | sed -e "s,[^0-9],,g") -B');
|
||||
# check that worked
|
||||
validate_script_output('efibootmgr', sub { $_ !~ m/.*rocky.*/s });
|
||||
type_string("reboot\n");
|
||||
boot_to_login_screen;
|
||||
$self->root_console(tty => 3);
|
||||
# rocky entry should have been recreated
|
||||
validate_script_output('efibootmgr', sub { m/rocky/ });
|
||||
# SB should still be enabled
|
||||
validate_script_output('mokutil --sb-state', sub { m/SecureBoot enabled/ });
|
||||
}
|
||||
|
||||
sub test_flags {
|
||||
return {fatal => 1};
|
||||
}
|
||||
|
||||
1;
|
@ -25,6 +25,7 @@ sub _pxe_setup {
|
||||
assert_script_run "printf 'dhcp-match=set:efi-x86_64,option:client-arch,7\ndhcp-match=set:efi-x86_64,option:client-arch,9\ndhcp-match=set:bios,option:client-arch,0\ndhcp-match=set:efi-aarch64,option:client-arch,11\ndhcp-match=set:ppc64,option:client-arch,12\ndhcp-match=set:ppc64,option:client-arch,13\ndhcp-boot=tag:efi-x86_64,\"shim.efi\"\ndhcp-boot=tag:bios,\"pxelinux.0\"\ndhcp-boot=tag:efi-aarch64,\"grubaa64.efi\"\ndhcp-boot=tag:ppc64,\"boot/grub2/powerpc-ieee1275/core.elf\"\n' >> /etc/dnsmasq.conf";
|
||||
# install and configure bootloaders
|
||||
my $ourversion = get_var("CURRREL");
|
||||
my $contentdir = get_var("DNF_CONTENTDIR");
|
||||
my $testversion = get_var("RELEASE");
|
||||
assert_script_run "mkdir -p /var/tmp/rocky";
|
||||
my $arch = get_var("ARCH");
|
||||
@ -41,7 +42,26 @@ sub _pxe_setup {
|
||||
assert_script_run "rpm --root=/var/tmp/rocky --rebuilddb", 60;
|
||||
assert_script_run "cd /var/tmp; dnf download rocky-release rocky-repos rocky-gpg-keys", 60;
|
||||
assert_script_run "rpm --root=/var/tmp/rocky --nodeps -i /var/tmp/*.rpm", 60;
|
||||
#assert_script_run "sed -i /var/tmp/rocky/etc/yum.repos.d/Rocky-*.repo -e 's/repo=/repo=rocky-/g'", 60;
|
||||
|
||||
# Rocky Linux repos in /var/tmp/rocky point at mirrorlist and should be
|
||||
# pointed at baseurl to support repositories in the staging if used for
|
||||
# Beta or Lookahead builds.
|
||||
if (get_version_major() < 9) {
|
||||
assert_script_run 'sed -i -e "s/^mirrorlist/#mirrorlist/g;s,^#\(baseurl=http[s]*://\),\1,g" ' . '/var/tmp/rocky/etc/yum.repos.d/Rocky-BaseOS.repo';
|
||||
assert_script_run 'sed -i -e "s/^mirrorlist/#mirrorlist/g;s,^#\(baseurl=http[s]*://\),\1,g" ' . '/var/tmp/rocky/etc/yum.repos.d/Rocky-AppStream.repo';
|
||||
assert_script_run 'sed -i -e "s/^mirrorlist/#mirrorlist/g;s,^#\(baseurl=http[s]*://\),\1,g" ' . '/var/tmp/rocky/etc/yum.repos.d/Rocky-Extras.repo';
|
||||
assert_script_run 'sed -i -e "s/^mirrorlist/#mirrorlist/g;s,^#\(baseurl=http[s]*://\),\1,g" ' . '/var/tmp/rocky/etc/yum.repos.d/Rocky-Devel.repo';
|
||||
} else {
|
||||
script_run 'sed -i -e "s/^mirrorlist/#mirrorlist/g;s/^#baseurl/baseurl/g" ' . '/var/tmp/rocky/etc/yum.repos.d/rocky.repo';
|
||||
script_run 'sed -i -e "s/^mirrorlist/#mirrorlist/g;s/^#baseurl/baseurl/g" ' . '/var/tmp/rocky/etc/yum.repos.d/rocky-addons.repo';
|
||||
script_run 'sed -i -e "s/^mirrorlist/#mirrorlist/g;s/^#baseurl/baseurl/g" ' . '/var/tmp/rocky/etc/yum.repos.d/rocky-devel.repo';
|
||||
script_run 'sed -i -e "s/^mirrorlist/#mirrorlist/g;s/^#baseurl/baseurl/g" ' . '/var/tmp/rocky/etc/yum.repos.d/rocky-extras.repo';
|
||||
}
|
||||
# If we're pointing at Staging via alternate DNF_CONTENTDIR then modify dnf vars in /var/tmp/rocky
|
||||
if ($contentdir) {
|
||||
assert_script_run 'printf "%s\n" ' . $contentdir . ' > ' . '/var/tmp/rocky/etc/dnf/vars/contentdir';
|
||||
}
|
||||
|
||||
assert_script_run "dnf -y --releasever=$ourversion --refresh --installroot=/var/tmp/rocky install shim-x64 grub2-efi-x64", 1800;
|
||||
|
||||
# copy bootloader files to tftp root
|
||||
@ -49,12 +69,9 @@ sub _pxe_setup {
|
||||
assert_script_run "cp /var/tmp/rocky/boot/efi/EFI/rocky/{shimx64.efi,shimx64-rocky.efi,grubx64.efi} /var/lib/tftpboot";
|
||||
# bootloader configs
|
||||
# BIOS
|
||||
assert_script_run "printf 'default vesamenu.c32\nprompt 1\ntimeout 600\n\nlabel linux\n menu label ^Install Rocky Linux 64-bit\n menu default\n kernel rocky/vmlinuz\n append initr
|
||||
d=rocky/initrd.img inst.ks=file:///ks.cfg ip=dhcp\nlabel local\n menu label Boot from ^local drive\n localboot 0xffff\n' >> /var/lib/tftpboot/pxelinux.cfg/default";
|
||||
assert_script_run "printf 'default vesamenu.c32\nprompt 1\ntimeout 600\n\nlabel linux\n menu label ^Install Rocky Linux 64-bit\n menu default\n kernel rocky/vmlinuz\n append initrd=rocky/initrd.img inst.ks=file:///ks.cfg ip=dhcp\nlabel local\n menu label Boot from ^local drive\n localboot 0xffff\n' >> /var/lib/tftpboot/pxelinux.cfg/default";
|
||||
# UEFI
|
||||
assert_script_run "printf 'function load_video {\n insmod efi_gop\n insmod efi_uga\n insmod ieee1275_fb\n insmod vbe\n insmod vga\n insmod video_bochs\n insmod video_cirrus\n}\
|
||||
n\nload_video\nset gfxpayload=keep\ninsmod gzio\n\nmenuentry \"Install Rocky Linux 64-bit\" --class rocky --class gnu-linux --class gnu --class os {\n linuxefi rocky/vmlinuz ip=dhcp inst.ks=
|
||||
file:///ks.cfg\n initrdefi rocky/initrd.img\n}' >> /var/lib/tftpboot/grub.cfg";
|
||||
assert_script_run "printf 'function load_video {\n insmod efi_gop\n insmod efi_uga\n insmod ieee1275_fb\n insmod vbe\n insmod vga\n insmod video_bochs\n insmod video_cirrus\n}\n\nload_video\nset gfxpayload=keep\ninsmod gzio\n\nmenuentry \"Install Rocky Linux 64-bit\" --class rocky --class gnu-linux --class gnu --class os {\n linuxefi rocky/vmlinuz ip=dhcp inst.ks=file:///ks.cfg\n initrdefi rocky/initrd.img\n}' >> /var/lib/tftpboot/grub.cfg";
|
||||
# DEBUG DEBUG
|
||||
upload_logs "/etc/dnsmasq.conf";
|
||||
upload_logs "/var/lib/tftpboot/grub.cfg";
|
||||
@ -97,7 +114,7 @@ file:///ks.cfg\n initrdefi rocky/initrd.img\n}' >> /var/lib/tftpboot/grub.cfg";
|
||||
# https://fedoraproject.org/wiki/QA:Testcase_Kickstart_File_Path_Ks_Cfg
|
||||
assert_script_run "curl -o ks.cfg https://git.rockylinux.org/tcooper/kickstarts/-/raw/main/root-user-crypted-net.ks";
|
||||
# tweak the repo config in it
|
||||
assert_script_run "sed -i -e 's,^url.*,nfs --server=nfs://172.16.2.110 --dir=/repo --opts=nfsver=4,g' ks.cfg";
|
||||
assert_script_run "sed -i -e 's,^url.*,nfs --server=nfs://172.16.2.110 --dir=/repo,g' ks.cfg";
|
||||
# embed it
|
||||
assert_script_run "echo ks.cfg | cpio -c -o >> /var/lib/tftpboot/rocky/initrd.img";
|
||||
# chown root
|
||||
@ -109,6 +126,7 @@ file:///ks.cfg\n initrdefi rocky/initrd.img\n}' >> /var/lib/tftpboot/grub.cfg";
|
||||
|
||||
sub run {
|
||||
my $self = shift;
|
||||
my $contentdir = get_var("DNF_CONTENTDIR");
|
||||
# disable systemd-resolved, it conflicts with dnsmasq
|
||||
unless (script_run "systemctl is-active systemd-resolved.service") {
|
||||
script_run "systemctl stop systemd-resolved.service";
|
||||
@ -148,8 +166,20 @@ sub run {
|
||||
|
||||
# create the file share
|
||||
assert_script_run "mkdir -p /export";
|
||||
# get the kickstart
|
||||
assert_script_run "curl -o /export/root-user-crypted-net.ks https://git.rockylinux.org/tcooper/kickstarts/-/raw/main/root-user-crypted-net.ks";
|
||||
# get the kickstart or kickstart template and replace content
|
||||
if ($contentdir) {
|
||||
my $releasever = get_var("DNF_RELEASEVAR");
|
||||
assert_script_run "curl -o /export/root-user-crypted-net.ks https://git.rockylinux.org/tcooper/kickstarts/-/raw/main/root-user-crypted-net-template.ks";
|
||||
# Tweak the kickstart template
|
||||
if ($releasever) {
|
||||
assert_script_run "sed -e 's,DNF_CONTENTDIR," . $contentdir . ",g;s,DNF_RELEASEVER," . $releasever . ",g' ks.cfg";
|
||||
} else {
|
||||
my $version = get_var("VERSION");
|
||||
assert_script_run "sed -e 's,DNF_CONTENTDIR," . $contentdir . ",g;s,DNF_RELEASEVER," . $version . ",g' ks.cfg";
|
||||
}
|
||||
} else {
|
||||
assert_script_run "curl -o /export/root-user-crypted-net.ks https://git.rockylinux.org/tcooper/kickstarts/-/raw/main/root-user-crypted-net.ks";
|
||||
}
|
||||
# for update tests, set up the update repository and export it
|
||||
if (get_var("ADVISORY_OR_TASK")) {
|
||||
assert_script_run "echo '/opt/update_repo 172.16.2.0/24(ro)' >> /etc/exports";
|
||||
@ -176,8 +206,14 @@ sub run {
|
||||
assert_script_run "printf '/export 172.16.2.0/24(ro)\n/repo 172.16.2.0/24(ro)\n/iso 172.16.2.0/24(ro)' > /etc/exports";
|
||||
}
|
||||
|
||||
# open firewall port
|
||||
assert_script_run "firewall-cmd --add-service=nfs";
|
||||
# configure nfsv3 ports
|
||||
assert_script_run "printf '[lockd]\nport=5555\n\n[statd]\nport=6666\n' > /etc/nfs.conf";
|
||||
|
||||
# configure firewall
|
||||
assert_script_run "firewall-cmd --add-service={nfs,rpc-bind,mountd}";
|
||||
assert_script_run "firewall-cmd --add-port={5555/tcp,5555/udp,6666/tcp,6666/udp}";
|
||||
assert_script_run "firewall-cmd --reload";
|
||||
|
||||
# start the server
|
||||
assert_script_run "systemctl restart nfs-server.service";
|
||||
assert_script_run "systemctl is-active nfs-server.service";
|
||||
|
41
tests/toolbox.pm
Normal file
@ -0,0 +1,41 @@
|
||||
# does a basic test of toolbox
|
||||
use base "installedtest";
|
||||
use strict;
|
||||
use testapi;
|
||||
use utils;
|
||||
|
||||
sub run {
|
||||
my $self = shift;
|
||||
my $version_major = get_version_major();
|
||||
assert_script_run "dnf install toolbox --assumeyes", 360 unless (get_var("CANNED"));
|
||||
assert_script_run "rpm -q toolbox";
|
||||
assert_script_run "toolbox create container_rl -y", 300;
|
||||
assert_script_run "toolbox list | grep container_rl";
|
||||
validate_script_output "toolbox run --container container_rl uname -a", sub { m/Linux toolbox/ };
|
||||
validate_script_output "toolbox run --container container_rl cat /etc/rocky-release", sub { m/Rocky Linux release $version_major/ };
|
||||
type_string "toolbox enter container_rl\n";
|
||||
assert_screen "console_in_toolbox", 180;
|
||||
type_string "exit\n";
|
||||
sleep 5;
|
||||
assert_script_run "clear";
|
||||
assert_script_run 'podman stop container_rl';
|
||||
assert_script_run "toolbox rm container_rl";
|
||||
assert_script_run "toolbox rmi --all --force";
|
||||
# pull fedora here as a quick test
|
||||
assert_script_run "toolbox -y create --distro fedora --release 39", 300;
|
||||
type_string "toolbox enter fedora-toolbox-39\n";
|
||||
assert_screen "console_in_toolbox", 180;
|
||||
type_string "exit\n";
|
||||
sleep 5;
|
||||
validate_script_output "toolbox run --distro fedora --release 39 cat /etc/fedora-release", sub { m/Fedora release 39 \(Thirty Nine\)/ };
|
||||
# clean up
|
||||
assert_script_run 'podman stop fedora-toolbox-39';
|
||||
assert_script_run "toolbox rm fedora-toolbox-39";
|
||||
assert_script_run "toolbox rmi --all --force";
|
||||
}
|
||||
|
||||
sub test_flags {
|
||||
return {fatal => 1};
|
||||
}
|
||||
|
||||
1;
|
@ -13,6 +13,8 @@ sub run {
|
||||
console_loadkeys_us;
|
||||
# this test shows if the system is booted with efi
|
||||
assert_script_run '[ -d /sys/firmware/efi/ ]';
|
||||
# this test shows if the system is secure boot
|
||||
script_run 'mokutil --sb-state';
|
||||
}
|
||||
|
||||
sub test_flags {
|
||||
|
@ -13,7 +13,6 @@ sub run {
|
||||
if (index($testname, "upgrade_2") != -1) {
|
||||
$version = get_var("UP2REL");
|
||||
}
|
||||
setup_workaround_repo $version;
|
||||
assert_script_run 'dnf -y update --refresh', 1800;
|
||||
script_run "reboot", 0;
|
||||
|
||||
|