From 5d15c00d921927825a0bf98b0c5d872dac57d1b7 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Wed, 3 Jul 2024 21:52:39 +0200 Subject: [PATCH 01/44] Update changelog for 11.2.20.2 --- debian/changelog | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/debian/changelog b/debian/changelog index 02d2cbab7..0d2b68cd5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +yunohost (11.2.20.2) stable; urgency=low + + - Fix service enable/disable auto-ignoring diagnosis entries ([#1886](http://github.com/YunoHost/yunohost/pull/1886)) + + Thanks to all contributors <3 ! (OniriCorpe) + + -- Alexandre Aubin Wed, 03 Jul 2024 21:51:50 +0200 + yunohost (11.2.20.1) stable; urgency=low - helpers2.1: typo (1ed56952e) From ab742e55bb0c8f1cd412162c9f240fce43217288 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Thu, 4 Jul 2024 00:04:17 +0200 Subject: [PATCH 02/44] translate _diagnosis_ignore function --- locales/en.json | 7 +++++++ src/diagnosis.py | 20 +++++++------------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/locales/en.json b/locales/en.json index 760ab3a49..8ea8f1bac 100644 --- a/locales/en.json +++ b/locales/en.json @@ -249,6 +249,13 @@ "diagnosis_http_timeout": "Timed-out while trying to contact your server from the outside. It appears to be unreachable.
1. The most common cause for this issue is that port 80 (and 443) are not correctly forwarded to your server.
2. You should also make sure that the service nginx is running
3. On more complex setups: make sure that no firewall or reverse-proxy is interfering.", "diagnosis_http_unreachable": "Domain {domain} appears unreachable through HTTP from outside the local network.", "diagnosis_ignored_issues": "(+ {nb_ignored} ignored issue(s))", + "diagnosis_ignore_already_filtered": "There is already a diagnosis {category} filter with these criterias)", + "diagnosis_ignore_no_filter_found": "(There is no such diagnosis {category} filter with these criterias to remove)", + "diagnosis_ignore_filter_added": "Added a {category} diagnosis filter", + "diagnosis_ignore_filter_removed": "Removed a {category} diagnosis filter", + "diagnosis_ignore_missing_criteria": "You should provide at least one criteria being the diagnosis category to ignore", + "diagnosis_ignore_criteria_error": "Criterias should be of the form key=value (e.g. domain=yolo.test)", + "diagnosis_ignore_no_issue_found": "No issues was found matching the given criteria.", "diagnosis_ip_broken_dnsresolution": "Domain name resolution seems to be broken for some reason… Is a firewall blocking DNS requests?", "diagnosis_ip_broken_resolvconf": "Domain name resolution seems to be broken on your server, which seems related to /etc/resolv.conf not pointing to 127.0.0.1.", "diagnosis_ip_connected_ipv4": "The server is connected to the Internet through IPv4!", diff --git a/src/diagnosis.py b/src/diagnosis.py index c56c2f22c..c47e894fe 100644 --- a/src/diagnosis.py +++ b/src/diagnosis.py @@ -263,16 +263,12 @@ def _diagnosis_ignore(add_filter=None, remove_filter=None, list=False): # Sanity checks for the provided arguments if len(filter_) == 0: - raise YunohostValidationError( - "You should provide at least one criteria being the diagnosis category to ignore" - ) + raise YunohostValidationError(m18n.n("diagnosis_ignore_missing_criteria")) category = filter_[0] if category not in all_categories_names: raise YunohostValidationError(f"{category} is not a diagnosis category") if any("=" not in criteria for criteria in filter_[1:]): - raise YunohostValidationError( - "Criterias should be of the form key=value (e.g. domain=yolo.test)" - ) + raise YunohostValidationError(m18n.n("diagnosis_ignore_criteria_error")) # Convert the provided criteria into a nice dict criterias = {c.split("=")[0]: c.split("=")[1] for c in filter_[1:]} @@ -295,7 +291,7 @@ def _diagnosis_ignore(add_filter=None, remove_filter=None, list=False): issue_matches_criterias(i, criterias) for i in current_issues_for_this_category ): - raise YunohostError("No issues was found matching the given criteria.") + raise YunohostError(m18n.n("diagnosis_ignore_no_issue_found")) # Make sure the subdicts/lists exists if "ignore_filters" not in configuration: @@ -305,13 +301,13 @@ def _diagnosis_ignore(add_filter=None, remove_filter=None, list=False): if criterias in configuration["ignore_filters"][category]: logger.warning( - f"(There is already a diagnosis {category} filter with these criterias)" + m18n.n("diagnosis_ignore_already_filtered", service=category) ) return configuration["ignore_filters"][category].append(criterias) _diagnosis_write_configuration(configuration) - logger.success(f"Added a {category} diagnosis filter") + logger.success(m18n.n("diagnosis_ignore_filter_added", service=category)) return if remove_filter: @@ -324,14 +320,12 @@ def _diagnosis_ignore(add_filter=None, remove_filter=None, list=False): configuration["ignore_filters"][category] = [] if criterias not in configuration["ignore_filters"][category]: - logger.warning( - f"(There is no such diagnosis {category} filter with these criterias to remove)" - ) + logger.warning(m18n.n("diagnosis_ignore_no_filter_found", service=category)) return configuration["ignore_filters"][category].remove(criterias) _diagnosis_write_configuration(configuration) - logger.success(f"Removed a {category} diagnosis filter") + logger.success(m18n.n("diagnosis_ignore_filter_removed", service=category)) return From 8de0a4cdcb2ed5cd2d1c095da805ad47aa101933 Mon Sep 17 00:00:00 2001 From: Ivan Davydov Date: Wed, 3 Jul 2024 18:50:02 +0000 Subject: [PATCH 03/44] Translated using Weblate (Russian) Currently translated at 37.1% (291 of 783 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/ru/ --- locales/ru.json | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/locales/ru.json b/locales/ru.json index e566fad0e..a1d001631 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -328,5 +328,17 @@ "global_settings_setting_smtp_allow_ipv6_help": "Разрешить использование IPv6 для получения и отправки почты", "admins": "Администраторы", "all_users": "Все пользователи YunoHost", - "app_action_failed": "Не удалось выполнить действие {action} для приложения {app}" -} \ No newline at end of file + "app_action_failed": "Не удалось выполнить действие {action} для приложения {app}", + "app_manifest_install_ask_init_main_permission": "Кто должен иметь доступ к этому приложению? (Это может быть изменено позже)", + "app_arch_not_supported": "Это приложение может быть установлено только на архитектуры {required}, но архитектура вашего сервер - {current}", + "app_manifest_install_ask_init_admin_permission": "Кто должен иметь доступ к функциям для администраторов этого приложения? (Это может быть изменено позже)", + "app_change_url_script_failed": "Произошла ошибка внутри скрипта смены URL", + "app_corrupt_source": "YunoHost смог скачать материал «{source_id}» ({url}) для {app}, но материал не соотвествует с ожидаемой контрольной суммой. Это может означать, что на ваше сервере произошла временная сетевая ошибка, ИЛИ материал был каким-либо образом изменён сопровождающим главной ветки (или злоумышленником?) и упаковщикам YunoHost нужно выяснить и, возможно, обновить манифест, чтобы применить изменения.\n Ожидаемая контрольная сумма sha256: {expected_sha256}\n Полученная контрольная сумма sha256: {computed_sha256}\n Размер скачанного файла: {size}", + "app_not_enough_ram": "Это приложение требует {required} ОЗУ для установки/обновления, но сейчас доступно только {current}.", + "app_change_url_failed": "Невозможно изменить URL для {app}: {error}", + "app_not_enough_disk": "Это приложение требует {required} свободного места.", + "app_change_url_require_full_domain": "{app} не может быть перемещено на данный URL, потому что оно требует весь домен (т.е., путь - /)", + "app_failed_to_download_asset": "Не удалось скачать материал «{source_id}» ({url}) для {app}: {out}", + "app_failed_to_upgrade_but_continue": "Не удалось обновить приложение {failed_app}, обновления продолжаются, как запрошено. Выполните «yunohost log show {operation_logger_name}», чтобы увидеть журнал ошибки", + "app_not_upgraded_broken_system": "Не удалось обновить приложение «{failed_app}», система находится в сломанном состоянии, обновления следующих приложений были отменены: {apps}" +} From 5fcb1c61889a1667a4db3b455ab90157a9047d57 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Thu, 4 Jul 2024 00:11:55 +0200 Subject: [PATCH 04/44] fix a dumb typo; i'd like commit amend but it was already merged thanks to our serial merger --- src/diagnosis.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/diagnosis.py b/src/diagnosis.py index c47e894fe..37d5c8d47 100644 --- a/src/diagnosis.py +++ b/src/diagnosis.py @@ -301,13 +301,13 @@ def _diagnosis_ignore(add_filter=None, remove_filter=None, list=False): if criterias in configuration["ignore_filters"][category]: logger.warning( - m18n.n("diagnosis_ignore_already_filtered", service=category) + m18n.n("diagnosis_ignore_already_filtered", category=category) ) return configuration["ignore_filters"][category].append(criterias) _diagnosis_write_configuration(configuration) - logger.success(m18n.n("diagnosis_ignore_filter_added", service=category)) + logger.success(m18n.n("diagnosis_ignore_filter_added", category=category)) return if remove_filter: @@ -320,12 +320,14 @@ def _diagnosis_ignore(add_filter=None, remove_filter=None, list=False): configuration["ignore_filters"][category] = [] if criterias not in configuration["ignore_filters"][category]: - logger.warning(m18n.n("diagnosis_ignore_no_filter_found", service=category)) + logger.warning( + m18n.n("diagnosis_ignore_no_filter_found", category=category) + ) return configuration["ignore_filters"][category].remove(criterias) _diagnosis_write_configuration(configuration) - logger.success(m18n.n("diagnosis_ignore_filter_removed", service=category)) + logger.success(m18n.n("diagnosis_ignore_filter_removed", category=category)) return From fe8fcaefef0c9f9f7823f44b1f59959f673ba0d2 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Thu, 4 Jul 2024 00:16:42 +0200 Subject: [PATCH 05/44] typo (menacing parenthesis) --- locales/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/en.json b/locales/en.json index 8ea8f1bac..08a810829 100644 --- a/locales/en.json +++ b/locales/en.json @@ -249,7 +249,7 @@ "diagnosis_http_timeout": "Timed-out while trying to contact your server from the outside. It appears to be unreachable.
1. The most common cause for this issue is that port 80 (and 443) are not correctly forwarded to your server.
2. You should also make sure that the service nginx is running
3. On more complex setups: make sure that no firewall or reverse-proxy is interfering.", "diagnosis_http_unreachable": "Domain {domain} appears unreachable through HTTP from outside the local network.", "diagnosis_ignored_issues": "(+ {nb_ignored} ignored issue(s))", - "diagnosis_ignore_already_filtered": "There is already a diagnosis {category} filter with these criterias)", + "diagnosis_ignore_already_filtered": "(There is already a diagnosis {category} filter with these criterias)", "diagnosis_ignore_no_filter_found": "(There is no such diagnosis {category} filter with these criterias to remove)", "diagnosis_ignore_filter_added": "Added a {category} diagnosis filter", "diagnosis_ignore_filter_removed": "Removed a {category} diagnosis filter", From ffde5cbf87d061ef8442929d23bc8e000b3e2e5f Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Wed, 3 Jul 2024 22:17:21 +0000 Subject: [PATCH 06/44] Translated using Weblate (French) Currently translated at 100.0% (790 of 790 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/fr/ --- locales/fr.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/locales/fr.json b/locales/fr.json index ab4308da0..57091f35e 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -781,5 +781,12 @@ "log_dyndns_unsubscribe": "Se désabonner d'un sous-domaine YunoHost '{}'", "dyndns_too_many_requests": "Le service dyndns de YunoHost a reçu trop de requêtes/demandes de votre part, attendez environ 1 heure avant de réessayer.", "ask_dyndns_recovery_password_explain_unavailable": "Ce domaine DynDNS est déjà enregistré. Si vous êtes la personne qui a enregistré ce domaine lors de sa création, vous pouvez entrer le mot de passe de récupération pour récupérer ce domaine.", - "global_settings_setting_ssh_port_help": "Il est préférable d'utiliser un port inférieur à 1024 pour éviter les tentatives d'usurpation par des services non administrateurs sur la machine distante. Vous devez également éviter d'utiliser un port déjà utilisé tel que le 80 ou le 443." + "global_settings_setting_ssh_port_help": "Il est préférable d'utiliser un port inférieur à 1024 pour éviter les tentatives d'usurpation par des services non administrateurs sur la machine distante. Vous devez également éviter d'utiliser un port déjà utilisé tel que le 80 ou le 443.", + "diagnosis_ignore_already_filtered": "(Il y a déjà un filtre de diagnostic {category} qui correspond à ces critères)", + "diagnosis_ignore_no_filter_found": "(Il n'y pas de filtre de diagnostic pour la catégorie {category} qui correspond à ces critères)", + "diagnosis_ignore_filter_added": "Filtre de diagnostic pour {category} ajouté", + "diagnosis_ignore_filter_removed": "Filtre de diagnostic pour {category} supprimé", + "diagnosis_ignore_missing_criteria": "Vous devez fournir au moins un critère qui est une catégorie de diagnostic à ignorer", + "diagnosis_ignore_criteria_error": "Les critères doivent être sous la forme de clé=valeur (ex. domain=yolo.test)", + "diagnosis_ignore_no_issue_found": "Aucun problème correspondant au critère donné n'a été trouvé." } From 30286bc811ff43bb3c639c198b60e36ddf03aa09 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Wed, 3 Jul 2024 22:31:10 +0000 Subject: [PATCH 07/44] [CI] Reformat / remove stale translated strings --- locales/ca.json | 2 +- locales/de.json | 2 +- locales/en.json | 6 +++--- locales/eo.json | 2 +- locales/es.json | 2 +- locales/eu.json | 2 +- locales/fa.json | 2 +- locales/fr.json | 2 +- locales/gl.json | 2 +- locales/id.json | 2 +- locales/it.json | 2 +- locales/ja.json | 2 +- locales/ru.json | 2 +- locales/sk.json | 2 +- locales/uk.json | 2 +- locales/zh_Hans.json | 2 +- 16 files changed, 18 insertions(+), 18 deletions(-) diff --git a/locales/ca.json b/locales/ca.json index 0de9a3449..697b4555d 100644 --- a/locales/ca.json +++ b/locales/ca.json @@ -782,4 +782,4 @@ "user_import_partial_failed": "L'operació d'importació dels usuaris ha fallat parcialment", "domain_dns_push_record_failed": "No s'ha pogut {action} el registre {type}/{name}: {error}", "registrar_infos": "Informació del registrador" -} +} \ No newline at end of file diff --git a/locales/de.json b/locales/de.json index 215559c89..0c1bdf32e 100644 --- a/locales/de.json +++ b/locales/de.json @@ -782,4 +782,4 @@ "dyndns_set_recovery_password_failed": "Konnte Wiederherstellungspasswort nicht einstellen: {error}", "dyndns_set_recovery_password_success": "Wiederherstellungspasswort eingestellt!", "global_settings_setting_ssh_port_help": "Ein Port unter 1024 wird bevorzugt, um Kaperversuche durch Nicht-Administratordienste auf dem Remote-Computer zu verhindern. Sie sollten auch vermeiden, einen bereits verwendeten Port zu verwenden, z. B. 80 oder 443." -} +} \ No newline at end of file diff --git a/locales/en.json b/locales/en.json index 08a810829..14d551613 100644 --- a/locales/en.json +++ b/locales/en.json @@ -248,14 +248,14 @@ "diagnosis_http_special_use_tld": "Domain {domain} is based on a special-use top-level domain (TLD) such as .local or .test and is therefore not expected to be exposed outside the local network.", "diagnosis_http_timeout": "Timed-out while trying to contact your server from the outside. It appears to be unreachable.
1. The most common cause for this issue is that port 80 (and 443) are not correctly forwarded to your server.
2. You should also make sure that the service nginx is running
3. On more complex setups: make sure that no firewall or reverse-proxy is interfering.", "diagnosis_http_unreachable": "Domain {domain} appears unreachable through HTTP from outside the local network.", - "diagnosis_ignored_issues": "(+ {nb_ignored} ignored issue(s))", "diagnosis_ignore_already_filtered": "(There is already a diagnosis {category} filter with these criterias)", - "diagnosis_ignore_no_filter_found": "(There is no such diagnosis {category} filter with these criterias to remove)", + "diagnosis_ignore_criteria_error": "Criterias should be of the form key=value (e.g. domain=yolo.test)", "diagnosis_ignore_filter_added": "Added a {category} diagnosis filter", "diagnosis_ignore_filter_removed": "Removed a {category} diagnosis filter", "diagnosis_ignore_missing_criteria": "You should provide at least one criteria being the diagnosis category to ignore", - "diagnosis_ignore_criteria_error": "Criterias should be of the form key=value (e.g. domain=yolo.test)", + "diagnosis_ignore_no_filter_found": "(There is no such diagnosis {category} filter with these criterias to remove)", "diagnosis_ignore_no_issue_found": "No issues was found matching the given criteria.", + "diagnosis_ignored_issues": "(+ {nb_ignored} ignored issue(s))", "diagnosis_ip_broken_dnsresolution": "Domain name resolution seems to be broken for some reason… Is a firewall blocking DNS requests?", "diagnosis_ip_broken_resolvconf": "Domain name resolution seems to be broken on your server, which seems related to /etc/resolv.conf not pointing to 127.0.0.1.", "diagnosis_ip_connected_ipv4": "The server is connected to the Internet through IPv4!", diff --git a/locales/eo.json b/locales/eo.json index 1ddd1e003..257dfb541 100644 --- a/locales/eo.json +++ b/locales/eo.json @@ -507,4 +507,4 @@ "global_settings_setting_postfix_compatibility_help": "Kongruo vs sekureca kompromiso por la Postfix-servilo. Afektas la ĉifradojn (kaj aliajn aspektojn pri sekureco)", "global_settings_setting_ssh_compatibility_help": "Kongruo vs sekureca kompromiso por la SSH-servilo. Afektas la ĉifradojn (kaj aliajn aspektojn pri sekureco)", "global_settings_setting_smtp_allow_ipv6_help": "Permesu la uzon de IPv6 por ricevi kaj sendi poŝton" -} +} \ No newline at end of file diff --git a/locales/es.json b/locales/es.json index eb1f3bbe1..bd9a644c2 100644 --- a/locales/es.json +++ b/locales/es.json @@ -782,4 +782,4 @@ "dyndns_set_recovery_password_success": "¡Password de recuperación establecida!", "global_settings_setting_dns_exposure_help": "NB: Esto afecta únicamente a la configuración recomentada de DNS y en las pruebas de diagnóstico. No afecta a la configuración del sistema.", "global_settings_setting_ssh_port_help": "Un puerto menor a 1024 es preferible para evitar intentos de usurpación por servicios no administrativos en la máquina remota. También debe de evitar usar un puerto ya en uso, como el 80 o 443." -} +} \ No newline at end of file diff --git a/locales/eu.json b/locales/eu.json index 2b84b0763..b95fcd1a9 100644 --- a/locales/eu.json +++ b/locales/eu.json @@ -782,4 +782,4 @@ "dyndns_set_recovery_password_failed": "Berreskuratze-pasahitza ezartzeak huts egin du: {error}", "dyndns_set_recovery_password_success": "Berreskuratze-pasahitza ezarri da!", "global_settings_setting_ssh_port_help": "1024 baino ataka txikiago bat izan beharko litzateke, zerbitzu ez-administratzaileek urruneko makinan usurpazio-saiorik egin ez dezaten. Lehendik ere erabiltzen ari diren atakak ere ekidin beharko zenituzke, 80 edo 443 kasu." -} +} \ No newline at end of file diff --git a/locales/fa.json b/locales/fa.json index 09ab9229e..8616aee2b 100644 --- a/locales/fa.json +++ b/locales/fa.json @@ -565,4 +565,4 @@ "global_settings_setting_webadmin_allowlist_enabled_help": "فقط به برخی از IP ها اجازه دسترسی به مدیریت وب را بدهید.", "global_settings_setting_smtp_allow_ipv6_help": "اجازه دهید از IPv6 برای دریافت و ارسال نامه استفاده شود", "global_settings_setting_smtp_relay_enabled_help": "میزبان رله SMTP برای ارسال نامه به جای این نمونه yunohost استفاده می شود. اگر در یکی از این شرایط قرار دارید مفید است: پورت 25 شما توسط ارائه دهنده ISP یا VPS شما مسدود شده است، شما یک IP مسکونی دارید که در DUHL ذکر شده است، نمی توانید DNS معکوس را پیکربندی کنید یا این سرور مستقیماً در اینترنت نمایش داده نمی شود و می خواهید از یکی دیگر برای ارسال ایمیل استفاده کنید." -} +} \ No newline at end of file diff --git a/locales/fr.json b/locales/fr.json index 57091f35e..18fbcd4da 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -789,4 +789,4 @@ "diagnosis_ignore_missing_criteria": "Vous devez fournir au moins un critère qui est une catégorie de diagnostic à ignorer", "diagnosis_ignore_criteria_error": "Les critères doivent être sous la forme de clé=valeur (ex. domain=yolo.test)", "diagnosis_ignore_no_issue_found": "Aucun problème correspondant au critère donné n'a été trouvé." -} +} \ No newline at end of file diff --git a/locales/gl.json b/locales/gl.json index df50d5e12..5080505c1 100644 --- a/locales/gl.json +++ b/locales/gl.json @@ -782,4 +782,4 @@ "ask_dyndns_recovery_password_explain_unavailable": "Este dominio DynDNS xa está rexistrado. Se es a persoa que o rexistrou orixinalmente, podes escribir o código de recuperación para reclamar o dominio.", "dyndns_too_many_requests": "O servicio dyndns de YunoHost recibeu demasiadas peticións do teu sistema, agarda 1 hora e volve intentalo.", "global_settings_setting_ssh_port_help": "É recomendable un porto inferior a 1024 para evitar os intentos de apropiación por parte de servizos de non-administración na máquina remota. Tamén deberías evitar elexir un porto que xa está sendo utilizado, como 80 ou 443." -} +} \ No newline at end of file diff --git a/locales/id.json b/locales/id.json index 41ec7018b..d1f8d3325 100644 --- a/locales/id.json +++ b/locales/id.json @@ -441,4 +441,4 @@ "service_enable_failed": "Tidak dapat membuat layanan '{service}' dimulai mandiri saat pemulaian.\n\nLog layanan baru-baru ini:{logs}", "service_not_reloading_because_conf_broken": "Tidak memuat atau memulai ulang layanan '{name}' karena konfigurasinya rusak: {errors}", "service_reloaded": "Layanan {service} dimuat ulang" -} +} \ No newline at end of file diff --git a/locales/it.json b/locales/it.json index 8080f05e7..24714500a 100644 --- a/locales/it.json +++ b/locales/it.json @@ -668,4 +668,4 @@ "certmanager_cert_renew_failed": "Il rinnovo del certificato Let’s Encrypt è fallito per {domains}", "ask_dyndns_recovery_password_explain": "Scegli una password di recupero per il tuo dominio DynDNS, in caso dovessi ripristinarlo successivamente.", "confirm_app_insufficient_ram": "PERICOLO! Quest’app richiede {required} di RAM per essere installata/aggiornata, ma solo {current} sono disponibili ora. Nonostante l’app possa funzionare, la sua installazione o aggiornamento richiedono una grande quantità di RAM, perciò il tuo server potrebbe bloccarsi o fallire miseramente. Se sei dispostə a prenderti questo rischio comunque, digita ‘{answers}’" -} +} \ No newline at end of file diff --git a/locales/ja.json b/locales/ja.json index 1c2a77c6a..b8a781f04 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -760,4 +760,4 @@ "yunohost_not_installed": "YunoHostが正しくインストールされていません。’yunohost tools postinstall’ を実行してください", "yunohost_postinstall_end_tip": "インストール後処理が完了しました!セットアップを完了するには、次の点を考慮してください。\n - ウェブ管理画面の'診断'セクション(またはコマンドラインで’yunohost diagnosis run’)を通じて潜在的な問題を診断します。\n - 管理ドキュメントの'セットアップの最終処理'と'YunoHostを知る'の部分を読む: https://yunohost.org/admindoc。", "additional_urls_already_removed": "アクセス許可 ‘{permission}’ に対する追加URLで ‘{url}’ は既に削除されています" -} +} \ No newline at end of file diff --git a/locales/ru.json b/locales/ru.json index a1d001631..09cedd59c 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -341,4 +341,4 @@ "app_failed_to_download_asset": "Не удалось скачать материал «{source_id}» ({url}) для {app}: {out}", "app_failed_to_upgrade_but_continue": "Не удалось обновить приложение {failed_app}, обновления продолжаются, как запрошено. Выполните «yunohost log show {operation_logger_name}», чтобы увидеть журнал ошибки", "app_not_upgraded_broken_system": "Не удалось обновить приложение «{failed_app}», система находится в сломанном состоянии, обновления следующих приложений были отменены: {apps}" -} +} \ No newline at end of file diff --git a/locales/sk.json b/locales/sk.json index 961555f8a..a58b1f960 100644 --- a/locales/sk.json +++ b/locales/sk.json @@ -279,4 +279,4 @@ "domain_config_cert_summary": "Stav certifikátu", "domain_config_xmpp": "Krátke správy (XMPP)", "log_app_makedefault": "Nastaviť '{}' ako predvolenú aplikáciu" -} +} \ No newline at end of file diff --git a/locales/uk.json b/locales/uk.json index b93b15d5c..04640d1b4 100644 --- a/locales/uk.json +++ b/locales/uk.json @@ -781,4 +781,4 @@ "dyndns_set_recovery_password_failed": "Не вдалося встановити пароль для відновлення: {error}", "dyndns_set_recovery_password_success": "Пароль для відновлення встановлено!", "log_dyndns_unsubscribe": "Скасувати підписку на субдомен YunoHost '{}'" -} +} \ No newline at end of file diff --git a/locales/zh_Hans.json b/locales/zh_Hans.json index 709276c47..a80a9cc0c 100644 --- a/locales/zh_Hans.json +++ b/locales/zh_Hans.json @@ -587,4 +587,4 @@ "ask_admin_fullname": "管理员全名", "ask_admin_username": "管理员用户名", "ask_fullname": "全名" -} +} \ No newline at end of file From 1bb81e8f690c47af73e8743d2cfe543f169bdfab Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sun, 7 Jul 2024 16:38:46 +0200 Subject: [PATCH 08/44] log: small hack when dumping log right after script failure, prevent a weird edge case where it'll dump the log of the resource provisioning instead of the script, guessing it's because it doesn't find 'ynh_exit_properly' near the end of the log ? --- src/log.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/log.py b/src/log.py index 7950fca78..341770a56 100755 --- a/src/log.py +++ b/src/log.py @@ -791,7 +791,7 @@ class OperationLogger: # Get the 20 lines before the last 'ynh_exit_properly' rev_lines = list(reversed(lines)) - for i, line in enumerate(rev_lines): + for i, line in enumerate(rev_lines[:50]): if line.endswith("+ ynh_exit_properly"): lines_to_display = reversed(rev_lines[i : i + 20]) break From f6fbd69c393aa6f6fcbc0a26a1a63fcb2af98a15 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sun, 7 Jul 2024 17:18:58 +0200 Subject: [PATCH 09/44] helpers/apt: rely on simpler dpkg-deb --build rather than equivs to create .deb for app virtual dependencies --- debian/control | 2 +- helpers/helpers.v1.d/apt | 13 ++++++------- helpers/helpers.v2.1.d/apt | 20 +++++++++----------- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/debian/control b/debian/control index 8139375e7..daf346dc4 100644 --- a/debian/control +++ b/debian/control @@ -28,7 +28,7 @@ Depends: ${python3:Depends}, ${misc:Depends} , redis-server , acl , git, curl, wget, cron, unzip, jq, bc, at, procps, j2cli - , lsb-release, haveged, fake-hwclock, equivs, lsof, whois + , lsb-release, haveged, fake-hwclock, lsof, whois Recommends: yunohost-admin , ntp, inetutils-ping | iputils-ping , bash-completion, rsyslog diff --git a/helpers/helpers.v1.d/apt b/helpers/helpers.v1.d/apt index 8231515fc..c3fd9aa07 100644 --- a/helpers/helpers.v1.d/apt +++ b/helpers/helpers.v1.d/apt @@ -186,21 +186,19 @@ ynh_package_install_from_equivs() { # Build and install the package local TMPDIR=$(mktemp --directory) - - # Make sure to delete the legacy compat file - # It's now handle somewhat magically through the control file - rm -f /usr/share/equivs/template/debian/compat + mkdir -p ${TMPDIR}/${pkgname}/DEBIAN/ # Note that the cd executes into a sub shell # Create a fake deb package with equivs-build and the given control file # Install the fake package without its dependencies with dpkg # Install missing dependencies with ynh_package_install ynh_wait_dpkg_free - cp "$controlfile" "${TMPDIR}/control" + cp "$controlfile" "${TMPDIR}/${pkgname}/DEBIAN/control" ( cd "$TMPDIR" - LC_ALL=C equivs-build ./control 2>&1 - LC_ALL=C dpkg --force-depends --install "./${pkgname}_${pkgversion}_all.deb" 2>&1 | tee ./dpkg_log + # Install the fake package without its dependencies with dpkg --force-depends + LC_ALL=C dpkg-deb --build ${pkgname} ${pkgname}.deb > ./dpkg_log 2>&1 || { cat ./dpkg_log; false; } + LC_ALL=C dpkg --force-depends --install "./${pkgname}.deb" 2>&1 | tee ./dpkg_log ) ynh_package_install --fix-broken \ @@ -323,6 +321,7 @@ Package: ${dep_app}-ynh-deps Version: ${version} Depends: ${dependencies} Architecture: all +Maintainer: root@localhost Description: Fake package for ${app} (YunoHost app) dependencies This meta-package is only responsible of installing its dependencies. EOF diff --git a/helpers/helpers.v2.1.d/apt b/helpers/helpers.v2.1.d/apt index 4c78a2147..3930f5e9c 100644 --- a/helpers/helpers.v2.1.d/apt +++ b/helpers/helpers.v2.1.d/apt @@ -90,27 +90,25 @@ ynh_apt_install_dependencies() { dependencies="$current_dependencies, $dependencies" fi - # ############################# - # Actual install using equivs # - # ############################# + # ################ + # Actual install # + # ################ - # Prepare the virtual-dependency control file for equivs + # Prepare the virtual-dependency control file for dpkg-deb --build local TMPDIR=$(mktemp --directory) - cat >${TMPDIR}/control <${TMPDIR}/${app_ynh_deps}/DEBIAN/control < ./equivs_log 2>&1 || { cat ./equivs_log; false; } - LC_ALL=C dpkg --force-depends --install "./${app_ynh_deps}_${version}_all.deb" > ./dpkg_log 2>&1 + LC_ALL=C dpkg-deb --build ${app_ynh_deps} ${app_ynh_deps}.deb > ./dpkg_log 2>&1 || { cat ./dpkg_log; false; } + LC_ALL=C dpkg --force-depends --install "./${app_ynh_deps}.deb" > ./dpkg_log 2>&1 ) # Then install the missing dependencies with apt install From 26fba087d6614f15147f17855e1f8eef7bda8b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Mon, 8 Jul 2024 22:37:40 +0200 Subject: [PATCH 10/44] Add aptitude to deps for the migration to bookworm --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 8139375e7..31190903e 100644 --- a/debian/control +++ b/debian/control @@ -17,7 +17,7 @@ Depends: ${python3:Depends}, ${misc:Depends} , python3-ldap, python3-zeroconf (>= 0.36), python3-lexicon, , python-is-python3 , nginx, nginx-extras (>=1.18) - , apt, apt-transport-https, apt-utils, dirmngr + , apt, apt-transport-https, apt-utils, aptitude, dirmngr , openssh-server, iptables, fail2ban, bind9-dnsutils , openssl, ca-certificates, netcat-openbsd, iproute2 , slapd, ldap-utils, sudo-ldap, libnss-ldapd, unscd, libpam-ldapd From 49961145caf4a24cd6d9af8100b0c9325184cc21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Mon, 8 Jul 2024 23:18:36 +0200 Subject: [PATCH 11/44] Disable migration to bookworm until it is ready --- ...igrate_to_bookworm.py => 0027_migrate_to_bookworm.py.disabled} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/migrations/{0027_migrate_to_bookworm.py => 0027_migrate_to_bookworm.py.disabled} (100%) diff --git a/src/migrations/0027_migrate_to_bookworm.py b/src/migrations/0027_migrate_to_bookworm.py.disabled similarity index 100% rename from src/migrations/0027_migrate_to_bookworm.py rename to src/migrations/0027_migrate_to_bookworm.py.disabled From bb25c6b15db5802a2f592a3b07955a4e6166e845 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Tue, 9 Jul 2024 23:46:07 +0200 Subject: [PATCH 12/44] Fix: support repositories without component --- helpers/helpers.v1.d/apt | 20 +++++++++++--------- helpers/helpers.v2.1.d/apt | 18 ++++++++++++++---- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/helpers/helpers.v1.d/apt b/helpers/helpers.v1.d/apt index c3fd9aa07..34d933018 100644 --- a/helpers/helpers.v1.d/apt +++ b/helpers/helpers.v1.d/apt @@ -469,18 +469,20 @@ ynh_install_extra_repo() { wget_append="tee" fi - # Split the repository into uri, suite and components. + IFS=', ' read -r -a repo_parts <<< "$repo" + index=0 + # Remove "deb " at the beginning of the repo. - repo="${repo#deb }" - - # Get the uri - local uri="$(echo "$repo" | awk '{ print $1 }')" - - # Get the suite - local suite="$(echo "$repo" | awk '{ print $2 }')" + if [[ "${repo_parts[0]}" == "deb" ]]; then + index=1 + fi + uri="${repo_parts[$index]}" ; index=$((index+1)) + suite="${repo_parts[$index]}" ; index=$((index+1)) # Get the components - local component="${repo##$uri $suite }" + if (( "${#repo_parts[@]}" > 0 )); then + component="${repo_parts[*]:$index}" + fi # Add the repository into sources.list.d ynh_add_repo --uri="$uri" --suite="$suite" --component="$component" --name="$name" $append diff --git a/helpers/helpers.v2.1.d/apt b/helpers/helpers.v2.1.d/apt index 3930f5e9c..3b875f0fe 100644 --- a/helpers/helpers.v2.1.d/apt +++ b/helpers/helpers.v2.1.d/apt @@ -196,10 +196,20 @@ ynh_apt_install_dependencies_from_extra_repository() { # =========================================== # Split the repository into uri, suite and components. - repo="${repo#deb }" - local uri="$(echo "$repo" | awk '{ print $1 }')" - local suite="$(echo "$repo" | awk '{ print $2 }')" - local component="${repo##$uri $suite }" + IFS=', ' read -r -a repo_parts <<< "$repo" + index=0 + + # Remove "deb " at the beginning of the repo. + if [[ "${repo_parts[0]}" == "deb" ]]; then + index=1 + fi + uri="${repo_parts[$index]}" ; index=$((index+1)) + suite="${repo_parts[$index]}" ; index=$((index+1)) + + # Get the components + if (( "${#repo_parts[@]}" > 0 )); then + component="${repo_parts[*]:$index}" + fi # Add the new repo in sources.list.d mkdir --parents "/etc/apt/sources.list.d" From b96c530d2b36447907eefb75c536e9182e1ca4b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Tue, 9 Jul 2024 23:57:19 +0200 Subject: [PATCH 13/44] Support trusted=yes repositories... --- helpers/helpers.v1.d/apt | 23 ++++++++++++++++++----- helpers/helpers.v2.1.d/apt | 16 ++++++++++++---- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/helpers/helpers.v1.d/apt b/helpers/helpers.v1.d/apt index 34d933018..1a34763cb 100644 --- a/helpers/helpers.v1.d/apt +++ b/helpers/helpers.v1.d/apt @@ -469,6 +469,12 @@ ynh_install_extra_repo() { wget_append="tee" fi + if [[ "$key" == "trusted=yes" ]]; then + trusted="--trusted" + else + trusted="" + fi + IFS=', ' read -r -a repo_parts <<< "$repo" index=0 @@ -485,7 +491,7 @@ ynh_install_extra_repo() { fi # Add the repository into sources.list.d - ynh_add_repo --uri="$uri" --suite="$suite" --component="$component" --name="$name" $append + ynh_add_repo --uri="$uri" --suite="$suite" --component="$component" --name="$name" $append $trusted # Pin the new repo with the default priority, so it won't be used for upgrades. # Build $pin from the uri without http and any sub path @@ -498,7 +504,7 @@ ynh_install_extra_repo() { ynh_pin_repo --package="*" --pin="origin \"$pin\"" $priority --name="$name" $append # Get the public key for the repo - if [ -n "$key" ]; then + if [ -n "$key" ] && [[ "$key" != "trusted=yes" ]]; then mkdir --parents "/etc/apt/trusted.gpg.d" # Timeout option is here to enforce the timeout on dns query and tcp connect (c.f. man wget) wget --timeout 900 --quiet "$key" --output-document=- | gpg --dearmor | $wget_append /etc/apt/trusted.gpg.d/$name.gpg >/dev/null @@ -551,6 +557,7 @@ ynh_remove_extra_repo() { # | arg: -c, --component= - Component of the repository. # | arg: -n, --name= - Name for the files for this repo, $app as default value. # | arg: -a, --append - Do not overwrite existing files. +# | arg: -t, --trusted - Add trusted=yes to the repository (not recommended) # # Example for a repo like deb http://forge.yunohost.org/debian/ stretch stable # uri suite component @@ -559,13 +566,14 @@ ynh_remove_extra_repo() { # Requires YunoHost version 3.8.1 or higher. ynh_add_repo() { # Declare an array to define the options of this helper. - local legacy_args=uscna - local -A args_array=([u]=uri= [s]=suite= [c]=component= [n]=name= [a]=append) + local legacy_args=uscnat + local -A args_array=([u]=uri= [s]=suite= [c]=component= [n]=name= [a]=append [t]=trusted) local uri local suite local component local name local append + local trusted # Manage arguments with getopts ynh_handle_getopts_args "$@" name="${name:-$app}" @@ -576,10 +584,15 @@ ynh_add_repo() { else append="tee" fi + if [[ "$trusted" -eq 1 ]]; then + trust="[trusted=yes]" + else + trust="" + fi mkdir --parents "/etc/apt/sources.list.d" # Add the new repo in sources.list.d - echo "deb $uri $suite $component" \ + echo "deb $trust $uri $suite $component" \ | $append "/etc/apt/sources.list.d/$name.list" } diff --git a/helpers/helpers.v2.1.d/apt b/helpers/helpers.v2.1.d/apt index 3b875f0fe..2e007f15b 100644 --- a/helpers/helpers.v2.1.d/apt +++ b/helpers/helpers.v2.1.d/apt @@ -211,9 +211,15 @@ ynh_apt_install_dependencies_from_extra_repository() { component="${repo_parts[*]:$index}" fi + if [[ "$key" == "trusted=yes" ]]; then + trust="[trusted=yes]" + else + trust="" + fi + # Add the new repo in sources.list.d mkdir --parents "/etc/apt/sources.list.d" - echo "deb $uri $suite $component" > "/etc/apt/sources.list.d/$app.list" + echo "deb $trust $uri $suite $component" > "/etc/apt/sources.list.d/$app.list" # Pin the new repo with the default priority, so it won't be used for upgrades. # Build $pin from the uri without http and any sub path @@ -228,9 +234,11 @@ Pin: origin $pin Pin-Priority: 995 EOF - mkdir --parents "/etc/apt/trusted.gpg.d" - # Timeout option is here to enforce the timeout on dns query and tcp connect (c.f. man wget) - wget --timeout 900 --quiet "$key" --output-document=- | gpg --dearmor > /etc/apt/trusted.gpg.d/$app.gpg + if [ -n "$key" ] && [[ "$key" != "trusted=yes" ]]; then + mkdir --parents "/etc/apt/trusted.gpg.d" + # Timeout option is here to enforce the timeout on dns query and tcp connect (c.f. man wget) + wget --timeout 900 --quiet "$key" --output-document=- | gpg --dearmor > /etc/apt/trusted.gpg.d/$app.gpg + fi # Update the list of package with the new repo NB: we use -o # Dir::Etc::sourcelist to only refresh this repo, because From 8be726b993082940897d30b7512ee6fb5738ed61 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Wed, 10 Jul 2024 18:15:36 +0200 Subject: [PATCH 14/44] helpers: fix dpkg-deb --build complaining that the perm is sometimes 777 instead of 755 (not sure why in the first place x_x) --- helpers/helpers.v1.d/apt | 2 ++ helpers/helpers.v2.1.d/apt | 3 +++ 2 files changed, 5 insertions(+) diff --git a/helpers/helpers.v1.d/apt b/helpers/helpers.v1.d/apt index c3fd9aa07..26d37b2b5 100644 --- a/helpers/helpers.v1.d/apt +++ b/helpers/helpers.v1.d/apt @@ -187,6 +187,8 @@ ynh_package_install_from_equivs() { # Build and install the package local TMPDIR=$(mktemp --directory) mkdir -p ${TMPDIR}/${pkgname}/DEBIAN/ + # For some reason, dpkg-deb insists for folder perm to be 755 and sometimes it's 777 o_O? + chmod -R 755 ${TMPDIR}/${pkgname} # Note that the cd executes into a sub shell # Create a fake deb package with equivs-build and the given control file diff --git a/helpers/helpers.v2.1.d/apt b/helpers/helpers.v2.1.d/apt index 3930f5e9c..3d58f2305 100644 --- a/helpers/helpers.v2.1.d/apt +++ b/helpers/helpers.v2.1.d/apt @@ -97,6 +97,9 @@ ynh_apt_install_dependencies() { # Prepare the virtual-dependency control file for dpkg-deb --build local TMPDIR=$(mktemp --directory) mkdir -p ${TMPDIR}/${app_ynh_deps}/DEBIAN + # For some reason, dpkg-deb insists for folder perm to be 755 and sometimes it's 777 o_O? + chmod -R 755 ${TMPDIR}/${pkgname} + cat >${TMPDIR}/${app_ynh_deps}/DEBIAN/control < Date: Wed, 10 Jul 2024 18:30:12 +0200 Subject: [PATCH 15/44] backups: one should be able to restore a backup archive by providing a path to the archive without moving it to /home/yunohost.backup/archives/ --- share/actionsmap.yml | 4 ++-- src/backup.py | 11 +++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/share/actionsmap.yml b/share/actionsmap.yml index 9d5c76b01..70f80e463 100755 --- a/share/actionsmap.yml +++ b/share/actionsmap.yml @@ -1201,7 +1201,7 @@ backup: api: PUT /backups//restore arguments: name: - help: Name of the local backup archive + help: Name or path of the backup archive --system: help: List of system parts to restore (or all if none is given) nargs: "*" @@ -1232,7 +1232,7 @@ backup: api: GET /backups/ arguments: name: - help: Name of the local backup archive + help: Name or path of the backup archive -d: full: --with-details help: Show additional backup information diff --git a/src/backup.py b/src/backup.py index 58439189d..0f0f9a7e0 100644 --- a/src/backup.py +++ b/src/backup.py @@ -2314,11 +2314,6 @@ def backup_restore(name, system=[], apps=[], force=False): # Initialize # # - if name.endswith(".tar.gz"): - name = name[: -len(".tar.gz")] - elif name.endswith(".tar"): - name = name[: -len(".tar")] - restore_manager = RestoreManager(name) restore_manager.set_system_targets(system) @@ -2451,6 +2446,7 @@ def backup_info(name, with_details=False, human_readable=False): human_readable -- Print sizes in human readable format """ + original_name = name if name.endswith(".tar.gz"): name = name[: -len(".tar.gz")] @@ -2463,7 +2459,10 @@ def backup_info(name, with_details=False, human_readable=False): if not os.path.lexists(archive_file): archive_file += ".gz" if not os.path.lexists(archive_file): - raise YunohostValidationError("backup_archive_name_unknown", name=name) + # Maybe the user provided a path to the backup? + archive_file = original_name + if not os.path.lexists(archive_file): + raise YunohostValidationError("backup_archive_name_unknown", name=name) # If symlink, retrieve the real path if os.path.islink(archive_file): From b266e398ffaef91d2252a39dc5c7b9d94584396c Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Wed, 10 Jul 2024 18:45:56 +0200 Subject: [PATCH 16/44] Fix previous commit @_@ --- src/backup.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/backup.py b/src/backup.py index 0f0f9a7e0..a016fccae 100644 --- a/src/backup.py +++ b/src/backup.py @@ -1923,6 +1923,9 @@ class TarBackupMethod(BackupMethod): @property def _archive_file(self): + if isinstance(self.manager, RestoreManager): + return self.manager.archive_path + if isinstance(self.manager, BackupManager) and settings_get( "misc.backup.backup_compress_tar_archives" ): From 9c22d36c6f435eb19a0f3afb77834826c65ee85f Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Wed, 10 Jul 2024 18:46:18 +0200 Subject: [PATCH 17/44] backups: yunohost should not ask confirmation that 'YunoHost is already installed' when restoring only apps --- src/backup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backup.py b/src/backup.py index a016fccae..c034ae10d 100644 --- a/src/backup.py +++ b/src/backup.py @@ -2328,7 +2328,7 @@ def backup_restore(name, system=[], apps=[], force=False): # Add validation if restoring system parts on an already-installed system # - if restore_manager.targets.targets["system"] != [] and os.path.isfile( + if restore_manager.info["system"] != {} and restore_manager.targets.targets["system"] != [] and os.path.isfile( "/etc/yunohost/installed" ): logger.warning(m18n.n("yunohost_already_installed")) From e5bc94b9cfc36f01e940af22e5158beaff8a5512 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Wed, 10 Jul 2024 20:17:42 +0200 Subject: [PATCH 18/44] Copypasta is the worst kind of pasta --- helpers/helpers.v2.1.d/apt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helpers/helpers.v2.1.d/apt b/helpers/helpers.v2.1.d/apt index 3d58f2305..6a26d9c3f 100644 --- a/helpers/helpers.v2.1.d/apt +++ b/helpers/helpers.v2.1.d/apt @@ -98,7 +98,7 @@ ynh_apt_install_dependencies() { local TMPDIR=$(mktemp --directory) mkdir -p ${TMPDIR}/${app_ynh_deps}/DEBIAN # For some reason, dpkg-deb insists for folder perm to be 755 and sometimes it's 777 o_O? - chmod -R 755 ${TMPDIR}/${pkgname} + chmod -R 755 ${TMPDIR}/${app_ynh_deps} cat >${TMPDIR}/${app_ynh_deps}/DEBIAN/control < Date: Wed, 10 Jul 2024 21:09:31 +0200 Subject: [PATCH 19/44] helpers2.1: forgot to keep ynh_spawn_app_shell /o\ --- helpers/helpers.v2.1.d/utils | 79 ++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/helpers/helpers.v2.1.d/utils b/helpers/helpers.v2.1.d/utils index 4c611395d..aca976c54 100644 --- a/helpers/helpers.v2.1.d/utils +++ b/helpers/helpers.v2.1.d/utils @@ -377,3 +377,82 @@ ynh_user_get_info() { ynh_user_list() { yunohost user list --output-as json --quiet | jq -r ".users | keys[]" } + +# Spawn a Bash shell with the app environment loaded +# +# usage: ynh_spawn_app_shell "appname" +# +# examples: +# ynh_spawn_app_shell "foobar" <<< 'echo "$USER"' +# ynh_spawn_app_shell "foobar" < /tmp/some_script.bash +# +# The spawned shell will have environment variables loaded and environment files sourced +# from the app's service configuration file (defaults to $app.service, overridable by the packager with `service` setting). +# If the app relies on a specific PHP version, then `php` will be aliased that version. The PHP command will also be appended with the `phpflags` settings. +ynh_spawn_app_shell() { + local app=$1 + + # Force Bash to be used to run this helper + [[ $0 =~ \/?bash$ ]] || ynh_die "Please use Bash as shell" + + # Make sure the app is installed + test -d /etc/yunohost/apps/$app || ynh_die "$app is not an installed app ?!" + + # Make sure the app has its own user + id -u "$app" &>/dev/null || ynh_die "There is no \"$app\" system user" + + # Make sure the app has an install_dir setting + local install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) + [ -n "$install_dir" ] || ynh_die "$app has no install_dir setting (does it use packaging format >=2?)" + + # Load the app's service name, or default to $app + local service=$(ynh_app_setting_get --app=$app --key=service) + [ -z "$service" ] && service=$app; + + # Export HOME variable + export HOME=$install_dir; + + # Load the Environment variables from the app's service + local env_var=$(systemctl show $service.service -p "Environment" --value) + [ -n "$env_var" ] && export $env_var; + + # Force `php` to its intended version + # We use `eval`+`export` since `alias` is not propagated to subshells, even with `export` + local phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) + local phpflags=$(ynh_app_setting_get --app=$app --key=phpflags) + if [ -n "$phpversion" ] + then + eval "php() { php${phpversion} ${phpflags} \"\$@\"; }" + export -f php + fi + + # Source the EnvironmentFiles from the app's service + local env_files=($(systemctl show $service.service -p "EnvironmentFiles" --value)) + if [ ${#env_files[*]} -gt 0 ] + then + # set -/+a enables and disables new variables being automatically exported. Needed when using `source`. + set -a + for file in ${env_files[*]} + do + [[ $file = /* ]] && source $file + done + set +a + fi + + # Activate the Python environment, if it exists + if [ -f $install_dir/venv/bin/activate ] + then + # set -/+a enables and disables new variables being automatically exported. Needed when using `source`. + set -a + source $install_dir/venv/bin/activate + set +a + fi + + # cd into the WorkingDirectory set in the service, or default to the install_dir + local env_dir=$(systemctl show $service.service -p "WorkingDirectory" --value) + [ -z $env_dir ] && env_dir=$install_dir; + cd $env_dir + + # Spawn the app shell + su -s /bin/bash $app +} From ab8e0e6619ff8eceb2209f47762134f91eee81e4 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin <4533074+alexAubin@users.noreply.github.com> Date: Wed, 10 Jul 2024 23:37:41 +0200 Subject: [PATCH 20/44] Update system.py: forgot to add the corresponding stdin arg in some previous commit x_x --- src/utils/system.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/system.py b/src/utils/system.py index 9b6de576c..12961112f 100644 --- a/src/utils/system.py +++ b/src/utils/system.py @@ -299,7 +299,7 @@ def aptitude_with_progress_bar(cmd): read, write = os.pipe() os.write(write, b"y\ny\ny") os.close(write) - ret = call_async_output(cmd, callbacks, shell=True) + ret = call_async_output(cmd, callbacks, shell=True, stdin=read) if log_apt_status_to_progress_bar.previous_package is not None and ret == 0: log_apt_status_to_progress_bar("done::100:Done") From e54e99bfb79a967055e8932fb2b05e1f888e60cc Mon Sep 17 00:00:00 2001 From: Kayou Date: Thu, 11 Jul 2024 00:18:06 +0200 Subject: [PATCH 21/44] fix migration message --- locales/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/en.json b/locales/en.json index bc37b6b54..3e795ec81 100644 --- a/locales/en.json +++ b/locales/en.json @@ -609,7 +609,7 @@ "migration_0027_patch_yunohost_conflicts": "Applying patch to workaround conflict issue…", "migration_0027_patching_sources_list": "Patching the sources.lists…", "migration_0027_problematic_apps_warning": "Please note that the following possibly problematic installed apps were detected. It looks like those were not installed from the YunoHost app catalog, or are not flagged as 'working'. Consequently, it cannot be guaranteed that they will still work after the upgrade: {problematic_apps}", - "migration_0027_start": "Starting migration to Bullseye", + "migration_0027_start": "Starting migration to Bookworm", "migration_0027_still_on_bullseye_after_main_upgrade": "Something went wrong during the main upgrade, the system appears to still be on Debian Bullseye", "migration_0027_system_not_fully_up_to_date": "Your system is not fully up-to-date. Please perform a regular upgrade before running the migration to Bullseye.", "migration_0027_yunohost_upgrade": "Starting YunoHost core upgrade…", From a66890ddd85d5ebeb677881be02bea04f8ad6081 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Thu, 11 Jul 2024 01:21:28 +0200 Subject: [PATCH 22/44] Bookworn migration text: fix some typos --- locales/en.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/locales/en.json b/locales/en.json index 3e795ec81..db9df2d5a 100644 --- a/locales/en.json +++ b/locales/en.json @@ -580,7 +580,7 @@ "migration_0021_general_warning": "Please note that this migration is a delicate operation. The YunoHost team did its best to review and test it, but the migration might still break parts of the system or its apps.\n\nTherefore, it is recommended to:\n - Perform a backup of any critical data or app. More info on https://yunohost.org/backup;\n - Be patient after launching the migration: Depending on your Internet connection and hardware, it might take up to a few hours for everything to upgrade.", "migration_0021_main_upgrade": "Starting main upgrade…", "migration_0021_modified_files": "Please note that the following files were found to be manually modified and might be overwritten following the upgrade: {manually_modified_files}", - "migration_0021_not_buster2": "The current Debian distribution is not Buster! If you already ran the Buster->Bullseye migration, then this error is symptomatic of the fact that the migration procedure was not 100% succesful (otherwise YunoHost would have flagged it as completed). It is recommended to investigate what happened with the support team, who will need the **full** log of the `migration, which can be found in Tools > Logs in the webadmin.", + "migration_0021_not_buster2": "The current Debian distribution is not Buster! If you already ran the Buster -> Bullseye migration, then this error is symptomatic of the fact that the migration procedure was not 100% succesful (otherwise YunoHost would have flagged it as completed). It is recommended to investigate what happened with the support team, who will need the **full** log of the migration, which can be found in Tools > Logs in the webadmin.", "migration_0021_not_enough_free_space": "Free space is pretty low in /var/! You should have at least 1GB free to run this migration.", "migration_0021_patch_yunohost_conflicts": "Applying patch to workaround conflict issue…", "migration_0021_patching_sources_list": "Patching the sources.lists…", @@ -598,19 +598,19 @@ "migration_0024_rebuild_python_venv_disclaimer_rebuild": "Rebuilding the virtualenv will be attempted for the following apps (NB: the operation may take some time!): {rebuild_apps}", "migration_0024_rebuild_python_venv_failed": "Failed to rebuild the Python virtualenv for {app}. The app may not work as long as this is not resolved. You should fix the situation by forcing the upgrade of this app using `yunohost app upgrade --force {app}`.", "migration_0024_rebuild_python_venv_in_progress": "Now attempting to rebuild the Python virtualenv for `{app}`", - "migration_description_0027_migrate_to_bookworm": "Upgrade the system to Debian Bookworm and YunoHost 12", + "migration_description_0027_migrate_to_bookworm": "Upgrade the system to Debian Bookworm and YunoHost 12…", "migration_0027_cleaning_up": "Cleaning up cache and packages not useful anymore…", "migration_0027_delayed_api_restart": "The YunoHost API will automatically be restarted in 15 seconds. It may be unavailable for a few seconds, and then you will have to login again.", - "migration_0027_general_warning": "Please note that this migration is a delicate operation. The YunoHost team did its best to review and test it, but the migration might still break parts of the system or its apps.\n\nTherefore, it is recommended to:\n - Perform a backup of any critical data or app. More info on https://yunohost.org/backup;\n - Be patient after launching the migration: Depending on your Internet connection and hardware, it might take up to a few hours for everything to upgrade.", + "migration_0027_general_warning": "Please note that this migration is a delicate operation. The YunoHost team did its best to review and test it, but the migration might still break parts of the system or its apps.\n\nTherefore, it is recommended to:\n - Perform a backup of any critical data or app. More info on https://yunohost.org/backup;\n - Be patient after launching the migration: Depending on your Internet connection and hardware, it might take up to a few hours for everything to upgrade properly.", "migration_0027_main_upgrade": "Starting main upgrade…", "migration_0027_modified_files": "Please note that the following files were found to be manually modified and might be overwritten following the upgrade: {manually_modified_files}", - "migration_0027_not_bullseye": "The current Debian distribution is not Bullseye! If you already ran the Bullseye->Bookworm migration, then this error is symptomatic of the fact that the migration procedure was not 100% succesful (otherwise YunoHost would have flagged it as completed). It is recommended to investigate what happened with the support team, who will need the **full** log of the `migration, which can be found in Tools > Logs in the webadmin.", + "migration_0027_not_bullseye": "The current Debian distribution is not Bullseye! If you already ran the Bullseye -> Bookworm migration, then this error is symptomatic of the fact that the migration procedure was not 100% succesful (otherwise YunoHost would have flagged it as completed). It is recommended to investigate what happened with the support team, who will need the **full** log of the migration, which can be found in Tools > Logs in the webadmin.", "migration_0027_not_enough_free_space": "Free space is pretty low in /var/! You should have at least 1GB free to run this migration.", "migration_0027_patch_yunohost_conflicts": "Applying patch to workaround conflict issue…", - "migration_0027_patching_sources_list": "Patching the sources.lists…", + "migration_0027_patching_sources_list": "Patching the sources.lists file…", "migration_0027_problematic_apps_warning": "Please note that the following possibly problematic installed apps were detected. It looks like those were not installed from the YunoHost app catalog, or are not flagged as 'working'. Consequently, it cannot be guaranteed that they will still work after the upgrade: {problematic_apps}", - "migration_0027_start": "Starting migration to Bookworm", - "migration_0027_still_on_bullseye_after_main_upgrade": "Something went wrong during the main upgrade, the system appears to still be on Debian Bullseye", + "migration_0027_start": "Starting migration to Bookworm…", + "migration_0027_still_on_bullseye_after_main_upgrade": "Something went wrong during the main upgrade, the system appears to still be on Debian Bullseye.", "migration_0027_system_not_fully_up_to_date": "Your system is not fully up-to-date. Please perform a regular upgrade before running the migration to Bullseye.", "migration_0027_yunohost_upgrade": "Starting YunoHost core upgrade…", "migration_description_0021_migrate_to_bullseye": "Upgrade the system to Debian Bullseye and YunoHost 11.x", @@ -804,4 +804,4 @@ "yunohost_installing": "Installing YunoHost…", "yunohost_not_installed": "YunoHost is not correctly installed. Please run 'yunohost tools postinstall'", "yunohost_postinstall_end_tip": "The post-install completed! To finalize your setup, please consider:\n - diagnose potential issues through the 'Diagnosis' section of the webadmin (or 'yunohost diagnosis run' in command-line);\n - reading the 'Finalizing your setup' and 'Getting to know YunoHost' parts in the admin documentation: https://yunohost.org/admindoc." -} +} \ No newline at end of file From e339006c69bbda7d48617e9cb62e7f724eb73317 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Thu, 11 Jul 2024 03:45:58 +0200 Subject: [PATCH 23/44] revert migration description --- locales/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/en.json b/locales/en.json index db9df2d5a..e69a1661e 100644 --- a/locales/en.json +++ b/locales/en.json @@ -598,7 +598,7 @@ "migration_0024_rebuild_python_venv_disclaimer_rebuild": "Rebuilding the virtualenv will be attempted for the following apps (NB: the operation may take some time!): {rebuild_apps}", "migration_0024_rebuild_python_venv_failed": "Failed to rebuild the Python virtualenv for {app}. The app may not work as long as this is not resolved. You should fix the situation by forcing the upgrade of this app using `yunohost app upgrade --force {app}`.", "migration_0024_rebuild_python_venv_in_progress": "Now attempting to rebuild the Python virtualenv for `{app}`", - "migration_description_0027_migrate_to_bookworm": "Upgrade the system to Debian Bookworm and YunoHost 12…", + "migration_description_0027_migrate_to_bookworm": "Upgrade the system to Debian Bookworm and YunoHost 12", "migration_0027_cleaning_up": "Cleaning up cache and packages not useful anymore…", "migration_0027_delayed_api_restart": "The YunoHost API will automatically be restarted in 15 seconds. It may be unavailable for a few seconds, and then you will have to login again.", "migration_0027_general_warning": "Please note that this migration is a delicate operation. The YunoHost team did its best to review and test it, but the migration might still break parts of the system or its apps.\n\nTherefore, it is recommended to:\n - Perform a backup of any critical data or app. More info on https://yunohost.org/backup;\n - Be patient after launching the migration: Depending on your Internet connection and hardware, it might take up to a few hours for everything to upgrade properly.", From fbe42f18672835b7f99cbd9ebeb260c3b6455c2e Mon Sep 17 00:00:00 2001 From: alexAubin <4533074+alexAubin@users.noreply.github.com> Date: Thu, 11 Jul 2024 08:55:48 +0000 Subject: [PATCH 24/44] :art: Format Python code with Black --- src/backup.py | 6 ++++-- src/utils/system.py | 24 +++++++++++++++++------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/backup.py b/src/backup.py index c034ae10d..c7393d935 100644 --- a/src/backup.py +++ b/src/backup.py @@ -2328,8 +2328,10 @@ def backup_restore(name, system=[], apps=[], force=False): # Add validation if restoring system parts on an already-installed system # - if restore_manager.info["system"] != {} and restore_manager.targets.targets["system"] != [] and os.path.isfile( - "/etc/yunohost/installed" + if ( + restore_manager.info["system"] != {} + and restore_manager.targets.targets["system"] != [] + and os.path.isfile("/etc/yunohost/installed") ): logger.warning(m18n.n("yunohost_already_installed")) if not force: diff --git a/src/utils/system.py b/src/utils/system.py index 12961112f..e0efbcfee 100644 --- a/src/utils/system.py +++ b/src/utils/system.py @@ -252,7 +252,11 @@ def aptitude_with_progress_bar(cmd): if package == "dpkg-exec": return - if package and log_apt_status_to_progress_bar.previous_package and package == log_apt_status_to_progress_bar.previous_package: + if ( + package + and log_apt_status_to_progress_bar.previous_package + and package == log_apt_status_to_progress_bar.previous_package + ): return try: @@ -276,18 +280,22 @@ def aptitude_with_progress_bar(cmd): log_apt_status_to_progress_bar.download_message_displayed = False def strip_boring_dpkg_reading_database(s): - return re.sub(r'(\(Reading database ... \d*%?|files and directories currently installed.\))', '', s) + return re.sub( + r"(\(Reading database ... \d*%?|files and directories currently installed.\))", + "", + s, + ) callbacks = ( lambda l: logger.debug(strip_boring_dpkg_reading_database(l).rstrip() + "\r"), - lambda l: logger.warning(l.rstrip() + "\r"), # ... aptitude has no stderr ? :| if _apt_log_line_is_relevant(l.rstrip()) else logger.debug(l.rstrip() + "\r"), + lambda l: logger.warning( + l.rstrip() + "\r" + ), # ... aptitude has no stderr ? :| if _apt_log_line_is_relevant(l.rstrip()) else logger.debug(l.rstrip() + "\r"), lambda l: log_apt_status_to_progress_bar(l.rstrip()), ) original_cmd = cmd - cmd = ( - f'LC_ALL=C DEBIAN_FRONTEND=noninteractive APT_LISTCHANGES_FRONTEND=none aptitude {cmd} --quiet=2 -o=Dpkg::Use-Pty=0 -o "APT::Status-Fd=$YNH_STDINFO"' - ) + cmd = f'LC_ALL=C DEBIAN_FRONTEND=noninteractive APT_LISTCHANGES_FRONTEND=none aptitude {cmd} --quiet=2 -o=Dpkg::Use-Pty=0 -o "APT::Status-Fd=$YNH_STDINFO"' # If upgrading yunohost from the API, delay the Yunohost-api restart # (this should be the last time we need it before bookworm, because on bookworm, yunohost-admin cookies will be persistent upon api restart) @@ -304,7 +312,9 @@ def aptitude_with_progress_bar(cmd): if log_apt_status_to_progress_bar.previous_package is not None and ret == 0: log_apt_status_to_progress_bar("done::100:Done") elif ret != 0: - raise YunohostError(f"Failed to run command 'aptitude {original_cmd}'", raw_msg=True) + raise YunohostError( + f"Failed to run command 'aptitude {original_cmd}'", raw_msg=True + ) def _apt_log_line_is_relevant(line): From e8c171fd836e4711dc0309464b100355286815e4 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Thu, 11 Jul 2024 15:53:34 +0200 Subject: [PATCH 25/44] ci: add migration 0027 to expected strings --- maintenance/missing_i18n_keys.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/maintenance/missing_i18n_keys.py b/maintenance/missing_i18n_keys.py index 0c5b5fd71..caaf862eb 100644 --- a/maintenance/missing_i18n_keys.py +++ b/maintenance/missing_i18n_keys.py @@ -32,6 +32,7 @@ def find_expected_string_keys(): python_files = glob.glob(ROOT + "src/*.py") python_files.extend(glob.glob(ROOT + "src/utils/*.py")) python_files.extend(glob.glob(ROOT + "src/migrations/*.py")) + python_files.extend(glob.glob(ROOT + "src/migrations/*.py.disabled")) python_files.extend(glob.glob(ROOT + "src/authenticators/*.py")) python_files.extend(glob.glob(ROOT + "src/diagnosers/*.py")) python_files.append(ROOT + "bin/yunohost") @@ -75,6 +76,9 @@ def find_expected_string_keys(): continue yield "migration_description_" + os.path.basename(path)[:-3] + # FIXME: to be removed in bookworm branch + yield "migration_description_0027_migrate_to_bookworm" + # For each default service, expect to find "service_description_" for service, info in yaml.safe_load( open(ROOT + "conf/yunohost/services.yml") From 0b5c5a5f4d660732a840cdfd6635aaa34e1c99a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20M?= Date: Thu, 4 Jul 2024 07:43:41 +0000 Subject: [PATCH 26/44] Translated using Weblate (Galician) Currently translated at 100.0% (790 of 790 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/gl/ --- locales/gl.json | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/locales/gl.json b/locales/gl.json index 5080505c1..45912c30d 100644 --- a/locales/gl.json +++ b/locales/gl.json @@ -41,7 +41,7 @@ "apps_catalog_failed_to_download": "Non se puido descargar o catálogo de apps {apps_catalog}: {error}", "apps_catalog_updating": "Actualizando o catálogo de aplicacións…", "apps_catalog_init_success": "Sistema do catálogo de apps iniciado!", - "apps_already_up_to_date": "Xa tes tódalas apps ao día", + "apps_already_up_to_date": "Xa tes todas as apps ao día", "app_packaging_format_not_supported": "Esta app non se pode instalar porque o formato de empaquetado non está soportado pola túa versión de YunoHost. Deberías considerar actualizar o teu sistema.", "app_upgraded": "{app} actualizadas", "app_upgrade_some_app_failed": "Algunhas apps non se puideron actualizar", @@ -317,7 +317,7 @@ "group_cannot_be_deleted": "O grupo {group} non se pode eliminar manualmente.", "group_cannot_edit_primary_group": "O grupo '{group}' non se pode editar manualmente. É o grupo primario que contén só a unha usuaria concreta.", "group_cannot_edit_visitors": "O grupo 'visitors' non se pode editar manualmente. É un grupo especial que representa a tódas visitantes anónimas", - "group_cannot_edit_all_users": "O grupo 'all_users' non se pode editar manualmente. É un grupo especial que contén tódalas usuarias rexistradas en YunoHost", + "group_cannot_edit_all_users": "O grupo 'all_users' non se pode editar manualmente. É un grupo especial que contén todas as usuarias rexistradas en YunoHost", "disk_space_not_sufficient_update": "Non hai espazo suficiente no disco para actualizar esta aplicación", "disk_space_not_sufficient_install": "Non queda espazo suficiente no disco para instalar esta aplicación", "log_help_to_get_log": "Para ver o rexistro completo da operación '{desc}', usa o comando 'yunohost log show {name}'", @@ -447,8 +447,8 @@ "permission_not_found": "Non se atopa o permiso '{permission}'", "permission_deletion_failed": "Non se puido eliminar o permiso '{permission}': {error}", "permission_deleted": "O permiso '{permission}' foi eliminado", - "permission_cant_add_to_all_users": "O permiso {permission} non pode ser concecido a tódalas usuarias.", - "permission_currently_allowed_for_all_users": "Este permiso está concedido actualmente a tódalas usuarias ademáis de a outros grupos. Probablemente queiras ben eliminar o permiso 'all_users' ou ben eliminar os outros grupos que teñen permiso.", + "permission_cant_add_to_all_users": "O permiso {permission} non se pode conceder a todas as usuarias.", + "permission_currently_allowed_for_all_users": "Este permiso está concedido actualmente para todas as usuarias ademáis de a outros grupos. Probablemente queiras ben eliminar o permiso 'all_users' ou ben eliminar os outros grupos que teñen permiso.", "restore_failed": "Non se puido restablecer o sistema", "restore_extracting": "A extraer os ficheiros necesarios desde o arquivo…", "restore_confirm_yunohost_installed": "Tes a certeza de querer restablecer un sistema xa instalado? [{answers}]", @@ -553,7 +553,7 @@ "service_removed": "Eliminado o servizo '{service}'", "service_remove_failed": "Non se eliminou o servizo '{service}'", "service_enabled": "O servizo '{service}' vai ser iniciado automáticamente no inicio do sistema.", - "diagnosis_apps_allgood": "Tódalas apps instaladas respectan as prácticas básicas de empaquetado", + "diagnosis_apps_allgood": "Todas as apps instaladas respectan as prácticas básicas de empaquetado", "diagnosis_apps_bad_quality": "Esta aplicación está actualmente marcada como estragada no catálogo de aplicacións de YunoHost. Podería ser un problema temporal mentras as mantedoras intentan arranxar o problema. Ata ese momento a actualización desta app está desactivada.", "log_user_import": "Importar usuarias", "user_import_failed": "A operación de importación de usuarias fracasou", @@ -692,7 +692,7 @@ "log_settings_reset_all": "Restablecer todos os axustes", "log_settings_set": "Aplicar axustes", "admins": "Admins", - "all_users": "Tódalas usuarias de YunoHost", + "all_users": "Usuarias de YunoHost", "app_action_failed": "Fallou a execución da acción {action} da app {app}", "app_manifest_install_ask_init_admin_permission": "Quen debería ter acceso de administración a esta app? (Pode cambiarse despois)", "app_manifest_install_ask_init_main_permission": "Quen debería ter acceso a esta app? (Pode cambiarse despois)", @@ -781,5 +781,12 @@ "log_dyndns_unsubscribe": "Retirar subscrición para o subdominio YunoHost '{}'", "ask_dyndns_recovery_password_explain_unavailable": "Este dominio DynDNS xa está rexistrado. Se es a persoa que o rexistrou orixinalmente, podes escribir o código de recuperación para reclamar o dominio.", "dyndns_too_many_requests": "O servicio dyndns de YunoHost recibeu demasiadas peticións do teu sistema, agarda 1 hora e volve intentalo.", - "global_settings_setting_ssh_port_help": "É recomendable un porto inferior a 1024 para evitar os intentos de apropiación por parte de servizos de non-administración na máquina remota. Tamén deberías evitar elexir un porto que xa está sendo utilizado, como 80 ou 443." -} \ No newline at end of file + "global_settings_setting_ssh_port_help": "É recomendable un porto inferior a 1024 para evitar os intentos de apropiación por parte de servizos de non-administración na máquina remota. Tamén deberías evitar elexir un porto que xa está sendo utilizado, como 80 ou 443.", + "diagnosis_ignore_criteria_error": "Os criterios deben ter o formato key=value (ex. domain=yolo.test)", + "diagnosis_ignore_already_filtered": "(Xa existe un filtro de diagnóstico de {category} con estes criterios)", + "diagnosis_ignore_filter_removed": "Eliminouse o filtro do diagnóstico para {category}", + "diagnosis_ignore_no_filter_found": "(Non hai tal filtro do diagnóstico de {category} con este criterio a eliminar)", + "diagnosis_ignore_no_issue_found": "Non se atoparon incidencias para o criterio establecido.", + "diagnosis_ignore_filter_added": "Engadiuse o filtro do diagnóstico para {category}", + "diagnosis_ignore_missing_criteria": "Deberías proporcionar cando menos un criterio que a categoría de diagnóstico omitirá" +} From 5fb54936ba92aa3b700a8da13124c4eafda64628 Mon Sep 17 00:00:00 2001 From: Zwiebel Date: Mon, 8 Jul 2024 18:12:09 +0000 Subject: [PATCH 27/44] Translated using Weblate (German) Currently translated at 97.0% (767 of 790 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/de/ --- locales/de.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/de.json b/locales/de.json index 0c1bdf32e..808a949c7 100644 --- a/locales/de.json +++ b/locales/de.json @@ -63,7 +63,7 @@ "mail_forward_remove_failed": "Die Weiterleitungs-E-Mail '{mail}' konnte nicht gelöscht werden", "main_domain_change_failed": "Die Hauptdomain konnte nicht geändert werden", "main_domain_changed": "Die Hauptdomain wurde geändert", - "pattern_backup_archive_name": "Muss ein gültiger Dateiname mit maximal 30 Zeichen sein, ausschliesslich alphanumerische Zeichen und -_.", + "pattern_backup_archive_name": "Muss ein gültiger Dateiname mit maximal 30 Zeichen sein, ausschließlich alphanumerische Zeichen und -_.", "pattern_domain": "Muss ein gültiger Domainname sein (z.B. meine-domain.org)", "pattern_email": "Es muss sich um eine gültige E-Mail-Adresse handeln, ohne '+'-Symbol (z. B. name@domäne.de)", "pattern_firstname": "Muss ein gültiger Vorname sein (mindestens 3 Zeichen)", @@ -782,4 +782,4 @@ "dyndns_set_recovery_password_failed": "Konnte Wiederherstellungspasswort nicht einstellen: {error}", "dyndns_set_recovery_password_success": "Wiederherstellungspasswort eingestellt!", "global_settings_setting_ssh_port_help": "Ein Port unter 1024 wird bevorzugt, um Kaperversuche durch Nicht-Administratordienste auf dem Remote-Computer zu verhindern. Sie sollten auch vermeiden, einen bereits verwendeten Port zu verwenden, z. B. 80 oder 443." -} \ No newline at end of file +} From 566213ecd5f05481ca9cfa9fef66fa4c0d197292 Mon Sep 17 00:00:00 2001 From: ppr Date: Tue, 9 Jul 2024 16:54:42 +0000 Subject: [PATCH 28/44] Translated using Weblate (French) Currently translated at 98.2% (791 of 805 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/fr/ --- locales/fr.json | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/locales/fr.json b/locales/fr.json index 18fbcd4da..e5a8a4aa7 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -788,5 +788,20 @@ "diagnosis_ignore_filter_removed": "Filtre de diagnostic pour {category} supprimé", "diagnosis_ignore_missing_criteria": "Vous devez fournir au moins un critère qui est une catégorie de diagnostic à ignorer", "diagnosis_ignore_criteria_error": "Les critères doivent être sous la forme de clé=valeur (ex. domain=yolo.test)", - "diagnosis_ignore_no_issue_found": "Aucun problème correspondant au critère donné n'a été trouvé." -} \ No newline at end of file + "diagnosis_ignore_no_issue_found": "Aucun problème correspondant au critère donné n'a été trouvé.", + "migration_description_0027_migrate_to_bookworm": "Mettre à jour le système vers Debian Bookworm et YunoHost 12", + "migration_0027_delayed_api_restart": "L'API de YunoHost sera automatiquement redémarrée dans 15 secondes. Il se peut qu'elle soit indisponible pendant quelques secondes, après quoi vous devrez vous connecter à nouveau.", + "migration_0027_general_warning": "Veuillez noter que cette migration est une opération délicate. L'équipe de YunoHost a fait de son mieux pour l'examiner et la tester, mais la migration peut encore casser des parties du système ou de ses applications.\n\nPar conséquent, il est recommandé :\n - d'effectuer une sauvegarde de toutes les données ou applications critiques. Plus d'informations sur https://yunohost.org/backup ;\n - d'être patient après avoir lancé la migration : en fonction de votre connexion Internet et de votre matériel, la mise à niveau peut prendre plusieurs quelques heures.", + "migration_0027_not_bullseye": "La distribution Debian actuelle n'est pas Bullseye ! Si vous avez déjà effectué la migration Bullseye->Bookworm, cette erreur est symptomatique du fait que la procédure de migration n'a pas réussi à 100 % (sinon YunoHost l'aurait signalée comme terminée). Il est recommandé de chercher ce qui s'est passé avec l'équipe de support, qui aura besoin du journal **complet** de la `migration, qui peut être trouvé dans Outils > Journaux dans la webadmin.", + "migration_0027_cleaning_up": "Nettoyage du cache et des paquets qui ne sont plus utiles …", + "migration_0027_main_upgrade": "Démarrage de la mise à niveau du système …", + "migration_0027_modified_files": "Veuillez noter que les fichiers suivants ont été modifiés manuellement et pourraient être écrasés après la mise à niveau : {manually_modified_files}", + "migration_0027_not_enough_free_space": "L'espace libre est plutôt faible dans /var/ ! Vous devez disposer d'au moins 1 Go d'espace libre pour effectuer cette migration.", + "migration_0027_patch_yunohost_conflicts": "Application d'un correctif pour résoudre le problème de conflit …", + "migration_0027_patching_sources_list": "Correction du sources.lists …", + "migration_0027_problematic_apps_warning": "Veuillez noter que des applications installées susceptibles de poser problème ont été détectées. Il semble qu'elles n'aient pas été installées à partir du catalogue d'applications de YunoHost, ou bien qu'elles ne soient pas marquées comme 'fonctionnelles'. Par conséquent, il ne peut pas être garanti qu'elles continueront à fonctionner après la mise à jour : {problematic_apps}", + "migration_0027_start": "Commencement de la migration vers le Bullseye", + "migration_0027_still_on_bullseye_after_main_upgrade": "Quelque chose s'est mal passé lors de la mise à jour du système, il semble que celui-ci soit toujours sous Debian Bullseye.", + "migration_0027_system_not_fully_up_to_date": "Votre système n'est pas complètement à jour. Veuillez effectuer une mise à jour classique avant de procéder à la migration vers Bullseye.", + "migration_0027_yunohost_upgrade": "Démarrage de la mise à jour du cœur de YunoHost …" +} From a97c82d1c29087c105a238a2adfb8ad4666d033b Mon Sep 17 00:00:00 2001 From: cjdw Date: Wed, 10 Jul 2024 18:53:09 +0000 Subject: [PATCH 29/44] Translated using Weblate (Indonesian) Currently translated at 48.5% (391 of 805 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/id/ --- locales/id.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/locales/id.json b/locales/id.json index d1f8d3325..a6a2cb532 100644 --- a/locales/id.json +++ b/locales/id.json @@ -440,5 +440,8 @@ "restore_system_part_failed": "Tidak dapat memulihkan segmen '{part}'", "service_enable_failed": "Tidak dapat membuat layanan '{service}' dimulai mandiri saat pemulaian.\n\nLog layanan baru-baru ini:{logs}", "service_not_reloading_because_conf_broken": "Tidak memuat atau memulai ulang layanan '{name}' karena konfigurasinya rusak: {errors}", - "service_reloaded": "Layanan {service} dimuat ulang" -} \ No newline at end of file + "service_reloaded": "Layanan {service} dimuat ulang", + "additional_urls_already_removed": "URL tambahan '{url}' sudah disingkirkan pada URL tambahan untuk perizinan '{permission}'", + "additional_urls_already_added": "URL tambahan '{url}' sudah ditambahkan pada URL tambahan untuk perizinan '{permission}'", + "app_argument_password_no_default": "Galat ketika mengurai argumen sandi '{name}': argumen sandi tidak diperbolehkan mempunyai suatu nilai baku demi alasan keamanan" +} From 3c992c894ad196af65cfa300a9bc752ba6431c2d Mon Sep 17 00:00:00 2001 From: cjdw Date: Wed, 10 Jul 2024 19:20:32 +0000 Subject: [PATCH 30/44] Translated using Weblate (Indonesian) Currently translated at 50.8% (409 of 805 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/id/ --- locales/id.json | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/locales/id.json b/locales/id.json index a6a2cb532..ec4be7621 100644 --- a/locales/id.json +++ b/locales/id.json @@ -16,7 +16,7 @@ "app_manifest_install_ask_domain": "Pilih di domain mana aplikasi ini harus dipasang", "app_not_installed": "Tidak dapat menemukan {app} di daftar aplikasi yang terpasang: {all_apps}", "app_not_properly_removed": "{app} belum dilepas dengan benar", - "app_remove_after_failed_install": "Melepas aplikasi setelah kegagalan pemasangan…", + "app_remove_after_failed_install": "Menyingkirkan aplikasi setelah kegagalan pemasangan…", "app_removed": "{app} dilepas", "app_restore_failed": "Tidak dapat memulihkan {app}: {error}", "app_upgrade_some_app_failed": "Beberapa aplikasi tidak dapat diperbarui", @@ -32,10 +32,10 @@ "app_unknown": "Aplikasi tak dikenal", "ask_new_admin_password": "Kata sandi administrasi baru", "ask_password": "Kata sandi", - "app_upgrade_app_name": "Memperbarui {app}…", + "app_upgrade_app_name": "Sedang meningkatkan {app}…", "app_upgrade_failed": "Tidak dapat memperbarui {app}: {error}", "app_start_install": "Memasang {app}…", - "app_start_remove": "Melepas {app}…", + "app_start_remove": "Menyingkirkan {app}…", "app_manifest_install_ask_password": "Pilih kata sandi administrasi untuk aplikasi ini", "app_upgrade_several_apps": "Aplikasi berikut akan diperbarui: {apps}", "backup_app_failed": "Tidak dapat mencadangkan {app}", @@ -145,7 +145,7 @@ "user_import_bad_file": "Berkas CSV Anda tidak secara benar diformat, akan diabaikan untuk menghindari potensi data hilang", "yunohost_postinstall_end_tip": "Proses pasca-pemasangan sudah selesai! Untuk menyelesaikan pengaturan Anda, pertimbangkan:\n - diagnosis masalah yang mungkin lewat bagian 'Diagnosis' di webadmin (atau 'yunohost diagnosis run' di cmd);\n - baca bagian 'Finalizing your setup' dan 'Getting to know YunoHost' di dokumentasi admin: https://yunohost.org/admindoc.", "app_already_installed_cant_change_url": "Aplikasi ini sudah terpasang. URL tidak dapat diubah hanya dengan ini. Periksa `app changeurl` jika tersedia.", - "app_requirements_checking": "Memeriksa persyaratan untuk {app}…", + "app_requirements_checking": "Memeriksa persyaratan pada {app}…", "backup_create_size_estimation": "Arsip ini akan mengandung data dengan ukuran {size}.", "certmanager_certificate_fetching_or_enabling_failed": "Mencoba untuk menggunakan sertifikat baru untuk {domain} tidak bisa…", "certmanager_no_cert_file": "Tidak dapat membuka berkas sertifikat untuk domain {domain} (berkas: {file})", @@ -186,7 +186,7 @@ "diagnosis_basesystem_host": "Peladen memakai Debian {debian_version}", "diagnosis_domain_expiration_not_found": "Tidak dapat memeriksa tanggal kedaluwarsa untuk beberapa domain", "diagnosis_http_could_not_diagnose_details": "Galat: {error}", - "app_manifest_install_ask_path": "Pilih jalur URL (setelah domain) dimana aplikasi ini akan dipasang", + "app_manifest_install_ask_path": "Pilih jalur URL (setelah domain) dimana aplikasi ini harus dipasang", "certmanager_cert_signing_failed": "Tidak dapat memverifikasi sertifikat baru", "config_validate_url": "Harus URL web yang valid", "diagnosis_description_ports": "Penyingkapan porta", @@ -211,7 +211,7 @@ "yunohost_configured": "YunoHost sudah terkonfigurasi", "global_settings_setting_pop3_enabled": "Aktifkan POP3", "log_user_import": "Mengimpor pengguna", - "app_start_backup": "Mengumpulkan berkas untuk dicadangkan untuk {app}…", + "app_start_backup": "Mengumpulkan berkas untuk dicadangkan pada {app}…", "app_upgrade_script_failed": "Galat terjadi di skrip pembaruan aplikasi", "backup_csv_creation_failed": "Tidak dapat membuat berkas CSV yang dibutuhkan untuk pemulihan", "certmanager_attempt_to_renew_valid_cert": "Sertifikat untuk domain '{domain}' belum akan kedaluwarsa! (Anda bisa menggunakan --force jika Anda tahu apa yang Anda lakukan)", @@ -443,5 +443,13 @@ "service_reloaded": "Layanan {service} dimuat ulang", "additional_urls_already_removed": "URL tambahan '{url}' sudah disingkirkan pada URL tambahan untuk perizinan '{permission}'", "additional_urls_already_added": "URL tambahan '{url}' sudah ditambahkan pada URL tambahan untuk perizinan '{permission}'", - "app_argument_password_no_default": "Galat ketika mengurai argumen sandi '{name}': argumen sandi tidak diperbolehkan mempunyai suatu nilai baku demi alasan keamanan" + "app_argument_password_no_default": "Galat ketika mengurai argumen sandi '{name}': argumen sandi tidak diperbolehkan mempunyai suatu nilai baku demi alasan keamanan", + "app_corrupt_source": "YunoHost telah berhasil mengunduh aset tersebut '{source_id}' ({url}) untuk {app}, tetapi aset tidak sesuai dengan checksum. Hal ini bisa jadi karena beberapa jaringan temporer mengalami kegagalan pada peladen Anda, ATAU entah bagaimana aset mengalami perubahan oleh penyelenggara hulu (atau pelakon jahat?) dan pemaket YunoHost perlu untuk menyelidiki dan mungkin pembaruan manifes applikasi tersebut untuk mempertimbangkan perubahan ini.\n\tEkspektasi checksum sha256: {expected_sha256}\n\tUnduhan checksum sha256: {computed_sha256}\n\tUnduhan ukuran berkas: {size}", + "app_not_upgraded_broken_system": "Aplikasi '{failed_app}' telah gagal meningkatkan dan menyebabkan sistem dalam status rusak, dan sebagai konsekuensi terhadap peningkatan aplikasi tersebut telah dibatalkan: {apps}", + "app_resource_failed": "Menyediakan, membatalkan penyediaan, atau memperbarui sumber daya pada {app} telah gagal: {error}", + "app_failed_to_download_asset": "Gagal mengunduh aset '{source_id}' ({url}) untuk {app}: {out}", + "apps_catalog_init_success": "Inisialisasi sistem katalog aplikasi!", + "app_unsupported_remote_type": "Tidak mendukung type remot yang digunakan pada aplikasi", + "app_not_upgraded_broken_system_continue": "Aplikasi '{failed_app}' telah gagal meningkatkan dan menyebabkan sistem dalam status rusak (jadi --continue-on-failure diabaikan), dan sebagai konsekuensi terhadap peningkatan aplikasi tersebut telah dibatalkan: {apps}", + "apps_failed_to_upgrade_line": "\n * {app_id}(untuk melihat log yang berkaitan lakukan 'yunohost log show {operation_logger_name}')" } From 0b438eab024939d045906e035966cefd198ea78d Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Wed, 10 Jul 2024 23:14:03 +0000 Subject: [PATCH 31/44] Translated using Weblate (French) Currently translated at 99.5% (801 of 805 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/fr/ --- locales/fr.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/locales/fr.json b/locales/fr.json index e5a8a4aa7..026d5d1c0 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -791,14 +791,14 @@ "diagnosis_ignore_no_issue_found": "Aucun problème correspondant au critère donné n'a été trouvé.", "migration_description_0027_migrate_to_bookworm": "Mettre à jour le système vers Debian Bookworm et YunoHost 12", "migration_0027_delayed_api_restart": "L'API de YunoHost sera automatiquement redémarrée dans 15 secondes. Il se peut qu'elle soit indisponible pendant quelques secondes, après quoi vous devrez vous connecter à nouveau.", - "migration_0027_general_warning": "Veuillez noter que cette migration est une opération délicate. L'équipe de YunoHost a fait de son mieux pour l'examiner et la tester, mais la migration peut encore casser des parties du système ou de ses applications.\n\nPar conséquent, il est recommandé :\n - d'effectuer une sauvegarde de toutes les données ou applications critiques. Plus d'informations sur https://yunohost.org/backup ;\n - d'être patient après avoir lancé la migration : en fonction de votre connexion Internet et de votre matériel, la mise à niveau peut prendre plusieurs quelques heures.", - "migration_0027_not_bullseye": "La distribution Debian actuelle n'est pas Bullseye ! Si vous avez déjà effectué la migration Bullseye->Bookworm, cette erreur est symptomatique du fait que la procédure de migration n'a pas réussi à 100 % (sinon YunoHost l'aurait signalée comme terminée). Il est recommandé de chercher ce qui s'est passé avec l'équipe de support, qui aura besoin du journal **complet** de la `migration, qui peut être trouvé dans Outils > Journaux dans la webadmin.", - "migration_0027_cleaning_up": "Nettoyage du cache et des paquets qui ne sont plus utiles …", - "migration_0027_main_upgrade": "Démarrage de la mise à niveau du système …", + "migration_0027_general_warning": "Veuillez noter que cette migration est une opération délicate. L'équipe de YunoHost a fait de son mieux pour l'examiner et la tester, mais la migration peut encore casser des parties du système ou de ses applications.\n\nPar conséquent, il est recommandé :\n - d'effectuer une sauvegarde de toutes les données ou applications critiques. Plus d'informations sur https://yunohost.org/backup ;\n - de faire preuve de patience après avoir lancé la migration : en fonction de votre connexion Internet et de votre matériel, la mise à niveau peut prendre plusieurs heures.", + "migration_0027_not_bullseye": "La distribution Debian actuelle n'est pas Bullseye ! Si vous avez déjà effectué la migration Bullseye -> Bookworm, cette erreur est symptomatique du fait que la procédure de migration n'a pas réussi à 100 % (sinon YunoHost l'aurait marquée comme terminée). Il est recommandé de chercher ce qui s'est passé avec l'équipe de support, qui aura besoin du journal **complet** de la migration, qui peut être trouvé dans Outils > Journaux dans la webadmin.", + "migration_0027_cleaning_up": "Nettoyage du cache et des paquets qui ne sont plus utiles…", + "migration_0027_main_upgrade": "Démarrage de la mise à niveau du système…", "migration_0027_modified_files": "Veuillez noter que les fichiers suivants ont été modifiés manuellement et pourraient être écrasés après la mise à niveau : {manually_modified_files}", - "migration_0027_not_enough_free_space": "L'espace libre est plutôt faible dans /var/ ! Vous devez disposer d'au moins 1 Go d'espace libre pour effectuer cette migration.", - "migration_0027_patch_yunohost_conflicts": "Application d'un correctif pour résoudre le problème de conflit …", - "migration_0027_patching_sources_list": "Correction du sources.lists …", + "migration_0027_not_enough_free_space": "L'espace libre est plutôt faible dans /var/ ! Vous devez disposer d'au moins 1 Go d'espace libre pour effectuer cette migration.", + "migration_0027_patch_yunohost_conflicts": "Application d'un correctif pour résoudre le problème de conflit…", + "migration_0027_patching_sources_list": "Correction du sources.lists…", "migration_0027_problematic_apps_warning": "Veuillez noter que des applications installées susceptibles de poser problème ont été détectées. Il semble qu'elles n'aient pas été installées à partir du catalogue d'applications de YunoHost, ou bien qu'elles ne soient pas marquées comme 'fonctionnelles'. Par conséquent, il ne peut pas être garanti qu'elles continueront à fonctionner après la mise à jour : {problematic_apps}", "migration_0027_start": "Commencement de la migration vers le Bullseye", "migration_0027_still_on_bullseye_after_main_upgrade": "Quelque chose s'est mal passé lors de la mise à jour du système, il semble que celui-ci soit toujours sous Debian Bullseye.", From 85239f74f68073957b521931e044e60866c59736 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Wed, 10 Jul 2024 23:17:39 +0000 Subject: [PATCH 32/44] Translated using Weblate (French) Currently translated at 100.0% (805 of 805 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/fr/ --- locales/fr.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/fr.json b/locales/fr.json index 026d5d1c0..92057c05a 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -800,8 +800,8 @@ "migration_0027_patch_yunohost_conflicts": "Application d'un correctif pour résoudre le problème de conflit…", "migration_0027_patching_sources_list": "Correction du sources.lists…", "migration_0027_problematic_apps_warning": "Veuillez noter que des applications installées susceptibles de poser problème ont été détectées. Il semble qu'elles n'aient pas été installées à partir du catalogue d'applications de YunoHost, ou bien qu'elles ne soient pas marquées comme 'fonctionnelles'. Par conséquent, il ne peut pas être garanti qu'elles continueront à fonctionner après la mise à jour : {problematic_apps}", - "migration_0027_start": "Commencement de la migration vers le Bullseye", + "migration_0027_start": "Démarrage de la migration vers Bookworm", "migration_0027_still_on_bullseye_after_main_upgrade": "Quelque chose s'est mal passé lors de la mise à jour du système, il semble que celui-ci soit toujours sous Debian Bullseye.", "migration_0027_system_not_fully_up_to_date": "Votre système n'est pas complètement à jour. Veuillez effectuer une mise à jour classique avant de procéder à la migration vers Bullseye.", - "migration_0027_yunohost_upgrade": "Démarrage de la mise à jour du cœur de YunoHost …" + "migration_0027_yunohost_upgrade": "Démarrage de la mise à jour du cœur de YunoHost…" } From 725b41d2a3884446d290f308feab022f9fb0232b Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 11 Jul 2024 08:55:34 +0000 Subject: [PATCH 33/44] Translated using Weblate (Catalan) Currently translated at 95.9% (772 of 805 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/ca/ --- locales/ca.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/ca.json b/locales/ca.json index 697b4555d..0de9a3449 100644 --- a/locales/ca.json +++ b/locales/ca.json @@ -782,4 +782,4 @@ "user_import_partial_failed": "L'operació d'importació dels usuaris ha fallat parcialment", "domain_dns_push_record_failed": "No s'ha pogut {action} el registre {type}/{name}: {error}", "registrar_infos": "Informació del registrador" -} \ No newline at end of file +} From eb012de1880cbb40fb1ec8488bea694e3710c507 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 11 Jul 2024 08:55:37 +0000 Subject: [PATCH 34/44] Translated using Weblate (Spanish) Currently translated at 97.1% (782 of 805 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/es/ --- locales/es.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/es.json b/locales/es.json index bd9a644c2..eb1f3bbe1 100644 --- a/locales/es.json +++ b/locales/es.json @@ -782,4 +782,4 @@ "dyndns_set_recovery_password_success": "¡Password de recuperación establecida!", "global_settings_setting_dns_exposure_help": "NB: Esto afecta únicamente a la configuración recomentada de DNS y en las pruebas de diagnóstico. No afecta a la configuración del sistema.", "global_settings_setting_ssh_port_help": "Un puerto menor a 1024 es preferible para evitar intentos de usurpación por servicios no administrativos en la máquina remota. También debe de evitar usar un puerto ya en uso, como el 80 o 443." -} \ No newline at end of file +} From 818fd78a3d30c10f86abfd695e35c6185b553a35 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 11 Jul 2024 08:55:38 +0000 Subject: [PATCH 35/44] Translated using Weblate (Basque) Currently translated at 97.1% (782 of 805 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/eu/ --- locales/eu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/eu.json b/locales/eu.json index b95fcd1a9..2b84b0763 100644 --- a/locales/eu.json +++ b/locales/eu.json @@ -782,4 +782,4 @@ "dyndns_set_recovery_password_failed": "Berreskuratze-pasahitza ezartzeak huts egin du: {error}", "dyndns_set_recovery_password_success": "Berreskuratze-pasahitza ezarri da!", "global_settings_setting_ssh_port_help": "1024 baino ataka txikiago bat izan beharko litzateke, zerbitzu ez-administratzaileek urruneko makinan usurpazio-saiorik egin ez dezaten. Lehendik ere erabiltzen ari diren atakak ere ekidin beharko zenituzke, 80 edo 443 kasu." -} \ No newline at end of file +} From bf8271e383bc461165cb8ed989dfc190f8c830c0 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 11 Jul 2024 08:55:51 +0000 Subject: [PATCH 36/44] Translated using Weblate (Ukrainian) Currently translated at 90.1% (726 of 805 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/uk/ --- locales/uk.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/uk.json b/locales/uk.json index 04640d1b4..b93b15d5c 100644 --- a/locales/uk.json +++ b/locales/uk.json @@ -781,4 +781,4 @@ "dyndns_set_recovery_password_failed": "Не вдалося встановити пароль для відновлення: {error}", "dyndns_set_recovery_password_success": "Пароль для відновлення встановлено!", "log_dyndns_unsubscribe": "Скасувати підписку на субдомен YunoHost '{}'" -} \ No newline at end of file +} From d87fe9fb4c1a39bd7438606b78c9b6425c7cc588 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 11 Jul 2024 08:55:43 +0000 Subject: [PATCH 37/44] Translated using Weblate (Japanese) Currently translated at 65.3% (526 of 805 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/ja/ --- locales/ja.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/ja.json b/locales/ja.json index b8a781f04..1c2a77c6a 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -760,4 +760,4 @@ "yunohost_not_installed": "YunoHostが正しくインストールされていません。’yunohost tools postinstall’ を実行してください", "yunohost_postinstall_end_tip": "インストール後処理が完了しました!セットアップを完了するには、次の点を考慮してください。\n - ウェブ管理画面の'診断'セクション(またはコマンドラインで’yunohost diagnosis run’)を通じて潜在的な問題を診断します。\n - 管理ドキュメントの'セットアップの最終処理'と'YunoHostを知る'の部分を読む: https://yunohost.org/admindoc。", "additional_urls_already_removed": "アクセス許可 ‘{permission}’ に対する追加URLで ‘{url}’ は既に削除されています" -} \ No newline at end of file +} From 623bd151d6e9972d6c97362ce8c8b29f261c19d7 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Thu, 11 Jul 2024 14:56:16 +0000 Subject: [PATCH 38/44] Translated using Weblate (French) Currently translated at 100.0% (805 of 805 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/fr/ --- locales/fr.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/locales/fr.json b/locales/fr.json index 92057c05a..8014d13f1 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -636,7 +636,7 @@ "migration_0021_modified_files": "Veuillez noter que les fichiers suivants ont été modifiés manuellement et pourraient être écrasés à la suite de la mise à niveau : {manually_modified_files}", "migration_0021_cleaning_up": "Nettoyage du cache et des paquets qui ne sont plus nécessaires…", "migration_0021_patch_yunohost_conflicts": "Application du correctif pour contourner le problème de conflit…", - "migration_0021_not_buster2": "La distribution Debian actuelle n'est pas Buster ! Si vous avez déjà effectué la migration Buster->Bullseye, alors cette erreur est symptomatique du fait que la migration n'a pas été terminée correctement à 100% (sinon YunoHost aurait marqué la migration comme terminée). Il est recommandé d'étudier ce qu'il s'est passé avec l'équipe de support, qui aura besoin du log **complet** de la migration, qui peut être retrouvé dans Outils > Journaux dans la webadmin.", + "migration_0021_not_buster2": "La distribution Debian actuelle n'est pas Buster ! Si vous avez déjà effectué la migration Buster -> Bullseye, alors cette erreur est symptomatique du fait que la migration n'a pas été terminée correctement à 100% (sinon YunoHost aurait marqué la migration comme terminée). Il est recommandé d'étudier ce qu'il s'est passé avec l'équipe de support, qui aura besoin du log **complet** de la migration, qui peut être retrouvé dans Outils > Journaux dans la webadmin.", "migration_description_0021_migrate_to_bullseye": "Mise à niveau du système vers Debian Bullseye et YunoHost 11.x", "domain_config_default_app": "Application par défaut", "migration_description_0022_php73_to_php74_pools": "Migration des fichiers de configuration php7.3-fpm 'pool' vers php7.4", @@ -791,16 +791,16 @@ "diagnosis_ignore_no_issue_found": "Aucun problème correspondant au critère donné n'a été trouvé.", "migration_description_0027_migrate_to_bookworm": "Mettre à jour le système vers Debian Bookworm et YunoHost 12", "migration_0027_delayed_api_restart": "L'API de YunoHost sera automatiquement redémarrée dans 15 secondes. Il se peut qu'elle soit indisponible pendant quelques secondes, après quoi vous devrez vous connecter à nouveau.", - "migration_0027_general_warning": "Veuillez noter que cette migration est une opération délicate. L'équipe de YunoHost a fait de son mieux pour l'examiner et la tester, mais la migration peut encore casser des parties du système ou de ses applications.\n\nPar conséquent, il est recommandé :\n - d'effectuer une sauvegarde de toutes les données ou applications critiques. Plus d'informations sur https://yunohost.org/backup ;\n - de faire preuve de patience après avoir lancé la migration : en fonction de votre connexion Internet et de votre matériel, la mise à niveau peut prendre plusieurs heures.", + "migration_0027_general_warning": "Veuillez noter que cette migration est une opération délicate. L'équipe de YunoHost a fait de son mieux pour l'examiner et la tester, mais la migration peut encore casser des parties du système ou de ses applications.\n\nPar conséquent, il est recommandé :\n - d'effectuer une sauvegarde de toutes les données ou applications critiques. Plus d'informations sur https://yunohost.org/backup ;\n - de faire preuve de patience après avoir lancé la migration : en fonction de votre connexion Internet et de votre matériel, la mise à niveau peut prendre quelques heures pour s'effectuer correctement.", "migration_0027_not_bullseye": "La distribution Debian actuelle n'est pas Bullseye ! Si vous avez déjà effectué la migration Bullseye -> Bookworm, cette erreur est symptomatique du fait que la procédure de migration n'a pas réussi à 100 % (sinon YunoHost l'aurait marquée comme terminée). Il est recommandé de chercher ce qui s'est passé avec l'équipe de support, qui aura besoin du journal **complet** de la migration, qui peut être trouvé dans Outils > Journaux dans la webadmin.", "migration_0027_cleaning_up": "Nettoyage du cache et des paquets qui ne sont plus utiles…", "migration_0027_main_upgrade": "Démarrage de la mise à niveau du système…", "migration_0027_modified_files": "Veuillez noter que les fichiers suivants ont été modifiés manuellement et pourraient être écrasés après la mise à niveau : {manually_modified_files}", "migration_0027_not_enough_free_space": "L'espace libre est plutôt faible dans /var/ ! Vous devez disposer d'au moins 1 Go d'espace libre pour effectuer cette migration.", "migration_0027_patch_yunohost_conflicts": "Application d'un correctif pour résoudre le problème de conflit…", - "migration_0027_patching_sources_list": "Correction du sources.lists…", + "migration_0027_patching_sources_list": "Correction du fichier sources.lists…", "migration_0027_problematic_apps_warning": "Veuillez noter que des applications installées susceptibles de poser problème ont été détectées. Il semble qu'elles n'aient pas été installées à partir du catalogue d'applications de YunoHost, ou bien qu'elles ne soient pas marquées comme 'fonctionnelles'. Par conséquent, il ne peut pas être garanti qu'elles continueront à fonctionner après la mise à jour : {problematic_apps}", - "migration_0027_start": "Démarrage de la migration vers Bookworm", + "migration_0027_start": "Démarrage de la migration vers Bookworm…", "migration_0027_still_on_bullseye_after_main_upgrade": "Quelque chose s'est mal passé lors de la mise à jour du système, il semble que celui-ci soit toujours sous Debian Bullseye.", "migration_0027_system_not_fully_up_to_date": "Votre système n'est pas complètement à jour. Veuillez effectuer une mise à jour classique avant de procéder à la migration vers Bullseye.", "migration_0027_yunohost_upgrade": "Démarrage de la mise à jour du cœur de YunoHost…" From 1e70577d23cdcaf3c029c923f08c36710faf1e67 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Thu, 11 Jul 2024 15:13:17 +0000 Subject: [PATCH 39/44] [CI] Reformat / remove stale translated strings --- locales/ca.json | 2 +- locales/de.json | 2 +- locales/en.json | 2 +- locales/es.json | 2 +- locales/eu.json | 2 +- locales/fr.json | 6 +++--- locales/gl.json | 2 +- locales/id.json | 2 +- locales/ja.json | 2 +- locales/uk.json | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/locales/ca.json b/locales/ca.json index 0de9a3449..697b4555d 100644 --- a/locales/ca.json +++ b/locales/ca.json @@ -782,4 +782,4 @@ "user_import_partial_failed": "L'operació d'importació dels usuaris ha fallat parcialment", "domain_dns_push_record_failed": "No s'ha pogut {action} el registre {type}/{name}: {error}", "registrar_infos": "Informació del registrador" -} +} \ No newline at end of file diff --git a/locales/de.json b/locales/de.json index 808a949c7..957bd7dc2 100644 --- a/locales/de.json +++ b/locales/de.json @@ -782,4 +782,4 @@ "dyndns_set_recovery_password_failed": "Konnte Wiederherstellungspasswort nicht einstellen: {error}", "dyndns_set_recovery_password_success": "Wiederherstellungspasswort eingestellt!", "global_settings_setting_ssh_port_help": "Ein Port unter 1024 wird bevorzugt, um Kaperversuche durch Nicht-Administratordienste auf dem Remote-Computer zu verhindern. Sie sollten auch vermeiden, einen bereits verwendeten Port zu verwenden, z. B. 80 oder 443." -} +} \ No newline at end of file diff --git a/locales/en.json b/locales/en.json index e69a1661e..ec871a649 100644 --- a/locales/en.json +++ b/locales/en.json @@ -598,7 +598,6 @@ "migration_0024_rebuild_python_venv_disclaimer_rebuild": "Rebuilding the virtualenv will be attempted for the following apps (NB: the operation may take some time!): {rebuild_apps}", "migration_0024_rebuild_python_venv_failed": "Failed to rebuild the Python virtualenv for {app}. The app may not work as long as this is not resolved. You should fix the situation by forcing the upgrade of this app using `yunohost app upgrade --force {app}`.", "migration_0024_rebuild_python_venv_in_progress": "Now attempting to rebuild the Python virtualenv for `{app}`", - "migration_description_0027_migrate_to_bookworm": "Upgrade the system to Debian Bookworm and YunoHost 12", "migration_0027_cleaning_up": "Cleaning up cache and packages not useful anymore…", "migration_0027_delayed_api_restart": "The YunoHost API will automatically be restarted in 15 seconds. It may be unavailable for a few seconds, and then you will have to login again.", "migration_0027_general_warning": "Please note that this migration is a delicate operation. The YunoHost team did its best to review and test it, but the migration might still break parts of the system or its apps.\n\nTherefore, it is recommended to:\n - Perform a backup of any critical data or app. More info on https://yunohost.org/backup;\n - Be patient after launching the migration: Depending on your Internet connection and hardware, it might take up to a few hours for everything to upgrade properly.", @@ -619,6 +618,7 @@ "migration_description_0024_rebuild_python_venv": "Repair Python app after bullseye migration", "migration_description_0025_global_settings_to_configpanel": "Migrate legacy global settings nomenclature to the new, modern nomenclature", "migration_description_0026_new_admins_group": "Migrate to the new 'multiple admins' system", + "migration_description_0027_migrate_to_bookworm": "Upgrade the system to Debian Bookworm and YunoHost 12", "migration_ldap_backup_before_migration": "Creating a backup of LDAP database and apps settings prior to the actual migration.", "migration_ldap_can_not_backup_before_migration": "The backup of the system could not be completed before the migration failed. Error: {error}", "migration_ldap_migration_failed_trying_to_rollback": "Could not migrate… trying to roll back the system.", diff --git a/locales/es.json b/locales/es.json index eb1f3bbe1..bd9a644c2 100644 --- a/locales/es.json +++ b/locales/es.json @@ -782,4 +782,4 @@ "dyndns_set_recovery_password_success": "¡Password de recuperación establecida!", "global_settings_setting_dns_exposure_help": "NB: Esto afecta únicamente a la configuración recomentada de DNS y en las pruebas de diagnóstico. No afecta a la configuración del sistema.", "global_settings_setting_ssh_port_help": "Un puerto menor a 1024 es preferible para evitar intentos de usurpación por servicios no administrativos en la máquina remota. También debe de evitar usar un puerto ya en uso, como el 80 o 443." -} +} \ No newline at end of file diff --git a/locales/eu.json b/locales/eu.json index 2b84b0763..b95fcd1a9 100644 --- a/locales/eu.json +++ b/locales/eu.json @@ -782,4 +782,4 @@ "dyndns_set_recovery_password_failed": "Berreskuratze-pasahitza ezartzeak huts egin du: {error}", "dyndns_set_recovery_password_success": "Berreskuratze-pasahitza ezarri da!", "global_settings_setting_ssh_port_help": "1024 baino ataka txikiago bat izan beharko litzateke, zerbitzu ez-administratzaileek urruneko makinan usurpazio-saiorik egin ez dezaten. Lehendik ere erabiltzen ari diren atakak ere ekidin beharko zenituzke, 80 edo 443 kasu." -} +} \ No newline at end of file diff --git a/locales/fr.json b/locales/fr.json index 8014d13f1..64b682998 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -792,11 +792,11 @@ "migration_description_0027_migrate_to_bookworm": "Mettre à jour le système vers Debian Bookworm et YunoHost 12", "migration_0027_delayed_api_restart": "L'API de YunoHost sera automatiquement redémarrée dans 15 secondes. Il se peut qu'elle soit indisponible pendant quelques secondes, après quoi vous devrez vous connecter à nouveau.", "migration_0027_general_warning": "Veuillez noter que cette migration est une opération délicate. L'équipe de YunoHost a fait de son mieux pour l'examiner et la tester, mais la migration peut encore casser des parties du système ou de ses applications.\n\nPar conséquent, il est recommandé :\n - d'effectuer une sauvegarde de toutes les données ou applications critiques. Plus d'informations sur https://yunohost.org/backup ;\n - de faire preuve de patience après avoir lancé la migration : en fonction de votre connexion Internet et de votre matériel, la mise à niveau peut prendre quelques heures pour s'effectuer correctement.", - "migration_0027_not_bullseye": "La distribution Debian actuelle n'est pas Bullseye ! Si vous avez déjà effectué la migration Bullseye -> Bookworm, cette erreur est symptomatique du fait que la procédure de migration n'a pas réussi à 100 % (sinon YunoHost l'aurait marquée comme terminée). Il est recommandé de chercher ce qui s'est passé avec l'équipe de support, qui aura besoin du journal **complet** de la migration, qui peut être trouvé dans Outils > Journaux dans la webadmin.", + "migration_0027_not_bullseye": "La distribution Debian actuelle n'est pas Bullseye ! Si vous avez déjà effectué la migration Bullseye -> Bookworm, cette erreur est symptomatique du fait que la procédure de migration n'a pas réussi à 100 % (sinon YunoHost l'aurait marquée comme terminée). Il est recommandé de chercher ce qui s'est passé avec l'équipe de support, qui aura besoin du journal **complet** de la migration, qui peut être trouvé dans Outils > Journaux dans la webadmin.", "migration_0027_cleaning_up": "Nettoyage du cache et des paquets qui ne sont plus utiles…", "migration_0027_main_upgrade": "Démarrage de la mise à niveau du système…", "migration_0027_modified_files": "Veuillez noter que les fichiers suivants ont été modifiés manuellement et pourraient être écrasés après la mise à niveau : {manually_modified_files}", - "migration_0027_not_enough_free_space": "L'espace libre est plutôt faible dans /var/ ! Vous devez disposer d'au moins 1 Go d'espace libre pour effectuer cette migration.", + "migration_0027_not_enough_free_space": "L'espace libre est plutôt faible dans /var/ ! Vous devez disposer d'au moins 1 Go d'espace libre pour effectuer cette migration.", "migration_0027_patch_yunohost_conflicts": "Application d'un correctif pour résoudre le problème de conflit…", "migration_0027_patching_sources_list": "Correction du fichier sources.lists…", "migration_0027_problematic_apps_warning": "Veuillez noter que des applications installées susceptibles de poser problème ont été détectées. Il semble qu'elles n'aient pas été installées à partir du catalogue d'applications de YunoHost, ou bien qu'elles ne soient pas marquées comme 'fonctionnelles'. Par conséquent, il ne peut pas être garanti qu'elles continueront à fonctionner après la mise à jour : {problematic_apps}", @@ -804,4 +804,4 @@ "migration_0027_still_on_bullseye_after_main_upgrade": "Quelque chose s'est mal passé lors de la mise à jour du système, il semble que celui-ci soit toujours sous Debian Bullseye.", "migration_0027_system_not_fully_up_to_date": "Votre système n'est pas complètement à jour. Veuillez effectuer une mise à jour classique avant de procéder à la migration vers Bullseye.", "migration_0027_yunohost_upgrade": "Démarrage de la mise à jour du cœur de YunoHost…" -} +} \ No newline at end of file diff --git a/locales/gl.json b/locales/gl.json index 45912c30d..3f18e652a 100644 --- a/locales/gl.json +++ b/locales/gl.json @@ -789,4 +789,4 @@ "diagnosis_ignore_no_issue_found": "Non se atoparon incidencias para o criterio establecido.", "diagnosis_ignore_filter_added": "Engadiuse o filtro do diagnóstico para {category}", "diagnosis_ignore_missing_criteria": "Deberías proporcionar cando menos un criterio que a categoría de diagnóstico omitirá" -} +} \ No newline at end of file diff --git a/locales/id.json b/locales/id.json index ec4be7621..6067545a0 100644 --- a/locales/id.json +++ b/locales/id.json @@ -452,4 +452,4 @@ "app_unsupported_remote_type": "Tidak mendukung type remot yang digunakan pada aplikasi", "app_not_upgraded_broken_system_continue": "Aplikasi '{failed_app}' telah gagal meningkatkan dan menyebabkan sistem dalam status rusak (jadi --continue-on-failure diabaikan), dan sebagai konsekuensi terhadap peningkatan aplikasi tersebut telah dibatalkan: {apps}", "apps_failed_to_upgrade_line": "\n * {app_id}(untuk melihat log yang berkaitan lakukan 'yunohost log show {operation_logger_name}')" -} +} \ No newline at end of file diff --git a/locales/ja.json b/locales/ja.json index 1c2a77c6a..b8a781f04 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -760,4 +760,4 @@ "yunohost_not_installed": "YunoHostが正しくインストールされていません。’yunohost tools postinstall’ を実行してください", "yunohost_postinstall_end_tip": "インストール後処理が完了しました!セットアップを完了するには、次の点を考慮してください。\n - ウェブ管理画面の'診断'セクション(またはコマンドラインで’yunohost diagnosis run’)を通じて潜在的な問題を診断します。\n - 管理ドキュメントの'セットアップの最終処理'と'YunoHostを知る'の部分を読む: https://yunohost.org/admindoc。", "additional_urls_already_removed": "アクセス許可 ‘{permission}’ に対する追加URLで ‘{url}’ は既に削除されています" -} +} \ No newline at end of file diff --git a/locales/uk.json b/locales/uk.json index b93b15d5c..04640d1b4 100644 --- a/locales/uk.json +++ b/locales/uk.json @@ -781,4 +781,4 @@ "dyndns_set_recovery_password_failed": "Не вдалося встановити пароль для відновлення: {error}", "dyndns_set_recovery_password_success": "Пароль для відновлення встановлено!", "log_dyndns_unsubscribe": "Скасувати підписку на субдомен YunoHost '{}'" -} +} \ No newline at end of file From 588742f31b78a0985e2c30dccff515b8249646d3 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Thu, 11 Jul 2024 17:35:37 +0200 Subject: [PATCH 40/44] log: optimize log list perf by creating a 'cache' symlink pointing to the log's parent --- src/log.py | 67 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 15 deletions(-) diff --git a/src/log.py b/src/log.py index 341770a56..6abb8afa2 100755 --- a/src/log.py +++ b/src/log.py @@ -22,6 +22,7 @@ import re import yaml import glob import psutil +import time from typing import List from datetime import datetime, timedelta @@ -82,6 +83,39 @@ BORING_LOG_LINES = [ ] +def _update_log_parent_symlinks(): + + one_year_ago = (time.time() - 365 * 24 * 3600) + + logs = glob.iglob(OPERATIONS_PATH + "*" + METADATA_FILE_EXT) + for log_md in logs: + if os.path.getctime(log_md) < one_year_ago: + # Let's ignore files older than one year because hmpf reading a shitload of yml is not free + continue + + name = log_md[: -len(METADATA_FILE_EXT)] + parent_symlink = os.path.join(OPERATIONS_PATH, f".{name}.parent.yml") + if os.path.islink(parent_symlink): + continue + + try: + metadata = ( + read_yaml(log_md) or {} + ) # Making sure this is a dict and not None..? + except Exception as e: + # If we can't read the yaml for some reason, report an error and ignore this entry... + logger.error(m18n.n("log_corrupted_md_file", md_file=log_md, error=e)) + continue + + parent = metadata.get("parent") + parent = parent + METADATA_FILE_EXT if parent else "/dev/null" + try: + print(parent, parent_symlink) + os.symlink(parent, parent_symlink) + except Exception as e: + logger.warning(f"Failed to create symlink {parent_symlink} ? {e}") + + def log_list(limit=None, with_details=False, with_suboperations=False): """ List available logs @@ -98,30 +132,35 @@ def log_list(limit=None, with_details=False, with_suboperations=False): operations = {} - logs = [x for x in os.listdir(OPERATIONS_PATH) if x.endswith(METADATA_FILE_EXT)] + _update_log_parent_symlinks() + + one_year_ago = (time.time() - 365 * 24 * 3600) + logs = [x for x in os.listdir(OPERATIONS_PATH) if x.endswith(METADATA_FILE_EXT) and os.path.getctime(x) > one_year_ago] logs = list(reversed(sorted(logs))) + if not with_suboperations: + def parent_symlink_points_to_dev_null(log): + name = log[: -len(METADATA_FILE_EXT)] + parent_symlink = os.path.join(OPERATIONS_PATH, f".{name}.parent.yml") + return os.path.islink(parent_symlink) and os.path.realpath(parent_symlink) == "/dev/null" + + logs = [log for log in logs if parent_symlink_points_to_dev_null(log)] + if limit is not None: - if with_suboperations: - logs = logs[:limit] - else: - # If we displaying only parent, we are still gonna load up to limit * 5 logs - # because many of them are suboperations which are not gonna be kept - # Yet we still want to obtain ~limit number of logs - logs = logs[: limit * 5] + logs = logs[:limit] for log in logs: - base_filename = log[: -len(METADATA_FILE_EXT)] + name = log[: -len(METADATA_FILE_EXT)] md_path = os.path.join(OPERATIONS_PATH, log) entry = { - "name": base_filename, + "name": name, "path": md_path, - "description": _get_description_from_name(base_filename), + "description": _get_description_from_name(name), } try: - entry["started_at"] = _get_datetime_from_name(base_filename) + entry["started_at"] = _get_datetime_from_name(name) except ValueError: pass @@ -141,10 +180,8 @@ def log_list(limit=None, with_details=False, with_suboperations=False): if with_suboperations: entry["parent"] = metadata.get("parent") entry["suboperations"] = [] - elif metadata.get("parent") is not None: - continue - operations[base_filename] = entry + operations[name] = entry # When displaying suboperations, we build a tree-like structure where # "suboperations" is a list of suboperations (each of them may also have a list of From a0bc7926c4234698ea7056a06c895da2a30961dc Mon Sep 17 00:00:00 2001 From: alexAubin <4533074+alexAubin@users.noreply.github.com> Date: Fri, 12 Jul 2024 13:24:32 +0000 Subject: [PATCH 41/44] :art: Format Python code with Black --- src/log.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/log.py b/src/log.py index 6abb8afa2..1e116baf1 100755 --- a/src/log.py +++ b/src/log.py @@ -85,7 +85,7 @@ BORING_LOG_LINES = [ def _update_log_parent_symlinks(): - one_year_ago = (time.time() - 365 * 24 * 3600) + one_year_ago = time.time() - 365 * 24 * 3600 logs = glob.iglob(OPERATIONS_PATH + "*" + METADATA_FILE_EXT) for log_md in logs: @@ -134,15 +134,23 @@ def log_list(limit=None, with_details=False, with_suboperations=False): _update_log_parent_symlinks() - one_year_ago = (time.time() - 365 * 24 * 3600) - logs = [x for x in os.listdir(OPERATIONS_PATH) if x.endswith(METADATA_FILE_EXT) and os.path.getctime(x) > one_year_ago] + one_year_ago = time.time() - 365 * 24 * 3600 + logs = [ + x + for x in os.listdir(OPERATIONS_PATH) + if x.endswith(METADATA_FILE_EXT) and os.path.getctime(x) > one_year_ago + ] logs = list(reversed(sorted(logs))) if not with_suboperations: + def parent_symlink_points_to_dev_null(log): name = log[: -len(METADATA_FILE_EXT)] parent_symlink = os.path.join(OPERATIONS_PATH, f".{name}.parent.yml") - return os.path.islink(parent_symlink) and os.path.realpath(parent_symlink) == "/dev/null" + return ( + os.path.islink(parent_symlink) + and os.path.realpath(parent_symlink) == "/dev/null" + ) logs = [log for log in logs if parent_symlink_points_to_dev_null(log)] From d71d8fe7b3c5104873b8cf9b071beb351da4c2e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20M?= Date: Thu, 11 Jul 2024 16:19:14 +0000 Subject: [PATCH 42/44] Translated using Weblate (Galician) Currently translated at 100.0% (805 of 805 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/gl/ --- locales/gl.json | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/locales/gl.json b/locales/gl.json index 3f18e652a..7140a8620 100644 --- a/locales/gl.json +++ b/locales/gl.json @@ -664,7 +664,7 @@ "migration_0024_rebuild_python_venv_in_progress": "Intentando reconstruir o Python virtualenv para `{app}`", "migration_description_0024_rebuild_python_venv": "Reparar app Python após a migración a bullseye", "migration_0024_rebuild_python_venv_failed": "Fallou a reconstrución de Python virtualenv para {app}. A app podería non funcionar mentras non se resolve. Deberías intentar arranxar a situación forzando a actualización desta app usando `yunohost app upgrade --force {app}`.", - "migration_0021_not_buster2": "A distribución actual Debian non é Buster! Se xa realizaches a migración Buster->Bullseye entón este erro indica que o proceso de migración non se realizou de xeito correcto ao 100% (se non YunoHost debería telo marcado como completado). É recomendable comprobar xunto co equipo de axuda o que aconteceu, necesitarán o rexistro **completo** da `migración`, que podes atopar na webadmin en Ferramentas > Rexistros.", + "migration_0021_not_buster2": "A distribución actual Debian non é Buster! Se xa realizaches a migración Buster -> Bullseye entón este erro indica que o proceso de migración non se realizou de xeito correcto ao 100% (se non YunoHost debería telo marcado como completado). É recomendable comprobar xunto co equipo de axuda o que aconteceu, necesitarán o rexistro **completo** da migración, que podes atopar na webadmin en Ferramentas > Rexistros.", "global_settings_setting_admin_strength_help": "Estos requerimentos só se esixen ao inicializar ou cambiar o contrasinal", "global_settings_setting_root_access_explain": "En sistemas Linux, 'root' é a administradora absoluta. No contexto YunoHost, o acceso SSH de 'root' está desactivado por defecto - excepto na rede local do servidor. Os compoñentes do grupo 'admins' poden utilizar o comando sudo para actuar como root desde a liña de comandos. É conveniente ter un contrasinal (forte) para root para xestionar o sistema por se as persoas administradoras perden o acceso por algún motivo.", "migration_description_0025_global_settings_to_configpanel": "Migrar o nome antigo dos axustes globais aos novos nomes modernos", @@ -788,5 +788,20 @@ "diagnosis_ignore_no_filter_found": "(Non hai tal filtro do diagnóstico de {category} con este criterio a eliminar)", "diagnosis_ignore_no_issue_found": "Non se atoparon incidencias para o criterio establecido.", "diagnosis_ignore_filter_added": "Engadiuse o filtro do diagnóstico para {category}", - "diagnosis_ignore_missing_criteria": "Deberías proporcionar cando menos un criterio que a categoría de diagnóstico omitirá" -} \ No newline at end of file + "diagnosis_ignore_missing_criteria": "Deberías proporcionar cando menos un criterio que a categoría de diagnóstico omitirá", + "migration_0027_start": "A iniciar a migración a Bookworm…", + "migration_0027_still_on_bullseye_after_main_upgrade": "Algo fallou durante a actualización principal, o sistema parece que aínda está en Debian Bullseye.", + "migration_0027_patching_sources_list": "A configurar o ficheiro sources.list…", + "migration_0027_general_warning": "Ten en conta que a migración é unha operación comprometida. O equipo de YunoHost intentou deseñala o mellor posible e probala, aínda así a migración podería estragar partes do sistema ou as aplicacións.\n\nAsí, é recomendable:\n - Facer unha copia de apoio dos datos críticos ou aplicacións. Máis info en https://yunohost.org/backup;\n - Ter pacencia unha vez iniciada a migración: en función da túa conexión a Internet e hardware podería levarlle varias horas completar todo o procedemento.", + "migration_0027_yunohost_upgrade": "A iniciar a actualización do núcleo de YunoHost…", + "migration_0027_not_bullseye": "A distribución Debian actual non é Bullseye! Se xa realizaches a migración Bullseye -> Bookworm este erro é síntoma de que o procedemento de migración non foi exitoso ao 100% (doutro xeito YunoHost teríao marcado como completado). É recomendable que investigues o que aconteceu, informando ao equipo de axuda que precisará o rexistro **completo** da migración, pódelo atopar na web de administración en Ferramentas -> Rexistros.", + "migration_0027_problematic_apps_warning": "Ten en conta que se atoparon as seguintes apps que poderían ser problemáticas. Semella que non foron instaladas desde o catálogo de aplicacións de YunoHost, ou non están marcadas como que 'funcionan'. Como consecuencia non podemos garantir que seguirán funcionando ben unha vez conclúa a migración: {problematic_apps}", + "migration_description_0027_migrate_to_bookworm": "Actualiza o sistema a Debian Bookworm e YunoHost 12", + "migration_0027_cleaning_up": "Limpando a caché e os paquetes que xa non son necesarios…", + "migration_0027_delayed_api_restart": "A API de YunoHost vaise reiniciar automaticamente en 15 segundos. Durante uns segundos non poderás usala, e despois terás que iniciar sesión outra vez.", + "migration_0027_main_upgrade": "A iniciar a actualización principal…", + "migration_0027_modified_files": "Detectamos que os seguintes ficheiros semella foron modificados manualmente e poderían ser sobreescritos durante a actualización: {manually_modified_files}", + "migration_0027_not_enough_free_space": "Hai moi pouco espazo en /var/! Deberías ter polo menos 1GB libre para realizar a migración.", + "migration_0027_patch_yunohost_conflicts": "Aplicando a solución para resolver o problema conflictivo…", + "migration_0027_system_not_fully_up_to_date": "O teu sistema non está totalmente actualizado. Fai unha actualización corrente antes de iniciar a migración a Bullseye." +} From 0907411efc078370cf2b29c330b01684ca28d8df Mon Sep 17 00:00:00 2001 From: cjdw Date: Mon, 15 Jul 2024 13:31:39 +0000 Subject: [PATCH 43/44] Translated using Weblate (Indonesian) Currently translated at 53.0% (427 of 805 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/id/ --- locales/id.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/locales/id.json b/locales/id.json index 6067545a0..9036b12f7 100644 --- a/locales/id.json +++ b/locales/id.json @@ -39,7 +39,7 @@ "app_manifest_install_ask_password": "Pilih kata sandi administrasi untuk aplikasi ini", "app_upgrade_several_apps": "Aplikasi berikut akan diperbarui: {apps}", "backup_app_failed": "Tidak dapat mencadangkan {app}", - "backup_archive_name_exists": "Arsip cadangan dengan nama ini sudah ada.", + "backup_archive_name_exists": "Arsip cadangan dengan nama '{name}' ini sudah ada.", "backup_created": "Cadangan dibuat: {name}", "backup_creation_failed": "Tidak dapat membuat arsip cadangan", "backup_delete_error": "Tidak dapat menghapus '{path}'", @@ -70,18 +70,18 @@ "app_not_enough_ram": "Aplikasi ini memerlukan {required} RAM untuk pemasangan/pembaruan, tapi sekarang hanya tersedia {current} saja.", "app_packaging_format_not_supported": "Aplikasi ini tidak dapat dipasang karena format pengemasan tidak didukung oleh YunoHost versi Anda. Anda sebaiknya memperbarui sistem Anda.", "ask_admin_username": "Nama pengguna admin", - "backup_archive_broken_link": "Tidak dapat mengakses arsip cadangan (tautan rusak untuk {path})", + "backup_archive_broken_link": "Tidak dapat mengakses arsip cadangan (tautan rusak pada {path})", "backup_archive_open_failed": "Tidak dapat membuka arsip cadangan", "certmanager_cert_install_success_selfsigned": "Sertifikat ditandai sendiri sekarang terpasang untuk '{domain}'", "certmanager_cert_renew_failed": "Pembaruan ulang sertifikat Let's Encrypt gagal untuk {domains}", "certmanager_cert_renew_success": "Sertifikat Let's Encrypt diperbarui untuk domain '{domain}'", - "diagnosis_apps_allgood": "Semua aplikasi yang dipasang mengikuti panduan penyusunan yang baik", + "diagnosis_apps_allgood": "Semua aplikasi yang dipasang mengikuti panduan pemaketan yang baik", "diagnosis_basesystem_kernel": "Peladen memakai kernel Linux {kernel_version}", "diagnosis_cache_still_valid": "(Tembolok masih valid untuk diagnosis {category}. Belum akan didiagnosis ulang!)", "diagnosis_description_dnsrecords": "Rekaman DNS", "diagnosis_description_ip": "Konektivitas internet", "diagnosis_description_web": "Web", - "diagnosis_domain_expiration_error": "Beberapa domain akan kedaluwarsa SEGERA!", + "diagnosis_domain_expiration_error": "Beberapa domain akan SEGERA kedaluwarsa!", "diagnosis_domain_expiration_not_found_details": "Informasi WHOIS untuk domain {domain} sepertinya tidak mengandung informasi tentang tanggal kedaluwarsa?", "diagnosis_domain_expiration_warning": "Beberapa domain akan kedaluwarsa!", "diagnosis_domain_expires_in": "{domain} kedaluwarsa dalam {days} hari.", @@ -147,10 +147,10 @@ "app_already_installed_cant_change_url": "Aplikasi ini sudah terpasang. URL tidak dapat diubah hanya dengan ini. Periksa `app changeurl` jika tersedia.", "app_requirements_checking": "Memeriksa persyaratan pada {app}…", "backup_create_size_estimation": "Arsip ini akan mengandung data dengan ukuran {size}.", - "certmanager_certificate_fetching_or_enabling_failed": "Mencoba untuk menggunakan sertifikat baru untuk {domain} tidak bisa…", + "certmanager_certificate_fetching_or_enabling_failed": "Mencoba sertifikat baru pada {domain} tidak dapat digunakan…", "certmanager_no_cert_file": "Tidak dapat membuka berkas sertifikat untuk domain {domain} (berkas: {file})", "diagnosis_basesystem_hardware": "Arsitektur perangkat keras peladen adalah {virt} {arch}", - "diagnosis_basesystem_ynh_inconsistent_versions": "Anda menjalankan versi paket YunoHost yang tidak konsisten… sepertinya karena pembaruan yang gagal.", + "diagnosis_basesystem_ynh_inconsistent_versions": "Anda menjalankan versi paket YunoHost yang tidak konsisten… sepertinya karena kegagalan atau sebagian pembaruan.", "diagnosis_basesystem_ynh_single_version": "versi {package}: {version} ({repo})", "diagnosis_description_services": "Status layanan", "diagnosis_description_systemresources": "Sumber daya sistem", @@ -220,7 +220,7 @@ "upgrade_complete": "Pembaruan selesai", "upgrading_packages": "Memperbarui paket…", "diagnosis_description_apps": "Aplikasi", - "diagnosis_description_basesystem": "Basis sistem", + "diagnosis_description_basesystem": "Sistem basis", "global_settings_setting_pop3_enabled_help": "Aktifkan protokol POP3 untuk peladen surel", "password_confirmation_not_the_same": "Kata sandi dan untuk konfirmasinya tidak sama", "restore_complete": "Pemulihan selesai", @@ -234,7 +234,7 @@ "app_sources_fetch_failed": "Tidak dapat mengambil berkas sumber, apakah URL-nya benar?", "installation_complete": "Pemasangan selesai", "app_arch_not_supported": "Aplikasi ini hanya bisa dipasang pada arsitektur {required}, tapi arsitektur peladen Anda adalah {current}", - "diagnosis_basesystem_hardware_model": "Model peladen adalah {model}", + "diagnosis_basesystem_hardware_model": "Model server adalah {model}", "app_yunohost_version_not_supported": "Aplikasi ini memerlukan YunoHost >= {required}, tapi versi yang terpasang adalah {current}", "ask_new_path": "Jalur baru", "backup_cleaning_failed": "Tidak dapat menghapus folder cadangan sementara", @@ -252,7 +252,7 @@ "config_validate_email": "Harus surel yang valid", "config_apply_failed": "Gagal menerapkan konfigurasi baru: {error}", "diagnosis_basesystem_ynh_main_version": "Peladen memakai YunoHost {main_version} ({repo})", - "diagnosis_cant_run_because_of_dep": "Tidak dapat menjalankan diagnosis untuk {category} ketika ada masalah utama yang terkait dengan {dep}.", + "diagnosis_cant_run_because_of_dep": "Tidak dapat menjalankan diagnosis pada {category} ketika ada masalah utama yang terkait dengan {dep}.", "diagnosis_services_conf_broken": "Konfigurasi rusak untuk layanan {service}!", "diagnosis_services_running": "Layanan {service} berjalan!", "diagnosis_swap_ok": "Sistem ini memiliki {total} swap!", @@ -296,7 +296,7 @@ "upnp_disabled": "UPnP dimatikan", "global_settings_setting_smtp_allow_ipv6_help": "Perbolehkan penggunaan IPv6 untuk menerima dan mengirim surel", "domain_config_default_app": "Aplikasi baku", - "diagnosis_diskusage_verylow": "Penyimpanan {mountpoint} (di perangkat {device}) hanya tinggal memiliki {free} ({free_percent}%) ruang kosong yang tersedia (dari {total}). Direkomendasikan untuk membersihkan ruang penyimpanan!", + "diagnosis_diskusage_verylow": "Penyimpanan {mountpoint} (di perangkat {device}) hanya memiliki {free} ({free_percent}%) ruang kosong yang tersedia (dari {total}). Sebaiknya Anda mempertimbangkan untuk membersihkan ruang penyimpanan!", "domain_config_api_protocol": "Protokol API", "domain_config_cert_summary_letsencrypt": "Bagus! Anda menggunakan sertifikat Let's Encrypt yang valid!", "domain_config_mail_out": "Surel keluar", @@ -329,7 +329,7 @@ "permission_require_account": "Izin {permission} hanya masuk akal untuk pengguna yang memiliki akun, maka ini tidak dapat diaktifkan untuk pengunjung.", "permission_update_failed": "Tidak dapat memperbarui izin '{permission}': {error}", "apps_failed_to_upgrade": "Aplikasi berikut gagal untuk diperbarui:{apps}", - "backup_archive_name_unknown": "Arsip cadangan lokal tidak diketahui yang bernama '{name}'", + "backup_archive_name_unknown": "Arsip cadangan lokal dengan nama '{name}' tidak diketahui", "diagnosis_http_nginx_conf_not_up_to_date_details": "Untuk memperbaiki ini, periksa perbedaannya dari CLI menggunakan yunohost tools regen-conf nginx --dry-run --with-diff dan jika Anda sudah, terapkan perubahannya menggunakan yunohost tools regen-conf nginx --force.", "domain_config_auth_token": "Token autentikasi", "domain_config_cert_install": "Pasang sertifikat Let's Encrypt", @@ -351,7 +351,7 @@ "regenconf_now_managed_by_yunohost": "Berkas konfigurasi '{conf}' sekarang dikelola oleh YunoHost (kategori {category}).", "regenconf_updated": "Konfigurasi diperbarui untuk '{category}'", "log_user_group_delete": "Menghapus kelompok '{}'", - "backup_archive_cant_retrieve_info_json": "Tidak dapat memuat info untuk arsip '{archive}'… Berkas info.json tidak dapat didapakan (atau bukan json yang valid).", + "backup_archive_cant_retrieve_info_json": "Tidak dapat memuat info pada arsip '{archive}'… Berkas info.json tidak dapat dipulihkan (atau bukan json yang valid).", "diagnosis_mail_blacklist_reason": "Alasan pendaftarhitaman adalah: {reason}", "diagnosis_ports_unreachable": "Porta {port} tidak tercapai dari luar.", "diagnosis_ram_verylow": "Sistem hanya memiliki {available} ({available_percent}%) RAM yang tersedia! (dari {total})", @@ -366,7 +366,7 @@ "log_permission_create": "Membuat izin '{}'", "log_permission_delete": "Menghapus izin '{}'", "backup_with_no_backup_script_for_app": "Aplikasi '{app}' tidak memiliki skrip pencadangan. Mengabaikan.", - "backup_system_part_failed": "Tidak dapat mencadangkan bagian '{part}' sistem", + "backup_system_part_failed": "Tidak dapat mencadangkan bagian sistem '{part}'", "log_user_create": "Menambahkan pengguna '{}'", "log_user_delete": "Menghapus pengguna '{}'", "log_user_group_create": "Membuat kelompok '{}'", @@ -377,7 +377,7 @@ "diagnosis_dns_point_to_doc": "Silakan periksa dokumentasi di https://yunohost.org/dns_config jika Anda masih membutuhkan bantuan untuk mengatur rekaman DNS.", "diagnosis_regenconf_manually_modified": "Berkas konfigurasi {file} sepertinya telah diubah manual.", "backup_with_no_restore_script_for_app": "{app} tidak memiliki skrip pemulihan, Anda tidak akan bisa secara otomatis memulihkan cadangan aplikasi ini.", - "config_no_panel": "Tidak dapat menemukan panel konfigurasi.", + "config_no_panel": "Panel konfigurasi tidak ditemukan.", "confirm_app_install_warning": "Peringatan: Aplikasi ini mungkin masih bisa bekerja, tapi tidak terintegrasi dengan baik dengan YunoHost. Beberapa fitur seperti SSO dan pencadangan mungkin tidak tersedia. Tetap pasang? [{answers}] ", "diagnosis_ports_ok": "Porta {port} tercapai dari luar.", "diagnosis_ports_partially_unreachable": "Porta {port} tidak tercapai dari luar lewat IPv{failed}.", @@ -452,4 +452,4 @@ "app_unsupported_remote_type": "Tidak mendukung type remot yang digunakan pada aplikasi", "app_not_upgraded_broken_system_continue": "Aplikasi '{failed_app}' telah gagal meningkatkan dan menyebabkan sistem dalam status rusak (jadi --continue-on-failure diabaikan), dan sebagai konsekuensi terhadap peningkatan aplikasi tersebut telah dibatalkan: {apps}", "apps_failed_to_upgrade_line": "\n * {app_id}(untuk melihat log yang berkaitan lakukan 'yunohost log show {operation_logger_name}')" -} \ No newline at end of file +} From 771a4b34469c39a6516afea37e807b799f5c90b8 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 15 Jul 2024 16:31:44 +0200 Subject: [PATCH 44/44] Update changelog for 11.2.21 --- debian/changelog | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/debian/changelog b/debian/changelog index 0d2b68cd5..368befdff 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,19 @@ +yunohost (11.2.21) stable; urgency=low + + - log: optimize log list perf by creating a 'cache' symlink pointing to the log's parent ([#1907](http://github.com/YunoHost/yunohost/pull/1907)) + - log: small hack when dumping log right after script failure, prevent a weird edge case where it'll dump the log of the resource provisioning instead of the script (1bb81e8f) + - debian: Bullseye->Bookworm migration ('hidden' but easier to test) ([#1759](http://github.com/YunoHost/yunohost/pull/1759), ab8e0e66, e54e99bf) + - helpers/apt: rely on simpler dpkg-deb --build rather than equivs to create .deb for app virtual dependencies (f6fbd69c, 8be726b9) + - helpers/apt: Support apt repositories with [trusted=yes] ([#1903](http://github.com/YunoHost/yunohost/pull/1903)) + - backups: one should be able to restore a backup archive by providing a path to the archive without moving it to /home/yunohost.backup/archives/ (c8a18129, b266e398) + - backups: yunohost should not ask confirmation that 'YunoHost is already installed' when restoring only apps (9c22d36c) + - i18n: translate _diagnosis_ignore function ([#1894](http://github.com/YunoHost/yunohost/pull/1894)) + - i18n: Translations updated for Basque, Catalan, French, Galician, German, Indonesian, Japanese, Russian, Spanish, Ukrainian + + Thanks to all contributors <3 ! (alexAubin, Anonymous, cjdw, Félix Piédallu, Ivan Davydov, José M, Kayou, OniriCorpe, ppr, Zwiebel) + + -- Alexandre Aubin Mon, 15 Jul 2024 16:22:26 +0200 + yunohost (11.2.20.2) stable; urgency=low - Fix service enable/disable auto-ignoring diagnosis entries ([#1886](http://github.com/YunoHost/yunohost/pull/1886))