From b4b419435c75dfd32d4c2c7d8a39b07a57141437 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 7 Apr 2025 12:39:33 +0600 Subject: [PATCH 1/9] Password changes --- source/ubl-settings-update.c | 113 +++++++++++++++++++++-------------- source/ubl-settings-update.h | 3 + source/ubl-strings.h | 3 +- 3 files changed, 73 insertions(+), 46 deletions(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 34aad3d..2c4dd8c 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -740,6 +740,13 @@ void on_password_encryption_changed(GtkComboBox *self, password_window *dialog){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->NoEncriptionCheck),0); } +void yon_hash_entry_sensitiveness_update(GtkWidget *, password_window *dialog){ + int hash_type_sensitive = gtk_combo_box_get_active(GTK_COMBO_BOX(dialog->EncryptionCombo)); + int encrypt_sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->NoEncriptionCheck)); + if (!encrypt_sensitive&&hash_type_sensitive) gtk_widget_set_sensitive(dialog->PasswordHashEntry,1); + else gtk_widget_set_sensitive(dialog->PasswordHashEntry,0); +} + void on_password_open(GtkWidget *, web_publication_add_window *window){ password_window *dialog = yon_password_window_new(); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(dialog->PasswordEntry)); @@ -749,8 +756,10 @@ void on_password_open(GtkWidget *, web_publication_add_window *window){ yon_dictionary_add_or_create_if_exists_with_data(dict,"window",dialog); yon_dictionary_add_or_create_if_exists_with_data(dict,"target",window->UserPasswordEntry); g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_password_accept),dict); - g_signal_connect(G_OBJECT(dialog->NoEncriptionCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),dialog->PasswordHashEntry); + g_signal_connect(G_OBJECT(dialog->NoEncriptionCheck),"toggled",G_CALLBACK(yon_hash_entry_sensitiveness_update),dialog); + g_signal_connect(G_OBJECT(dialog->EncryptionCombo),"changed",G_CALLBACK(yon_hash_entry_sensitiveness_update),dialog); g_signal_connect(G_OBJECT(dialog->EncryptionCombo),"changed",G_CALLBACK(on_password_encryption_changed),dialog); + yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window),PASSWORD_INPUT_LABEL,icon_path,"password_window"); } void on_web_publish_remove(GtkWidget *self,main_window *widgets){ @@ -1371,67 +1380,81 @@ void on_mirror_configure_accept(GtkWidget *, dictionary *dict){ gtk_widget_destroy(window->Window); } -void on_password_accept(GtkWidget *,dictionary *dict){ - password_window *window = yon_dictionary_get_data(dict->first,password_window*); - GtkWidget *target = yon_dictionary_get_data(dict->first->next,GtkWidget*); +char *yon_password_unencrypted_password_get(password_window *window){ + const char *password = gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry)); + const char *password_repeat = gtk_entry_get_text(GTK_ENTRY(window->RepeatPasswordEntry)); + if (strpbrk(password,"!@#%^&*\'")){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_RESTRICTED_SYMBOL_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->PasswordEntry); + return NULL; + } + if (strcmp(password,password_repeat)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_MISMATCH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->PasswordEntry); + yon_ubl_status_highlight_incorrect(window->RepeatPasswordEntry); + return NULL; + } + if (yon_char_is_empty(password)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->PasswordEntry); + return NULL; + } + + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->NoEncriptionCheck))){ + const char *encryption = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->EncryptionCombo)); + char *final = yon_char_unite(encryption,"|",password,NULL); + return final; + } else { + return yon_char_new(password); + } +} +char *yon_password_hash_get(password_window *window){ int encription_active = gtk_combo_box_get_active(GTK_COMBO_BOX(window->EncryptionCombo)); const char *encription = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->EncryptionCombo)); - if (encription_active == 0){ + const char *hash = gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry)); + if (!yon_char_is_empty(hash)){ + char *final = yon_char_unite(encription,"|",hash); + return final; + } else { const char *password = gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry)); const char *password_repeat = gtk_entry_get_text(GTK_ENTRY(window->RepeatPasswordEntry)); if (strpbrk(password,"!@#%^&*\'")){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_RESTRICTED_SYMBOL_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(window->PasswordEntry); - return; + return NULL; } if (strcmp(password,password_repeat)){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_MISMATCH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(window->PasswordEntry); yon_ubl_status_highlight_incorrect(window->RepeatPasswordEntry); - return; + return NULL; } - gtk_entry_set_text(GTK_ENTRY(target),password); - } else { - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->NoEncriptionCheck))){ - const char *hash = gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry)); - if (yon_char_is_empty(hash)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(window->PasswordHashEntry); - return; - } - if (strlen((hash))!=128||strlen(hash)!=64){ - yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),INCORRECT_HASH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(window->PasswordHashEntry); - return; - } - char *final = yon_char_unite(encription,"|",hash,NULL); - gtk_entry_set_text(GTK_ENTRY(target),final); - free(final); - } else { - const char *password = gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry)); - const char *password_repeat = gtk_entry_get_text(GTK_ENTRY(window->RepeatPasswordEntry)); - if (strpbrk(password,"!@#%^&*\'")){ - yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_RESTRICTED_SYMBOL_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(window->PasswordEntry); - return; - } - if (strcmp(password,password_repeat)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_MISMATCH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(window->PasswordEntry); - yon_ubl_status_highlight_incorrect(window->RepeatPasswordEntry); - return; - } - int size; - config_str hash = yon_config_load(yon_debug_output("%s\n",encription_active==1?sha512_encrypt_command(password):sha256_encrypt_command(password)),&size); - yon_char_remove_last_symbol(hash[0],'\n'); + int size; + config_str hash = yon_config_load(yon_debug_output("%s\n",encription_active==1?sha512_encrypt_command(password):sha256_encrypt_command(password)),&size); + yon_char_remove_last_symbol(hash[0],'\n'); - char *final = yon_char_unite(encription,"|",hash[0],NULL); - gtk_entry_set_text(GTK_ENTRY(target),final); - free(final); - } + char *final = yon_char_unite(encription,"|",hash[0],NULL); + return final; + } + return NULL; +} + +void on_password_accept(GtkWidget *,dictionary *dict){ + password_window *window = yon_dictionary_get_data(dict->first,password_window*); + GtkWidget *target = yon_dictionary_get_data(dict->first->next,GtkWidget*); + + int encription_active = gtk_combo_box_get_active(GTK_COMBO_BOX(window->EncryptionCombo)); + char *final = NULL; + if (encription_active == 0||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->NoEncriptionCheck))){ + final = yon_password_unencrypted_password_get(window); + if (!final) return; + } else { + final = yon_password_hash_get(window); + if (!final) return; } + gtk_entry_set_text(GTK_ENTRY(target),final); gtk_widget_destroy(window->Window); } diff --git a/source/ubl-settings-update.h b/source/ubl-settings-update.h index 1a88728..c6e3ee9 100644 --- a/source/ubl-settings-update.h +++ b/source/ubl-settings-update.h @@ -380,4 +380,7 @@ void on_repo_source_add(GtkWidget *, repo_add_window *window); void on_cell_renderer_toggle_toggled(GtkWidget *self, gchar* path, GtkWidget *table); void on_mirror_configure_accept(GtkWidget *, dictionary *dict); +char *yon_password_unencrypted_password_get(password_window *window); +char *yon_password_hash_get(password_window *window); +void yon_hash_entry_sensitiveness_update(GtkWidget *, password_window *dialog); #endif \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 3b4b9b5..a911688 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -31,6 +31,8 @@ Configuration - configuration path") #define MIRROR_TOOLTIP_LABEL _("url - web-link for repository. It is allowed to write multiple, separating with comma (,)\n\ http_proxy - proxy-server for repository, replaces 'http_proxy'. Single parameter per repository\n\ mirrorlist - mirrors file, make sure server URL is NOT included in this file! Single parameter per repository") + #define PASSWORD_INPUT_LABEL _("Password input") + /* #define _LABEL _("Signature verification will not be performed") #define _LABEL _("Signatures will be verified if present, but unsigned databases and packages will also be accepted") @@ -153,7 +155,6 @@ mirrorlist - mirrors file, make sure server URL is NOT included in this file! Si #define _LABEL _("Months") #define _LABEL _("Sign level") #define _LABEL _("Description") - #define _LABEL _("Password input") #define _LABEL _("Password:") #define _LABEL _("Repeat password:") #define _LABEL _("Entryption:") From bd419ac8ffad4448178be48608c825d63a0fb161 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 7 Apr 2025 14:19:49 +0600 Subject: [PATCH 2/9] Fixes --- source/ubl-settings-update.c | 16 +++++++++------- source/ubl-strings.h | 2 +- ubl-settings-update.glade | 8 ++++---- ubl-settings-update.pot | 2 +- ubl-settings-update_ru.po | 4 ++-- 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 2c4dd8c..1659e3d 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -500,14 +500,16 @@ void yon_interface_update(main_window *widgets){ gtk_list_store_set(widgets->WebPublicationList,&iter,5,parsed[3],-1); } if (cur_size>4&&!yon_char_is_empty(parsed[4])){ - char *hash = yon_char_divide_search(parsed[4],"|",-1); - if (!strcmp(hash,"sha256")||!strcmp(hash,"sha512")){ + if (!strcmp(parsed[5],"sha256")||!strcmp(parsed[5],"sha512")){ gtk_list_store_set(widgets->WebPublicationList,&iter,7,"******",-1); - gtk_list_store_set(widgets->WebPublicationList,&iter,6,hash,-1); + gtk_list_store_set(widgets->WebPublicationList,&iter,6,parsed[5],-1); } else { - gtk_list_store_set(widgets->WebPublicationList,&iter,6,"******",-1); + if (strlen(parsed[4])==128||strlen(parsed[4])==64) + gtk_list_store_set(widgets->WebPublicationList,&iter,7,parsed[4],-1); + else + gtk_list_store_set(widgets->WebPublicationList,&iter,7,"******",-1); if (cur_size>5&&!yon_char_is_empty(parsed[5])){ - gtk_list_store_set(widgets->WebPublicationList,&iter,7,parsed[5],-1); + gtk_list_store_set(widgets->WebPublicationList,&iter,6,parsed[5],-1); } } } @@ -1260,8 +1262,8 @@ void on_web_publish_accept(GtkWidget *, dictionary *dict){ enable_browser?"listing":"",":", port_enabled?port:"",":", username_check?username:"",":", - username_check?yon_char_is_empty(encryption)? user_password:encryption:"",":", - username_check?!yon_char_is_empty(encryption)?user_password:"":"", + username_check?!yon_char_is_empty(user_password)?user_password:"":"", + username_check?yon_char_is_empty(encryption)?"":encryption:"",":", NULL); if (!yon_char_is_empty(window->name)&&strcmp(final_name,window->name)){ yon_config_remove_by_key(REPOPUBLIC_WEB_full(window->name)); diff --git a/source/ubl-strings.h b/source/ubl-strings.h index a911688..b326cce 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -106,7 +106,7 @@ mirrorlist - mirrors file, make sure server URL is NOT included in this file! Si #define _LABEL _("Reviewer") #define _LABEL _("Port") #define _LABEL _("Name") - #define _LABEL _("Password/Hash type") + #define _LABEL _("Hash type") #define _LABEL _("Password hash") #define _LABEL _("Setting up publication of a lazy mirror of connected repositories as a local WEB resource") #define _LABEL _("Publish lazy mirror") diff --git a/ubl-settings-update.glade b/ubl-settings-update.glade index 4a9e7bd..adc0e41 100644 --- a/ubl-settings-update.glade +++ b/ubl-settings-update.glade @@ -1360,26 +1360,26 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. True fixed - Password/Hash type + Password hash end - 6 + 7 - Password hash + Hash type end - 7 + 6 diff --git a/ubl-settings-update.pot b/ubl-settings-update.pot index f22ee3f..ee43852 100644 --- a/ubl-settings-update.pot +++ b/ubl-settings-update.pot @@ -385,7 +385,7 @@ msgid "Name" msgstr "" #: source/ubl-strings.h:107 -msgid "Password/Hash type" +msgid "Hash type" msgstr "" #: source/ubl-strings.h:108 diff --git a/ubl-settings-update_ru.po b/ubl-settings-update_ru.po index 6a4ca75..74c64d8 100644 --- a/ubl-settings-update_ru.po +++ b/ubl-settings-update_ru.po @@ -408,8 +408,8 @@ msgid "Name" msgstr "Имя пользователя" #: source/ubl-strings.h:107 -msgid "Password/Hash type" -msgstr "Пароль/Тип хэша" +msgid "Hash type" +msgstr "Тип хэша" #: source/ubl-strings.h:108 msgid "Password hash" From d80a605afcc3325855af4f3cdf389e8a76c6a579 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 7 Apr 2025 14:32:33 +0600 Subject: [PATCH 3/9] Fixed --- source/ubl-settings-update.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 1659e3d..f547fb9 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -1717,7 +1717,6 @@ web_publication_add_window *yon_web_publication_add_window_new(){ window->SelectionCellRenderer = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"SelectionCellRenderer")); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->UserPasswordEntry)); - yon_gtk_entry_block_symbols(GTK_ENTRY(window->UsernameEntry),"$"); window->name=NULL; g_signal_connect(G_OBJECT(window->SelectionCellRenderer),"toggled",G_CALLBACK(on_cell_renderer_toggle_toggled),window->RepositoriesTree); g_signal_connect(G_OBJECT(window->PathButton),"clicked",G_CALLBACK(on_file_chooser_open),window->PathEntry); @@ -1761,6 +1760,7 @@ mirror_configure_window *yon_mirror_configure_window_new(){ window->UpdatesRequestDelayDefaultCheck = yon_gtk_builder_get_widget(builder,"UpdatesRequestDelayDefaultCheck"); window->UpdatesRequestDelaySpin = yon_gtk_builder_get_widget(builder,"UpdatesRequestDelaySpin"); + g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->PortDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->PortSpin); g_signal_connect(G_OBJECT(window->CacheDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->CacheEntry); @@ -1808,6 +1808,8 @@ mirror_add_window *yon_mirror_add_window_new(){ yon_gtk_entry_block_symbols(GTK_ENTRY(window->NameEntry),"$"); yon_on_entry_set_allowed_symbols(GTK_ENTRY(window->TypeEntry),"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/1234567890!$.#-_()~$&;{}[]|<>^:?+\\,'*`%"); + yon_on_entry_set_allowed_symbols(GTK_ENTRY(window->NameEntry),"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_$"); + window->sections = NULL; window->name=NULL; From 0fef14f16b4a06b2740ef2cd82d8e4c34c32b765 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 7 Apr 2025 14:34:35 +0600 Subject: [PATCH 4/9] Localisation fixes --- ubl-settings-update_ru.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ubl-settings-update_ru.po b/ubl-settings-update_ru.po index 74c64d8..e3b4d7e 100644 --- a/ubl-settings-update_ru.po +++ b/ubl-settings-update_ru.po @@ -108,11 +108,11 @@ msgid "" "mirrorlist - mirrors file, make sure server URL is NOT included in this " "file! Single parameter per repository" msgstr "" -"url - web-ссылка на репозиторий. Допускается нескольк через запятую (,)\n" +"url - web-ссылка на репозиторий. Допускается несколько через запятую (,).\n" "http_proxy - прокси-сервер для репозитория, заменяет 'http_proxy'. " -"Допускается только один параметр на репозиторий\n" -"mirrorlist - файл зерка, убедитесь что URL текущего сервера НЕ включен в " -"этот файл! Допускается только один параметр на репозиторий" +"Допускается только один параметр на репозиторий.\n" +"mirrorlist - файл зерка, убедитесь, что URL текущего сервера НЕ включен в " +"этот файл! Допускается только один параметр на репозиторий." #: source/ubl-strings.h:35 msgid "Signature verification will not be performed" From a149cfca72e4710a157a7b8fa7b3d128ac59df07 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 7 Apr 2025 16:37:49 +0600 Subject: [PATCH 5/9] Crash fix --- source/ubl-settings-update.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index f547fb9..833db08 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -1416,7 +1416,12 @@ char *yon_password_hash_get(password_window *window){ const char *encription = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->EncryptionCombo)); const char *hash = gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry)); if (!yon_char_is_empty(hash)){ - char *final = yon_char_unite(encription,"|",hash); + if (strlen(hash)!=128||strlen(hash)!=64){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),INCORRECT_HASH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->PasswordHashEntry); + return NULL; + } + char *final = yon_char_unite(encription,"|",hash,NULL); return final; } else { const char *password = gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry)); From 59fa541caa9fedf12acc4d281ccb5562c48d0c36 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 7 Apr 2025 16:50:09 +0600 Subject: [PATCH 6/9] Localisation update --- source/ubl-strings.h | 2 + ubl-settings-update.pot | 256 ++++++++++++++++++++------------------ ubl-settings-update_ru.po | 256 ++++++++++++++++++++------------------ 3 files changed, 266 insertions(+), 248 deletions(-) diff --git a/source/ubl-strings.h b/source/ubl-strings.h index b326cce..f7acc1c 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -163,6 +163,8 @@ mirrorlist - mirrors file, make sure server URL is NOT included in this file! Si #define _LABEL _("Default (None)") #define _LABEL _("Encryption:") #define _LABEL _("Encryption") + #define _LABEL _("Password") + #define _LABEL _("Repeat password") */ #endif \ No newline at end of file diff --git a/ubl-settings-update.pot b/ubl-settings-update.pot index ee43852..c2ac3c1 100644 --- a/ubl-settings-update.pot +++ b/ubl-settings-update.pot @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: source/ubl-strings.h:4 source/ubl-strings.h:53 +#: source/ubl-strings.h:4 source/ubl-strings.h:55 msgid "System update" msgstr "" @@ -104,501 +104,509 @@ msgid "" "file! Single parameter per repository" msgstr "" -#: source/ubl-strings.h:35 +#: source/ubl-strings.h:34 +msgid "Password input" +msgstr "" + +#: source/ubl-strings.h:37 msgid "Signature verification will not be performed" msgstr "" -#: source/ubl-strings.h:36 +#: source/ubl-strings.h:38 msgid "" "Signatures will be verified if present, but unsigned databases and packages " "will also be accepted" msgstr "" -#: source/ubl-strings.h:37 +#: source/ubl-strings.h:39 msgid "Signatures will be required for all packages and databases" msgstr "" -#: source/ubl-strings.h:38 +#: source/ubl-strings.h:40 msgid "" "If signature is verified for packages and database, it must be in the " "keyring and fully trusted; marginal trust not applicable" msgstr "" -#: source/ubl-strings.h:39 +#: source/ubl-strings.h:41 msgid "" "If signature is verified, it must be in keyring, but does not need to have a " "trust level assigned (e.g. unknown or marginal trust)" msgstr "" -#: source/ubl-strings.h:40 +#: source/ubl-strings.h:42 msgid "Packages only" msgstr "" -#: source/ubl-strings.h:41 +#: source/ubl-strings.h:43 msgid "Database only" msgstr "" -#: source/ubl-strings.h:42 +#: source/ubl-strings.h:44 msgid "If signature is verified only for packages" msgstr "" -#: source/ubl-strings.h:43 +#: source/ubl-strings.h:45 msgid "If signature is verified only for database" msgstr "" -#: source/ubl-strings.h:44 +#: source/ubl-strings.h:46 msgid "every" msgstr "" -#: source/ubl-strings.h:45 +#: source/ubl-strings.h:47 msgid "Resource link of file path" msgstr "" -#: source/ubl-strings.h:46 +#: source/ubl-strings.h:48 msgid "Open file explorer" msgstr "" -#: source/ubl-strings.h:47 +#: source/ubl-strings.h:49 msgid "Add source" msgstr "" -#: source/ubl-strings.h:48 +#: source/ubl-strings.h:50 msgid "Username" msgstr "" -#: source/ubl-strings.h:49 +#: source/ubl-strings.h:51 msgid "User password" msgstr "" -#: source/ubl-strings.h:50 +#: source/ubl-strings.h:52 msgid "Storage path to publish" msgstr "" -#: source/ubl-strings.h:51 +#: source/ubl-strings.h:53 msgid "" "The full URL of where to find the database, packages, and signatures (if " "available) for this repository. Multiple can be specified, separated by " "commas (,)" msgstr "" -#: source/ubl-strings.h:52 source/ubl-strings.h:80 +#: source/ubl-strings.h:54 source/ubl-strings.h:82 msgid "Update" msgstr "" -#: source/ubl-strings.h:54 +#: source/ubl-strings.h:56 msgid "Repositories" msgstr "" -#: source/ubl-strings.h:55 +#: source/ubl-strings.h:57 msgid "Publication" msgstr "" -#: source/ubl-strings.h:56 +#: source/ubl-strings.h:58 msgid "WEB-publication" msgstr "" -#: source/ubl-strings.h:57 +#: source/ubl-strings.h:59 msgid "Mirror publication" msgstr "" -#: source/ubl-strings.h:58 +#: source/ubl-strings.h:60 msgid "Date of last automatic update:" msgstr "" -#: source/ubl-strings.h:59 +#: source/ubl-strings.h:61 msgid "Date of last automatic update" msgstr "" -#: source/ubl-strings.h:60 +#: source/ubl-strings.h:62 msgid "Automatic update" msgstr "" -#: source/ubl-strings.h:61 +#: source/ubl-strings.h:63 msgid "Update mode:" msgstr "" -#: source/ubl-strings.h:62 +#: source/ubl-strings.h:64 msgid "Update interval:" msgstr "" -#: source/ubl-strings.h:64 +#: source/ubl-strings.h:66 msgid "Update mode" msgstr "" -#: source/ubl-strings.h:65 +#: source/ubl-strings.h:67 msgid "Update interval" msgstr "" -#: source/ubl-strings.h:66 +#: source/ubl-strings.h:68 msgid "Boot" msgstr "" -#: source/ubl-strings.h:67 source/ubl-strings.h:150 +#: source/ubl-strings.h:69 source/ubl-strings.h:152 msgid "Minutes" msgstr "" -#: source/ubl-strings.h:68 source/ubl-strings.h:151 +#: source/ubl-strings.h:70 source/ubl-strings.h:153 msgid "Hours" msgstr "" -#: source/ubl-strings.h:69 source/ubl-strings.h:152 +#: source/ubl-strings.h:71 source/ubl-strings.h:154 msgid "Days" msgstr "" -#: source/ubl-strings.h:70 source/ubl-strings.h:153 +#: source/ubl-strings.h:72 source/ubl-strings.h:155 msgid "Months" msgstr "" -#: source/ubl-strings.h:71 +#: source/ubl-strings.h:73 msgid "Repositories from which the update will occur" msgstr "" -#: source/ubl-strings.h:72 source/ubl-strings.h:95 +#: source/ubl-strings.h:74 source/ubl-strings.h:97 msgid "Repositories list:" msgstr "" -#: source/ubl-strings.h:73 +#: source/ubl-strings.h:75 msgid "Repositories list" msgstr "" -#: source/ubl-strings.h:74 +#: source/ubl-strings.h:76 msgid "Default" msgstr "" -#: source/ubl-strings.h:75 source/ubl-strings.h:97 +#: source/ubl-strings.h:77 source/ubl-strings.h:99 msgid "Choose" msgstr "" -#: source/ubl-strings.h:76 +#: source/ubl-strings.h:78 msgid "Chosen" msgstr "" -#: source/ubl-strings.h:77 +#: source/ubl-strings.h:79 msgid "Repository" msgstr "" -#: source/ubl-strings.h:78 +#: source/ubl-strings.h:80 msgid "Manage repository list" msgstr "" -#: source/ubl-strings.h:79 +#: source/ubl-strings.h:81 msgid "Disable system repositories" msgstr "" -#: source/ubl-strings.h:81 +#: source/ubl-strings.h:83 msgid "Move up" msgstr "" -#: source/ubl-strings.h:82 +#: source/ubl-strings.h:84 msgid "Move down" msgstr "" -#: source/ubl-strings.h:83 +#: source/ubl-strings.h:85 msgid "Add" msgstr "" -#: source/ubl-strings.h:84 +#: source/ubl-strings.h:86 msgid "Edit" msgstr "" -#: source/ubl-strings.h:85 +#: source/ubl-strings.h:87 msgid "Remove" msgstr "" -#: source/ubl-strings.h:86 +#: source/ubl-strings.h:88 msgid "Enabled" msgstr "" -#: source/ubl-strings.h:87 +#: source/ubl-strings.h:89 msgid "Source" msgstr "" -#: source/ubl-strings.h:88 +#: source/ubl-strings.h:90 msgid "Signature level" msgstr "" -#: source/ubl-strings.h:89 +#: source/ubl-strings.h:91 msgid "Usage level" msgstr "" -#: source/ubl-strings.h:90 +#: source/ubl-strings.h:92 msgid "Repository connection configuration" msgstr "" -#: source/ubl-strings.h:91 +#: source/ubl-strings.h:93 msgid "" "Setting up a connection to a distributed repository network and publishing " "your repositories" msgstr "" -#: source/ubl-strings.h:92 +#: source/ubl-strings.h:94 msgid "Connect and publish" msgstr "" -#: source/ubl-strings.h:93 +#: source/ubl-strings.h:95 msgid "Recieve DB packages from shared network" msgstr "" -#: source/ubl-strings.h:94 +#: source/ubl-strings.h:96 msgid "Repositories for publishing" msgstr "" -#: source/ubl-strings.h:96 +#: source/ubl-strings.h:98 msgid "All repositories" msgstr "" -#: source/ubl-strings.h:98 +#: source/ubl-strings.h:100 msgid "Accept" msgstr "" -#: source/ubl-strings.h:99 +#: source/ubl-strings.h:101 msgid "Repository name" msgstr "" -#: source/ubl-strings.h:100 +#: source/ubl-strings.h:102 msgid "" "Setting up publication of storage and/or repositories as a local WEB resource" msgstr "" -#: source/ubl-strings.h:101 source/ubl-strings.h:142 +#: source/ubl-strings.h:103 source/ubl-strings.h:144 msgid "Authorization parameters" msgstr "" -#: source/ubl-strings.h:102 +#: source/ubl-strings.h:104 msgid "Storage" msgstr "" -#: source/ubl-strings.h:103 +#: source/ubl-strings.h:105 msgid "Chosen repositories" msgstr "" -#: source/ubl-strings.h:104 +#: source/ubl-strings.h:106 msgid "Reviewer" msgstr "" -#: source/ubl-strings.h:105 +#: source/ubl-strings.h:107 msgid "Port" msgstr "" -#: source/ubl-strings.h:106 +#: source/ubl-strings.h:108 msgid "Name" msgstr "" -#: source/ubl-strings.h:107 +#: source/ubl-strings.h:109 msgid "Hash type" msgstr "" -#: source/ubl-strings.h:108 +#: source/ubl-strings.h:110 msgid "Password hash" msgstr "" -#: source/ubl-strings.h:109 +#: source/ubl-strings.h:111 msgid "" "Setting up publication of a lazy mirror of connected repositories as a local " "WEB resource" msgstr "" -#: source/ubl-strings.h:110 +#: source/ubl-strings.h:112 msgid "Publish lazy mirror" msgstr "" -#: source/ubl-strings.h:111 +#: source/ubl-strings.h:113 msgid "Type" msgstr "" -#: source/ubl-strings.h:112 +#: source/ubl-strings.h:114 msgid "Resource URL" msgstr "" -#: source/ubl-strings.h:113 +#: source/ubl-strings.h:115 msgid "Configure" msgstr "" -#: source/ubl-strings.h:114 +#: source/ubl-strings.h:116 msgid "Mirror publish configuration" msgstr "" -#: source/ubl-strings.h:115 +#: source/ubl-strings.h:117 msgid "Service port:" msgstr "" -#: source/ubl-strings.h:116 +#: source/ubl-strings.h:118 msgid "Cache directory:" msgstr "" -#: source/ubl-strings.h:117 +#: source/ubl-strings.h:119 msgid "Duration of inactivity (in seconds):" msgstr "" -#: source/ubl-strings.h:118 +#: source/ubl-strings.h:120 msgid "Timeout (in seconds) for loading internel cache:" msgstr "" -#: source/ubl-strings.h:119 +#: source/ubl-strings.h:121 msgid "Work through proxy:" msgstr "" -#: source/ubl-strings.h:120 +#: source/ubl-strings.h:122 msgid "User agent:" msgstr "" -#: source/ubl-strings.h:121 +#: source/ubl-strings.h:123 msgid "Standard expression for cron:" msgstr "" -#: source/ubl-strings.h:122 +#: source/ubl-strings.h:124 msgid "" "The number of consecutie days that systems on the network have not been " "updated:" msgstr "" -#: source/ubl-strings.h:123 +#: source/ubl-strings.h:125 msgid "The number of consecutive days wthout an update requested:" msgstr "" -#: source/ubl-strings.h:124 +#: source/ubl-strings.h:126 msgid "Add mirror" msgstr "" -#: source/ubl-strings.h:125 +#: source/ubl-strings.h:127 msgid "Repository name:" msgstr "" -#: source/ubl-strings.h:126 +#: source/ubl-strings.h:128 msgid "Repository type:" msgstr "" -#: source/ubl-strings.h:127 +#: source/ubl-strings.h:129 msgid "WEB link" msgstr "" -#: source/ubl-strings.h:128 +#: source/ubl-strings.h:130 msgid "Proxy server" msgstr "" -#: source/ubl-strings.h:129 +#: source/ubl-strings.h:131 msgid "Mirrors file" msgstr "" -#: source/ubl-strings.h:130 +#: source/ubl-strings.h:132 msgid "Source:" msgstr "" -#: source/ubl-strings.h:131 +#: source/ubl-strings.h:133 msgid "Configuration" msgstr "" -#: source/ubl-strings.h:132 +#: source/ubl-strings.h:134 msgid "Sign level:" msgstr "" -#: source/ubl-strings.h:133 +#: source/ubl-strings.h:135 msgid "Enable repository update" msgstr "" -#: source/ubl-strings.h:134 +#: source/ubl-strings.h:136 msgid "Enable repository search" msgstr "" -#: source/ubl-strings.h:135 +#: source/ubl-strings.h:137 msgid "" "Enable installation of packages from this repository during --sync operation" msgstr "" -#: source/ubl-strings.h:136 +#: source/ubl-strings.h:138 msgid "" "Allow this repository to be a valid source of packages when running --" "sysupgrade" msgstr "" -#: source/ubl-strings.h:137 +#: source/ubl-strings.h:139 msgid "Enable publishing of local repository as WEB resource" msgstr "" -#: source/ubl-strings.h:138 +#: source/ubl-strings.h:140 msgid "Path to publication directory:" msgstr "" -#: source/ubl-strings.h:139 +#: source/ubl-strings.h:141 msgid "Port:" msgstr "" -#: source/ubl-strings.h:140 +#: source/ubl-strings.h:142 msgid "Publishing parameters" msgstr "" -#: source/ubl-strings.h:141 +#: source/ubl-strings.h:143 msgid "Enable WEB file browser" msgstr "" -#: source/ubl-strings.h:143 +#: source/ubl-strings.h:145 msgid "Set" msgstr "" -#: source/ubl-strings.h:144 +#: source/ubl-strings.h:146 msgid "Username:" msgstr "" -#: source/ubl-strings.h:145 +#: source/ubl-strings.h:147 msgid "User password:" msgstr "" -#: source/ubl-strings.h:146 +#: source/ubl-strings.h:148 msgid "Not encrypted" msgstr "" -#: source/ubl-strings.h:147 +#: source/ubl-strings.h:149 msgid "Encrypted with SHA256" msgstr "" -#: source/ubl-strings.h:148 +#: source/ubl-strings.h:150 msgid "Encrypted with SHA512" msgstr "" -#: source/ubl-strings.h:149 +#: source/ubl-strings.h:151 msgid "System" msgstr "" -#: source/ubl-strings.h:154 +#: source/ubl-strings.h:156 msgid "Sign level" msgstr "" -#: source/ubl-strings.h:155 +#: source/ubl-strings.h:157 msgid "Description" msgstr "" -#: source/ubl-strings.h:156 -msgid "Password input" -msgstr "" - -#: source/ubl-strings.h:157 +#: source/ubl-strings.h:158 msgid "Password:" msgstr "" -#: source/ubl-strings.h:158 +#: source/ubl-strings.h:159 msgid "Repeat password:" msgstr "" -#: source/ubl-strings.h:159 +#: source/ubl-strings.h:160 msgid "Entryption:" msgstr "" -#: source/ubl-strings.h:160 +#: source/ubl-strings.h:161 msgid "Do not encrypt password" msgstr "" -#: source/ubl-strings.h:161 +#: source/ubl-strings.h:162 msgid "Password hash:" msgstr "" -#: source/ubl-strings.h:162 +#: source/ubl-strings.h:163 msgid "Default (None)" msgstr "" -#: source/ubl-strings.h:163 +#: source/ubl-strings.h:164 msgid "Encryption:" msgstr "" -#: source/ubl-strings.h:164 +#: source/ubl-strings.h:165 msgid "Encryption" msgstr "" + +#: source/ubl-strings.h:166 +msgid "Password" +msgstr "" + +#: source/ubl-strings.h:167 +msgid "Repeat password" +msgstr "" diff --git a/ubl-settings-update_ru.po b/ubl-settings-update_ru.po index e3b4d7e..fe8b9ca 100644 --- a/ubl-settings-update_ru.po +++ b/ubl-settings-update_ru.po @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: source/ubl-strings.h:4 source/ubl-strings.h:53 +#: source/ubl-strings.h:4 source/ubl-strings.h:55 msgid "System update" msgstr "Обновление системы" @@ -114,11 +114,15 @@ msgstr "" "mirrorlist - файл зерка, убедитесь, что URL текущего сервера НЕ включен в " "этот файл! Допускается только один параметр на репозиторий." -#: source/ubl-strings.h:35 +#: source/ubl-strings.h:34 +msgid "Password input" +msgstr "Ввод пароля" + +#: source/ubl-strings.h:37 msgid "Signature verification will not be performed" msgstr "Проверка подписи выполняться не будет" -#: source/ubl-strings.h:36 +#: source/ubl-strings.h:38 msgid "" "Signatures will be verified if present, but unsigned databases and packages " "will also be accepted" @@ -126,11 +130,11 @@ msgstr "" "Подписи будут проверяться при их наличии, но неподписанные базы данных и " "пакеты также будут приниматься" -#: source/ubl-strings.h:37 +#: source/ubl-strings.h:39 msgid "Signatures will be required for all packages and databases" msgstr "Подписи будут необходимы для всех пакетов и баз данных" -#: source/ubl-strings.h:38 +#: source/ubl-strings.h:40 msgid "" "If signature is verified for packages and database, it must be in the " "keyring and fully trusted; marginal trust not applicable" @@ -138,7 +142,7 @@ msgstr "" "Если подпись проверяется для пакетов и базы, она должна находиться в связке " "ключей и быть полностью доверенной" -#: source/ubl-strings.h:39 +#: source/ubl-strings.h:41 msgid "" "If signature is verified, it must be in keyring, but does not need to have a " "trust level assigned (e.g. unknown or marginal trust)" @@ -147,51 +151,51 @@ msgstr "" "требуется назначать уровень доверия (например, неизвестное или предельное " "доверие)" -#: source/ubl-strings.h:40 +#: source/ubl-strings.h:42 msgid "Packages only" msgstr "Только для пакетов" -#: source/ubl-strings.h:41 +#: source/ubl-strings.h:43 msgid "Database only" msgstr "Только для базы данных" -#: source/ubl-strings.h:42 +#: source/ubl-strings.h:44 msgid "If signature is verified only for packages" msgstr "Если подпись проверяется только для пакетов" -#: source/ubl-strings.h:43 +#: source/ubl-strings.h:45 msgid "If signature is verified only for database" msgstr "Если подпись проверяется только для базы данных" -#: source/ubl-strings.h:44 +#: source/ubl-strings.h:46 msgid "every" msgstr "каждые" -#: source/ubl-strings.h:45 +#: source/ubl-strings.h:47 msgid "Resource link of file path" msgstr "Ссылка на ресурс или путь до файла" -#: source/ubl-strings.h:46 +#: source/ubl-strings.h:48 msgid "Open file explorer" msgstr "Открыть в файловом менеджере" -#: source/ubl-strings.h:47 +#: source/ubl-strings.h:49 msgid "Add source" msgstr "Добавить источник" -#: source/ubl-strings.h:48 +#: source/ubl-strings.h:50 msgid "Username" msgstr "Имя пользователя" -#: source/ubl-strings.h:49 +#: source/ubl-strings.h:51 msgid "User password" msgstr "Пароль" -#: source/ubl-strings.h:50 +#: source/ubl-strings.h:52 msgid "Storage path to publish" msgstr "Путь до каталога хранилища, который будет опубликован" -#: source/ubl-strings.h:51 +#: source/ubl-strings.h:53 msgid "" "The full URL of where to find the database, packages, and signatures (if " "available) for this repository. Multiple can be specified, separated by " @@ -200,151 +204,151 @@ msgstr "" "Полный адрес места, где можно найти базу данных, пакеты и подписа (если " "доступны) для этого репозитория. Возможно указать несколько через запятую (,)" -#: source/ubl-strings.h:52 source/ubl-strings.h:80 +#: source/ubl-strings.h:54 source/ubl-strings.h:82 msgid "Update" msgstr "Обновление" -#: source/ubl-strings.h:54 +#: source/ubl-strings.h:56 msgid "Repositories" msgstr "Репозитории" -#: source/ubl-strings.h:55 +#: source/ubl-strings.h:57 msgid "Publication" msgstr "Публикация" -#: source/ubl-strings.h:56 +#: source/ubl-strings.h:58 msgid "WEB-publication" msgstr "WEB-публикация" -#: source/ubl-strings.h:57 +#: source/ubl-strings.h:59 msgid "Mirror publication" msgstr "Публикация зеркала" -#: source/ubl-strings.h:58 +#: source/ubl-strings.h:60 msgid "Date of last automatic update:" msgstr "Дата последнего автообновления:" -#: source/ubl-strings.h:59 +#: source/ubl-strings.h:61 msgid "Date of last automatic update" msgstr "Дата последнего автообновления" -#: source/ubl-strings.h:60 +#: source/ubl-strings.h:62 msgid "Automatic update" msgstr "Автоматическое обновление" -#: source/ubl-strings.h:61 +#: source/ubl-strings.h:63 msgid "Update mode:" msgstr "Режим обновления:" -#: source/ubl-strings.h:62 +#: source/ubl-strings.h:64 msgid "Update interval:" msgstr "Интервал обновлений:" -#: source/ubl-strings.h:64 +#: source/ubl-strings.h:66 msgid "Update mode" msgstr "Режим обновления" -#: source/ubl-strings.h:65 +#: source/ubl-strings.h:67 msgid "Update interval" msgstr "Интервал обновлений" -#: source/ubl-strings.h:66 +#: source/ubl-strings.h:68 msgid "Boot" msgstr "Запуск" -#: source/ubl-strings.h:67 source/ubl-strings.h:150 +#: source/ubl-strings.h:69 source/ubl-strings.h:152 msgid "Minutes" msgstr "минут" -#: source/ubl-strings.h:68 source/ubl-strings.h:151 +#: source/ubl-strings.h:70 source/ubl-strings.h:153 msgid "Hours" msgstr "часов" -#: source/ubl-strings.h:69 source/ubl-strings.h:152 +#: source/ubl-strings.h:71 source/ubl-strings.h:154 msgid "Days" msgstr "дней" -#: source/ubl-strings.h:70 source/ubl-strings.h:153 +#: source/ubl-strings.h:72 source/ubl-strings.h:155 msgid "Months" msgstr "месяцев" -#: source/ubl-strings.h:71 +#: source/ubl-strings.h:73 msgid "Repositories from which the update will occur" msgstr "Репозитории с которых будет происходить обновление" -#: source/ubl-strings.h:72 source/ubl-strings.h:95 +#: source/ubl-strings.h:74 source/ubl-strings.h:97 msgid "Repositories list:" msgstr "Список репозиториев:" -#: source/ubl-strings.h:73 +#: source/ubl-strings.h:75 msgid "Repositories list" msgstr "Список репозиториев" -#: source/ubl-strings.h:74 +#: source/ubl-strings.h:76 msgid "Default" msgstr "По умолчанию" -#: source/ubl-strings.h:75 source/ubl-strings.h:97 +#: source/ubl-strings.h:77 source/ubl-strings.h:99 msgid "Choose" msgstr "Выбрать" -#: source/ubl-strings.h:76 +#: source/ubl-strings.h:78 msgid "Chosen" msgstr "Выбран" -#: source/ubl-strings.h:77 +#: source/ubl-strings.h:79 msgid "Repository" msgstr "Репозиторий" -#: source/ubl-strings.h:78 +#: source/ubl-strings.h:80 msgid "Manage repository list" msgstr "Управление списком репозиториев" -#: source/ubl-strings.h:79 +#: source/ubl-strings.h:81 msgid "Disable system repositories" msgstr "Отключить системные репозитории" -#: source/ubl-strings.h:81 +#: source/ubl-strings.h:83 msgid "Move up" msgstr "Переместить выше" -#: source/ubl-strings.h:82 +#: source/ubl-strings.h:84 msgid "Move down" msgstr "Переместить ниже" -#: source/ubl-strings.h:83 +#: source/ubl-strings.h:85 msgid "Add" msgstr "Добавить" -#: source/ubl-strings.h:84 +#: source/ubl-strings.h:86 msgid "Edit" msgstr "Изменить" -#: source/ubl-strings.h:85 +#: source/ubl-strings.h:87 msgid "Remove" msgstr "Удалить" -#: source/ubl-strings.h:86 +#: source/ubl-strings.h:88 msgid "Enabled" msgstr "Включен" -#: source/ubl-strings.h:87 +#: source/ubl-strings.h:89 msgid "Source" msgstr "Источник" -#: source/ubl-strings.h:88 +#: source/ubl-strings.h:90 msgid "Signature level" msgstr "Уровень подписи" -#: source/ubl-strings.h:89 +#: source/ubl-strings.h:91 msgid "Usage level" msgstr "Уровень использования" -#: source/ubl-strings.h:90 +#: source/ubl-strings.h:92 msgid "Repository connection configuration" msgstr "Настройки подключения репозитория" -#: source/ubl-strings.h:91 +#: source/ubl-strings.h:93 msgid "" "Setting up a connection to a distributed repository network and publishing " "your repositories" @@ -352,70 +356,70 @@ msgstr "" "Настройки подключения к распределённой сети репозиториев и публикация своих " "репозиториев" -#: source/ubl-strings.h:92 +#: source/ubl-strings.h:94 msgid "Connect and publish" msgstr "Подключиться и опубликовать" -#: source/ubl-strings.h:93 +#: source/ubl-strings.h:95 msgid "Recieve DB packages from shared network" msgstr "Получать БД пакетов из распределённой сети" -#: source/ubl-strings.h:94 +#: source/ubl-strings.h:96 msgid "Repositories for publishing" msgstr "Репозитории для публикации" -#: source/ubl-strings.h:96 +#: source/ubl-strings.h:98 msgid "All repositories" msgstr "Все репозитории" -#: source/ubl-strings.h:98 +#: source/ubl-strings.h:100 msgid "Accept" msgstr "Принять" -#: source/ubl-strings.h:99 +#: source/ubl-strings.h:101 msgid "Repository name" msgstr "Имя репозитория" -#: source/ubl-strings.h:100 +#: source/ubl-strings.h:102 msgid "" "Setting up publication of storage and/or repositories as a local WEB resource" msgstr "" "Настройка публикации хранилища и/или репозиториев в виде локального WEB " "ресурса" -#: source/ubl-strings.h:101 source/ubl-strings.h:142 +#: source/ubl-strings.h:103 source/ubl-strings.h:144 msgid "Authorization parameters" msgstr "Параметры авторизации" -#: source/ubl-strings.h:102 +#: source/ubl-strings.h:104 msgid "Storage" msgstr "Хранилище" -#: source/ubl-strings.h:103 +#: source/ubl-strings.h:105 msgid "Chosen repositories" msgstr "Выбранные репозитории" -#: source/ubl-strings.h:104 +#: source/ubl-strings.h:106 msgid "Reviewer" msgstr "Обозреватель" -#: source/ubl-strings.h:105 +#: source/ubl-strings.h:107 msgid "Port" msgstr "Порт" -#: source/ubl-strings.h:106 +#: source/ubl-strings.h:108 msgid "Name" msgstr "Имя пользователя" -#: source/ubl-strings.h:107 +#: source/ubl-strings.h:109 msgid "Hash type" msgstr "Тип хэша" -#: source/ubl-strings.h:108 +#: source/ubl-strings.h:110 msgid "Password hash" msgstr "Хэш пароля" -#: source/ubl-strings.h:109 +#: source/ubl-strings.h:111 msgid "" "Setting up publication of a lazy mirror of connected repositories as a local " "WEB resource" @@ -423,117 +427,117 @@ msgstr "" "Настройка публикации ленивого зеркала подключенных репозиториев в виде " "локального WEB ресурса" -#: source/ubl-strings.h:110 +#: source/ubl-strings.h:112 msgid "Publish lazy mirror" msgstr "Опубликовать ленивое зеркало" -#: source/ubl-strings.h:111 +#: source/ubl-strings.h:113 msgid "Type" msgstr "Тип" -#: source/ubl-strings.h:112 +#: source/ubl-strings.h:114 msgid "Resource URL" msgstr "Ресурс URL" -#: source/ubl-strings.h:113 +#: source/ubl-strings.h:115 msgid "Configure" msgstr "Настроить" -#: source/ubl-strings.h:114 +#: source/ubl-strings.h:116 msgid "Mirror publish configuration" msgstr "Параметры публикации зеркала" -#: source/ubl-strings.h:115 +#: source/ubl-strings.h:117 msgid "Service port:" msgstr "Порт сервиса:" -#: source/ubl-strings.h:116 +#: source/ubl-strings.h:118 msgid "Cache directory:" msgstr "Каталог кеша:" -#: source/ubl-strings.h:117 +#: source/ubl-strings.h:119 msgid "Duration of inactivity (in seconds):" msgstr "Продолжительность бездействия (в секундах):" -#: source/ubl-strings.h:118 +#: source/ubl-strings.h:120 msgid "Timeout (in seconds) for loading internel cache:" msgstr "Таймаут (в секундах) для загрузки интернет-кэша:" -#: source/ubl-strings.h:119 +#: source/ubl-strings.h:121 msgid "Work through proxy:" msgstr "Работать через прокси:" -#: source/ubl-strings.h:120 +#: source/ubl-strings.h:122 msgid "User agent:" msgstr "Пользовательский агент:" -#: source/ubl-strings.h:121 +#: source/ubl-strings.h:123 msgid "Standard expression for cron:" msgstr "Стандартное выражение cron:" -#: source/ubl-strings.h:122 +#: source/ubl-strings.h:124 msgid "" "The number of consecutie days that systems on the network have not been " "updated:" msgstr "" "Количество дней подряд, в течение которых не обновляются системы в сети:" -#: source/ubl-strings.h:123 +#: source/ubl-strings.h:125 msgid "The number of consecutive days wthout an update requested:" msgstr "" "Количество дней подряд, в течение которых не было запрошено обновление:" -#: source/ubl-strings.h:124 +#: source/ubl-strings.h:126 msgid "Add mirror" msgstr "Добавить зеркало" -#: source/ubl-strings.h:125 +#: source/ubl-strings.h:127 msgid "Repository name:" msgstr "Имя репозитория:" -#: source/ubl-strings.h:126 +#: source/ubl-strings.h:128 msgid "Repository type:" msgstr "Тип репозитория:" -#: source/ubl-strings.h:127 +#: source/ubl-strings.h:129 msgid "WEB link" msgstr "Вэб ссылка" -#: source/ubl-strings.h:128 +#: source/ubl-strings.h:130 msgid "Proxy server" msgstr "Прокси-сервер" -#: source/ubl-strings.h:129 +#: source/ubl-strings.h:131 msgid "Mirrors file" msgstr "Файл зеркал" -#: source/ubl-strings.h:130 +#: source/ubl-strings.h:132 msgid "Source:" msgstr "Источник:" -#: source/ubl-strings.h:131 +#: source/ubl-strings.h:133 msgid "Configuration" msgstr "Конфигурация" -#: source/ubl-strings.h:132 +#: source/ubl-strings.h:134 msgid "Sign level:" msgstr "Уровень подписи:" -#: source/ubl-strings.h:133 +#: source/ubl-strings.h:135 msgid "Enable repository update" msgstr "Включать обновления для этого репозитория" -#: source/ubl-strings.h:134 +#: source/ubl-strings.h:136 msgid "Enable repository search" msgstr "Включать поиск этого репозитория" -#: source/ubl-strings.h:135 +#: source/ubl-strings.h:137 msgid "" "Enable installation of packages from this repository during --sync operation" msgstr "" "Включать установку пакетов из этого репозитория во время операции --sync" -#: source/ubl-strings.h:136 +#: source/ubl-strings.h:138 msgid "" "Allow this repository to be a valid source of packages when running --" "sysupgrade" @@ -541,98 +545,102 @@ msgstr "" "Позволить этому репозиторию быть действительным источником пакетов при " "выполнении --sysupgrade" -#: source/ubl-strings.h:137 +#: source/ubl-strings.h:139 msgid "Enable publishing of local repository as WEB resource" msgstr "Включить публикацию локального репозитория в виде WEB ресурса" -#: source/ubl-strings.h:138 +#: source/ubl-strings.h:140 msgid "Path to publication directory:" msgstr "Хранилище:" -#: source/ubl-strings.h:139 +#: source/ubl-strings.h:141 msgid "Port:" msgstr "Порт:" -#: source/ubl-strings.h:140 +#: source/ubl-strings.h:142 msgid "Publishing parameters" msgstr "Параметры публикации" -#: source/ubl-strings.h:141 +#: source/ubl-strings.h:143 msgid "Enable WEB file browser" msgstr "Включить WEB обозреватель файлов" -#: source/ubl-strings.h:143 +#: source/ubl-strings.h:145 msgid "Set" msgstr "Задать" -#: source/ubl-strings.h:144 +#: source/ubl-strings.h:146 msgid "Username:" msgstr "Имя пользователя:" -#: source/ubl-strings.h:145 +#: source/ubl-strings.h:147 msgid "User password:" msgstr "Пароль:" -#: source/ubl-strings.h:146 +#: source/ubl-strings.h:148 msgid "Not encrypted" msgstr "Пароль не требуется" -#: source/ubl-strings.h:147 +#: source/ubl-strings.h:149 msgid "Encrypted with SHA256" msgstr "Шфировать с SHA256" -#: source/ubl-strings.h:148 +#: source/ubl-strings.h:150 msgid "Encrypted with SHA512" msgstr "Шифровать с SHA512" -#: source/ubl-strings.h:149 +#: source/ubl-strings.h:151 msgid "System" msgstr "Система" -#: source/ubl-strings.h:154 +#: source/ubl-strings.h:156 msgid "Sign level" msgstr "Уровень подписи" -#: source/ubl-strings.h:155 +#: source/ubl-strings.h:157 msgid "Description" msgstr "Описание" -#: source/ubl-strings.h:156 -msgid "Password input" -msgstr "Ввод пароля" - -#: source/ubl-strings.h:157 +#: source/ubl-strings.h:158 msgid "Password:" msgstr "Пароль:" -#: source/ubl-strings.h:158 +#: source/ubl-strings.h:159 msgid "Repeat password:" msgstr "Подтвердите ввод пароля:" -#: source/ubl-strings.h:159 +#: source/ubl-strings.h:160 msgid "Entryption:" msgstr "Алгоритм шифрования пароля:" -#: source/ubl-strings.h:160 +#: source/ubl-strings.h:161 msgid "Do not encrypt password" msgstr "Не шифровать пароль" -#: source/ubl-strings.h:161 +#: source/ubl-strings.h:162 msgid "Password hash:" msgstr "Хэш пароля:" -#: source/ubl-strings.h:162 +#: source/ubl-strings.h:163 msgid "Default (None)" msgstr "По умолчанию (Отсутствует)" -#: source/ubl-strings.h:163 +#: source/ubl-strings.h:164 msgid "Encryption:" msgstr "Алгоритм шифрования пароля:" -#: source/ubl-strings.h:164 +#: source/ubl-strings.h:165 msgid "Encryption" msgstr "Алгоритм шифрования пароля" +#: source/ubl-strings.h:166 +msgid "Password" +msgstr "Пароль" + +#: source/ubl-strings.h:167 +msgid "Repeat password" +msgstr "Подтвердите ввод пароля" + msgid "Check system updates at system startup" msgstr "Проверять обновления при загрузке системы" From 380349704ffb5a69d1e94323ba44f423040e48be Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 9 Apr 2025 09:38:26 +0600 Subject: [PATCH 7/9] Invalid hash fix --- source/ubl-settings-update.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 833db08..25111da 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -1208,31 +1208,26 @@ void on_web_publish_accept(GtkWidget *, dictionary *dict){ char *user_password = yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(window->UserPasswordEntry))); char *encryption = user_password[6]=='|'?yon_char_divide(user_password,6):NULL; + if (username_check&&yon_char_is_empty(username)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->UsernameEntry); + return; + } if (strpbrk(username,"!@#%^&*\'")){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),ENTRY_RESTRICTED_SYMBOL_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(window->UsernameEntry); return; } - if (strpbrk(user_password,"!@#%^&*\'")){ + if (username_check&&strpbrk(user_password,"!@#%^&*\'")){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_RESTRICTED_SYMBOL_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(window->UserPasswordEntry); return; } - if (encryption&&!yon_char_is_empty(encryption)&&(strlen(user_password)!=128&&strlen(user_password)!=64)){ + if (username_check&&encryption&&!yon_char_is_empty(encryption)&&(strlen(user_password)!=128&&strlen(user_password)!=64)){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_RESTRICTED_SYMBOL_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(window->UserPasswordEntry); return; } - if (username_check&&yon_char_is_empty(username)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(window->UsernameEntry); - return; - } - if (username_check&>k_combo_box_get_active(GTK_COMBO_BOX(window->UserPasswordCombo))&&yon_char_is_empty(user_password)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(window->UserPasswordEntry); - return; - } char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->PathEntry)); char *full_name = ""; @@ -1416,7 +1411,7 @@ char *yon_password_hash_get(password_window *window){ const char *encription = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->EncryptionCombo)); const char *hash = gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry)); if (!yon_char_is_empty(hash)){ - if (strlen(hash)!=128||strlen(hash)!=64){ + if (strlen(hash)!=128&&strlen(hash)!=64){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),INCORRECT_HASH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(window->PasswordHashEntry); return NULL; From 0bc1e4d0cc89e222fd1d3b1fea4912f34b341960 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 10 Apr 2025 17:04:51 +0600 Subject: [PATCH 8/9] Fixed web publish password saving --- source/ubl-settings-update.c | 4 ++-- source/ubl-strings.h | 1 - ubl-settings-update.glade | 2 +- ubl-settings-update.pot | 4 ---- ubl-settings-update_ru.po | 4 ---- 5 files changed, 3 insertions(+), 12 deletions(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 25111da..26293e7 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -1257,8 +1257,8 @@ void on_web_publish_accept(GtkWidget *, dictionary *dict){ enable_browser?"listing":"",":", port_enabled?port:"",":", username_check?username:"",":", - username_check?!yon_char_is_empty(user_password)?user_password:"":"", - username_check?yon_char_is_empty(encryption)?"":encryption:"",":", + username_check?!yon_char_is_empty(user_password)?user_password:"":"",":", + username_check?yon_char_is_empty(encryption)?"":encryption:"", NULL); if (!yon_char_is_empty(window->name)&&strcmp(final_name,window->name)){ yon_config_remove_by_key(REPOPUBLIC_WEB_full(window->name)); diff --git a/source/ubl-strings.h b/source/ubl-strings.h index f7acc1c..e9ea636 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -102,7 +102,6 @@ mirrorlist - mirrors file, make sure server URL is NOT included in this file! Si #define _LABEL _("Setting up publication of storage and/or repositories as a local WEB resource") #define _LABEL _("Authorization parameters") #define _LABEL _("Storage") - #define _LABEL _("Chosen repositories") #define _LABEL _("Reviewer") #define _LABEL _("Port") #define _LABEL _("Name") diff --git a/ubl-settings-update.glade b/ubl-settings-update.glade index adc0e41..6d65d00 100644 --- a/ubl-settings-update.glade +++ b/ubl-settings-update.glade @@ -1302,7 +1302,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. True fixed - Chosen repositories + Repositories end diff --git a/ubl-settings-update.pot b/ubl-settings-update.pot index c2ac3c1..b689fb1 100644 --- a/ubl-settings-update.pot +++ b/ubl-settings-update.pot @@ -372,10 +372,6 @@ msgstr "" msgid "Storage" msgstr "" -#: source/ubl-strings.h:105 -msgid "Chosen repositories" -msgstr "" - #: source/ubl-strings.h:106 msgid "Reviewer" msgstr "" diff --git a/ubl-settings-update_ru.po b/ubl-settings-update_ru.po index fe8b9ca..c5adb0e 100644 --- a/ubl-settings-update_ru.po +++ b/ubl-settings-update_ru.po @@ -395,10 +395,6 @@ msgstr "Параметры авторизации" msgid "Storage" msgstr "Хранилище" -#: source/ubl-strings.h:105 -msgid "Chosen repositories" -msgstr "Выбранные репозитории" - #: source/ubl-strings.h:106 msgid "Reviewer" msgstr "Обозреватель" From 281f7dbe17ab81f8a4d09d4f3fa5763adfb213dc Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 10 Apr 2025 18:11:48 +0600 Subject: [PATCH 9/9] Password changes --- source/ubl-settings-update.c | 18 +++++++++++++++++- source/ubl-settings-update.h | 2 ++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 26293e7..0e434ed 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -754,6 +754,20 @@ void on_password_open(GtkWidget *, web_publication_add_window *window){ yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(dialog->PasswordEntry)); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(dialog->PasswordHashEntry)); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(dialog->RepeatPasswordEntry)); + char *old_password = yon_char_new(gtk_entry_get_text(GTK_ENTRY(window->UserPasswordEntry))); + char *hash_type = NULL; + if (!yon_char_is_empty(old_password)&&strstr(old_password,"|")){ + hash_type = yon_char_divide(old_password,6); + gtk_combo_box_set_active_id(GTK_COMBO_BOX(dialog->EncryptionCombo),hash_type); + } + if (!yon_char_is_empty(old_password)&&(strlen(old_password)==128||strlen(old_password)==64)){ + dialog->old_password = old_password; + gtk_entry_set_text(GTK_ENTRY(dialog->PasswordHashEntry),old_password); + } else if (!yon_char_is_empty(old_password)){ + dialog->old_password = old_password; + gtk_entry_set_text(GTK_ENTRY(dialog->PasswordEntry),old_password); + gtk_entry_set_text(GTK_ENTRY(dialog->RepeatPasswordEntry),old_password); + } dictionary *dict = NULL; yon_dictionary_add_or_create_if_exists_with_data(dict,"window",dialog); yon_dictionary_add_or_create_if_exists_with_data(dict,"target",window->UserPasswordEntry); @@ -1411,7 +1425,7 @@ char *yon_password_hash_get(password_window *window){ const char *encription = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->EncryptionCombo)); const char *hash = gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry)); if (!yon_char_is_empty(hash)){ - if (strlen(hash)!=128&&strlen(hash)!=64){ + if (strcmp(hash,window->old_password)&&strlen(hash)!=128&&strlen(hash)!=64){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),INCORRECT_HASH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(window->PasswordHashEntry); return NULL; @@ -1594,6 +1608,8 @@ password_window *yon_password_window_new(){ window->PasswordHashEntry = yon_gtk_builder_get_widget(builder,"PasswordHashEntry"); window->UserCancelButton = yon_gtk_builder_get_widget(builder,"UserCancelButton"); window->AcceptButton = yon_gtk_builder_get_widget(builder,"UserOkButton"); + + window->old_password=NULL; g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->NoEncriptionCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->PasswordHashEntry); gtk_widget_show(window->Window); diff --git a/source/ubl-settings-update.h b/source/ubl-settings-update.h index c6e3ee9..8456eb3 100644 --- a/source/ubl-settings-update.h +++ b/source/ubl-settings-update.h @@ -278,6 +278,8 @@ typedef struct { GtkWidget *PasswordHashEntry; GtkWidget *UserCancelButton; GtkWidget *AcceptButton; + + const char *old_password; } password_window;