diff --git a/lib/utils.pm b/lib/utils.pm index 43d476de..ea889313 100644 --- a/lib/utils.pm +++ b/lib/utils.pm @@ -204,7 +204,16 @@ sub console_login { if (check_screen $bad, 0) { # we don't want to 'wait' for this as it won't return - script_run "exit", 0; + my $script = "exit"; + # If Turkish keyboard is installed, the word "exit" is typed + # incorrectly because the keyboard layout is different and + # openQA sends keys according to the English layout. + # Therefore we need to send a string that is + # correctly interpreted by the Turkish layout. + if (get_var("LANGUAGE") eq "turkish") { + $script = "ex't"; + } + script_run $script, 0; sleep 2; } @@ -312,7 +321,7 @@ sub console_loadkeys_us { # might take a few secs sleep 3; } - elsif (get_var('LANGUAGE') eq 'japanese') { + elsif (get_var('LANGUAGE') eq 'japanese' || get_var('LANGUAGE') eq 'turkish') { script_run "loadkeys us", 0; sleep 3; } @@ -834,13 +843,32 @@ sub anaconda_create_user { timeout => 90, @_ ); + # For some languages, i.e. Turkish, we want to use a complicated + # geo field to test that turkish letters will be displayed correctly + # and that the installer will be able to handle them and change them + # into the correct user name without special characters. + my $geofield = get_var("USER_GECOS"); my $user_login = get_var("USER_LOGIN") || "test"; + unless ($geofield) { + # If geofield is not defined, let it be the same as login. + $geofield = $user_login; + } assert_and_click("anaconda_install_user_creation", timeout => $args{timeout}); assert_screen "anaconda_install_user_creation_screen"; # wait out animation wait_still_screen 2; - type_very_safely $user_login; - type_very_safely "\t\t\t\t"; + # We will type the $geofield as the user name. + type_very_safely $geofield; + # For Turkish, we especially want to check that correct characters + # are typed, so we will check it here. + if (get_var("LANGUAGE") eq "turkish") { + assert_screen("username_typed_correctly_turkish"); + } + send_key("tab"); + # Now set the login name. + type_very_safely($user_login); + # And fill the password stuff. + type_very_safely "\t\t\t"; _type_user_password(); wait_screen_change { send_key "tab"; }; wait_still_screen 2; diff --git a/needles/anaconda/install_destination/turkish/anaconda_install_destination_encrypt_data-turkish.json b/needles/anaconda/install_destination/turkish/anaconda_install_destination_encrypt_data-turkish.json new file mode 100644 index 00000000..f02924d8 --- /dev/null +++ b/needles/anaconda/install_destination/turkish/anaconda_install_destination_encrypt_data-turkish.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 24, + "ypos": 552, + "width": 116, + "height": 17, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_install_destination_encrypt_data" + ] +} \ No newline at end of file diff --git a/needles/anaconda/install_destination/turkish/anaconda_install_destination_encrypt_data-turkish.png b/needles/anaconda/install_destination/turkish/anaconda_install_destination_encrypt_data-turkish.png new file mode 100644 index 00000000..131da11a Binary files /dev/null and b/needles/anaconda/install_destination/turkish/anaconda_install_destination_encrypt_data-turkish.png differ diff --git a/needles/anaconda/install_destination/turkish/anaconda_install_destination_save_passphrase-turkish.json b/needles/anaconda/install_destination/turkish/anaconda_install_destination_save_passphrase-turkish.json new file mode 100644 index 00000000..de88386c --- /dev/null +++ b/needles/anaconda/install_destination/turkish/anaconda_install_destination_save_passphrase-turkish.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 692, + "ypos": 513, + "width": 91, + "height": 14, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_install_destination_save_passphrase" + ] +} \ No newline at end of file diff --git a/needles/anaconda/install_destination/turkish/anaconda_install_destination_save_passphrase-turkish.png b/needles/anaconda/install_destination/turkish/anaconda_install_destination_save_passphrase-turkish.png new file mode 100644 index 00000000..1139ced9 Binary files /dev/null and b/needles/anaconda/install_destination/turkish/anaconda_install_destination_save_passphrase-turkish.png differ diff --git a/needles/anaconda/install_process/turkish/anaconda_install_done-turkish.json b/needles/anaconda/install_process/turkish/anaconda_install_done-turkish.json new file mode 100644 index 00000000..4e244dd0 --- /dev/null +++ b/needles/anaconda/install_process/turkish/anaconda_install_done-turkish.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 863, + "ypos": 733, + "width": 134, + "height": 14, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_install_done" + ] +} \ No newline at end of file diff --git a/needles/anaconda/install_process/turkish/anaconda_install_done-turkish.png b/needles/anaconda/install_process/turkish/anaconda_install_done-turkish.png new file mode 100644 index 00000000..adfe3fab Binary files /dev/null and b/needles/anaconda/install_process/turkish/anaconda_install_done-turkish.png differ diff --git a/needles/anaconda/install_process/turkish/anaconda_install_root_password_screen-turkish.json b/needles/anaconda/install_process/turkish/anaconda_install_root_password_screen-turkish.json new file mode 100644 index 00000000..51c3061b --- /dev/null +++ b/needles/anaconda/install_process/turkish/anaconda_install_root_password_screen-turkish.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 265, + "ypos": 294, + "width": 169, + "height": 14, + "type": "match" + } + ], + "properties": [], + "tags": [ + "ENV-DISTRI-fedora", + "anaconda_install_root_password_screen" + ] +} \ No newline at end of file diff --git a/needles/anaconda/install_process/turkish/anaconda_install_root_password_screen-turkish.png b/needles/anaconda/install_process/turkish/anaconda_install_root_password_screen-turkish.png new file mode 100644 index 00000000..d1bec683 Binary files /dev/null and b/needles/anaconda/install_process/turkish/anaconda_install_root_password_screen-turkish.png differ diff --git a/needles/anaconda/install_process/turkish/anaconda_install_user_created-turkish-20230626.json b/needles/anaconda/install_process/turkish/anaconda_install_user_created-turkish-20230626.json new file mode 100644 index 00000000..f5c810a1 --- /dev/null +++ b/needles/anaconda/install_process/turkish/anaconda_install_user_created-turkish-20230626.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 335, + "ypos": 589, + "width": 24, + "height": 10, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_install_user_created" + ] +} \ No newline at end of file diff --git a/needles/anaconda/install_process/turkish/anaconda_install_user_created-turkish-20230626.png b/needles/anaconda/install_process/turkish/anaconda_install_user_created-turkish-20230626.png new file mode 100644 index 00000000..49632214 Binary files /dev/null and b/needles/anaconda/install_process/turkish/anaconda_install_user_created-turkish-20230626.png differ diff --git a/needles/anaconda/install_process/turkish/anaconda_install_user_created-turkish.json b/needles/anaconda/install_process/turkish/anaconda_install_user_created-turkish.json new file mode 100644 index 00000000..47a60878 --- /dev/null +++ b/needles/anaconda/install_process/turkish/anaconda_install_user_created-turkish.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "type": "match", + "width": 20, + "ypos": 590, + "height": 10, + "xpos": 336 + } + ], + "properties": [], + "tags": [ + "anaconda_install_user_created" + ] +} \ No newline at end of file diff --git a/needles/anaconda/install_process/turkish/anaconda_install_user_created-turkish.png b/needles/anaconda/install_process/turkish/anaconda_install_user_created-turkish.png new file mode 100644 index 00000000..49632214 Binary files /dev/null and b/needles/anaconda/install_process/turkish/anaconda_install_user_created-turkish.png differ diff --git a/needles/anaconda/install_process/turkish/anaconda_install_user_creation_screen-turkish.json b/needles/anaconda/install_process/turkish/anaconda_install_user_creation_screen-turkish.json new file mode 100644 index 00000000..83ad3da5 --- /dev/null +++ b/needles/anaconda/install_process/turkish/anaconda_install_user_creation_screen-turkish.json @@ -0,0 +1,22 @@ +{ + "area": [ + { + "xpos": 364, + "ypos": 220, + "width": 257, + "height": 16, + "type": "match" + }, + { + "xpos": 302, + "ypos": 256, + "width": 41, + "height": 15, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_install_user_creation_screen" + ] +} \ No newline at end of file diff --git a/needles/anaconda/install_process/turkish/anaconda_install_user_creation_screen-turkish.png b/needles/anaconda/install_process/turkish/anaconda_install_user_creation_screen-turkish.png new file mode 100644 index 00000000..f78454d8 Binary files /dev/null and b/needles/anaconda/install_process/turkish/anaconda_install_user_creation_screen-turkish.png differ diff --git a/needles/anaconda/install_process/turkish/username_typed_correctly_turkish.json b/needles/anaconda/install_process/turkish/username_typed_correctly_turkish.json new file mode 100644 index 00000000..aa273db9 --- /dev/null +++ b/needles/anaconda/install_process/turkish/username_typed_correctly_turkish.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 366, + "ypos": 99, + "width": 140, + "height": 59, + "type": "match", + "match": 90 + } + ], + "properties": [], + "tags": [ + "username_typed_correctly_turkish" + ] +} \ No newline at end of file diff --git a/needles/anaconda/install_process/turkish/username_typed_correctly_turkish.png b/needles/anaconda/install_process/turkish/username_typed_correctly_turkish.png new file mode 100644 index 00000000..e8748f8e Binary files /dev/null and b/needles/anaconda/install_process/turkish/username_typed_correctly_turkish.png differ diff --git a/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_continue-turkish.json b/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_continue-turkish.json new file mode 100644 index 00000000..e40a083d --- /dev/null +++ b/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_continue-turkish.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 954, + "ypos": 730, + "width": 44, + "height": 18, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_select_install_lang_continue" + ] +} \ No newline at end of file diff --git a/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_continue-turkish.png b/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_continue-turkish.png new file mode 100644 index 00000000..67884fe3 Binary files /dev/null and b/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_continue-turkish.png differ diff --git a/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_filtered-turkish.json b/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_filtered-turkish.json new file mode 100644 index 00000000..b3cd8f89 --- /dev/null +++ b/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_filtered-turkish.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 220, + "ypos": 198, + "width": 51, + "height": 19, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_select_install_lang_filtered" + ] +} \ No newline at end of file diff --git a/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_filtered-turkish.png b/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_filtered-turkish.png new file mode 100644 index 00000000..996fb621 Binary files /dev/null and b/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_filtered-turkish.png differ diff --git a/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_selected-turkish.json b/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_selected-turkish.json new file mode 100644 index 00000000..a11ff62d --- /dev/null +++ b/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_selected-turkish.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 606, + "ypos": 195, + "width": 115, + "height": 19, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_select_install_lang_selected" + ] +} \ No newline at end of file diff --git a/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_selected-turkish.png b/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_selected-turkish.png new file mode 100644 index 00000000..67884fe3 Binary files /dev/null and b/needles/anaconda/lang_select/turkish/anaconda_select_install_lang_selected-turkish.png differ diff --git a/needles/anaconda/lang_select/turkish/install_lang_english_selected-20230619.json b/needles/anaconda/lang_select/turkish/install_lang_english_selected-20230619.json new file mode 100644 index 00000000..b90f7cad --- /dev/null +++ b/needles/anaconda/lang_select/turkish/install_lang_english_selected-20230619.json @@ -0,0 +1,19 @@ +{ + "area": [ + { + "width": 58, + "height": 18, + "ypos": 220, + "type": "match", + "xpos": 219, + "match": 94 + } + ], + "properties": [], + "tags": [ + "anaconda_select_install_lang_selected", + "anaconda_select_install_lang_filtered", + "ENV-DISTRI-fedora", + "LANGUAGE-english" + ] +} \ No newline at end of file diff --git a/needles/anaconda/lang_select/turkish/install_lang_english_selected-20230619.png b/needles/anaconda/lang_select/turkish/install_lang_english_selected-20230619.png new file mode 100644 index 00000000..b4374924 Binary files /dev/null and b/needles/anaconda/lang_select/turkish/install_lang_english_selected-20230619.png differ diff --git a/needles/anaconda/main_hub/turkish/anaconda_main_hub_begin_installation-turkish.json b/needles/anaconda/main_hub/turkish/anaconda_main_hub_begin_installation-turkish.json new file mode 100644 index 00000000..63b6e53b --- /dev/null +++ b/needles/anaconda/main_hub/turkish/anaconda_main_hub_begin_installation-turkish.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 906, + "ypos": 707, + "width": 92, + "height": 18, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_main_hub_begin_installation" + ] +} \ No newline at end of file diff --git a/needles/anaconda/main_hub/turkish/anaconda_main_hub_begin_installation-turkish.png b/needles/anaconda/main_hub/turkish/anaconda_main_hub_begin_installation-turkish.png new file mode 100644 index 00000000..f5641a46 Binary files /dev/null and b/needles/anaconda/main_hub/turkish/anaconda_main_hub_begin_installation-turkish.png differ diff --git a/needles/anaconda/package_selection/turkish/anaconda_workstation_highlighted-turkish.json b/needles/anaconda/package_selection/turkish/anaconda_workstation_highlighted-turkish.json new file mode 100644 index 00000000..f0ff0095 --- /dev/null +++ b/needles/anaconda/package_selection/turkish/anaconda_workstation_highlighted-turkish.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 50, + "ypos": 253, + "width": 117, + "height": 15, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_workstation_highlighted" + ] +} \ No newline at end of file diff --git a/needles/anaconda/package_selection/turkish/anaconda_workstation_highlighted-turkish.png b/needles/anaconda/package_selection/turkish/anaconda_workstation_highlighted-turkish.png new file mode 100644 index 00000000..3147a9b2 Binary files /dev/null and b/needles/anaconda/package_selection/turkish/anaconda_workstation_highlighted-turkish.png differ diff --git a/needles/anaconda/package_selection/turkish/anaconda_workstation_selected-bluebutton-turkish.json b/needles/anaconda/package_selection/turkish/anaconda_workstation_selected-bluebutton-turkish.json new file mode 100644 index 00000000..464f375a --- /dev/null +++ b/needles/anaconda/package_selection/turkish/anaconda_workstation_selected-bluebutton-turkish.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 29, + "ypos": 253, + "width": 140, + "height": 15, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_workstation_selected" + ] +} \ No newline at end of file diff --git a/needles/anaconda/package_selection/turkish/anaconda_workstation_selected-bluebutton-turkish.png b/needles/anaconda/package_selection/turkish/anaconda_workstation_selected-bluebutton-turkish.png new file mode 100644 index 00000000..1b820bb8 Binary files /dev/null and b/needles/anaconda/package_selection/turkish/anaconda_workstation_selected-bluebutton-turkish.png differ diff --git a/needles/anaconda/universal/turkish/anaconda_rawhide_accept_fate-turkish.json b/needles/anaconda/universal/turkish/anaconda_rawhide_accept_fate-turkish.json new file mode 100644 index 00000000..b38a70c5 --- /dev/null +++ b/needles/anaconda/universal/turkish/anaconda_rawhide_accept_fate-turkish.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 633, + "ypos": 560, + "width": 125, + "height": 14, + "type": "match" + } + ], + "properties": [], + "tags": [ + "ENV-DISTRI-fedora", + "anaconda_rawhide_accept_fate" + ] +} \ No newline at end of file diff --git a/needles/anaconda/universal/turkish/anaconda_rawhide_accept_fate-turkish.png b/needles/anaconda/universal/turkish/anaconda_rawhide_accept_fate-turkish.png new file mode 100644 index 00000000..09a1ebb6 Binary files /dev/null and b/needles/anaconda/universal/turkish/anaconda_rawhide_accept_fate-turkish.png differ diff --git a/needles/anaconda/universal/turkish/anaconda_spoke_done-turkish.json b/needles/anaconda/universal/turkish/anaconda_spoke_done-turkish.json new file mode 100644 index 00000000..64243a2a --- /dev/null +++ b/needles/anaconda/universal/turkish/anaconda_spoke_done-turkish.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 34, + "ypos": 53, + "width": 28, + "height": 17, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_spoke_done" + ] +} \ No newline at end of file diff --git a/needles/anaconda/universal/turkish/anaconda_spoke_done-turkish.png b/needles/anaconda/universal/turkish/anaconda_spoke_done-turkish.png new file mode 100644 index 00000000..1b820bb8 Binary files /dev/null and b/needles/anaconda/universal/turkish/anaconda_spoke_done-turkish.png differ diff --git a/needles/gnome/apps_menu_button-active.json b/needles/gnome/apps_menu_button-active.json new file mode 100644 index 00000000..8c6d7ff2 --- /dev/null +++ b/needles/gnome/apps_menu_button-active.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 17, + "ypos": 10, + "width": 73, + "height": 14, + "type": "match" + } + ], + "properties": [], + "tags": [ + "apps_menu_button" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps_menu_button-active.png b/needles/gnome/apps_menu_button-active.png new file mode 100644 index 00000000..ebcc7e56 Binary files /dev/null and b/needles/gnome/apps_menu_button-active.png differ diff --git a/needles/gnome/getting_started-tour-20230622.json b/needles/gnome/getting_started-tour-20230622.json new file mode 100644 index 00000000..21caf50f --- /dev/null +++ b/needles/gnome/getting_started-tour-20230622.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 465, + "type": "match", + "height": 122, + "ypos": 250, + "width": 123 + } + ], + "properties": [], + "tags": [ + "getting_started" + ] +} \ No newline at end of file diff --git a/needles/gnome/getting_started-tour-20230622.png b/needles/gnome/getting_started-tour-20230622.png new file mode 100644 index 00000000..7bdc224e Binary files /dev/null and b/needles/gnome/getting_started-tour-20230622.png differ diff --git a/templates.fif.json b/templates.fif.json index 43395732..4e4f8319 100644 --- a/templates.fif.json +++ b/templates.fif.json @@ -2079,6 +2079,28 @@ "ROOT_PASSWORD": "weakpassword" } }, + "install_turkish_language": { + "profiles": { + "fedora-Server-dvd-iso-aarch64-*-aarch64": 40, + "fedora-Server-dvd-iso-ppc64le-*-ppc64le": 40, + "fedora-Server-dvd-iso-x86_64-*-64bit": 40 + }, + "settings": { + "DESKTOP": "gnome", + "ENCRYPT_PASSWORD": "weakpassword", + "HDDSIZEGB": "15", + "LANGUAGE": "turkish", + "NO_UEFI_POST": "1", + "PACKAGE_SET": "workstation", + "POSTINSTALL": "_console_login", + "QEMU_DISABLE_SNAPSHOTS": "1", + "REPOSITORY_VARIATION": "%LOCATION%", + "ROOT_PASSWORD": "weakpassword", + "USER_GECOS": "I;'[] <>i[ \"d,. };[,r]", + "USER_LOGIN": "test", + "USER_PASSWORD": "weakpassword" + } + }, "install_updates_img_local": { "profiles": { "fedora-Server-dvd-iso-ppc64le-*-ppc64le": 30,