From 1c083845e7d5640ef895fe9c1c500e0a1f279855 Mon Sep 17 00:00:00 2001 From: tituspijean Date: Thu, 28 Dec 2023 17:47:46 +0100 Subject: [PATCH 01/13] Automatically enable Python environment in app shells assuming it is in `$install_dir/venv` --- helpers/apps | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/helpers/apps b/helpers/apps index 7a93298c0..81a5717eb 100644 --- a/helpers/apps +++ b/helpers/apps @@ -196,6 +196,15 @@ ynh_spawn_app_shell() { 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; From b2c3c70742162e12d45be5465521703968ffa9d9 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 1 Jan 2024 00:56:50 +0100 Subject: [PATCH 02/13] add --after= in the usage section of ynh_read_var_in_file and ynh_write_var_in_file --- helpers/utils | 2 ++ 1 file changed, 2 insertions(+) diff --git a/helpers/utils b/helpers/utils index 9c92e65b9..b73e5ad46 100644 --- a/helpers/utils +++ b/helpers/utils @@ -611,6 +611,7 @@ ynh_replace_vars() { # usage: ynh_read_var_in_file --file=PATH --key=KEY # | arg: -f, --file= - the path to the file # | arg: -k, --key= - the key to get +# | arg: -a, --after= - the line just before the key (in case of multiple lines with the name of the key in the file) # # This helpers match several var affectation use case in several languages # We don't use jq or equivalent to keep comments and blank space in files @@ -714,6 +715,7 @@ ynh_read_var_in_file() { # | arg: -f, --file= - the path to the file # | arg: -k, --key= - the key to set # | arg: -v, --value= - the value to set +# | arg: -a, --after= - the line just before the key (in case of multiple lines with the name of the key in the file) # # Requires YunoHost version 4.3 or higher. ynh_write_var_in_file() { From b424ae01c1b2f853f9c2c655e1daf15ff30f9132 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Thu, 4 Jan 2024 23:59:02 +0100 Subject: [PATCH 03/13] document changelog link for latest_github_release --- src/utils/resources.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/resources.py b/src/utils/resources.py index 324a0762c..a7c76c245 100644 --- a/src/utils/resources.py +++ b/src/utils/resources.py @@ -334,7 +334,7 @@ class SourcesResource(AppResource): `autoupdate.strategy` is expected to be one of : - `latest_github_tag` : look for the latest tag (by sorting tags and finding the "largest" version). Then using the corresponding tar.gz url. Tags containing `rc`, `beta`, `alpha`, `start` are ignored, and actually any tag which doesn't look like `x.y.z` or `vx.y.z` - - `latest_github_release` : similar to `latest_github_tags`, but starting from the list of releases. Pre- or draft releases are ignored. Releases may have assets attached to them, in which case you can define: + - `latest_github_release` : similar to `latest_github_tags`, but starting from the list of releases and provides the changelog link in PR message. Pre- or draft releases are ignored. Releases may have assets attached to them, in which case you can define: - `autoupdate.asset = "some regex"` (when there's only one asset to use). The regex is used to find the appropriate asset among the list of all assets - or several `autoupdate.asset.$arch = "some_regex"` (when the asset is arch-specific). The regex is used to find the appropriate asset for the specific arch among the list of assets - `latest_github_commit` : will use the latest commit on github, and the corresponding tarball. If this is used for the 'main' source, it will also assume that the version is YYYY.MM.DD corresponding to the date of the commit. From b920b82f4ee4d5112ceb82cd8986601dea1b6241 Mon Sep 17 00:00:00 2001 From: tituspijean Date: Sun, 7 Jan 2024 22:14:27 +0100 Subject: [PATCH 04/13] Add basic-space-cleanup command --- share/actionsmap.yml | 4 ++++ src/tools.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/share/actionsmap.yml b/share/actionsmap.yml index 9382c70f3..a98653551 100644 --- a/share/actionsmap.yml +++ b/share/actionsmap.yml @@ -1739,6 +1739,10 @@ tools: help: python command to execute full: --command + ### tools_basic_space_cleanup() + basic-space-cleanup: + action_help: Basic space cleanup (apt, journalctl, logs, ...) + ### tools_shutdown() shutdown: action_help: Shutdown the server diff --git a/src/tools.py b/src/tools.py index 088400067..a2fd9d82e 100644 --- a/src/tools.py +++ b/src/tools.py @@ -623,6 +623,36 @@ def tools_shell(command=None): shell = code.InteractiveConsole(vars) shell.interact() +def tools_basic_space_cleanup(): + """ + Basic space cleanup. + + apt autoremove + apt clean + archived logs removal + journalctl vacuum (leaves 50M of logs) + """ + subprocess.run( + [ + "/bin/bash", + "-c", + "apt autoremove && apt autoclean", + ] + ) + subprocess.run( + [ + "/bin/bash", + "-c", + "journalctl --vacuum-size=50M", + ] + ) + subprocess.run( + [ + "/bin/bash", + "-c", + "rm /var/log/*.gz && rm /var/log/*/*.gz && rm /var/log/*.? && rm /var/log/*/*.?", + ] + ) # ############################################ # # # From c8f0f131fd5e1fcae7fe1eaded9914e51c993132 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Thu, 11 Jan 2024 10:15:28 +0100 Subject: [PATCH 05/13] app.py, helpers: Reword YNH_APP_UPGRADE_TYPE * remove UPGRADE_FULL * rename DOWNGRADE_FORCED -> DOWNGRADE * rename UPGRADE_FORCED -> UPGRADE_SAME * keep the helper ynh_check_app_version_changed behaviour for reverse compatibility. --- helpers/utils | 8 ++------ src/app.py | 19 +++++++------------ 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/helpers/utils b/helpers/utils index b73e5ad46..13874eea3 100644 --- a/helpers/utils +++ b/helpers/utils @@ -248,7 +248,7 @@ ynh_setup_source() { if test -e "$local_src"; then cp $local_src $src_filename fi - + [ -n "$src_url" ] || ynh_die "Couldn't parse SOURCE_URL from $src_file_path ?" # If the file was prefetched but somehow doesn't match the sum, rm and redownload it @@ -990,15 +990,11 @@ ynh_app_package_version() { # This helper should be used to avoid an upgrade of an app, or the upstream part # of it, when it's not needed # -# You can force an upgrade, even if the package is up to date, with the `--force` (or `-F`) argument : -# ``` -# sudo yunohost app upgrade --force -# ``` # Requires YunoHost version 3.5.0 or higher. ynh_check_app_version_changed() { local return_value=${YNH_APP_UPGRADE_TYPE} - if [ "$return_value" == "UPGRADE_FULL" ] || [ "$return_value" == "UPGRADE_FORCED" ] || [ "$return_value" == "DOWNGRADE_FORCED" ]; then + if [ "$return_value" == "UPGRADE_SAME" ] || [ "$return_value" == "DOWNGRADE" ]; then return_value="UPGRADE_APP" fi diff --git a/src/app.py b/src/app.py index 15e266a6d..ae550ab31 100644 --- a/src/app.py +++ b/src/app.py @@ -653,23 +653,18 @@ def app_upgrade( manifest.get("remote", {}).get("revision", "?"), ) continue - elif app_current_version > app_new_version: - upgrade_type = "DOWNGRADE_FORCED" + + if app_current_version > app_new_version: + upgrade_type = "DOWNGRADE" elif app_current_version == app_new_version: - upgrade_type = "UPGRADE_FORCED" + upgrade_type = "UPGRADE_SAME" else: - app_current_version_upstream, app_current_version_pkg = str( - app_current_version - ).split("~ynh") - app_new_version_upstream, app_new_version_pkg = str( - app_new_version - ).split("~ynh") + app_current_version_upstream, _ = str(app_current_version).split("~ynh") + app_new_version_upstream, _ = str(app_new_version).split("~ynh") if app_current_version_upstream == app_new_version_upstream: upgrade_type = "UPGRADE_PACKAGE" - elif app_current_version_pkg == app_new_version_pkg: - upgrade_type = "UPGRADE_APP" else: - upgrade_type = "UPGRADE_FULL" + upgrade_type = "UPGRADE_APP" # Check requirements for name, passed, values, err in _check_manifest_requirements( From c93d770d4ae147414c2c04eb1727f56e5b9f7585 Mon Sep 17 00:00:00 2001 From: Saeba Ryo Date: Sun, 31 Dec 2023 11:33:55 +0000 Subject: [PATCH 06/13] Translated using Weblate (Arabic) Currently translated at 29.2% (229 of 782 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/ar/ --- locales/ar.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/locales/ar.json b/locales/ar.json index 2d3e1381e..bc813e0d4 100644 --- a/locales/ar.json +++ b/locales/ar.json @@ -257,5 +257,8 @@ "diagnosis_ip_dnsresolution_working": "تحليل اسم النطاق يعمل!", "diagnosis_mail_blacklist_listed_by": "إن عنوان الـ IP الخاص بك أو نطاقك {item} مُدرَج ضمن قائمة سوداء على {blacklist_name}", "diagnosis_mail_outgoing_port_25_ok": "خادم بريد SMTP قادر على إرسال رسائل البريد الإلكتروني (منفذ البريد الصادر 25 غير محظور).", - "user_already_exists": "المستخدم '{user}' موجود مِن قَبل" -} \ No newline at end of file + "user_already_exists": "المستخدم '{user}' موجود مِن قَبل", + "backup_archive_name_unknown": "أرشيف نسخ احتياطي محلي غير معروف باسم '{name}'", + "custom_app_url_required": "يجب عليك تقديم عنوان URL لتحديث تطبيقك المخصص {app}", + "backup_copying_to_organize_the_archive": "نسخ {size} ميغا بايت لتنظيم الأرشيف" +} From bd0edd0e4e34a5fc758a978ef5dbeff45a824d16 Mon Sep 17 00:00:00 2001 From: cube <204@tuta.io> Date: Tue, 2 Jan 2024 22:46:48 +0000 Subject: [PATCH 07/13] Translated using Weblate (Ukrainian) Currently translated at 100.0% (782 of 782 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/uk/ --- locales/uk.json | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/locales/uk.json b/locales/uk.json index 07cbfe6da..52ae2febe 100644 --- a/locales/uk.json +++ b/locales/uk.json @@ -23,8 +23,8 @@ "app_action_cannot_be_ran_because_required_services_down": "Для виконання цієї дії повинні бути запущені наступні необхідні служби: {services}. Спробуйте перезапустити їх, щоб продовжити (і, можливо, з'ясувати, чому вони не працюють).", "already_up_to_date": "Нічого не потрібно робити. Все вже актуально.", "admin_password": "Пароль адмініструванні", - "additional_urls_already_removed": "Додаткова URL-адреса '{url}' вже видалена в додатковій URL-адресі для дозволу '{permission}'", - "additional_urls_already_added": "Додаткова URL-адреса '{url}' вже додана в додаткову URL-адресу для дозволу '{permission}'", + "additional_urls_already_removed": "Додаткову URL-адресу '{url}' вже видалено для дозволу '{permission}'", + "additional_urls_already_added": "Додаткову URL-адресу '{url}' вже додано для дозволу '{permission}'", "action_invalid": "Неприпустима дія '{action}'", "aborting": "Переривання.", "diagnosis_description_web": "Мережа", @@ -234,7 +234,7 @@ "group_already_exist_on_system": "Група {group} вже існує в групах системи", "group_already_exist": "Група {group} вже існує", "good_practices_about_user_password": "Зараз ви збираєтеся поставити новий пароль користувача. Пароль повинен складатися не менше ніж з 8 символів, але хорошою практикою є використання більш довгого пароля (тобто гасла) і/або використання різних символів (великих, малих, цифр і спеціальних символів).", - "good_practices_about_admin_password": "Зараз ви збираєтеся поставити новий пароль адміністрування. Пароль повинен складатися не менше ніж з 8 символів, але хорошою практикою є використання більш довгого пароля (тобто парольної фрази) і/або використання різних символів (великих, малих, цифр і спеціальних символів).", + "good_practices_about_admin_password": "Зараз ви маєте встановити новий пароль для адміністрування. Пароль повинен містити щонайменше 8 символів, хоча рекомендується використовувати довший пароль (наприклад, парольну фразу) та/або використовувати різні символи (великі та малі літери, цифри та спеціальні символи).", "global_settings_setting_smtp_relay_password": "Пароль SMTP-ретрансляції", "global_settings_setting_smtp_relay_user": "Користувач SMTP-ретрансляції", "global_settings_setting_smtp_relay_port": "Порт SMTP-ретрансляції", @@ -508,7 +508,7 @@ "backup_archive_cant_retrieve_info_json": "Не вдалося завантажити відомості для архіву '{archive}'... Файл info.json не може бути отриманий (або не є правильним json).", "backup_archive_open_failed": "Не вдалося відкрити архів резервної копії", "backup_archive_name_unknown": "Невідомий локальний архів резервного копіювання з назвою '{name}'", - "backup_archive_name_exists": "Архів резервного копіювання з такою назвою вже існує.", + "backup_archive_name_exists": "Архів резервної копії з назвою '{name}' вже існує.", "backup_archive_broken_link": "Не вдалося отримати доступ до архіву резервного копіювання (неробоче посилання на {path})", "backup_archive_app_not_found": "Не вдалося знайти {app} в архіві резервного копіювання", "backup_applying_method_tar": "Створення резервного TAR-архіву...", @@ -766,5 +766,23 @@ "group_user_add": "Користувача '{user}' буде додано до групи '{group}'", "group_user_remove": "Користувача '{user}' буде вилучено з групи '{group}'", "app_corrupt_source": "YunoHost зміг завантажити ресурс '{source_id}' ({url}) для {app}, але він не відповідає очікуваній контрольній сумі. Це може означати, що на вашому сервері стався тимчасовий збій мережі, АБО ресурс був якимось чином змінений висхідним супровідником (або зловмисником?), і пакувальникам YunoHost потрібно дослідити і оновити маніфест застосунку, щоб відобразити цю зміну.\n Очікувана контрольна сума sha256: {expected_sha256}\n Обчислена контрольна сума sha256: {computed_sha256}\n Розмір завантаженого файлу: {size}", - "app_failed_to_download_asset": "Не вдалося завантажити ресурс '{source_id}' ({url}) для {app}: {out}" + "app_failed_to_download_asset": "Не вдалося завантажити ресурс '{source_id}' ({url}) для {app}: {out}", + "ask_dyndns_recovery_password_explain_unavailable": "Цей домен DynDNS вже зареєстрований. Якщо ви особисто зареєстрували цей домен, можете ввести пароль для відновлення домену.", + "dyndns_too_many_requests": "Сервіс DynDNS YunoHost отримала від вас занадто багато запитів, зачекайте приблизно 1 годину, перш ніж спробувати ще раз.", + "ask_dyndns_recovery_password_explain": "Будь ласка, виберіть пароль для відновлення вашого домену DynDNS, на випадок, якщо вам знадобиться скинути його пізніше.", + "ask_dyndns_recovery_password": "Пароль відновлення DynDNS", + "ask_dyndns_recovery_password_explain_during_unsubscribe": "Будь ласка, введіть пароль відновлення для цього домену DynDNS.", + "dyndns_no_recovery_password": "Не вказано пароль для відновлення! У разі втрати контролю над цим доменом вам необхідно звернутися до адміністратора команди YunoHost!", + "dyndns_subscribed": "Домен DynDNS зареєстровано", + "dyndns_subscribe_failed": "Не вдалося підписатися на домен DynDNS: {error}", + "dyndns_unsubscribe_failed": "Не вдалося скасувати підписку на домен DynDNS: {error}", + "dyndns_unsubscribed": "Домен DynDNS відписано", + "dyndns_unsubscribe_denied": "Не вдалося відписати домен: невірні облікові дані", + "dyndns_unsubscribe_already_unsubscribed": "Домен вже відписаний", + "dyndns_set_recovery_password_denied": "Не вдалося встановити пароль відновлення: невірний ключ", + "dyndns_set_recovery_password_unknown_domain": "Не вдалося встановити пароль відновлення: домен не зареєстровано", + "dyndns_set_recovery_password_invalid_password": "Не вдалося встановити пароль для відновлення: пароль недостатньо надійний", + "dyndns_set_recovery_password_failed": "Не вдалося встановити пароль для відновлення: {error}", + "dyndns_set_recovery_password_success": "Пароль для відновлення встановлено!", + "log_dyndns_unsubscribe": "Скасувати підписку на субдомен YunoHost '{}'" } From 699500dbb081415b06e930778b76660a15896a74 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin <4533074+alexAubin@users.noreply.github.com> Date: Fri, 12 Jan 2024 22:00:10 +0100 Subject: [PATCH 08/13] Fix DNS suffix edge case during XMPP certificate setup --- src/certificate.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/certificate.py b/src/certificate.py index 76d3f32b7..10818b5b5 100644 --- a/src/certificate.py +++ b/src/certificate.py @@ -577,9 +577,16 @@ def _prepare_certificate_signing_request(domain, key_file, output_folder): or {} ) sanlist = [] + + # Handle the boring case where the domain is not the root of the dns zone etc... + from yunohost.dns import _get_relative_name_for_dns_zone, _get_dns_zone_for_domain + base_dns_zone = _get_dns_zone_for_domain(domain) + basename = _get_relative_name_for_dns_zone(domain, base_dns_zone) + suffix = f".{basename}" if basename != "@" else "" + for sub in ("xmpp-upload", "muc"): subdomain = sub + "." + domain - if xmpp_records.get("CNAME:" + sub) == "OK": + if xmpp_records.get("CNAME:" + sub + suffix) == "OK": sanlist.append(("DNS:" + subdomain)) else: logger.warning( From 890fcee05b1cdce3921dfd52cc22cad17e67ec33 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Fri, 12 Jan 2024 22:55:13 +0100 Subject: [PATCH 09/13] maintenance: apply localeautofix script to remove stale strings, fix format inconsistencies --- locales/ar.json | 1 - locales/ca.json | 6 +----- locales/de.json | 6 +----- locales/eo.json | 4 ---- locales/es.json | 6 +----- locales/eu.json | 6 +----- locales/fa.json | 4 ---- locales/fr.json | 12 ++++-------- locales/gl.json | 10 +++------- locales/id.json | 2 +- locales/it.json | 6 +----- locales/ja.json | 9 +-------- locales/nb_NO.json | 4 ---- locales/nl.json | 2 -- locales/oc.json | 4 ---- locales/pl.json | 6 +++--- locales/pt.json | 4 ---- locales/ru.json | 2 +- locales/sk.json | 2 +- locales/tr.json | 2 +- locales/uk.json | 6 +----- locales/zh_Hans.json | 4 ---- 22 files changed, 21 insertions(+), 87 deletions(-) diff --git a/locales/ar.json b/locales/ar.json index 2d3e1381e..82660f284 100644 --- a/locales/ar.json +++ b/locales/ar.json @@ -39,7 +39,6 @@ "done": "تم", "downloading": "عملية التنزيل جارية …", "dyndns_ip_updated": "لقد تم تحديث عنوان الإيبي الخاص بك على نظام أسماء النطاقات الديناميكي", - "dyndns_key_generating": "جارٍ إنشاء مفتاح DNS ... قد يستغرق الأمر بعض الوقت.", "dyndns_key_not_found": "لم يتم العثور على مفتاح DNS الخاص باسم النطاق هذا", "extracting": "عملية فك الضغط جارية…", "installation_complete": "إكتملت عملية التنصيب", diff --git a/locales/ca.json b/locales/ca.json index ea9b74015..b21382614 100644 --- a/locales/ca.json +++ b/locales/ca.json @@ -119,7 +119,6 @@ "app_action_cannot_be_ran_because_required_services_down": "Aquests serveis necessaris haurien d'estar funcionant per poder executar aquesta acció: {services} Intenteu reiniciar-los per continuar (i possiblement investigar perquè estan aturats).", "domain_dns_conf_is_just_a_recommendation": "Aquesta ordre mostra la configuració *recomanada*. En cap cas fa la configuració del DNS. És la vostra responsabilitat configurar la zona DNS en el vostre registrar en acord amb aquesta recomanació.", "domain_dyndns_already_subscribed": "Ja us heu subscrit a un domini DynDNS", - "domain_dyndns_root_unknown": "Domini DynDNS principal desconegut", "domain_hostname_failed": "No s'ha pogut establir un nou nom d'amfitrió. Això podria causar problemes més tard (podria no passar res).", "domain_uninstall_app_first": "Aquestes aplicacions encara estan instal·lades en el vostre domini:\n{apps}\n\nDesinstal·leu-les utilitzant l'ordre «yunohost app remove id_de_lapplicació» o moveu-les a un altre domini amb «yunohost app change-url id_de_lapplicació» abans d'eliminar el domini", "domains_available": "Dominis disponibles:", @@ -128,11 +127,8 @@ "dyndns_could_not_check_available": "No s'ha pogut verificar la disponibilitat de {domain} a {provider}.", "dyndns_ip_update_failed": "No s'ha pogut actualitzar l'adreça IP al DynDNS", "dyndns_ip_updated": "S'ha actualitzat l'adreça IP al DynDNS", - "dyndns_key_generating": "S'està generant la clau DNS... això pot trigar una estona.", "dyndns_key_not_found": "No s'ha trobat la clau DNS pel domini", "dyndns_no_domain_registered": "No hi ha cap domini registrat amb DynDNS", - "dyndns_registered": "S'ha registrat el domini DynDNS", - "dyndns_registration_failed": "No s'ha pogut registrar el domini DynDNS: {error}", "dyndns_domain_not_provided": "El proveïdor de DynDNS {provider} no pot oferir el domini {domain}.", "dyndns_unavailable": "El domini {domain} no està disponible.", "extracting": "Extracció en curs...", @@ -549,4 +545,4 @@ "global_settings_setting_ssh_compatibility_help": "Solució de compromís entre compatibilitat i seguretat pel servidor SSH. Afecta els criptògrafs (i altres aspectes relacionats amb la seguretat). Visita https://infosec.mozilla.org/guidelines/openssh (anglés) per mes informació.", "global_settings_setting_smtp_allow_ipv6_help": "Permet l'ús de IPv6 per rebre i enviar correus electrònics", "global_settings_setting_smtp_relay_enabled_help": "L'amfitrió de tramesa SMTP que s'ha d'utilitzar per enviar correus electrònics en lloc d'aquesta instància de YunoHost. És útil si esteu en una de les següents situacions: el port 25 està bloquejat per el vostre proveïdor d'accés a internet o proveïdor de servidor privat virtual, si teniu una IP residencial llistada a DUHL, si no podeu configurar el DNS invers o si el servidor no està directament exposat a internet i voleu utilitzar-ne un altre per enviar correus electrònics." -} +} \ No newline at end of file diff --git a/locales/de.json b/locales/de.json index 34d9c4819..15a292542 100644 --- a/locales/de.json +++ b/locales/de.json @@ -39,16 +39,12 @@ "domain_deleted": "Domain wurde gelöscht", "domain_deletion_failed": "Domain {domain}: {error} konnte nicht gelöscht werden", "domain_dyndns_already_subscribed": "Du hast dich schon für eine DynDNS-Domäne registriert", - "domain_dyndns_root_unknown": "Unbekannte DynDNS Hauptdomain", "domain_exists": "Die Domäne existiert bereits", "domain_uninstall_app_first": "Diese Applikationen sind noch auf deiner Domäne installiert; \n{apps}\n\nBitte deinstalliere sie mit dem Befehl 'yunohost app remove the_app_id' oder verschiebe sie mit 'yunohost app change-url the_app_id'", "done": "Erledigt", "downloading": "Wird heruntergeladen...", "dyndns_ip_update_failed": "Konnte die IP-Adresse für DynDNS nicht aktualisieren", "dyndns_ip_updated": "Deine IP-Adresse wurde bei DynDNS aktualisiert", - "dyndns_key_generating": "Generierung des DNS-Schlüssels..., das könnte eine Weile dauern.", - "dyndns_registered": "DynDNS Domain registriert", - "dyndns_registration_failed": "DynDNS Domain konnte nicht registriert werden: {error}", "dyndns_unavailable": "Die Domäne {domain} ist nicht verfügbar.", "extracting": "Wird entpackt...", "field_invalid": "Feld '{}' ist unbekannt", @@ -785,4 +781,4 @@ "dyndns_set_recovery_password_unknown_domain": "Konnte Wiederherstellungspasswort nicht einstellen: Domäne nicht registriert", "dyndns_set_recovery_password_failed": "Konnte Wiederherstellungspasswort nicht einstellen: {error}", "dyndns_set_recovery_password_success": "Wiederherstellungspasswort eingestellt!" -} +} \ No newline at end of file diff --git a/locales/eo.json b/locales/eo.json index b0bdf280b..53077e381 100644 --- a/locales/eo.json +++ b/locales/eo.json @@ -95,7 +95,6 @@ "backup_deleted": "Rezerva forigita", "backup_csv_addition_failed": "Ne povis aldoni dosierojn al sekurkopio en la CSV-dosiero", "dpkg_lock_not_available": "Ĉi tiu komando ne povas funkcii nun ĉar alia programo uzas la seruron de dpkg (la administrilo de paka sistemo)", - "domain_dyndns_root_unknown": "Nekonata radika domajno DynDNS", "field_invalid": "Nevalida kampo '{}'", "log_app_makedefault": "Faru '{}' la defaŭlta apliko", "backup_system_part_failed": "Ne eblis sekurkopi la sistemon de '{part}'", @@ -230,7 +229,6 @@ "user_deleted": "Uzanto forigita", "service_enable_failed": "Ne povis fari la servon '{service}' aŭtomate komenci ĉe la ekkuro.\n\nLastatempaj servaj protokoloj: {logs}", "domains_available": "Haveblaj domajnoj:", - "dyndns_registered": "Registrita domajno DynDNS", "service_description_fail2ban": "Protektas kontraŭ bruta forto kaj aliaj specoj de atakoj de la interreto", "file_does_not_exist": "La dosiero {path} ne ekzistas.", "yunohost_not_installed": "YunoHost ne estas ĝuste instalita. Bonvolu prilabori 'yunohost tools postinstall'", @@ -257,12 +255,10 @@ "user_home_creation_failed": "Ne povis krei dosierujon \"home\" por uzanto", "pattern_backup_archive_name": "Devas esti valida dosiernomo kun maksimume 30 signoj, alfanombraj kaj -_. signoj nur", "restore_cleaning_failed": "Ne eblis purigi la adresaron de provizora restarigo", - "dyndns_registration_failed": "Ne povis registri DynDNS-domajnon: {error}", "user_unknown": "Nekonata uzanto: {user}", "migrations_to_be_ran_manually": "Migrado {id} devas funkcii permane. Bonvolu iri al Iloj → Migradoj en la retpaĝa paĝo, aŭ kuri `yunohost tools migrations run`.", "certmanager_cert_renew_success": "Ni Ĉifru atestilon renovigitan por la domajno '{domain}'", "pattern_domain": "Devas esti valida domajna nomo (t.e. mia-domino.org)", - "dyndns_key_generating": "Generi DNS-ŝlosilon ... Eble daŭros iom da tempo.", "restore_running_app_script": "Restarigi la programon '{app}'…", "migrations_skip_migration": "Salti migradon {id}…", "regenconf_file_removed": "Agordodosiero '{conf}' forigita", diff --git a/locales/es.json b/locales/es.json index 892658fc9..77c837bcf 100644 --- a/locales/es.json +++ b/locales/es.json @@ -44,18 +44,14 @@ "domain_deleted": "Dominio eliminado", "domain_deletion_failed": "No se puede eliminar el dominio {domain}: {error}", "domain_dyndns_already_subscribed": "Ya se ha suscrito a un dominio de DynDNS", - "domain_dyndns_root_unknown": "Dominio raíz de DynDNS desconocido", "domain_exists": "El dominio ya existe", "domain_uninstall_app_first": "Estas aplicaciones siguen instaladas en tu dominio:\n{apps}\n\nPor favor desinstálalas con el comando 'yunohost app remove the_app_id' o cámbialas a otro dominio usando yunohost tools regen-conf {category} --dry-run --with-diff komandoa exekutatuz, eta gomendatutako konfiguraziora bueltatu yunohost tools regen-conf {category} --force erabiliz", @@ -309,7 +306,6 @@ "global_settings_setting_smtp_relay_password": "SMTP relay pasahitza", "global_settings_setting_smtp_relay_port": "SMTP relay ataka", "domain_deleted": "Domeinua ezabatu da", - "domain_dyndns_root_unknown": "Ez da ezagutzen DynDNSaren root domeinua", "domain_exists": "Dagoeneko existitzen da domeinu hau", "domain_registrar_is_not_configured": "Oraindik ez da {domain} domeinurako erregistro-enpresa ezarri.", "domain_dns_push_not_applicable": "Ezin da {domain} domeinurako DNS konfigurazio automatiko funtzioa erabili. DNS erregistroak eskuz ezarri beharko zenituzke gidaorriei erreparatuz: https://yunohost.org/dns_config.", @@ -785,4 +781,4 @@ "dyndns_set_recovery_password_invalid_password": "Berreskuratze-pasahitza ezartzeak huts egin du: pasahitza ez da nahikoa sendoa", "dyndns_set_recovery_password_failed": "Berreskuratze-pasahitza ezartzeak huts egin du: {error}", "dyndns_set_recovery_password_success": "Berreskuratze-pasahitza ezarri da!" -} +} \ No newline at end of file diff --git a/locales/fa.json b/locales/fa.json index fe6310c5d..987564b54 100644 --- a/locales/fa.json +++ b/locales/fa.json @@ -307,12 +307,9 @@ "extracting": "استخراج...", "dyndns_unavailable": "دامنه '{domain}' در دسترس نیست.", "dyndns_domain_not_provided": "ارائه دهنده DynDNS {provider} نمی تواند دامنه {domain} را ارائه دهد.", - "dyndns_registration_failed": "دامنه DynDNS ثبت نشد: {error}", - "dyndns_registered": "دامنه DynDNS ثبت شد", "dyndns_provider_unreachable": "دسترسی به ارائه دهنده DynDNS {provider} امکان پذیر نیست: یا YunoHost شما به درستی به اینترنت متصل نیست یا سرور dynette خراب است.", "dyndns_no_domain_registered": "هیچ دامنه ای با DynDNS ثبت نشده است", "dyndns_key_not_found": "کلید DNS برای دامنه یافت نشد", - "dyndns_key_generating": "ایجاد کلید DNS... ممکن است مدتی طول بکشد.", "dyndns_ip_updated": "IP خود را در DynDNS به روز کرد", "dyndns_ip_update_failed": "آدرس IP را به DynDNS به روز نکرد", "dyndns_could_not_check_available": "بررسی نشد که آیا {domain} در {provider} در دسترس است یا خیر.", @@ -325,7 +322,6 @@ "domain_remove_confirm_apps_removal": "حذف این دامنه برنامه های زیر را حذف می کند:\n{apps}\n\nآیا طمئن هستید که میخواهید انجام دهید؟ [{answers}]", "domain_hostname_failed": "نام میزبان جدید قابل تنظیم نیست. این ممکن است بعداً مشکلی ایجاد کند (ممکن هم هست خوب باشد).", "domain_exists": "دامنه از قبل وجود دارد", - "domain_dyndns_root_unknown": "دامنه ریشه DynDNS ناشناخته", "domain_dyndns_already_subscribed": "شما قبلاً در یک دامنه DynDNS مشترک شده اید", "domain_dns_conf_is_just_a_recommendation": "این دستور پیکربندی * توصیه شده * را به شما نشان می دهد. این وظیفه شماست که مطابق این توصیه ، منطقه DNS خود را در ثبت کننده خود پیکربندی کنید. در واقع پیکربندی DNS را برای شما تنظیم نمی کند.", "domain_deletion_failed": "حذف دامنه {domain} امکان پذیر نیست: {error}", diff --git a/locales/fr.json b/locales/fr.json index 7953e851b..8f66f2967 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -46,18 +46,14 @@ "domain_deleted": "Le domaine a été supprimé", "domain_deletion_failed": "Impossible de supprimer le domaine {domain} : {error}", "domain_dyndns_already_subscribed": "Vous avez déjà souscris à un domaine DynDNS", - "domain_dyndns_root_unknown": "Domaine DynDNS principal inconnu", "domain_exists": "Le domaine existe déjà", "domain_uninstall_app_first": "Ces applications sont toujours installées sur votre domaine :\n{apps}\n\nVeuillez les désinstaller avec la commande 'yunohost app remove nom-de-l-application' ou les déplacer vers un autre domaine avec la commande 'yunohost app change-url nom-de-l-application' avant de procéder à la suppression du domaine", "done": "Terminé", "downloading": "Téléchargement en cours...", "dyndns_ip_update_failed": "Impossible de mettre à jour l'adresse IP sur le domaine DynDNS", "dyndns_ip_updated": "Mise à jour de votre IP pour le domaine DynDNS", - "dyndns_key_generating": "Génération de la clé DNS..., cela peut prendre un certain temps.", "dyndns_key_not_found": "Clé DNS introuvable pour le domaine", "dyndns_no_domain_registered": "Aucun domaine n'a été enregistré avec DynDNS", - "dyndns_registered": "Domaine DynDNS enregistré", - "dyndns_registration_failed": "Impossible d'enregistrer le domaine DynDNS : {error}", "dyndns_unavailable": "Le domaine {domain} est indisponible.", "extracting": "Extraction en cours...", "field_invalid": "Champ incorrect : '{}'", @@ -772,17 +768,17 @@ "ask_dyndns_recovery_password_explain_during_unsubscribe": "Veuillez saisir le mot de passe de récupération pour ce domaine DynDNS.", "dyndns_no_recovery_password": "Aucun mot de passe de récupération n'a été spécifié ! Si vous perdez le contrôle de ce domaine, vous devrez contacter un administrateur de l'équipe YunoHost !", "dyndns_subscribed": "Domaine DynDNS souscrit/enregistré", - "dyndns_subscribe_failed": "Impossible de souscrire/de s'enregistrer au domaine DynDNS : {erreur}", - "dyndns_unsubscribe_failed": "Impossible de se désinscrire du domaine DynDNS : {erreur}", + "dyndns_subscribe_failed": "Impossible de souscrire/de s'enregistrer au domaine DynDNS : {error}", + "dyndns_unsubscribe_failed": "Impossible de se désinscrire du domaine DynDNS : {error}", "dyndns_unsubscribed": "Désinscription du domaine DynDNS", "dyndns_unsubscribe_denied": "Échec de la désinscription du domaine : informations d'identification non valides", "dyndns_unsubscribe_already_unsubscribed": "Le domaine est déjà retiré", "dyndns_set_recovery_password_denied": "Échec de la mise en place du mot de passe de récupération : mot de passe non valide", "dyndns_set_recovery_password_unknown_domain": "Échec de la définition du mot de passe de récupération : le domaine n'est pas enregistré", "dyndns_set_recovery_password_invalid_password": "Échec de la mise en place du mot de passe de récupération : le mot de passe n'est pas assez fort/solide", - "dyndns_set_recovery_password_failed": "Échec de la mise en place du mot de passe de récupération : {erreur}", + "dyndns_set_recovery_password_failed": "Échec de la mise en place du mot de passe de récupération : {error}", "dyndns_set_recovery_password_success": "Mot de passe de récupération changé !", "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." -} +} \ No newline at end of file diff --git a/locales/gl.json b/locales/gl.json index bf7d9212b..1a43b6897 100644 --- a/locales/gl.json +++ b/locales/gl.json @@ -271,12 +271,9 @@ "extracting": "Extraendo...", "dyndns_unavailable": "O dominio '{domain}' non está dispoñible.", "dyndns_domain_not_provided": "O provedor DynDNS {provider} non pode proporcionar o dominio {domain}.", - "dyndns_registration_failed": "Non se rexistrou o dominio DynDNS: {error}", - "dyndns_registered": "Dominio DynDNS rexistrado", "dyndns_provider_unreachable": "Non se puido acadar o provedor DynDNS {provider}: pode que o teu YunoHost non teña conexión a internet ou que o servidor dynette non funcione.", "dyndns_no_domain_registered": "Non hai dominio rexistrado con DynDNS", "dyndns_key_not_found": "Non se atopou a chave DNS para o dominio", - "dyndns_key_generating": "Creando chave DNS... podería demorarse.", "dyndns_ip_updated": "Actualizouse o IP en DynDNS", "dyndns_ip_update_failed": "Non se actualizou o enderezo IP en DynDNS", "dyndns_could_not_check_available": "Non se comprobou se {domain} está dispoñible en {provider}.", @@ -289,7 +286,6 @@ "domain_remove_confirm_apps_removal": "Ao eliminar o dominio tamén vas eliminar estas aplicacións:\n{apps}\n\nTes a certeza de querer facelo? [{answers}]", "domain_hostname_failed": "Non se puido establecer o novo nome de servidor. Esto pode causar problemas máis tarde (tamén podería ser correcto).", "domain_exists": "Xa existe o dominio", - "domain_dyndns_root_unknown": "Dominio raiz DynDNS descoñecido", "domain_dyndns_already_subscribed": "Xa tes unha subscrición a un dominio DynDNS", "domain_dns_conf_is_just_a_recommendation": "Este comando móstrache a configuración *recomendada*. Non realiza a configuración DNS no teu nome. É responsabilidade túa configurar as zonas DNS no servizo da empresa que xestiona o rexistro do dominio seguindo esta recomendación.", "domain_deletion_failed": "Non se puido eliminar o dominio {domain}: {error}", @@ -765,8 +761,8 @@ "app_corrupt_source": "YunoHost foi quen de descargar o recurso '{source_id}' ({url}) para {app}, pero a suma de comprobación para o recurso non concorda. Pode significar que houbo un fallo temporal na conexión do servidor á rede, OU que o recurso sufreu, dalgún xeito, cambios desde que os desenvolvedores orixinais (ou unha terceira parte maliciosa?), o equipo de YunoHost ten que investigar e actualizar o manifesto da app para mostrar este cambio.\n Suma sha256 agardada: {expected_sha256} \n Suma sha256 do descargado: {computed_sha256}\n Tamaño do ficheiro: {size}", "group_mailalias_add": "Vaise engadir o alias de correo '{mail}' ao grupo '{group}'", "group_mailalias_remove": "Vaise quitar o alias de email '{mail}' do grupo '{group}'", - "group_user_add": "Vaise engadir a '{user}' ao grupo '{grupo}'", - "group_user_remove": "Vaise quitar a '{user}' do grupo '{grupo}'", + "group_user_add": "Vaise engadir a '{user}' ao grupo '{group}'", + "group_user_remove": "Vaise quitar a '{user}' do grupo '{group}'", "ask_dyndns_recovery_password_explain": "Elixe un contrasinal de recuperación para o teu dominio DynDNS, por se precisas restablecelo no futuro.", "ask_dyndns_recovery_password": "Contrasinal de recuperación DynDNS", "ask_dyndns_recovery_password_explain_during_unsubscribe": "Escribe o contrasinal de recuperación para este dominio DynDNS.", @@ -785,4 +781,4 @@ "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." -} +} \ No newline at end of file diff --git a/locales/id.json b/locales/id.json index 2cc7c56dc..042e681c2 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 43a442621..033de5b79 100644 --- a/locales/it.json +++ b/locales/it.json @@ -58,7 +58,6 @@ "domain_deleted": "Dominio cancellato", "domain_deletion_failed": "Impossibile cancellare il dominio {domain}: {error}", "domain_dyndns_already_subscribed": "Hai già sottoscritto un dominio DynDNS", - "domain_dyndns_root_unknown": "Dominio radice DynDNS sconosciuto", "domain_hostname_failed": "Impossibile impostare il nuovo hostname. Potrebbe causare problemi in futuro (o anche no).", "domain_uninstall_app_first": "Queste applicazioni sono già installate su questo dominio:\n{apps}\n\nDisinstallale eseguendo 'yunohost app remove app_id' o spostale in un altro dominio eseguendo 'yunohost app change-url app_id' prima di procedere alla cancellazione del dominio", "done": "Terminato", @@ -66,11 +65,8 @@ "downloading": "Scaricamento…", "dyndns_ip_update_failed": "Impossibile aggiornare l'indirizzo IP in DynDNS", "dyndns_ip_updated": "Il tuo indirizzo IP è stato aggiornato su DynDNS", - "dyndns_key_generating": "Generando la chiave DNS... Potrebbe richiedere del tempo.", "dyndns_key_not_found": "La chiave DNS non è stata trovata per il dominio", "dyndns_no_domain_registered": "Nessuno dominio registrato con DynDNS", - "dyndns_registered": "Dominio DynDNS registrato", - "dyndns_registration_failed": "Non è possibile registrare il dominio DynDNS: {error}", "dyndns_unavailable": "Il dominio {domain} non disponibile.", "extracting": "Estrazione...", "field_invalid": "Campo '{}' non valido", @@ -639,4 +635,4 @@ "global_settings_setting_smtp_relay_enabled_help": "Utilizza SMTP relay per inviare mail al posto di questa instanza yunohost. Utile se sei in una di queste situazioni: la tua porta 25 è bloccata dal tuo provider ISP o VPS; hai un IP residenziale listato su DUHL; non sei puoi configurare il DNS inverso; oppure questo server non è direttamente esposto a Internet e vuoi usarne un'altro per spedire email.", "domain_config_default_app": "Applicazione di default", "app_change_url_failed": "Non è possibile cambiare l'URL per {app}:{error}" -} +} \ No newline at end of file diff --git a/locales/ja.json b/locales/ja.json index 479c8c07e..afc5510ff 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -86,7 +86,6 @@ "diagnosis_services_conf_broken": "サービス{service}の構成が壊れています!", "diagnosis_services_running": "サービス{service}が実行されています!", "diagnosis_sshd_config_inconsistent": "SSHポートが/etc/ssh/sshd_config で手動変更されたようです。YunoHost 4.2以降、手動で構成を編集する必要がないように、新しいグローバル設定'security.ssh.ssh_port'を使用できます。", - "diagnosis_swap_none": "システムにはスワップが {total} しかありません。システムのメモリ不足の状況を回避するために、少なくとも {recommended} のスワップを用意することを検討してください。", "diagnosis_swap_notsomuch": "システムにはスワップが {total} しかありません。システムのメモリ不足の状況を回避するために、少なくとも {recommended} のスワップを用意することを検討してください。", "diagnosis_swap_ok": "システムには {total} のスワップがあります!", "domain_cert_gen_failed": "証明書を生成できませんでした", @@ -101,7 +100,6 @@ "domain_dns_push_already_up_to_date": "レコードはすでに最新であり、何もする必要はありません。", "domain_dns_push_failed": "DNS レコードの更新が失敗しました。", "domain_dyndns_already_subscribed": "すでに DynDNS ドメインにサブスクライブしています", - "dyndns_key_generating": "DNS キーを生成しています...しばらく時間がかかる場合があります。", "dyndns_key_not_found": "ドメインの DNS キーが見つかりません", "firewall_reload_failed": "ファイアウォールをリロードできませんでした", "global_settings_setting_postfix_compatibility_help": "Postfix サーバーの互換性とセキュリティにはトレードオフがあります。暗号(およびその他のセキュリティ関連の側面)に影響します", @@ -122,7 +120,6 @@ "hook_exec_not_terminated": "スクリプトが正しく終了しませんでした: {path}", "log_app_install": "‘{}’ アプリをインストールする", "log_user_permission_update": "アクセス許可 '{}' のアクセスを更新する", - "log_user_update": "ユーザー ‘{name}’ を更新する", "mail_alias_remove_failed": "電子メール エイリアス '{mail}' を削除できませんでした", "mail_domain_unknown": "ドメイン '{domain}' の電子メール アドレスが無効です。このサーバーによって管理されているドメインを使用してください。", "mail_forward_remove_failed": "電子メール転送 '{mail}' を削除できませんでした", @@ -449,7 +446,6 @@ "domain_dns_registrar_not_supported": "YunoHost は、このドメインを処理するレジストラを自動的に検出できませんでした。DNS レコードは、https://yunohost.org/dns のドキュメントに従って手動で構成する必要があります。", "domain_dns_registrar_supported": "YunoHost は、このドメインがレジストラ **{registrar}** によって処理されていることを自動的に検出しました。必要に応じて適切なAPI資格情報を提供すると、YunoHostはこのDNSゾーンを自動的に構成します。API 資格情報の取得方法に関するドキュメントは、https://yunohost.org/registar_api_{registrar} ページにあります。(https://yunohost.org/dns のドキュメントに従ってDNSレコードを手動で構成することもできます)", "domain_dns_registrar_yunohost": "このドメインは nohost.me / nohost.st / ynh.fr であるため、DNS構成は特別な構成なしでYunoHostによって自動的に処理されます。(‘yunohost dyndns update’ コマンドを参照)", - "domain_dyndns_root_unknown": "不明な DynDNS ルートドメイン", "domain_exists": "この名前のバックアップアーカイブはすでに存在します", "domain_hostname_failed": "新しいホスト名を設定できません。これにより、後で問題が発生する可能性があります(問題ない可能性もあります)。", "domain_registrar_is_not_configured": "レジストラーは、ドメイン {domain} 用にまだ構成されていません。", @@ -466,8 +462,6 @@ "dyndns_ip_updated": "DynDNSでIPを更新しました", "dyndns_no_domain_registered": "DynDNS に登録されているドメインがありません", "dyndns_provider_unreachable": "DynDNSプロバイダー {provider} に到達できません: YunoHostがインターネットに正しく接続されていないか、dynetteサーバーがダウンしています。", - "dyndns_registered": "登録されている DynDNS ドメイン", - "dyndns_registration_failed": "DynDNS ドメインを登録できませんでした: {error}", "dyndns_unavailable": "ドメイン '{domain}' は使用できません。", "dyndns_domain_not_provided": "DynDNS プロバイダー{provider} はドメイン{domain}を提供できません。", "extracting": "抽出中…", @@ -548,7 +542,6 @@ "log_app_config_set": "‘{}’ アプリに設定を適用する", "log_app_makedefault": "‘{}’ をデフォルトのアプリにする", "log_app_remove": "'{}'アプリを削除する", - "log_app_upgrade": "アプリ '{app}' をアップグレードする", "log_available_on_yunopaste": "このログは、{url}", "log_backup_create": "バックアップ作成できませんでした", "log_backup_restore_app": "バックアップアーカイブから'{}'を復元する", @@ -767,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/nb_NO.json b/locales/nb_NO.json index 8cacaff6d..353b50833 100644 --- a/locales/nb_NO.json +++ b/locales/nb_NO.json @@ -76,13 +76,9 @@ "domain_cert_gen_failed": "Kunne ikke opprette sertifikat", "domain_created": "Domene opprettet", "domain_creation_failed": "Kunne ikke opprette domene", - "domain_dyndns_root_unknown": "Ukjent DynDNS-rotdomene", "dyndns_ip_update_failed": "Kunne ikke oppdatere IP-adresse til DynDNS", "dyndns_ip_updated": "Oppdaterte din IP på DynDNS", - "dyndns_key_generating": "Oppretter DNS-nøkkel… Dette kan ta en stund.", "dyndns_no_domain_registered": "Inget domene registrert med DynDNS", - "dyndns_registered": "DynDNS-domene registrert", - "dyndns_registration_failed": "Kunne ikke registrere DynDNS-domene: {error}", "log_backup_restore_app": "Gjenopprett '{}' fra sikkerhetskopiarkiv", "log_remove_on_failed_install": "Fjern '{}' etter mislykket installasjon", "log_selfsigned_cert_install": "Installer selvsignert sertifikat på '{}'-domenet", diff --git a/locales/nl.json b/locales/nl.json index bcfb76acd..8698494d5 100644 --- a/locales/nl.json +++ b/locales/nl.json @@ -25,14 +25,12 @@ "domain_deleted": "Domein succesvol verwijderd", "domain_deletion_failed": "Kan domein niet verwijderen", "domain_dyndns_already_subscribed": "U heeft reeds een domein bij DynDNS geregistreerd", - "domain_dyndns_root_unknown": "Onbekend DynDNS root domein", "domain_exists": "Domein bestaat al", "domain_uninstall_app_first": "Deze applicaties zijn nog steeds op je domein geïnstalleerd:\n{apps}\n\nVerwijder ze met 'yunohost app remove the_app_id' of verplaats ze naar een ander domein met 'yunohost app change-url the_app_id' voordat je doorgaat met het verwijderen van het domein", "done": "Voltooid", "downloading": "Downloaden...", "dyndns_ip_update_failed": "Kan het IP adres niet updaten bij DynDNS", "dyndns_ip_updated": "IP adres is aangepast bij DynDNS", - "dyndns_key_generating": "DNS sleutel word aangemaakt, wacht een moment...", "dyndns_unavailable": "Domein '{domain}' is niet beschikbaar.", "extracting": "Uitpakken...", "installation_complete": "Installatie voltooid", diff --git a/locales/oc.json b/locales/oc.json index 1c13fc6b5..d6b2cacab 100644 --- a/locales/oc.json +++ b/locales/oc.json @@ -98,7 +98,6 @@ "domain_creation_failed": "Creacion del domeni {domain}: impossibla", "domain_deleted": "Domeni suprimit", "domain_deletion_failed": "Supression impossibla del domeni {domain}: {error}", - "domain_dyndns_root_unknown": "Domeni DynDNS màger desconegut", "domain_exists": "Lo domeni existís ja", "domain_hostname_failed": "Fracàs de la creacion d’un nòu nom d’òst. Aquò poirà provocar de problèmas mai tard (mas es pas segur… benlèu que coparà pas res).", "domains_available": "Domenis disponibles :", @@ -106,11 +105,8 @@ "downloading": "Telecargament…", "dyndns_ip_update_failed": "Impossible d’actualizar l’adreça IP sul domeni DynDNS", "dyndns_ip_updated": "Vòstra adreça IP actualizada pel domeni DynDNS", - "dyndns_key_generating": "La clau DNS es a se generar… pòt trigar una estona.", "dyndns_key_not_found": "Clau DNS introbabla pel domeni", "dyndns_no_domain_registered": "Cap de domeni pas enregistrat amb DynDNS", - "dyndns_registered": "Domeni DynDNS enregistrat", - "dyndns_registration_failed": "Enregistrament del domeni DynDNS impossible : {error}", "dyndns_domain_not_provided": "Lo provesidor DynDNS {provider} pòt pas fornir lo domeni {domain}.", "dyndns_unavailable": "Lo domeni {domain} es pas disponible.", "extracting": "Extraccion…", diff --git a/locales/pl.json b/locales/pl.json index 983b58f15..781712686 100644 --- a/locales/pl.json +++ b/locales/pl.json @@ -294,7 +294,7 @@ "diagnosis_dns_specialusedomain": "Domena {domain} opiera się na domenie najwyższego poziomu specjalnego przeznaczenia (TLD), takiej jak .local lub .test i dlatego nie oczekuje się, że będzie zawierać rzeczywiste rekordy DNS.", "danger": "Zagrożeniæ:", "config_validate_url": "Powinien być poprawnym adresem internetowym (URL)", - "diagnosis_domain_expires_in": "Domena {domain} wygasa za {day} dni.", + "diagnosis_domain_expires_in": "Domena {domain} wygasa za {days} dni.", "diagnosis_cant_run_because_of_dep": "Nie można przeprowadzić diagnostyki dla kategorii {category}, ponieważ występują poważne problemy związane z kategorią {dep}.", "diagnosis_everything_ok": "Wszystko wygląda dobrze dla kategorii {category}!", "diagnosis_found_errors": "Znaleziono istotne problemy związane z kategorią: {errors}!", @@ -307,7 +307,7 @@ "diagnosis_domain_not_found_details": "Domena {domain} nie istnieje w bazie WHOIS lub wygasła!", "custom_app_url_required": "Aby zaktualizować aplikację niestandardową {app}, musisz podać adres URL", "diagnosis_description_ports": "Ujawnione porty", - "diagnosis_basesystem_ynh_single_version": "Wersja {pakietu}: {wersja} ({repo})", + "diagnosis_basesystem_ynh_single_version": "Wersja {package}: {version} ({repo})", "diagnosis_failed_for_category": "Diagnostyka nie powiodła się dla kategorii „{category}”: {error}", "diagnosis_basesystem_hardware_model": "Model serwera to {model}", "service_enabled": "Usługa '{service}' będzie teraz automatycznie uruchamiana podczas uruchamiania systemu.", @@ -326,4 +326,4 @@ "diagnosis_high_number_auth_failures": "Ostatnio wystąpiła podejrzanie duża liczba błędów uwierzytelniania. Możesz upewnić się, że Fail2ban działa i jest poprawnie skonfigurowany, lub użyj niestandardowego portu dla SSH, jak wyjaśniono w https://yunohost.org/security.", "service_remove_failed": "Nie można usunąć usługi '{service}", "diagnosis_apps_issue": "Znaleziono problem z aplikacją {app}" -} +} \ No newline at end of file diff --git a/locales/pt.json b/locales/pt.json index 0aa6b8223..f534caf67 100644 --- a/locales/pt.json +++ b/locales/pt.json @@ -23,16 +23,12 @@ "domain_deleted": "Domínio removido com êxito", "domain_deletion_failed": "Não foi possível eliminar o domínio {domain}: {error}", "domain_dyndns_already_subscribed": "Já subscreveu um domínio DynDNS", - "domain_dyndns_root_unknown": "Domínio root (administrador) DynDNS desconhecido", "domain_exists": "O domínio já existe", "domain_uninstall_app_first": "Existem uma ou mais aplicações instaladas neste domínio. Por favor desinstale-as antes de proceder com a remoção do domínio.", "done": "Concluído.", "downloading": "Transferência em curso...", "dyndns_ip_update_failed": "Não foi possível atualizar o endereço IP para DynDNS", "dyndns_ip_updated": "Endereço IP atualizado com êxito para DynDNS", - "dyndns_key_generating": "A chave DNS está a ser gerada, isto pode demorar um pouco...", - "dyndns_registered": "Dom+inio DynDNS registado com êxito", - "dyndns_registration_failed": "Não foi possível registar o domínio DynDNS: {error}", "dyndns_unavailable": "O domínio '{domain}' não está disponível.", "extracting": "Extração em curso...", "field_invalid": "Campo inválido '{}'", diff --git a/locales/ru.json b/locales/ru.json index a9c9da3f1..85cfa2452 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -329,4 +329,4 @@ "admins": "Администраторы", "all_users": "Все пользователи YunoHost", "app_action_failed": "Не удалось выполнить действие {action} для приложения {app}" -} +} \ No newline at end of file diff --git a/locales/sk.json b/locales/sk.json index 34332c981..7079fad9f 100644 --- a/locales/sk.json +++ b/locales/sk.json @@ -265,4 +265,4 @@ "service_description_rspamd": "Filtruje spam a iné funkcie týkajúce sa e-mailu", "log_letsencrypt_cert_renew": "Obnoviť '{}' certifikát Let's Encrypt", "domain_config_cert_summary_selfsigned": "UPOZORNENIE: Aktuálny certifikát je vlastnoručne podpísaný. Prehliadače budú návštevníkom zobrazovať strašidelné varovanie!" -} +} \ No newline at end of file diff --git a/locales/tr.json b/locales/tr.json index 3c15591f3..34bd73af3 100644 --- a/locales/tr.json +++ b/locales/tr.json @@ -21,4 +21,4 @@ "app_argument_required": "'{name}' değeri gerekli", "app_argument_invalid": "'{name}': {error} için geçerli bir değer giriniz", "app_argument_password_no_default": "'{name}': çözümlenirken bir hata meydana geldi. Parola argümanı güvenlik nedeniyle varsayılan değer alamaz" -} +} \ No newline at end of file diff --git a/locales/uk.json b/locales/uk.json index 07cbfe6da..7470e09e3 100644 --- a/locales/uk.json +++ b/locales/uk.json @@ -247,12 +247,9 @@ "extracting": "Витягнення...", "dyndns_unavailable": "Домен '{domain}' недоступний.", "dyndns_domain_not_provided": "DynDNS провайдер {provider} не може надати домен {domain}.", - "dyndns_registration_failed": "Не вдалося зареєструвати домен DynDNS: {error}", - "dyndns_registered": "Домен DynDNS зареєстровано", "dyndns_provider_unreachable": "Неможливо зв'язатися з провайдером DynDNS {provider}: або ваш YunoHost неправильно під'єднано до Інтернету, або сервер dynette не працює.", "dyndns_no_domain_registered": "Домен не зареєстровано в DynDNS", "dyndns_key_not_found": "DNS-ключ для домену не знайдено", - "dyndns_key_generating": "Утворення DNS-ключа... Це може зайняти деякий час.", "dyndns_ip_updated": "Вашу IP-адресу в DynDNS оновлено", "dyndns_ip_update_failed": "Не вдалося оновити IP-адресу в DynDNS", "dyndns_could_not_check_available": "Не вдалося перевірити, чи {domain} доступний у {provider}.", @@ -265,7 +262,6 @@ "domain_remove_confirm_apps_removal": "Вилучення цього домену призведе до вилучення таких застосунків:\n{apps}\n\nВи впевнені, що хочете це зробити? [{answers}]", "domain_hostname_failed": "Неможливо встановити нову назву хоста. Це може викликати проблеми в подальшому (можливо, все буде в порядку).", "domain_exists": "Цей домен уже існує", - "domain_dyndns_root_unknown": "Невідомий кореневий домен DynDNS", "domain_dyndns_already_subscribed": "Ви вже підписалися на домен DynDNS", "domain_dns_conf_is_just_a_recommendation": "Ця команда показує *рекомендовану* конфігурацію. Насправді вона не встановлює конфігурацію DNS для вас. Ви самі повинні налаштувати свою зону DNS у реєстратора відповідно до цих рекомендацій.", "domain_deletion_failed": "Неможливо видалити домен {domain}: {error}", @@ -767,4 +763,4 @@ "group_user_remove": "Користувача '{user}' буде вилучено з групи '{group}'", "app_corrupt_source": "YunoHost зміг завантажити ресурс '{source_id}' ({url}) для {app}, але він не відповідає очікуваній контрольній сумі. Це може означати, що на вашому сервері стався тимчасовий збій мережі, АБО ресурс був якимось чином змінений висхідним супровідником (або зловмисником?), і пакувальникам YunoHost потрібно дослідити і оновити маніфест застосунку, щоб відобразити цю зміну.\n Очікувана контрольна сума sha256: {expected_sha256}\n Обчислена контрольна сума sha256: {computed_sha256}\n Розмір завантаженого файлу: {size}", "app_failed_to_download_asset": "Не вдалося завантажити ресурс '{source_id}' ({url}) для {app}: {out}" -} +} \ No newline at end of file diff --git a/locales/zh_Hans.json b/locales/zh_Hans.json index 18c6430c0..633ceeaf4 100644 --- a/locales/zh_Hans.json +++ b/locales/zh_Hans.json @@ -304,12 +304,9 @@ "extracting": "提取中...", "dyndns_unavailable": "域'{domain}' 不可用。", "dyndns_domain_not_provided": "DynDNS提供者 {provider} 无法提供域 {domain}。", - "dyndns_registration_failed": "无法注册DynDNS域: {error}", - "dyndns_registered": "DynDNS域已注册", "dyndns_provider_unreachable": "无法联系DynDNS提供者 {provider}: 您的YunoHost未正确连接到Internet或dynette服务器已关闭。", "dyndns_no_domain_registered": "没有在DynDNS中注册的域", "dyndns_key_not_found": "找不到该域的DNS密钥", - "dyndns_key_generating": "正在生成DNS密钥...可能需要一段时间。", "dyndns_ip_updated": "在DynDNS上更新了您的IP", "dyndns_ip_update_failed": "无法将IP地址更新到DynDNS", "dyndns_could_not_check_available": "无法检查{provider}上是否可用 {domain}。", @@ -322,7 +319,6 @@ "domain_remove_confirm_apps_removal": "删除该域将删除这些应用:\n{apps}\n\n您确定要这样做吗? [{answers}]", "domain_hostname_failed": "无法设置新的主机名。稍后可能会引起问题(可能没问题)。", "domain_exists": "该域已存在", - "domain_dyndns_root_unknown": "未知的DynDNS根域", "domain_dyndns_already_subscribed": "您已经订阅了DynDNS域", "domain_dns_conf_is_just_a_recommendation": "本页向您展示了*推荐的*配置。它并*不*为您配置DNS。您有责任根据该建议在您的DNS注册商处配置您的DNS区域。", "domain_deletion_failed": "无法删除域 {domain}: {error}", From 4f9e69df01ce0d21407a2061f2cc02199023565d Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Fri, 12 Jan 2024 22:05:32 +0000 Subject: [PATCH 10/13] [CI] Reformat / remove stale translated strings --- locales/en.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/locales/en.json b/locales/en.json index 7755147cc..183a16455 100644 --- a/locales/en.json +++ b/locales/en.json @@ -84,16 +84,16 @@ "apps_failed_to_upgrade_line": "\n * {app_id} (to see corresponding log do a 'yunohost log show {operation_logger_name}')", "ask_admin_fullname": "Admin full name", "ask_admin_username": "Admin username", + "ask_dyndns_recovery_password": "DynDNS recovery password", + "ask_dyndns_recovery_password_explain": "Please pick a recovery password for your DynDNS domain, in case you need to reset it later.", + "ask_dyndns_recovery_password_explain_during_unsubscribe": "Please enter the recovery password for this DynDNS domain.", + "ask_dyndns_recovery_password_explain_unavailable": "This DynDNS domain is already registered. If you are the person who originally registered this domain, you may enter the recovery password to reclaim this domain.", "ask_fullname": "Full name", "ask_main_domain": "Main domain", "ask_new_admin_password": "New administration password", "ask_new_domain": "New domain", "ask_new_path": "New path", "ask_password": "Password", - "ask_dyndns_recovery_password_explain": "Please pick a recovery password for your DynDNS domain, in case you need to reset it later.", - "ask_dyndns_recovery_password_explain_unavailable": "This DynDNS domain is already registered. If you are the person who originally registered this domain, you may enter the recovery password to reclaim this domain.", - "ask_dyndns_recovery_password": "DynDNS recovery password", - "ask_dyndns_recovery_password_explain_during_unsubscribe": "Please enter the recovery password for this DynDNS domain.", "ask_user_domain": "Domain to use for the user's email address and XMPP account", "backup_abstract_method": "This backup method has yet to be implemented", "backup_actually_backuping": "Creating a backup archive from the collected files...", @@ -405,19 +405,19 @@ "dyndns_no_domain_registered": "No domain registered with DynDNS", "dyndns_no_recovery_password": "No recovery password specified! In case you loose control of this domain, you will need to contact an administrator in the YunoHost team!", "dyndns_provider_unreachable": "Unable to reach DynDNS provider {provider}: either your YunoHost is not correctly connected to the internet or the dynette server is down.", - "dyndns_subscribed": "DynDNS domain subscribed", + "dyndns_set_recovery_password_denied": "Failed to set recovery password: invalid key", + "dyndns_set_recovery_password_failed": "Failed to set recovery password: {error}", + "dyndns_set_recovery_password_invalid_password": "Failed to set recovery password: password is not strong enough", + "dyndns_set_recovery_password_success": "Recovery password set!", + "dyndns_set_recovery_password_unknown_domain": "Failed to set recovery password: domain not registered", "dyndns_subscribe_failed": "Could not subscribe DynDNS domain: {error}", + "dyndns_subscribed": "DynDNS domain subscribed", "dyndns_too_many_requests": "YunoHost's dyndns service received too many requests from you, wait 1 hour or so before trying again.", + "dyndns_unavailable": "The domain '{domain}' is unavailable.", + "dyndns_unsubscribe_already_unsubscribed": "Domain is already unsubscribed", + "dyndns_unsubscribe_denied": "Failed to unsubscribe domain: invalid credentials", "dyndns_unsubscribe_failed": "Could not unsubscribe DynDNS domain: {error}", "dyndns_unsubscribed": "DynDNS domain unsubscribed", - "dyndns_unsubscribe_denied": "Failed to unsubscribe domain: invalid credentials", - "dyndns_unsubscribe_already_unsubscribed": "Domain is already unsubscribed", - "dyndns_set_recovery_password_denied": "Failed to set recovery password: invalid key", - "dyndns_set_recovery_password_unknown_domain": "Failed to set recovery password: domain not registered", - "dyndns_set_recovery_password_invalid_password": "Failed to set recovery password: password is not strong enough", - "dyndns_set_recovery_password_failed": "Failed to set recovery password: {error}", - "dyndns_set_recovery_password_success": "Recovery password set!", - "dyndns_unavailable": "The domain '{domain}' is unavailable.", "extracting": "Extracting...", "field_invalid": "Invalid field '{}'", "file_does_not_exist": "The file {path} does not exist.", @@ -781,4 +781,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 7a819d33aeeb845ee85a6f36eaa0104c8323ac9c Mon Sep 17 00:00:00 2001 From: "ljf (zamentur)" Date: Sat, 13 Jan 2024 11:04:58 +0100 Subject: [PATCH 11/13] [enh] Add help on ssh port --- locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/locales/en.json b/locales/en.json index 7755147cc..7d9994b2a 100644 --- a/locales/en.json +++ b/locales/en.json @@ -460,6 +460,7 @@ "global_settings_setting_ssh_password_authentication": "Password authentication", "global_settings_setting_ssh_password_authentication_help": "Allow password authentication for SSH", "global_settings_setting_ssh_port": "SSH port", + "global_settings_setting_ssh_port_help": "A port lower than 1024 is preferred to prevent usurpation attempts by non-administrator services on the remote machine. You should also avoid using a port already in use, such as 80 or 443.", "global_settings_setting_ssowat_panel_overlay_enabled": "Enable the small 'YunoHost' portal shortcut square on apps", "global_settings_setting_user_strength": "User password strength requirements", "global_settings_setting_user_strength_help": "These requirements are only enforced when initializing or changing the password", From 8ca59703c5c6b5975a3a90387f939a80bbf2d736 Mon Sep 17 00:00:00 2001 From: tituspijean Date: Sat, 13 Jan 2024 12:11:05 +0100 Subject: [PATCH 12/13] Improve basic-space-cleanup shell calls and documentation --- src/tools.py | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/src/tools.py b/src/tools.py index a2fd9d82e..cd415c5a3 100644 --- a/src/tools.py +++ b/src/tools.py @@ -628,31 +628,13 @@ def tools_basic_space_cleanup(): Basic space cleanup. apt autoremove - apt clean - archived logs removal + apt autoclean journalctl vacuum (leaves 50M of logs) + archived logs removal """ - subprocess.run( - [ - "/bin/bash", - "-c", - "apt autoremove && apt autoclean", - ] - ) - subprocess.run( - [ - "/bin/bash", - "-c", - "journalctl --vacuum-size=50M", - ] - ) - subprocess.run( - [ - "/bin/bash", - "-c", - "rm /var/log/*.gz && rm /var/log/*/*.gz && rm /var/log/*.? && rm /var/log/*/*.?", - ] - ) + subprocess.run("apt autoremove && apt autoclean", shell=True) + subprocess.run("journalctl --vacuum-size=50M", shell=True) + subprocess.run("rm /var/log/*.gz && rm /var/log/*/*.gz && rm /var/log/*.? && rm /var/log/*/*.?", shell=True) # ############################################ # # # From a44ea1414163c3fd9f36a3a35a48c385e3e495c6 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sat, 13 Jan 2024 19:26:47 +0100 Subject: [PATCH 13/13] Update copyright headers to 2024 using maintenance/update_copyright_headers.sh --- src/__init__.py | 2 +- src/app.py | 2 +- src/app_catalog.py | 2 +- src/authenticators/ldap_admin.py | 2 +- src/backup.py | 2 +- src/certificate.py | 2 +- src/diagnosers/00-basesystem.py | 2 +- src/diagnosers/10-ip.py | 2 +- src/diagnosers/12-dnsrecords.py | 2 +- src/diagnosers/14-ports.py | 2 +- src/diagnosers/21-web.py | 2 +- src/diagnosers/24-mail.py | 2 +- src/diagnosers/30-services.py | 2 +- src/diagnosers/50-systemresources.py | 2 +- src/diagnosers/70-regenconf.py | 2 +- src/diagnosers/80-apps.py | 2 +- src/diagnosers/__init__.py | 2 +- src/diagnosis.py | 2 +- src/dns.py | 2 +- src/domain.py | 2 +- src/dyndns.py | 2 +- src/firewall.py | 2 +- src/hook.py | 2 +- src/log.py | 2 +- src/permission.py | 2 +- src/regenconf.py | 2 +- src/service.py | 2 +- src/settings.py | 2 +- src/ssh.py | 2 +- src/tools.py | 2 +- src/user.py | 2 +- src/utils/__init__.py | 2 +- src/utils/configpanel.py | 2 +- src/utils/dns.py | 2 +- src/utils/error.py | 2 +- src/utils/form.py | 2 +- src/utils/i18n.py | 2 +- src/utils/ldap.py | 2 +- src/utils/legacy.py | 2 +- src/utils/network.py | 2 +- src/utils/password.py | 2 +- src/utils/resources.py | 2 +- src/utils/system.py | 2 +- src/utils/yunopaste.py | 2 +- 44 files changed, 44 insertions(+), 44 deletions(-) diff --git a/src/__init__.py b/src/__init__.py index d13d61089..8bb192e6a 100644 --- a/src/__init__.py +++ b/src/__init__.py @@ -1,6 +1,6 @@ #! /usr/bin/python # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/app.py b/src/app.py index ae550ab31..31242fe72 100644 --- a/src/app.py +++ b/src/app.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/app_catalog.py b/src/app_catalog.py index 9fb662845..00419be6a 100644 --- a/src/app_catalog.py +++ b/src/app_catalog.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/authenticators/ldap_admin.py b/src/authenticators/ldap_admin.py index b1b550bc0..b5f9eed07 100644 --- a/src/authenticators/ldap_admin.py +++ b/src/authenticators/ldap_admin.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/backup.py b/src/backup.py index cdd9eb415..30b6260b9 100644 --- a/src/backup.py +++ b/src/backup.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/certificate.py b/src/certificate.py index 76d3f32b7..db54de11e 100644 --- a/src/certificate.py +++ b/src/certificate.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/diagnosers/00-basesystem.py b/src/diagnosers/00-basesystem.py index 336271bd1..c09f301e6 100644 --- a/src/diagnosers/00-basesystem.py +++ b/src/diagnosers/00-basesystem.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/diagnosers/10-ip.py b/src/diagnosers/10-ip.py index 4f9cd9708..015ae8e46 100644 --- a/src/diagnosers/10-ip.py +++ b/src/diagnosers/10-ip.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/diagnosers/12-dnsrecords.py b/src/diagnosers/12-dnsrecords.py index 19becb753..fa77f8c32 100644 --- a/src/diagnosers/12-dnsrecords.py +++ b/src/diagnosers/12-dnsrecords.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/diagnosers/14-ports.py b/src/diagnosers/14-ports.py index 34c512f14..b849273f2 100644 --- a/src/diagnosers/14-ports.py +++ b/src/diagnosers/14-ports.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/diagnosers/21-web.py b/src/diagnosers/21-web.py index cc6edd7dc..02b705294 100644 --- a/src/diagnosers/21-web.py +++ b/src/diagnosers/21-web.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/diagnosers/24-mail.py b/src/diagnosers/24-mail.py index c7fe9d04b..4c27af90d 100644 --- a/src/diagnosers/24-mail.py +++ b/src/diagnosers/24-mail.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/diagnosers/30-services.py b/src/diagnosers/30-services.py index 42ea9d18f..ee63f4559 100644 --- a/src/diagnosers/30-services.py +++ b/src/diagnosers/30-services.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/diagnosers/50-systemresources.py b/src/diagnosers/50-systemresources.py index 096c3483f..536d8fd71 100644 --- a/src/diagnosers/50-systemresources.py +++ b/src/diagnosers/50-systemresources.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/diagnosers/70-regenconf.py b/src/diagnosers/70-regenconf.py index 65195aac5..c6317d4fc 100644 --- a/src/diagnosers/70-regenconf.py +++ b/src/diagnosers/70-regenconf.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/diagnosers/80-apps.py b/src/diagnosers/80-apps.py index 93cefeaaf..3c336eae6 100644 --- a/src/diagnosers/80-apps.py +++ b/src/diagnosers/80-apps.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/diagnosers/__init__.py b/src/diagnosers/__init__.py index 7c1e7b0cd..86d229abb 100644 --- a/src/diagnosers/__init__.py +++ b/src/diagnosers/__init__.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/diagnosis.py b/src/diagnosis.py index 02047c001..9e5d4235d 100644 --- a/src/diagnosis.py +++ b/src/diagnosis.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/dns.py b/src/dns.py index 1ec88a5c0..458deae7e 100644 --- a/src/dns.py +++ b/src/dns.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/domain.py b/src/domain.py index 1914cabc5..cbaf3b27a 100644 --- a/src/domain.py +++ b/src/domain.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/dyndns.py b/src/dyndns.py index 387f33930..e48850f72 100644 --- a/src/dyndns.py +++ b/src/dyndns.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/firewall.py b/src/firewall.py index 2ba083312..3ed33da61 100644 --- a/src/firewall.py +++ b/src/firewall.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/hook.py b/src/hook.py index 5f976adf0..bf161fcdc 100644 --- a/src/hook.py +++ b/src/hook.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/log.py b/src/log.py index 5ab918e76..856a92294 100644 --- a/src/log.py +++ b/src/log.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/permission.py b/src/permission.py index 72975561f..b416b05ab 100644 --- a/src/permission.py +++ b/src/permission.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/regenconf.py b/src/regenconf.py index 74bbdb17c..03017acf2 100644 --- a/src/regenconf.py +++ b/src/regenconf.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/service.py b/src/service.py index 47bc1903a..5e49dfc8a 100644 --- a/src/service.py +++ b/src/service.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/settings.py b/src/settings.py index 6690ab3fd..abe1a8f13 100644 --- a/src/settings.py +++ b/src/settings.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/ssh.py b/src/ssh.py index 8526e278f..bd1132663 100644 --- a/src/ssh.py +++ b/src/ssh.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/tools.py b/src/tools.py index 088400067..84f3b8e15 100644 --- a/src/tools.py +++ b/src/tools.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/user.py b/src/user.py index 7af39e185..1b1b75261 100644 --- a/src/user.py +++ b/src/user.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/utils/__init__.py b/src/utils/__init__.py index 7c1e7b0cd..86d229abb 100644 --- a/src/utils/__init__.py +++ b/src/utils/__init__.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/utils/configpanel.py b/src/utils/configpanel.py index aa3a02411..7e72969ab 100644 --- a/src/utils/configpanel.py +++ b/src/utils/configpanel.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/utils/dns.py b/src/utils/dns.py index 569dad466..b48aa9136 100644 --- a/src/utils/dns.py +++ b/src/utils/dns.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/utils/error.py b/src/utils/error.py index 9be48c5df..3ed62d24a 100644 --- a/src/utils/error.py +++ b/src/utils/error.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/utils/form.py b/src/utils/form.py index 638b8fac1..06bb38c55 100644 --- a/src/utils/form.py +++ b/src/utils/form.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/utils/i18n.py b/src/utils/i18n.py index 2aafafbdd..48c282737 100644 --- a/src/utils/i18n.py +++ b/src/utils/i18n.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/utils/ldap.py b/src/utils/ldap.py index 6b41cdb22..98ab356cc 100644 --- a/src/utils/ldap.py +++ b/src/utils/ldap.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/utils/legacy.py b/src/utils/legacy.py index 82507d64d..1c9ce53fa 100644 --- a/src/utils/legacy.py +++ b/src/utils/legacy.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/utils/network.py b/src/utils/network.py index 2a13f966e..00b465205 100644 --- a/src/utils/network.py +++ b/src/utils/network.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/utils/password.py b/src/utils/password.py index 833933d33..57d5dc351 100644 --- a/src/utils/password.py +++ b/src/utils/password.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/utils/resources.py b/src/utils/resources.py index a7c76c245..0d3f584da 100644 --- a/src/utils/resources.py +++ b/src/utils/resources.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/utils/system.py b/src/utils/system.py index c608021bd..6a77e293b 100644 --- a/src/utils/system.py +++ b/src/utils/system.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) # diff --git a/src/utils/yunopaste.py b/src/utils/yunopaste.py index 46131846d..8032ff629 100644 --- a/src/utils/yunopaste.py +++ b/src/utils/yunopaste.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 YunoHost Contributors +# Copyright (c) 2024 YunoHost Contributors # # This file is part of YunoHost (see https://yunohost.org) #