mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Merge branch 'dev' into enh-global-settings-configpanel
This commit is contained in:
commit
38234c9501
30 changed files with 473 additions and 122 deletions
|
@ -29,7 +29,6 @@ ssl_dhparam /usr/share/yunohost/ffdhe2048.pem;
|
||||||
more_set_headers "Content-Security-Policy : upgrade-insecure-requests; default-src https: data: blob: ; object-src https: data: 'unsafe-inline'; style-src https: data: 'unsafe-inline' ; script-src https: data: 'unsafe-inline' 'unsafe-eval'";
|
more_set_headers "Content-Security-Policy : upgrade-insecure-requests; default-src https: data: blob: ; object-src https: data: 'unsafe-inline'; style-src https: data: 'unsafe-inline' ; script-src https: data: 'unsafe-inline' 'unsafe-eval'";
|
||||||
{% else %}
|
{% else %}
|
||||||
more_set_headers "Content-Security-Policy : upgrade-insecure-requests";
|
more_set_headers "Content-Security-Policy : upgrade-insecure-requests";
|
||||||
more_set_headers "Content-Security-Policy-Report-Only : default-src https: wss: data: blob: ; object-src https: data: 'unsafe-inline'; style-src https: data: 'unsafe-inline' ; script-src https: data: 'unsafe-inline' 'unsafe-eval'";
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
more_set_headers "X-Content-Type-Options : nosniff";
|
more_set_headers "X-Content-Type-Options : nosniff";
|
||||||
more_set_headers "X-XSS-Protection : 1; mode=block";
|
more_set_headers "X-XSS-Protection : 1; mode=block";
|
||||||
|
|
139
debian/changelog
vendored
139
debian/changelog
vendored
|
@ -1,3 +1,81 @@
|
||||||
|
yunohost (11.0.9.12) stable; urgency=low
|
||||||
|
|
||||||
|
- [fix] postinstall: check all partitions (not only physical ones) ([#1497](https://github.com/YunoHost/yunohost/pull/1497))
|
||||||
|
- [i18n] Translations updated for Basque, French, Indonesian, Italian, Slovak
|
||||||
|
|
||||||
|
Thanks to all contributors <3 ! (Salamandar)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Sun, 28 Aug 2022 14:50:38 +0200
|
||||||
|
|
||||||
|
yunohost (11.0.9.11) stable; urgency=low
|
||||||
|
|
||||||
|
= Merge with Buster branch
|
||||||
|
- [fix] diagnosis: fix inaccurate message (ae92a0b8)
|
||||||
|
- [fix] logrotate helpers: getopts miserably explodes if 'legacy_args' is inconsistent with 'args_array' ... (530bf04a)
|
||||||
|
- [i18n] Translations updated for Basque, French, Indonesian, Italian, Slovak
|
||||||
|
|
||||||
|
Thanks to all contributors <3 ! (Jose Riha, Leandro Noferini, liimee, Stephan Klein, xabirequejo)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Fri, 26 Aug 2022 16:32:19 +0200
|
||||||
|
|
||||||
|
yunohost (11.0.9.9) stable; urgency=low
|
||||||
|
|
||||||
|
- Sync with Buster branch
|
||||||
|
- [fix] php7.3->7.4: autopatch nginx configs during restore (18e041c4)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Fri, 19 Aug 2022 20:50:52 +0200
|
||||||
|
|
||||||
|
yunohost (11.0.9.7) stable; urgency=low
|
||||||
|
|
||||||
|
- [fix] logorate helper: was broken because wrong index é_è (efa80304)
|
||||||
|
- [i18n] Translations updated for French, Galician, Ukrainian
|
||||||
|
|
||||||
|
Thanks to all contributors <3 ! (Éric Gaspar, José M, Tymofii-Lytvynenko)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Wed, 17 Aug 2022 19:24:11 +0200
|
||||||
|
|
||||||
|
yunohost (11.0.9.6) stable; urgency=low
|
||||||
|
|
||||||
|
- Sync with Buster branch
|
||||||
|
- [fix] helpers: logrotate shitty inconsistent handling of 'supposedly legacy' --non-append option ... (8d1c75e7)
|
||||||
|
- [fix] apps: Better handling of super shitty edge case where an app settings.yml is empty for some unexpected mystic reason ... (9eb123f8)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Wed, 17 Aug 2022 01:26:28 +0200
|
||||||
|
|
||||||
|
yunohost (11.0.9.5) stable; urgency=low
|
||||||
|
|
||||||
|
- Propagate fixes in buster->bullseye migration
|
||||||
|
- [fix] venv rebuild: synapse's folder is named matrix-synapse (c8031ace)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Sun, 14 Aug 2022 18:22:30 +0200
|
||||||
|
|
||||||
|
yunohost (11.0.9.3) stable; urgency=low
|
||||||
|
|
||||||
|
- [fix] postgresql 11->13: Epic typo / missing import (3cb1a41a)
|
||||||
|
- [i18n] Translations updated for Basque, French, Galician
|
||||||
|
|
||||||
|
Thanks to all contributors <3 ! (Éric Gaspar, José M, Kay0u, punkrockgirl)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Sat, 13 Aug 2022 22:37:05 +0200
|
||||||
|
|
||||||
|
yunohost (11.0.9.2) stable; urgency=low
|
||||||
|
|
||||||
|
- [fix] venv rebuild: fix yunohost app force upgrade command (5d90971b)
|
||||||
|
- [fix] apt helpers: simplify ynh_remove_app_dependencies, we don't need to care about removing php-fpm services from yunohost, because 'yunohost service' now dynamically check what relevant phpX.Y-fpm service exist on the system (64e35815)
|
||||||
|
- [enh] diagnosis: add complains if some app installed are still requiring only yunohost 3.x (31aacb33)
|
||||||
|
- [fix] venv rebuild: migration should have an empty disclaimer when in auto mode (d2a6dcd4)
|
||||||
|
- [fix] postgresql 11->13 migration: skip if no yunohost app depend on postgresql (d161da03)
|
||||||
|
|
||||||
|
Thanks to all contributors <3 ! (Éric Gaspar, ljf)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Sat, 13 Aug 2022 20:08:27 +0200
|
||||||
|
|
||||||
|
yunohost (11.0.9.1) stable; urgency=low
|
||||||
|
|
||||||
|
- [fix] venv rebuild: /opt may not exist ...
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Thu, 11 Aug 2022 16:00:40 +0200
|
||||||
|
|
||||||
yunohost (11.0.9) stable; urgency=low
|
yunohost (11.0.9) stable; urgency=low
|
||||||
|
|
||||||
- [fix] services: Skip php 7.3 which is most likely dead after buster->bullseye migration because users get spooked (51804925)
|
- [fix] services: Skip php 7.3 which is most likely dead after buster->bullseye migration because users get spooked (51804925)
|
||||||
|
@ -134,6 +212,67 @@ yunohost (11.0.2) testing; urgency=low
|
||||||
|
|
||||||
-- Alexandre Aubin <alex.aubin@mailoo.org> Wed, 19 Jan 2022 20:52:39 +0100
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Wed, 19 Jan 2022 20:52:39 +0100
|
||||||
|
|
||||||
|
yunohost (4.4.2.12) stable; urgency=low
|
||||||
|
|
||||||
|
- bullseye migration: add trick to automagically find the likely log of a previously failed migration to ease support (f5d94509)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Fri, 26 Aug 2022 19:22:30 +0200
|
||||||
|
|
||||||
|
yunohost (4.4.2.10) stable; urgency=low
|
||||||
|
|
||||||
|
- bullseye migration: add proper explanations and advices after the damn 'The distribution is not Buster' message ... (6a594d0e)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Mon, 22 Aug 2022 10:28:50 +0200
|
||||||
|
|
||||||
|
yunohost (4.4.2.9) stable; urgency=low
|
||||||
|
|
||||||
|
- apt helper: fix edge case with equivs package being flagged hold because of buster->bullseye migration (b306df2c)
|
||||||
|
- bullseye migration: fix check about free space in /boot/ ... (a2d4abc1)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Thu, 18 Aug 2022 19:24:47 +0200
|
||||||
|
|
||||||
|
yunohost (4.4.2.7) stable; urgency=low
|
||||||
|
|
||||||
|
- upgrades: ignore boring insserv warnings during apt commands (87f0eff9)
|
||||||
|
- bullseye migration: higher treshold for low space detection in /boot/ because some people still experience the issue on 4.4.2.6 (d283c900)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Wed, 17 Aug 2022 01:21:36 +0200
|
||||||
|
|
||||||
|
yunohost (4.4.2.6) stable; urgency=low
|
||||||
|
|
||||||
|
- [fix] bullseye migration: trash pip freeze stderr because it's confusing users ... (e68fc821)
|
||||||
|
- [fix] bullseye migration: add a check that there's at least 70MB available in /boot ... (02fcbd97)
|
||||||
|
- [fix] bullseye migration: better detection mechanism for the libc6 / libgcc hell issue (633a1fbf)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Sun, 14 Aug 2022 18:18:13 +0200
|
||||||
|
|
||||||
|
yunohost (4.4.2.3) stable; urgency=low
|
||||||
|
|
||||||
|
- [fix] bullseye migration: add fix for stupid dnsmasq not picking new init script (origin/dev, origin/HEAD, dev)
|
||||||
|
- [fix] bullseye migration: add the patch for the build-essential / libc6-dev / libgcc-8-dev hell ...
|
||||||
|
- [fix] bullseye migration: add critical fix for RPi failing to get network on reboot
|
||||||
|
- [fix] bullseye migration: add ffsync to deprecated apps (77c2f5dc)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Sat, 13 Aug 2022 20:06:00 +0200
|
||||||
|
|
||||||
|
yunohost (4.4.2.1) stable; urgency=low
|
||||||
|
|
||||||
|
- [fix] bullseye migration: /opt may not exist ... (5fd74577)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Thu, 11 Aug 2022 15:56:16 +0200
|
||||||
|
|
||||||
|
yunohost (4.4.2) stable; urgency=low
|
||||||
|
|
||||||
|
- Release as stable
|
||||||
|
- [fix] bullseye migration: /etc/apt/sources.list may not exist (b928dd12)
|
||||||
|
- [fix] bullseye migration: Allow lime2 to upgrade even if kernel is hold (#1452)
|
||||||
|
- [fix] bullseye migration: Save python apps venv in a requirements file, in order to regenerate it in a follow-up migration ([#1479](https://github.com/YunoHost/yunohost/pull/1479))
|
||||||
|
- [fix] bullseye migration: tweak message to prepare for stable release (80015a72)
|
||||||
|
|
||||||
|
Thanks to all contributors <3 ! (ljf, theo-is-taken)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Tue, 09 Aug 2022 16:59:15 +0200
|
||||||
|
|
||||||
yunohost (4.4.1) testing; urgency=low
|
yunohost (4.4.1) testing; urgency=low
|
||||||
|
|
||||||
- [fix] php helpers: prevent epic catastrophies when the app changes php version (31d3719b)
|
- [fix] php helpers: prevent epic catastrophies when the app changes php version (31d3719b)
|
||||||
|
|
17
helpers/apt
17
helpers/apt
|
@ -361,17 +361,14 @@ ynh_remove_app_dependencies() {
|
||||||
current_dependencies=${current_dependencies// | /|}
|
current_dependencies=${current_dependencies// | /|}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ynh_package_autopurge ${dep_app}-ynh-deps # Remove the fake package and its dependencies if they not still used.
|
# Edge case where the app dep may be on hold,
|
||||||
|
# cf https://forum.yunohost.org/t/migration-error-cause-of-ffsync/20675/4
|
||||||
# Check if this app used a specific php version ... in which case we check
|
if apt-mark showhold | grep -q -w ${dep_app}-ynh-deps
|
||||||
# if the corresponding php-fpm is still there. Otherwise, we remove the
|
then
|
||||||
# service from yunohost as well
|
apt-mark unhold ${dep_app}-ynh-deps
|
||||||
|
|
||||||
local specific_php_version=$(echo $current_dependencies | tr '-' ' ' | grep -o -E "\<php[0-9.]+\>" | sed 's/php//g' | sort | uniq)
|
|
||||||
[[ "$specific_php_version" != "$YNH_DEFAULT_PHP_VERSION" ]] || specific_php_version=""
|
|
||||||
if [[ -n "$specific_php_version" ]] && ! ynh_package_is_installed --package="php${specific_php_version}-fpm"; then
|
|
||||||
yunohost service remove php${specific_php_version}-fpm
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
ynh_package_autopurge ${dep_app}-ynh-deps # Remove the fake package and its dependencies if they not still used.
|
||||||
}
|
}
|
||||||
|
|
||||||
# Install packages from an extra repository properly.
|
# Install packages from an extra repository properly.
|
||||||
|
|
|
@ -285,6 +285,14 @@ ynh_restore_file() {
|
||||||
else
|
else
|
||||||
mv "$archive_path" "${dest_path}"
|
mv "$archive_path" "${dest_path}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Boring hack for nginx conf file mapped to php7.3
|
||||||
|
# Note that there's no need to patch the fpm config because most php apps
|
||||||
|
# will call "ynh_add_fpm_config" during restore, effectively recreating the file from scratch
|
||||||
|
if [[ "${dest_path}" == "/etc/nginx/conf.d/"* ]] && grep 'php7.3.*sock' "${dest_path}"
|
||||||
|
then
|
||||||
|
sed -i 's/php7.3/php7.4/g' "${dest_path}"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Calculate and store a file checksum into the app settings
|
# Calculate and store a file checksum into the app settings
|
||||||
|
|
|
@ -77,7 +77,7 @@ _ynh_app_config_apply_one() {
|
||||||
if [[ "${!short_setting}" == "" ]]; then
|
if [[ "${!short_setting}" == "" ]]; then
|
||||||
ynh_backup_if_checksum_is_different --file="$bind_file"
|
ynh_backup_if_checksum_is_different --file="$bind_file"
|
||||||
ynh_secure_remove --file="$bind_file"
|
ynh_secure_remove --file="$bind_file"
|
||||||
ynh_delete_file_checksum --file="$bind_file" --update_only
|
ynh_delete_file_checksum --file="$bind_file"
|
||||||
ynh_print_info --message="File '$bind_file' removed"
|
ynh_print_info --message="File '$bind_file' removed"
|
||||||
else
|
else
|
||||||
ynh_backup_if_checksum_is_different --file="$bind_file"
|
ynh_backup_if_checksum_is_different --file="$bind_file"
|
||||||
|
|
|
@ -16,10 +16,27 @@
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
# Requires YunoHost version 3.2.0 or higher for the argument `--specific_user`
|
# Requires YunoHost version 3.2.0 or higher for the argument `--specific_user`
|
||||||
ynh_use_logrotate() {
|
ynh_use_logrotate() {
|
||||||
|
|
||||||
|
# Stupid patch to remplace --non-append by --nonappend
|
||||||
|
# Because for some reason --non-append was supposed to be legacy
|
||||||
|
# (why is it legacy ? Idk maybe because getopts cant parse args with - in their names..)
|
||||||
|
# but there was no good communication about this, and now --non-append
|
||||||
|
# is still the most-used option, yet it was parsed with batshit stupid code
|
||||||
|
# So instead this loops over the positional args, and replace --non-append
|
||||||
|
# with --nonappend so it's transperent for the rest of the function...
|
||||||
|
local all_args=( ${@} )
|
||||||
|
for I in $(seq 0 $(($# - 1)))
|
||||||
|
do
|
||||||
|
if [[ "${all_args[$I]}" == "--non-append" ]]
|
||||||
|
then
|
||||||
|
all_args[$I]="--nonappend"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
set -- "${all_args[@]}"
|
||||||
|
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=lnuya
|
local legacy_args=lnu
|
||||||
local -A args_array=([l]=logfile= [n]=nonappend [u]=specific_user= [y]=non [a]=append)
|
local -A args_array=([l]=logfile= [n]=nonappend [u]=specific_user=)
|
||||||
# [y]=non [a]=append are only for legacy purpose, to not fail on the old option '--non-append'
|
|
||||||
local logfile
|
local logfile
|
||||||
local nonappend
|
local nonappend
|
||||||
local specific_user
|
local specific_user
|
||||||
|
@ -30,14 +47,6 @@ ynh_use_logrotate() {
|
||||||
specific_user="${specific_user:-}"
|
specific_user="${specific_user:-}"
|
||||||
|
|
||||||
# LEGACY CODE - PRE GETOPTS
|
# LEGACY CODE - PRE GETOPTS
|
||||||
if [ $# -gt 0 ] && [ "$1" == "--non-append" ]; then
|
|
||||||
nonappend=1
|
|
||||||
# Destroy this argument for the next command.
|
|
||||||
shift
|
|
||||||
elif [ $# -gt 1 ] && [ "$2" == "--non-append" ]; then
|
|
||||||
nonappend=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $# -gt 0 ] && [ "$(echo ${1:0:1})" != "-" ]; then
|
if [ $# -gt 0 ] && [ "$(echo ${1:0:1})" != "-" ]; then
|
||||||
# If the given logfile parameter already exists as a file, or if it ends up with ".log",
|
# If the given logfile parameter already exists as a file, or if it ends up with ".log",
|
||||||
# we just want to manage a single file
|
# we just want to manage a single file
|
||||||
|
|
|
@ -139,7 +139,7 @@ do_post_regen() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# For some reason, old setups don't have the admins group defined...
|
# For some reason, old setups don't have the admins group defined...
|
||||||
if ! slapcat | grep -q 'cn=admins,ou=groups,dc=yunohost,dc=org'; then
|
if ! slapcat -H "ldap:///cn=admins,ou=groups,dc=yunohost,dc=org" | grep -q 'cn=admins,ou=groups,dc=yunohost,dc=org'; then
|
||||||
slapadd -F /etc/ldap/slapd.d -b dc=yunohost,dc=org <<< \
|
slapadd -F /etc/ldap/slapd.d -b dc=yunohost,dc=org <<< \
|
||||||
"dn: cn=admins,ou=groups,dc=yunohost,dc=org
|
"dn: cn=admins,ou=groups,dc=yunohost,dc=org
|
||||||
cn: admins
|
cn: admins
|
||||||
|
|
|
@ -21,9 +21,9 @@ do_pre_regen() {
|
||||||
cat plain/resolv.dnsmasq.conf | grep "^nameserver" | shuf >${pending_dir}/etc/resolv.dnsmasq.conf
|
cat plain/resolv.dnsmasq.conf | grep "^nameserver" | shuf >${pending_dir}/etc/resolv.dnsmasq.conf
|
||||||
|
|
||||||
# retrieve variables
|
# retrieve variables
|
||||||
ipv4=$(curl -s -4 https://ip.yunohost.org 2>/dev/null || true)
|
ipv4=$(curl --max-time 10 -s -4 https://ip.yunohost.org 2>/dev/null || true)
|
||||||
ynh_validate_ip4 "$ipv4" || ipv4='127.0.0.1'
|
ynh_validate_ip4 "$ipv4" || ipv4='127.0.0.1'
|
||||||
ipv6=$(curl -s -6 https://ip6.yunohost.org 2>/dev/null || true)
|
ipv6=$(curl --max-time 10 -s -6 https://ip6.yunohost.org 2>/dev/null || true)
|
||||||
ynh_validate_ip6 "$ipv6" || ipv6=''
|
ynh_validate_ip6 "$ipv6" || ipv6=''
|
||||||
interfaces="$(ip -j addr show | jq -r '[.[].ifname]|join(" ")')"
|
interfaces="$(ip -j addr show | jq -r '[.[].ifname]|join(" ")')"
|
||||||
wireless_interfaces="lo"
|
wireless_interfaces="lo"
|
||||||
|
|
|
@ -160,4 +160,4 @@
|
||||||
"global_settings_setting_admin_strength": "قوة الكلمة السرية الإدارية",
|
"global_settings_setting_admin_strength": "قوة الكلمة السرية الإدارية",
|
||||||
"global_settings_setting_user_strength": "قوة الكلمة السرية للمستخدم",
|
"global_settings_setting_user_strength": "قوة الكلمة السرية للمستخدم",
|
||||||
"field_invalid": "الحقل غير صحيح : '{}'"
|
"field_invalid": "الحقل غير صحيح : '{}'"
|
||||||
}
|
}
|
|
@ -651,7 +651,6 @@
|
||||||
"migration_0021_main_upgrade": "Starte Hauptupdate...",
|
"migration_0021_main_upgrade": "Starte Hauptupdate...",
|
||||||
"migration_0021_still_on_buster_after_main_upgrade": "Irgendetwas ist während des Haupt-Upgrades schief gelaufen, das System scheint immer noch auf Debian Buster zu laufen",
|
"migration_0021_still_on_buster_after_main_upgrade": "Irgendetwas ist während des Haupt-Upgrades schief gelaufen, das System scheint immer noch auf Debian Buster zu laufen",
|
||||||
"migration_0021_yunohost_upgrade": "Start des YunoHost Kern-Upgrades...",
|
"migration_0021_yunohost_upgrade": "Start des YunoHost Kern-Upgrades...",
|
||||||
"migration_0021_not_buster": "Die aktuelle Debian-Distribution ist nicht Buster!",
|
|
||||||
"migration_0021_not_enough_free_space": "Der freie Speicherplatz in /var/ ist ziemlich gering! Du solltest mindestens 1 GB frei haben, um diese Migration durchzuführen.",
|
"migration_0021_not_enough_free_space": "Der freie Speicherplatz in /var/ ist ziemlich gering! Du solltest mindestens 1 GB frei haben, um diese Migration durchzuführen.",
|
||||||
"migration_0021_system_not_fully_up_to_date": "Dein System ist nicht ganz aktuell. Bitte führe ein reguläres Upgrade durch, bevor du die Migration zu Bullseye durchführst.",
|
"migration_0021_system_not_fully_up_to_date": "Dein System ist nicht ganz aktuell. Bitte führe ein reguläres Upgrade durch, bevor du die Migration zu Bullseye durchführst.",
|
||||||
"migration_0021_problematic_apps_warning": "Bitte beachte, dass die folgenden, möglicherweise problematischen installierten Anwendungen erkannt wurden. Es sieht so aus, als ob diese nicht aus dem YunoHost-Applikations-Katalog installiert wurden oder nicht als \"funktionierend\" gekennzeichnet sind. Es kann daher nicht garantiert werden, dass sie nach dem Upgrade noch funktionieren werden: {problematic_apps}",
|
"migration_0021_problematic_apps_warning": "Bitte beachte, dass die folgenden, möglicherweise problematischen installierten Anwendungen erkannt wurden. Es sieht so aus, als ob diese nicht aus dem YunoHost-Applikations-Katalog installiert wurden oder nicht als \"funktionierend\" gekennzeichnet sind. Es kann daher nicht garantiert werden, dass sie nach dem Upgrade noch funktionieren werden: {problematic_apps}",
|
||||||
|
|
|
@ -161,7 +161,7 @@
|
||||||
"diagnosis_apps_deprecated_practices": "This app's installed version still uses some super-old deprecated packaging practices. You should really consider upgrading it.",
|
"diagnosis_apps_deprecated_practices": "This app's installed version still uses some super-old deprecated packaging practices. You should really consider upgrading it.",
|
||||||
"diagnosis_apps_issue": "An issue was found for app {app}",
|
"diagnosis_apps_issue": "An issue was found for app {app}",
|
||||||
"diagnosis_apps_not_in_app_catalog": "This application is not in YunoHost's application catalog. If it was in the past and got removed, you should consider uninstalling this app as it won't receive upgrade, and may compromise the integrity and security of your system.",
|
"diagnosis_apps_not_in_app_catalog": "This application is not in YunoHost's application catalog. If it was in the past and got removed, you should consider uninstalling this app as it won't receive upgrade, and may compromise the integrity and security of your system.",
|
||||||
"diagnosis_apps_outdated_ynh_requirement": "This app's installed version only requires yunohost >= 2.x, which tends to indicate that it's not up to date with recommended packaging practices and helpers. You should really consider upgrading it.",
|
"diagnosis_apps_outdated_ynh_requirement": "This app's installed version only requires yunohost >= 2.x or 3.x, which tends to indicate that it's not up to date with recommended packaging practices and helpers. You should really consider upgrading it.",
|
||||||
"diagnosis_backports_in_sources_list": "It looks like apt (the package manager) is configured to use the backports repository. Unless you really know what you are doing, we strongly discourage from installing packages from backports, because it's likely to create unstabilities or conflicts on your system.",
|
"diagnosis_backports_in_sources_list": "It looks like apt (the package manager) is configured to use the backports repository. Unless you really know what you are doing, we strongly discourage from installing packages from backports, because it's likely to create unstabilities or conflicts on your system.",
|
||||||
"diagnosis_basesystem_hardware": "Server hardware architecture is {virt} {arch}",
|
"diagnosis_basesystem_hardware": "Server hardware architecture is {virt} {arch}",
|
||||||
"diagnosis_basesystem_hardware_model": "Server model is {model}",
|
"diagnosis_basesystem_hardware_model": "Server model is {model}",
|
||||||
|
@ -496,11 +496,10 @@
|
||||||
"main_domain_change_failed": "Unable to change the main domain",
|
"main_domain_change_failed": "Unable to change the main domain",
|
||||||
"main_domain_changed": "The main domain has been changed",
|
"main_domain_changed": "The main domain has been changed",
|
||||||
"migration_0021_cleaning_up": "Cleaning up cache and packages not useful anymore...",
|
"migration_0021_cleaning_up": "Cleaning up cache and packages not useful anymore...",
|
||||||
"migration_0021_venv_regen_failed": "The virtual environment '{venv}' failed to regenerate, you probably need to run the command `yunohost app upgrade --force`",
|
|
||||||
"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_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_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_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_buster": "The current Debian distribution is not Buster!",
|
"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_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_patch_yunohost_conflicts": "Applying patch to workaround conflict issue...",
|
||||||
"migration_0021_patching_sources_list": "Patching the sources.lists...",
|
"migration_0021_patching_sources_list": "Patching the sources.lists...",
|
||||||
|
@ -513,15 +512,15 @@
|
||||||
"migration_0023_postgresql_11_not_installed": "PostgreSQL was not installed on your system. Nothing to do.",
|
"migration_0023_postgresql_11_not_installed": "PostgreSQL was not installed on your system. Nothing to do.",
|
||||||
"migration_0023_postgresql_13_not_installed": "PostgreSQL 11 is installed, but not PostgreSQL 13!? Something weird might have happened on your system :(...",
|
"migration_0023_postgresql_13_not_installed": "PostgreSQL 11 is installed, but not PostgreSQL 13!? Something weird might have happened on your system :(...",
|
||||||
"migration_0024_rebuild_python_venv_broken_app": "Skipping {app} because virtualenv can't easily be rebuilt for this app. Instead, you should fix the situation by forcing the upgrade of this app using `yunohost app upgrade --force {app}`.",
|
"migration_0024_rebuild_python_venv_broken_app": "Skipping {app} because virtualenv can't easily be rebuilt for this app. Instead, you should fix the situation by forcing the upgrade of this app using `yunohost app upgrade --force {app}`.",
|
||||||
"migration_0024_rebuild_python_venv_disclaimer_base": "Following the upgrade to Debian Bullseye, some Python applications needs to be partially rebuilt to get converted to the new Python version shipped in Debian (in technical terms: what's called the 'virtualenv' needs to be recreated). In the meantime, those Python applications may not work. YunoHost can attempt to rebuild the virtualenv for some of those, as detailed below. For other apps, or if the rebuild attempt fails, you will need to manually force an upgrade for those apps.",
|
"migration_0024_rebuild_python_venv_disclaimer_base": "Following the upgrade to Debian Bullseye, some Python applications needs to be partially rebuilt to get converted to the new Python version shipped in Debian (in technical terms: what's called the 'virtualenv' needs to be recreated). In the meantime, those Python applications may not work. YunoHost can attempt to rebuild the virtualenv for some of those, as detailed below. For other apps, or if the rebuild attempt fails, you will need to manually force an upgrade for those apps.",
|
||||||
"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_disclaimer_ignored": "Virtualenvs can't be rebuilt automatically for those apps. You need to force an upgrade for those, which can be done from the command line with: `yunohost app upgrade --force APP`: {ignored_apps}",
|
||||||
"migration_0024_rebuild_python_venv_disclaimer_ignored": "Virtualenvs can't be rebuilt automatically for those apps. You need to force an upgrade for those, which can be done from the command line with: `yunohost app upgrade -f APP`: {ignored_apps}",
|
"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_in_progress": "Now attempting to rebuild python virtualenv for `{app}`",
|
"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_failed": "Failed to rebuild the python virtual env 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_0021_migrate_to_bullseye": "Upgrade the system to Debian Bullseye and YunoHost 11.x",
|
"migration_description_0021_migrate_to_bullseye": "Upgrade the system to Debian Bullseye and YunoHost 11.x",
|
||||||
"migration_description_0022_php73_to_php74_pools": "Migrate php7.3-fpm 'pool' conf files to php7.4",
|
"migration_description_0022_php73_to_php74_pools": "Migrate php7.3-fpm 'pool' conf files to php7.4",
|
||||||
"migration_description_0023_postgresql_11_to_13": "Migrate databases from PostgreSQL 11 to 13",
|
"migration_description_0023_postgresql_11_to_13": "Migrate databases from PostgreSQL 11 to 13",
|
||||||
"migration_description_0024_rebuild_python_venv": "Repair python app after bullseye migration",
|
"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_0025_global_settings_to_configpanel": "Migrate legacy global settings nomenclature to the new, modern nomenclature",
|
||||||
"migration_ldap_backup_before_migration": "Creating a backup of LDAP database and apps settings prior to the actual migration.",
|
"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_can_not_backup_before_migration": "The backup of the system could not be completed before the migration failed. Error: {error}",
|
||||||
|
@ -703,4 +702,4 @@
|
||||||
"yunohost_installing": "Installing YunoHost...",
|
"yunohost_installing": "Installing YunoHost...",
|
||||||
"yunohost_not_installed": "YunoHost is not correctly installed. Please run 'yunohost tools postinstall'",
|
"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 - adding a first user through the 'Users' section of the webadmin (or 'yunohost user create <username>' in command-line);\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."
|
"yunohost_postinstall_end_tip": "The post-install completed! To finalize your setup, please consider:\n - adding a first user through the 'Users' section of the webadmin (or 'yunohost user create <username>' in command-line);\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."
|
||||||
}
|
}
|
|
@ -590,7 +590,7 @@
|
||||||
"domain_dns_push_success": "¡Registros DNS actualizados!",
|
"domain_dns_push_success": "¡Registros DNS actualizados!",
|
||||||
"domain_dns_push_failed_to_authenticate": "No se pudo autenticar en la API del registrador para el dominio '{domain}'. ¿Lo más probable es que las credenciales sean incorrectas? (Error: {error})",
|
"domain_dns_push_failed_to_authenticate": "No se pudo autenticar en la API del registrador para el dominio '{domain}'. ¿Lo más probable es que las credenciales sean incorrectas? (Error: {error})",
|
||||||
"domain_dns_registrar_experimental": "Hasta ahora, la comunidad de YunoHost no ha probado ni revisado correctamente la interfaz con la API de **{registrar}**. El soporte es **muy experimental**. ¡Ten cuidado!",
|
"domain_dns_registrar_experimental": "Hasta ahora, la comunidad de YunoHost no ha probado ni revisado correctamente la interfaz con la API de **{registrar}**. El soporte es **muy experimental**. ¡Ten cuidado!",
|
||||||
"domain_dns_push_record_failed": "No se pudo {acción} registrar {tipo}/{nombre}: {error}",
|
"domain_dns_push_record_failed": "No se pudo {action} registrar {type}/{name}: {error}",
|
||||||
"domain_config_features_disclaimer": "Hasta ahora, habilitar/deshabilitar las funciones de correo o XMPP solo afecta la configuración de DNS recomendada y automática, ¡no las configuraciones del sistema!",
|
"domain_config_features_disclaimer": "Hasta ahora, habilitar/deshabilitar las funciones de correo o XMPP solo afecta la configuración de DNS recomendada y automática, ¡no las configuraciones del sistema!",
|
||||||
"domain_config_mail_in": "Correos entrantes",
|
"domain_config_mail_in": "Correos entrantes",
|
||||||
"domain_config_mail_out": "Correos salientes",
|
"domain_config_mail_out": "Correos salientes",
|
||||||
|
@ -624,7 +624,6 @@
|
||||||
"migration_0021_main_upgrade": "Iniciando actualización principal...",
|
"migration_0021_main_upgrade": "Iniciando actualización principal...",
|
||||||
"migration_0021_still_on_buster_after_main_upgrade": "Algo salió mal durante la actualización principal, el sistema parece estar todavía en Debian Buster",
|
"migration_0021_still_on_buster_after_main_upgrade": "Algo salió mal durante la actualización principal, el sistema parece estar todavía en Debian Buster",
|
||||||
"migration_0021_yunohost_upgrade": "Iniciando la actualización principal de YunoHost...",
|
"migration_0021_yunohost_upgrade": "Iniciando la actualización principal de YunoHost...",
|
||||||
"migration_0021_not_buster": "¡La distribución actual de Debian no es Buster!",
|
|
||||||
"migration_0021_not_enough_free_space": "¡El espacio libre es bastante bajo en /var/! Debe tener al menos 1 GB libre para ejecutar esta migración.",
|
"migration_0021_not_enough_free_space": "¡El espacio libre es bastante bajo en /var/! Debe tener al menos 1 GB libre para ejecutar esta migración.",
|
||||||
"migration_0021_system_not_fully_up_to_date": "Su sistema no está completamente actualizado. Realice una actualización regular antes de ejecutar la migración a Bullseye.",
|
"migration_0021_system_not_fully_up_to_date": "Su sistema no está completamente actualizado. Realice una actualización regular antes de ejecutar la migración a Bullseye.",
|
||||||
"migration_0021_general_warning": "Tenga en cuenta que esta migración es una operación delicada. El equipo de YunoHost hizo todo lo posible para revisarlo y probarlo, pero la migración aún podría romper partes del sistema o sus aplicaciones.\n\nPor lo tanto, se recomienda:\n - Realice una copia de seguridad de cualquier dato o aplicación crítica. Más información en https://yunohost.org/backup;\n - Sea paciente después de iniciar la migración: dependiendo de su conexión a Internet y hardware, puede tomar algunas horas para que todo se actualice.",
|
"migration_0021_general_warning": "Tenga en cuenta que esta migración es una operación delicada. El equipo de YunoHost hizo todo lo posible para revisarlo y probarlo, pero la migración aún podría romper partes del sistema o sus aplicaciones.\n\nPor lo tanto, se recomienda:\n - Realice una copia de seguridad de cualquier dato o aplicación crítica. Más información en https://yunohost.org/backup;\n - Sea paciente después de iniciar la migración: dependiendo de su conexión a Internet y hardware, puede tomar algunas horas para que todo se actualice.",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"password_too_simple_1": "Pasahitzak gutxienez zortzi karaktere izan behar ditu",
|
"password_too_simple_1": "Pasahitzak 8 karaktere izan behar ditu gutxienez",
|
||||||
"action_invalid": "'{action}' eragiketa baliogabea da",
|
"action_invalid": "'{action}' eragiketa baliogabea da",
|
||||||
"aborting": "Bertan behera uzten.",
|
"aborting": "Bertan behera uzten.",
|
||||||
"admin_password_changed": "Administrazio-pasahitza aldatu da",
|
"admin_password_changed": "Administrazio-pasahitza aldatu da",
|
||||||
|
@ -243,7 +243,7 @@
|
||||||
"diagnosis_apps_deprecated_practices": "Instalatutako aplikazio honen bertsioak oraindik darabiltza zaharkitutako pakete-jarraibideak. Eguneratzea hausnartu beharko zenuke.",
|
"diagnosis_apps_deprecated_practices": "Instalatutako aplikazio honen bertsioak oraindik darabiltza zaharkitutako pakete-jarraibideak. Eguneratzea hausnartu beharko zenuke.",
|
||||||
"diagnosis_apps_issue": "Arazo bat dago {app} aplikazioarekin",
|
"diagnosis_apps_issue": "Arazo bat dago {app} aplikazioarekin",
|
||||||
"diagnosis_apps_not_in_app_catalog": "Aplikazio hau ez da YunoHosten aplikazioen katalogokoa. Iraganean egon bazen eta ezabatu izan balitz, desinstalatzea litzateke onena, ez baitu eguneraketarik jasoko eta sistemaren integritate eta segurtasuna arriskuan jarri lezakeelako.",
|
"diagnosis_apps_not_in_app_catalog": "Aplikazio hau ez da YunoHosten aplikazioen katalogokoa. Iraganean egon bazen eta ezabatu izan balitz, desinstalatzea litzateke onena, ez baitu eguneraketarik jasoko eta sistemaren integritate eta segurtasuna arriskuan jarri lezakeelako.",
|
||||||
"diagnosis_apps_outdated_ynh_requirement": "Instalatutako aplikazio honen bertsioak yunohost >= 2.x baino ez du behar, eta horrek egungo pakete-jardunbideekin bat ez datorrela iradokitzen du. Eguneratzen saiatu beharko zinateke.",
|
"diagnosis_apps_outdated_ynh_requirement": "Instalatutako aplikazio honen bertsioak yunohost >= 2.x edo 3.x baino ez du behar, eta horrek eguneratua izan ez dela eta egungo pakete-jardunbideekin bat ez datorrela iradokitzen du. Eguneratzen saiatu beharko zinateke.",
|
||||||
"diagnosis_description_apps": "Aplikazioak",
|
"diagnosis_description_apps": "Aplikazioak",
|
||||||
"domain_dns_conf_special_use_tld": "Domeinu hau top-level domain (TLD) erabilera bereziko motakoa da .local edo .test bezala eta ez du DNS ezarpenik behar.",
|
"domain_dns_conf_special_use_tld": "Domeinu hau top-level domain (TLD) erabilera bereziko motakoa da .local edo .test bezala eta ez du DNS ezarpenik behar.",
|
||||||
"log_permission_create": "Sortu '{}' baimena",
|
"log_permission_create": "Sortu '{}' baimena",
|
||||||
|
@ -288,7 +288,7 @@
|
||||||
"log_regen_conf": "Berregin '{}' sistemaren konfigurazioa",
|
"log_regen_conf": "Berregin '{}' sistemaren konfigurazioa",
|
||||||
"dpkg_lock_not_available": "Ezin da komando hau une honetan exekutatu beste aplikazio batek dpkg (sistemaren paketeen kudeatzailea) blokeatuta duelako, erabiltzen ari baita",
|
"dpkg_lock_not_available": "Ezin da komando hau une honetan exekutatu beste aplikazio batek dpkg (sistemaren paketeen kudeatzailea) blokeatuta duelako, erabiltzen ari baita",
|
||||||
"group_created": "'{group}' taldea sortu da",
|
"group_created": "'{group}' taldea sortu da",
|
||||||
"good_practices_about_admin_password": "Administrazio-pasahitz berria ezartzear zaude. Pasahitzak zortzi karaktere izan beharko lituzke gutxienez, baina gomendagarria da pasahitz luzeagoa erabiltzea (esaldi bat, esaterako) edota karaktere desberdinak erabiltzea (hizki larriak, txikiak, zenbakiak eta karaktere bereziak).",
|
"good_practices_about_admin_password": "Administrazio-pasahitz berria ezartzear zaude. Pasahitzak 8 karaktere izan beharko lituzke gutxienez, baina gomendagarria da pasahitz luzeagoa erabiltzea (esaldi bat, esaterako) edota karaktere desberdinak erabiltzea (hizki larriak, txikiak, zenbakiak eta karaktere bereziak).",
|
||||||
"log_help_to_get_failed_log": "Ezin izan da '{desc}' eragiketa exekutatu. Mesedez, laguntza nahi baduzu partekatu eragiketa honen erregistro osoa 'yunohost log share {name}' komandoa erabiliz",
|
"log_help_to_get_failed_log": "Ezin izan da '{desc}' eragiketa exekutatu. Mesedez, laguntza nahi baduzu partekatu eragiketa honen erregistro osoa 'yunohost log share {name}' komandoa erabiliz",
|
||||||
"group_unknown": "'{group}' taldea ezezaguna da",
|
"group_unknown": "'{group}' taldea ezezaguna da",
|
||||||
"group_updated": "'{group}' taldea eguneratu da",
|
"group_updated": "'{group}' taldea eguneratu da",
|
||||||
|
@ -301,7 +301,7 @@
|
||||||
"diagnosis_mail_fcrdns_nok_alternatives_6": "Operadore batzuek ez dute alderantzizko DNSa konfiguratzen uzten (edo funtzioa ez dabil…). IPv4rako alderantzizko DNSa zuzen konfiguratuta badago, IPv6 desgaitzen saia zaitezke posta elektronikoa bidaltzeko, <cmd>yunohost settings set smtp.allow_ipv6 -v off</cmd> exekutatuz. Adi: honek esan nahi du ez zarela gai izango IPv6 bakarrik darabilten zerbitzari apurren posta elektronikoa jasotzeko edo beraiei bidaltzeko.",
|
"diagnosis_mail_fcrdns_nok_alternatives_6": "Operadore batzuek ez dute alderantzizko DNSa konfiguratzen uzten (edo funtzioa ez dabil…). IPv4rako alderantzizko DNSa zuzen konfiguratuta badago, IPv6 desgaitzen saia zaitezke posta elektronikoa bidaltzeko, <cmd>yunohost settings set smtp.allow_ipv6 -v off</cmd> exekutatuz. Adi: honek esan nahi du ez zarela gai izango IPv6 bakarrik darabilten zerbitzari apurren posta elektronikoa jasotzeko edo beraiei bidaltzeko.",
|
||||||
"diagnosis_sshd_config_inconsistent": "Dirudienez SSH ataka eskuz aldatu da /etc/ssh/sshd_config fitxategian. YunoHost 4.2tik aurrera 'security.ssh.port' izeneko ezarpen orokor bat dago konfigurazioa eskuz aldatzea ekiditeko.",
|
"diagnosis_sshd_config_inconsistent": "Dirudienez SSH ataka eskuz aldatu da /etc/ssh/sshd_config fitxategian. YunoHost 4.2tik aurrera 'security.ssh.port' izeneko ezarpen orokor bat dago konfigurazioa eskuz aldatzea ekiditeko.",
|
||||||
"diagnosis_sshd_config_inconsistent_details": "Mesedez, exekutatu <cmd>yunohost settings set security.ssh.port -v YOUR_SSH_PORT</cmd> SSH ataka zehazteko, egiaztatu <cmd>yunohost tools regen-conf ssh --dry-run --with-diff</cmd> erabiliz eta <cmd>yunohost tools regen-conf ssh --force</cmd> exekutatu gomendatutako konfiguraziora bueltatu nahi baduzu.",
|
"diagnosis_sshd_config_inconsistent_details": "Mesedez, exekutatu <cmd>yunohost settings set security.ssh.port -v YOUR_SSH_PORT</cmd> SSH ataka zehazteko, egiaztatu <cmd>yunohost tools regen-conf ssh --dry-run --with-diff</cmd> erabiliz eta <cmd>yunohost tools regen-conf ssh --force</cmd> exekutatu gomendatutako konfiguraziora bueltatu nahi baduzu.",
|
||||||
"domain_dns_push_failed_to_authenticate": "Ezinezkoa izan da '{domain}' domeinurako APIa erabiliz erregistro-enpresan saioa hastea. Zuzenak al dira datuak? (Errorea: {error})",
|
"domain_dns_push_failed_to_authenticate": "Ezinezkoa izan da '{domain}' domeinuko erregistro-enpresan APIa erabiliz saioa hastea. Ziurrenik datuak ez dira zuzenak. (Errorea: {error})",
|
||||||
"domain_dns_pushing": "DNS ezarpenak bidaltzen…",
|
"domain_dns_pushing": "DNS ezarpenak bidaltzen…",
|
||||||
"diagnosis_sshd_config_insecure": "Badirudi SSH konfigurazioa eskuz aldatu dela eta ez da segurua ez duelako 'AllowGroups' edo 'AllowUsers' baldintzarik jartzen fitxategien atzitzea oztopatzeko.",
|
"diagnosis_sshd_config_insecure": "Badirudi SSH konfigurazioa eskuz aldatu dela eta ez da segurua ez duelako 'AllowGroups' edo 'AllowUsers' baldintzarik jartzen fitxategien atzitzea oztopatzeko.",
|
||||||
"disk_space_not_sufficient_update": "Ez dago aplikazio hau eguneratzeko nahikoa espaziorik",
|
"disk_space_not_sufficient_update": "Ez dago aplikazio hau eguneratzeko nahikoa espaziorik",
|
||||||
|
@ -325,7 +325,7 @@
|
||||||
"domain_registrar_is_not_configured": "Oraindik ez da {domain} domeinurako erregistro-enpresa ezarri.",
|
"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.",
|
"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.",
|
||||||
"domain_dns_push_managed_in_parent_domain": "DNS ezarpenak automatikoki konfiguratzeko funtzioa {parent_domain} domeinu nagusian kudeatzen da.",
|
"domain_dns_push_managed_in_parent_domain": "DNS ezarpenak automatikoki konfiguratzeko funtzioa {parent_domain} domeinu nagusian kudeatzen da.",
|
||||||
"domain_dns_registrar_managed_in_parent_domain": "Domeinu hau {parent_domain_link} (r)en azpidomeinua da. DNS ezarpenak {parent_domain}(r)en konfigurazio atalean kudeatu behar dira.",
|
"domain_dns_registrar_managed_in_parent_domain": "Domeinu hau {parent_domain_link}(r)en azpidomeinua da. DNS ezarpenak {parent_domain}(r)en konfigurazio atalean kudeatu behar dira.",
|
||||||
"domain_dns_registrar_yunohost": "Hau nohost.me / nohost.st / ynh.fr domeinu bat da eta, beraz, DNS ezarpenak automatikoki kudeatzen ditu YunoHostek, bestelako ezer konfiguratu beharrik gabe. (ikus 'yunohost dyndns update' komandoa)",
|
"domain_dns_registrar_yunohost": "Hau nohost.me / nohost.st / ynh.fr domeinu bat da eta, beraz, DNS ezarpenak automatikoki kudeatzen ditu YunoHostek, bestelako ezer konfiguratu beharrik gabe. (ikus 'yunohost dyndns update' komandoa)",
|
||||||
"domain_dns_registrar_not_supported": "YunoHostek ezin izan du domeinu honen erregistro-enpresa automatikoki antzeman. Eskuz konfiguratu beharko dituzu DNS ezarpenak gidalerroei erreparatuz: https://yunohost.org/dns.",
|
"domain_dns_registrar_not_supported": "YunoHostek ezin izan du domeinu honen erregistro-enpresa automatikoki antzeman. Eskuz konfiguratu beharko dituzu DNS ezarpenak gidalerroei erreparatuz: https://yunohost.org/dns.",
|
||||||
"domain_dns_registrar_experimental": "Oraingoz, YunoHosten kideek ez dute **{registrar}** erregistro-enpresaren APIa nahi beste probatu eta aztertu. Funtzioa **oso esperimentala** da — kontuz!",
|
"domain_dns_registrar_experimental": "Oraingoz, YunoHosten kideek ez dute **{registrar}** erregistro-enpresaren APIa nahi beste probatu eta aztertu. Funtzioa **oso esperimentala** da — kontuz!",
|
||||||
|
@ -351,7 +351,7 @@
|
||||||
"domain_config_mail_out": "Bidalitako mezuak",
|
"domain_config_mail_out": "Bidalitako mezuak",
|
||||||
"domain_config_xmpp": "Bat-bateko mezularitza (XMPP)",
|
"domain_config_xmpp": "Bat-bateko mezularitza (XMPP)",
|
||||||
"global_settings_bad_choice_for_enum": "{setting} ezarpenerako aukera okerra. '{choice}' ezarri da baina hauek dira aukerak: {available_choices}",
|
"global_settings_bad_choice_for_enum": "{setting} ezarpenerako aukera okerra. '{choice}' ezarri da baina hauek dira aukerak: {available_choices}",
|
||||||
"good_practices_about_user_password": "Erabiltzaile-pasahitz berria ezartzear zaude. Pasahitzak zortzi karaktere izan beharko lituzke gutxienez, baina gomendagarria da pasahitz luzeagoa erabiltzea (esaldi bat, esaterako) edota karaktere desberdinak erabiltzea (hizki larriak, txikiak, zenbakiak eta karaktere bereziak).",
|
"good_practices_about_user_password": "Erabiltzaile-pasahitz berria ezartzear zaude. Pasahitzak 8 karaktere izan beharko lituzke gutxienez, baina gomendagarria da pasahitz luzeagoa erabiltzea (esaldi bat, esaterako) edota karaktere desberdinak erabiltzea (hizki larriak, txikiak, zenbakiak eta karaktere bereziak).",
|
||||||
"group_cannot_edit_all_users": "'all_users' taldea ezin da eskuz moldatu. YunoHosten izena emanda dauden erabiltzaile guztiak barne dituen talde berezia da",
|
"group_cannot_edit_all_users": "'all_users' taldea ezin da eskuz moldatu. YunoHosten izena emanda dauden erabiltzaile guztiak barne dituen talde berezia da",
|
||||||
"invalid_number": "Zenbaki bat izan behar da",
|
"invalid_number": "Zenbaki bat izan behar da",
|
||||||
"ldap_attribute_already_exists": "'{attribute}' LDAP funtzioa existitzen da dagoeneko eta '{value}' balioa dauka",
|
"ldap_attribute_already_exists": "'{attribute}' LDAP funtzioa existitzen da dagoeneko eta '{value}' balioa dauka",
|
||||||
|
@ -561,7 +561,7 @@
|
||||||
"migrations_loading_migration": "{id} migrazioa kargatzen…",
|
"migrations_loading_migration": "{id} migrazioa kargatzen…",
|
||||||
"migrations_no_migrations_to_run": "Ez dago exekutatzeko migraziorik",
|
"migrations_no_migrations_to_run": "Ez dago exekutatzeko migraziorik",
|
||||||
"password_listed": "Pasahitz hau munduan erabilienetarikoa da. Mesedez, aukeratu bereziagoa den beste bat.",
|
"password_listed": "Pasahitz hau munduan erabilienetarikoa da. Mesedez, aukeratu bereziagoa den beste bat.",
|
||||||
"password_too_simple_2": "Pasahitzak zortzi karaktere izan behar ditu gutxienez eta zenbakiren bat, hizki larriren bat eta txikiren bat izan behar ditu",
|
"password_too_simple_2": "Pasahitzak 8 karaktere izan behar ditu gutxienez eta zenbakiren bat, hizki larriren bat eta txikiren bat izan behar ditu",
|
||||||
"pattern_firstname": "Izen horrek ez du balio",
|
"pattern_firstname": "Izen horrek ez du balio",
|
||||||
"pattern_password": "Gutxienez hiru karaktere izan behar ditu",
|
"pattern_password": "Gutxienez hiru karaktere izan behar ditu",
|
||||||
"restore_failed": "Ezin izan da sistema lehengoratu",
|
"restore_failed": "Ezin izan da sistema lehengoratu",
|
||||||
|
@ -591,7 +591,7 @@
|
||||||
"migrations_migration_has_failed": "{id} migrazioak ez du amaitu, geldiarazten. Errorea: {exception}",
|
"migrations_migration_has_failed": "{id} migrazioak ez du amaitu, geldiarazten. Errorea: {exception}",
|
||||||
"migrations_need_to_accept_disclaimer": "{id} migrazioa abiarazteko, ondorengo baldintzak onartu behar dituzu:\n---\n{disclaimer}\n---\nMigrazioa onartzen baduzu, mesedez berrabiarazi prozesua komandoan '--accept-disclaimer' aukera gehituz.",
|
"migrations_need_to_accept_disclaimer": "{id} migrazioa abiarazteko, ondorengo baldintzak onartu behar dituzu:\n---\n{disclaimer}\n---\nMigrazioa onartzen baduzu, mesedez berrabiarazi prozesua komandoan '--accept-disclaimer' aukera gehituz.",
|
||||||
"not_enough_disk_space": "Ez dago nahikoa espazio librerik '{path}'-n",
|
"not_enough_disk_space": "Ez dago nahikoa espazio librerik '{path}'-n",
|
||||||
"password_too_simple_3": "Pasahitzak zortzi karaktere izan behar ditu gutxienez eta zenbakiren bat, hizki larriren bat, txikiren bat eta karaktere bereziren bat izan behar ditu",
|
"password_too_simple_3": "Pasahitzak 8 karaktere izan behar ditu gutxienez eta zenbakiren bat, hizki larriren bat, txikiren bat eta karaktere bereziren bat izan behar ditu",
|
||||||
"pattern_backup_archive_name": "Fitxategiaren izenak 30 karaktere izan ditzake gehienez, alfanumerikoak eta ._- baino ez",
|
"pattern_backup_archive_name": "Fitxategiaren izenak 30 karaktere izan ditzake gehienez, alfanumerikoak eta ._- baino ez",
|
||||||
"pattern_domain": "Domeinu izen baliagarri bat izan behar da (adibidez: nire-domeinua.eus)",
|
"pattern_domain": "Domeinu izen baliagarri bat izan behar da (adibidez: nire-domeinua.eus)",
|
||||||
"pattern_mailbox_quota": "Tamainak b/k/M/G/T zehaztu behar du edo 0 mugarik ezarri nahi ez bada",
|
"pattern_mailbox_quota": "Tamainak b/k/M/G/T zehaztu behar du edo 0 mugarik ezarri nahi ez bada",
|
||||||
|
@ -655,7 +655,6 @@
|
||||||
"migration_0021_main_upgrade": "Eguneraketa nagusia abiarazten…",
|
"migration_0021_main_upgrade": "Eguneraketa nagusia abiarazten…",
|
||||||
"migration_0021_still_on_buster_after_main_upgrade": "Zerbaitek huts egin du eguneraketa nagusian, badirudi sistemak oraindik darabilela Debian Buster",
|
"migration_0021_still_on_buster_after_main_upgrade": "Zerbaitek huts egin du eguneraketa nagusian, badirudi sistemak oraindik darabilela Debian Buster",
|
||||||
"migration_0021_yunohost_upgrade": "YunoHosten muineko eguneraketa abiarazten…",
|
"migration_0021_yunohost_upgrade": "YunoHosten muineko eguneraketa abiarazten…",
|
||||||
"migration_0021_not_buster": "Uneko Debian ez da Buster!",
|
|
||||||
"migration_0021_not_enough_free_space": "/var/-enerabilgarri dagoen espazioa oso txikia da! Guxtienez GB 1 izan beharko zenuke erabilgarri migrazioari ekiteko.",
|
"migration_0021_not_enough_free_space": "/var/-enerabilgarri dagoen espazioa oso txikia da! Guxtienez GB 1 izan beharko zenuke erabilgarri migrazioari ekiteko.",
|
||||||
"migration_0021_system_not_fully_up_to_date": "Sistema ez dago erabat egunean. Mesedez, egizu eguneraketa arrunt bat Bullseye-(e)rako migrazioa abiarazi baino lehen.",
|
"migration_0021_system_not_fully_up_to_date": "Sistema ez dago erabat egunean. Mesedez, egizu eguneraketa arrunt bat Bullseye-(e)rako migrazioa abiarazi baino lehen.",
|
||||||
"migration_0021_general_warning": "Mesedez, kontuan hartu migrazio hau konplexua dela. YunoHost taldeak ahalegin handia egin du probatzeko, baina hala ere migrazioak sistemaren zatiren bat edo aplikazioak apurt litzake.\n\nHorregatik, gomendagarria da:\n\t- Datu edo aplikazio garrantzitsuen babeskopia egitea. Informazio gehiago: https://yunohost.org/backup;\n\t- Ez izan presarik migrazioa abiaraztean: zure internet eta hardwarearen arabera ordu batzuk ere iraun lezake eguneraketa prozesuak.",
|
"migration_0021_general_warning": "Mesedez, kontuan hartu migrazio hau konplexua dela. YunoHost taldeak ahalegin handia egin du probatzeko, baina hala ere migrazioak sistemaren zatiren bat edo aplikazioak apurt litzake.\n\nHorregatik, gomendagarria da:\n\t- Datu edo aplikazio garrantzitsuen babeskopia egitea. Informazio gehiago: https://yunohost.org/backup;\n\t- Ez izan presarik migrazioa abiaraztean: zure internet eta hardwarearen arabera ordu batzuk ere iraun lezake eguneraketa prozesuak.",
|
||||||
|
@ -683,5 +682,13 @@
|
||||||
"global_settings_setting_webadmin_allowlist_enabled_help": "Baimendu IP zehatz batzuk bakarrik administrazio-atarian.",
|
"global_settings_setting_webadmin_allowlist_enabled_help": "Baimendu IP zehatz batzuk bakarrik administrazio-atarian.",
|
||||||
"global_settings_setting_ssh_allow_deprecated_dsa_hostkey_help": "Baimendu DSA gakoa (zaharkitua) SSH zerbitzuaren konfiguraziorako",
|
"global_settings_setting_ssh_allow_deprecated_dsa_hostkey_help": "Baimendu DSA gakoa (zaharkitua) SSH zerbitzuaren konfiguraziorako",
|
||||||
"global_settings_setting_smtp_allow_ipv6_help": "Baimendu IPv6 posta elektronikoa jaso eta bidaltzeko",
|
"global_settings_setting_smtp_allow_ipv6_help": "Baimendu IPv6 posta elektronikoa jaso eta bidaltzeko",
|
||||||
"global_settings_setting_smtp_relay_enabled_help": "YunoHosten ordez posta elektronikoa bidaltzeko SMTP relay helbidea. Erabilgarri izan daiteke egoera hauetan: operadore edo VPS enpresak 25. ataka blokeatzen badu, DUHLen zure etxeko IPa ageri bada, ezin baduzu alderantzizko DNSa ezarri edo zerbitzari hau ez badago zuzenean internetera konektatuta baina posta elektronikoa bidali nahi baduzu."
|
"global_settings_setting_smtp_relay_enabled_help": "YunoHosten ordez posta elektronikoa bidaltzeko SMTP relay helbidea. Erabilgarri izan daiteke egoera hauetan: operadore edo VPS enpresak 25. ataka blokeatzen badu, DUHLen zure etxeko IPa ageri bada, ezin baduzu alderantzizko DNSa ezarri edo zerbitzari hau ez badago zuzenean internetera konektatuta baina posta elektronikoa bidali nahi baduzu.",
|
||||||
}
|
"migration_0024_rebuild_python_venv_broken_app": "{app} aplikazioari ez ikusiarena egin zaio ezin delako ingurune birtuala modu errazean birsortu. Horren ordez, aplikazioaren eguneraketa behartzen saia zaitezke `yunohost app upgrade --force {app}` arazoa konpontzeko.",
|
||||||
|
"migration_0024_rebuild_python_venv_disclaimer_rebuild": "Ondorengo aplikazioen virtualenv-a birsortzeko saiakera egingo da (eragiketak luze jo dezake!): {rebuild_apps}",
|
||||||
|
"migration_0024_rebuild_python_venv_disclaimer_ignored": "Virtualenv-ak ezin dira birsortu aplikazio horientzat. Eguneraketa behartu behar duzu horientzat, ondorengo komandoa exekutatuz egin daiteke: `yunohost app upgrade --force APP`: {ignored_apps}",
|
||||||
|
"migration_0024_rebuild_python_venv_in_progress": "`{app}` aplikazioaren Python virtualenv-a birsortzeko lanetan",
|
||||||
|
"migration_0024_rebuild_python_venv_failed": "Kale egin du {app} aplikazioaren Python virtualenv-aren birsorkuntza saiakerak. Litekeena da aplikazioak ez funtzionatzea arazoa konpondu arte. Aplikazioaren eguneraketa behartu beharko zenuke ondorengo komandoarekin: `yunohost app upgrade --force {app}`.",
|
||||||
|
"migration_description_0024_rebuild_python_venv": "Konpondu Python aplikazioa Bullseye eguneraketa eta gero",
|
||||||
|
"migration_0024_rebuild_python_venv_disclaimer_base": "Debian Bullseye eguneraketa dela-eta, Python aplikazio batzuk birsortu behar dira Debianekin datorren Pythonen bertsiora egokitzeko (teknikoki 'virtualenv' deritzaiona birsortu behar da). Egin artean, litekeena da Python aplikazio horiek ez funtzionatzea. YunoHost saia daiteke beherago ageri diren aplikazioen virtualenv edo ingurune birtualak birsortzen. Beste aplikazio batzuen kasuan, edo birsortze saiakerak kale egingo balu, aplikazio horien eguneraketa behartu beharko duzu.",
|
||||||
|
"migration_0021_not_buster2": "Zerbitzariak darabilen Debian bertsioa ez da Buster! Dagoeneko Buster -> Bullseye migrazioa exekutatu baduzu, errore honek migrazioa erabat arrakastatsua izan ez zela esan nahi du (bestela YunoHostek amaitutzat markatuko luke). Komenigarria izango litzateke, laguntza taldearekin batera, zer gertatu zen aztertzea. Horretarako `migrazioaren erregistro **osoa** beharko duzue, Erramintak > Erregistroak atalean eskuragarri dagoena."
|
||||||
|
}
|
||||||
|
|
|
@ -578,7 +578,7 @@
|
||||||
"ldap_server_is_down_restart_it": "Le service LDAP est en panne, essayez de le redémarrer...",
|
"ldap_server_is_down_restart_it": "Le service LDAP est en panne, essayez de le redémarrer...",
|
||||||
"ldap_server_down": "Impossible d'atteindre le serveur LDAP",
|
"ldap_server_down": "Impossible d'atteindre le serveur LDAP",
|
||||||
"diagnosis_apps_deprecated_practices": "La version installée de cette application utilise toujours certaines pratiques de packaging obsolètes. Vous devriez vraiment envisager de mettre l'application à jour.",
|
"diagnosis_apps_deprecated_practices": "La version installée de cette application utilise toujours certaines pratiques de packaging obsolètes. Vous devriez vraiment envisager de mettre l'application à jour.",
|
||||||
"diagnosis_apps_outdated_ynh_requirement": "La version installée de cette application nécessite uniquement YunoHost >= 2.x, cela indique que l'application n'est pas à jour avec les bonnes pratiques de packaging et les helpers recommandées. Vous devriez vraiment envisager de mettre l'application à jour.",
|
"diagnosis_apps_outdated_ynh_requirement": "La version installée de cette application nécessite uniquement YunoHost >= 2.x ou 3.x, ce qui tend à indiquer qu'elle n'est pas à jour avec les pratiques recommandées de packaging et des helpers . Vous devriez vraiment envisager de la mettre à jour.",
|
||||||
"diagnosis_apps_bad_quality": "Cette application est actuellement signalée comme cassée dans le catalogue d'applications de YunoHost. Cela peut être un problème temporaire. En attendant que les mainteneurs tentent de résoudre le problème, la mise à jour de cette application est désactivée.",
|
"diagnosis_apps_bad_quality": "Cette application est actuellement signalée comme cassée dans le catalogue d'applications de YunoHost. Cela peut être un problème temporaire. En attendant que les mainteneurs tentent de résoudre le problème, la mise à jour de cette application est désactivée.",
|
||||||
"diagnosis_apps_broken": "Cette application est actuellement signalée comme cassée dans le catalogue d'applications de YunoHost. Cela peut être un problème temporaire. En attendant que les mainteneurs tentent de résoudre le problème, la mise à jour de cette application est désactivée.",
|
"diagnosis_apps_broken": "Cette application est actuellement signalée comme cassée dans le catalogue d'applications de YunoHost. Cela peut être un problème temporaire. En attendant que les mainteneurs tentent de résoudre le problème, la mise à jour de cette application est désactivée.",
|
||||||
"diagnosis_apps_not_in_app_catalog": "Cette application est absente ou ne figure plus dans le catalogue d'applications de YunoHost. Vous devriez envisager de la désinstaller car elle ne recevra pas de mise à jour et pourrait compromettre l'intégrité et la sécurité de votre système.",
|
"diagnosis_apps_not_in_app_catalog": "Cette application est absente ou ne figure plus dans le catalogue d'applications de YunoHost. Vous devriez envisager de la désinstaller car elle ne recevra pas de mise à jour et pourrait compromettre l'intégrité et la sécurité de votre système.",
|
||||||
|
@ -659,7 +659,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_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_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_patch_yunohost_conflicts": "Application du correctif pour contourner le problème de conflit...",
|
||||||
"migration_0021_not_buster": "La distribution Debian actuelle n'est pas Buster !",
|
"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",
|
"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",
|
"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",
|
"migration_description_0022_php73_to_php74_pools": "Migration des fichiers de configuration php7.3-fpm 'pool' vers php7.4",
|
||||||
|
@ -684,5 +684,12 @@
|
||||||
"global_settings_setting_webadmin_allowlist_enabled_help": "Autoriser seulement certaines IP à accéder à la webadmin.",
|
"global_settings_setting_webadmin_allowlist_enabled_help": "Autoriser seulement certaines IP à accéder à la webadmin.",
|
||||||
"global_settings_setting_ssh_allow_deprecated_dsa_hostkey_help": "Autoriser l'utilisation de la clé hôte DSA (obsolète) pour la configuration du service SSH",
|
"global_settings_setting_ssh_allow_deprecated_dsa_hostkey_help": "Autoriser l'utilisation de la clé hôte DSA (obsolète) pour la configuration du service SSH",
|
||||||
"global_settings_setting_smtp_allow_ipv6_help": "Autoriser l'utilisation d'IPv6 pour recevoir et envoyer du courrier",
|
"global_settings_setting_smtp_allow_ipv6_help": "Autoriser l'utilisation d'IPv6 pour recevoir et envoyer du courrier",
|
||||||
"global_settings_setting_smtp_relay_enabled_help": "Un relais SMTP permet d'envoyer du courrier à la place de cette instance YunoHost. Cela est utile si vous êtes dans l'une de ces situations : le port 25 est bloqué par votre FAI ou par votre fournisseur VPS ; vous avez une IP résidentielle répertoriée sur DUHL ; vous ne pouvez pas configurer le DNS inversé ; ou le serveur n'est pas directement accessible depuis Internet et vous voulez en utiliser un autre pour envoyer des mails."
|
"global_settings_setting_smtp_relay_enabled_help": "Un relais SMTP permet d'envoyer du courrier à la place de cette instance YunoHost. Cela est utile si vous êtes dans l'une de ces situations : le port 25 est bloqué par votre FAI ou par votre fournisseur VPS ; vous avez une IP résidentielle répertoriée sur DUHL ; vous ne pouvez pas configurer le DNS inversé ; ou le serveur n'est pas directement accessible depuis Internet et vous voulez en utiliser un autre pour envoyer des mails.",
|
||||||
}
|
"migration_0024_rebuild_python_venv_disclaimer_rebuild": "La reconstruction du virtualenv sera tentée pour les applications suivantes (NB : l'opération peut prendre un certain temps !) : {rebuild_apps}",
|
||||||
|
"migration_0024_rebuild_python_venv_in_progress": "Tentative de reconstruction du virtualenv Python pour `{app}`",
|
||||||
|
"migration_0024_rebuild_python_venv_failed": "Échec de la reconstruction de l'environnement virtuel Python pour {app}. L'application peut ne pas fonctionner tant que ce problème n'est pas résolu. Vous devriez corriger la situation en forçant la mise à jour de cette application en utilisant `yunohost app upgrade --force {app}`.",
|
||||||
|
"migration_description_0024_rebuild_python_venv": "Réparer l'application Python après la migration Bullseye",
|
||||||
|
"migration_0024_rebuild_python_venv_broken_app": "Ignorer {app} car virtualenv ne peut pas être facilement reconstruit pour cette application. Au lieu de cela, vous devriez corriger la situation en forçant la mise à jour de cette application en utilisant `yunohost app upgrade --force {app}`.",
|
||||||
|
"migration_0024_rebuild_python_venv_disclaimer_base": "Suite à la mise à niveau vers Debian Bullseye, certaines applications Python doivent être partiellement reconstruites pour être converties vers la nouvelle version Python livrée dans Debian (en termes techniques : ce qu'on appelle le \"virtualenv\" doit être recréé). En attendant, ces applications Python peuvent ne pas fonctionner. YunoHost peut tenter de reconstruire le virtualenv pour certains d'entre eux, comme détaillé ci-dessous. Pour les autres applications, ou si la tentative de reconstruction échoue, vous devrez forcer manuellement une mise à niveau pour ces applications.",
|
||||||
|
"migration_0024_rebuild_python_venv_disclaimer_ignored": "Les virtualenvs ne peuvent pas être reconstruits automatiquement pour ces applications. Vous devez forcer une mise à jour pour ceux-ci, ce qui peut être fait à partir de la ligne de commande : `yunohost app upgrade --force APP` : {ignored_apps}"
|
||||||
|
}
|
|
@ -584,7 +584,7 @@
|
||||||
"user_import_nothing_to_do": "Ningunha usuaria precisa ser importada",
|
"user_import_nothing_to_do": "Ningunha usuaria precisa ser importada",
|
||||||
"user_import_partial_failed": "A operación de importación de usuarias fallou parcialmente",
|
"user_import_partial_failed": "A operación de importación de usuarias fallou parcialmente",
|
||||||
"diagnosis_apps_deprecated_practices": "A versión instalada desta app aínda utiliza algunha das antigas prácticas de empaquetado xa abandonadas. Deberías considerar actualizala.",
|
"diagnosis_apps_deprecated_practices": "A versión instalada desta app aínda utiliza algunha das antigas prácticas de empaquetado xa abandonadas. Deberías considerar actualizala.",
|
||||||
"diagnosis_apps_outdated_ynh_requirement": "A versión instalada desta app só require yunohost >= 2.x, que normalmente indica que non está ao día coas prácticas recomendadas de empaquetado e asistentes. Deberías considerar actualizala.",
|
"diagnosis_apps_outdated_ynh_requirement": "A versión instalada desta app só require yunohost >= 2.x ou 3.x, esto normalmente indica que non está ao día coas prácticas recomendadas de empaquetado e asistentes. Deberías considerar actualizala.",
|
||||||
"user_import_success": "Usuarias importadas correctamente",
|
"user_import_success": "Usuarias importadas correctamente",
|
||||||
"diagnosis_high_number_auth_failures": "Hai un alto número sospeitoso de intentos fallidos de autenticación. Deberías comprobar que fail2ban está a executarse e que está correctamente configurado, ou utiliza un porto personalizado para SSH tal como se explica en https://yunohost.org/security.",
|
"diagnosis_high_number_auth_failures": "Hai un alto número sospeitoso de intentos fallidos de autenticación. Deberías comprobar que fail2ban está a executarse e que está correctamente configurado, ou utiliza un porto personalizado para SSH tal como se explica en https://yunohost.org/security.",
|
||||||
"user_import_bad_file": "O ficheiro CSV non ten o formato correcto e será ignorado para evitar unha potencial perda de datos",
|
"user_import_bad_file": "O ficheiro CSV non ten o formato correcto e será ignorado para evitar unha potencial perda de datos",
|
||||||
|
@ -651,7 +651,6 @@
|
||||||
"migration_0021_main_upgrade": "Iniciando a actualización principal...",
|
"migration_0021_main_upgrade": "Iniciando a actualización principal...",
|
||||||
"migration_0021_still_on_buster_after_main_upgrade": "Algo fallou durante a actualización principal, o sistema semlla que aínda está en Debian Buster",
|
"migration_0021_still_on_buster_after_main_upgrade": "Algo fallou durante a actualización principal, o sistema semlla que aínda está en Debian Buster",
|
||||||
"migration_0021_yunohost_upgrade": "Iniciando actualización compoñente core de YunoHost...",
|
"migration_0021_yunohost_upgrade": "Iniciando actualización compoñente core de YunoHost...",
|
||||||
"migration_0021_not_buster": "A distribución Debian actual non é Buster!",
|
|
||||||
"migration_0021_not_enough_free_space": "Queda pouco espazo en /var/! Deberías ter polo menos 1GB libre para facer a migración.",
|
"migration_0021_not_enough_free_space": "Queda pouco espazo en /var/! Deberías ter polo menos 1GB libre para facer a migración.",
|
||||||
"migration_0021_problematic_apps_warning": "Detectamos que están instaladas estas app que poderían ser problemáticas. Semella que non foron instaladas desde o catálogo YunoHost, ou non están marcadas como que 'funcionan'. Así, non podemos garantir que seguiran funcionando ben tras a migración: {problematic_apps}",
|
"migration_0021_problematic_apps_warning": "Detectamos que están instaladas estas app que poderían ser problemáticas. Semella que non foron instaladas desde o catálogo YunoHost, ou non están marcadas como que 'funcionan'. Así, non podemos garantir que seguiran funcionando ben tras a migración: {problematic_apps}",
|
||||||
"migration_0021_modified_files": "Ten en conta que os seguintes ficheiros semella que foron editados manualmente e poderían ser sobrescritos durante a migración: {manually_modified_files}",
|
"migration_0021_modified_files": "Ten en conta que os seguintes ficheiros semella que foron editados manualmente e poderían ser sobrescritos durante a migración: {manually_modified_files}",
|
||||||
|
@ -683,5 +682,13 @@
|
||||||
"global_settings_setting_webadmin_allowlist_enabled_help": "Permitir que só algúns IPs accedan á webadmin.",
|
"global_settings_setting_webadmin_allowlist_enabled_help": "Permitir que só algúns IPs accedan á webadmin.",
|
||||||
"global_settings_setting_ssh_allow_deprecated_dsa_hostkey_help": "Permitir o uso de DSA hostkey (en desuso) para a configuración do demoño SSH",
|
"global_settings_setting_ssh_allow_deprecated_dsa_hostkey_help": "Permitir o uso de DSA hostkey (en desuso) para a configuración do demoño SSH",
|
||||||
"global_settings_setting_smtp_allow_ipv6_help": "Permitir o uso de IPv6 para recibir e enviar emais",
|
"global_settings_setting_smtp_allow_ipv6_help": "Permitir o uso de IPv6 para recibir e enviar emais",
|
||||||
"global_settings_setting_smtp_relay_enabled_help": "Servidor repetidor SMTP para enviar emails no lugar da túa instancia yunohost. É útil se estás nunha destas situacións: o teu porto 25 está bloqueado polo teu provedor ISP u VPN, se tes unha IP residencial nunha lista DUHL, se non podes configurar DNS inversa ou se este servidor non ten conexión directa a internet e queres utilizar outro para enviar os emails."
|
"global_settings_setting_smtp_relay_enabled_help": "Servidor repetidor SMTP para enviar emails no lugar da túa instancia yunohost. É útil se estás nunha destas situacións: o teu porto 25 está bloqueado polo teu provedor ISP u VPN, se tes unha IP residencial nunha lista DUHL, se non podes configurar DNS inversa ou se este servidor non ten conexión directa a internet e queres utilizar outro para enviar os emails.",
|
||||||
|
"migration_0024_rebuild_python_venv_broken_app": "Omitimos a app {app} porque virtualenv non se pode reconstruir para esta app. Deberías intentar resolver o problema forzando a actualización da app usando `yunohost app upgrade --force {app}`.",
|
||||||
|
"migration_0024_rebuild_python_venv_disclaimer_base": "Após a actualización a Debian Bullseye, algunhas aplicacións de Python precisan ser reconstruídas para usar a nova versión de Python que inclúe Debian (técnicamente: recrear o `virtualenv`). Mentras tanto, algunhas aplicacións de Python poderían non funcionar. YunoHost pode intentar reconstruir o virtualenv para algunhas, como se indica abaixo. Para outras, ou se falla a reconstrución, pode que teñas que forzar a actualización desas apps.",
|
||||||
|
"migration_0024_rebuild_python_venv_disclaimer_rebuild": "Vaise intentar a reconstrución de virtualenv para as seguintes apps (Nota: a operación podería tomar algún tempo!): {rebuild_apps}",
|
||||||
|
"migration_0024_rebuild_python_venv_disclaimer_ignored": "Non se puido reconstruir virtualenv para estas apps. Precisas forzar a súa actualización, pódelo facer desde a liña de comandos con: `yunohost app upgrade --force APP`: {ignored_apps}",
|
||||||
|
"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."
|
||||||
}
|
}
|
|
@ -11,7 +11,7 @@
|
||||||
"app_change_url_identical_domains": "Domain)url_path yang lama dan baru identik ('{domain}{path}'), tak ada yang perlu dilakukan.",
|
"app_change_url_identical_domains": "Domain)url_path yang lama dan baru identik ('{domain}{path}'), tak ada yang perlu dilakukan.",
|
||||||
"app_change_url_no_script": "Aplikasi '{app_name}' belum mendukung pengubahan URL. Mungkin Anda harus memperbaruinya.",
|
"app_change_url_no_script": "Aplikasi '{app_name}' belum mendukung pengubahan URL. Mungkin Anda harus memperbaruinya.",
|
||||||
"app_change_url_success": "URL {app} sekarang adalah {domain}{path}",
|
"app_change_url_success": "URL {app} sekarang adalah {domain}{path}",
|
||||||
"app_id_invalid": "ID aplikasi tidak valid",
|
"app_id_invalid": "ID aplikasi tidak sah",
|
||||||
"app_install_failed": "Tidak dapat memasang {app}: {error}",
|
"app_install_failed": "Tidak dapat memasang {app}: {error}",
|
||||||
"app_install_files_invalid": "Berkas-berkas ini tidak dapat dipasang",
|
"app_install_files_invalid": "Berkas-berkas ini tidak dapat dipasang",
|
||||||
"app_install_script_failed": "Sebuah kesalahan terjadi pada script pemasangan aplikasi",
|
"app_install_script_failed": "Sebuah kesalahan terjadi pada script pemasangan aplikasi",
|
||||||
|
@ -54,5 +54,16 @@
|
||||||
"backup_method_tar_finished": "Arsip TAR cadanagan dibuat",
|
"backup_method_tar_finished": "Arsip TAR cadanagan dibuat",
|
||||||
"backup_nothings_done": "Tak ada yang harus disimpan",
|
"backup_nothings_done": "Tak ada yang harus disimpan",
|
||||||
"certmanager_cert_install_success": "Sertifikat Let's Encrypt sekarang sudah terpasang pada domain '{domain}'",
|
"certmanager_cert_install_success": "Sertifikat Let's Encrypt sekarang sudah terpasang pada domain '{domain}'",
|
||||||
"backup_mount_archive_for_restore": "Menyiapkan arsip untuk pemulihan..."
|
"backup_mount_archive_for_restore": "Menyiapkan arsip untuk pemulihan...",
|
||||||
|
"aborting": "Membatalkan.",
|
||||||
|
"action_invalid": "Tindakan tidak sah '{action}'",
|
||||||
|
"app_action_cannot_be_ran_because_required_services_down": "Layanan yang dibutuhkan ini harus aktif untuk menjalankan tindakan ini: {services}. Coba memulai ulang layanan tersebut untuk melanjutkan (dan mungkin melakukan penyelidikan mengapa layanan tersebut nonaktif).",
|
||||||
|
"app_argument_choice_invalid": "Pilih nilai yang sah untuk argumen '{name}': '{value}' tidak termasuk pada pilihan yang tersedia ({choices})",
|
||||||
|
"app_argument_invalid": "Pilih nilai yang sah untuk argumen '{name}': {error}",
|
||||||
|
"app_extraction_failed": "Tidak dapat mengekstrak berkas pemasangan",
|
||||||
|
"app_full_domain_unavailable": "Maaf, aplikasi ini harus dipasang pada domain sendiri, namun aplikasi lain sudah terpasang pada domain '{domain}'. Anda dapat menggunakan subdomain hanya untuk aplikasi ini.",
|
||||||
|
"app_location_unavailable": "URL ini mungkin tidak tersedia, atau terjadi konflik dengan aplikasi yang telah terpasang:\n{apps}",
|
||||||
|
"app_not_upgraded": "Aplikasi '{failed_app}' gagal diperbarui, oleh karena itu aplikasi-aplikasi berikut juga dibatalkan: {apps}",
|
||||||
|
"app_config_unable_to_apply": "Gagal menerapkan nilai-nilai panel konfigurasi.",
|
||||||
|
"app_config_unable_to_read": "Gagal membaca nilai-nilai panel konfigurasi."
|
||||||
}
|
}
|
|
@ -658,5 +658,6 @@
|
||||||
"global_settings_setting_webadmin_allowlist_enabled_help": "Permetti solo ad alcuni IP di accedere al webadmin.",
|
"global_settings_setting_webadmin_allowlist_enabled_help": "Permetti solo ad alcuni IP di accedere al webadmin.",
|
||||||
"global_settings_setting_ssh_allow_deprecated_dsa_hostkey_help": "Consenti l'uso del hostkey DSA (deprecato) per la configurazione del demone SSH",
|
"global_settings_setting_ssh_allow_deprecated_dsa_hostkey_help": "Consenti l'uso del hostkey DSA (deprecato) per la configurazione del demone SSH",
|
||||||
"global_settings_setting_smtp_allow_ipv6_help": "Permetti l'utilizzo di IPv6 per ricevere e inviare mail",
|
"global_settings_setting_smtp_allow_ipv6_help": "Permetti l'utilizzo di IPv6 per ricevere e inviare mail",
|
||||||
"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."
|
"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"
|
||||||
}
|
}
|
|
@ -327,12 +327,13 @@
|
||||||
"permission_already_up_to_date": "Разрешение не было обновлено, потому что запросы на добавление/удаление уже соответствуют текущему состоянию.",
|
"permission_already_up_to_date": "Разрешение не было обновлено, потому что запросы на добавление/удаление уже соответствуют текущему состоянию.",
|
||||||
"group_cannot_edit_primary_group": "Группа '{group}' не может быть отредактирована вручную. Это основная группа, предназначенная для содержания только одного конкретного пользователя.",
|
"group_cannot_edit_primary_group": "Группа '{group}' не может быть отредактирована вручную. Это основная группа, предназначенная для содержания только одного конкретного пользователя.",
|
||||||
"log_app_remove": "Удалите приложение '{}'",
|
"log_app_remove": "Удалите приложение '{}'",
|
||||||
"not_enough_disk_space": "Недостаточно свободного места в '{путь}'",
|
"not_enough_disk_space": "Недостаточно свободного места в '{path}'",
|
||||||
"pattern_email_forward": "Должен быть корректный адрес электронной почты, символ '+' допустим (например, someone+tag@example.com)",
|
"pattern_email_forward": "Должен быть корректный адрес электронной почты, символ '+' допустим (например, someone+tag@example.com)",
|
||||||
"permission_deletion_failed": "Не удалось удалить разрешение '{permission}': {error}",
|
"permission_deletion_failed": "Не удалось удалить разрешение '{permission}': {error}",
|
||||||
"global_settings_setting_ssh_port": "SSH порт",
|
"global_settings_setting_ssh_port": "SSH порт",
|
||||||
"global_settings_setting_webadmin_allowlist_help": "IP-адреса, разрешенные для доступа к веб-интерфейсу администратора. Разделенные запятыми.",
|
"global_settings_setting_webadmin_allowlist_help": "IP-адреса, разрешенные для доступа к веб-интерфейсу администратора. Разделенные запятыми.",
|
||||||
"global_settings_setting_webadmin_allowlist_enabled_help": "Разрешите доступ к веб-интерфейсу администратора только некоторым IP-адресам.",
|
"global_settings_setting_webadmin_allowlist_enabled_help": "Разрешите доступ к веб-интерфейсу администратора только некоторым IP-адресам.",
|
||||||
"global_settings_setting_ssh_allow_deprecated_dsa_hostkey_help": "Разрешить использование (устаревшего) ключа хоста DSA для конфигурации демона SSH",
|
"global_settings_setting_ssh_allow_deprecated_dsa_hostkey_help": "Разрешить использование (устаревшего) ключа хоста DSA для конфигурации демона SSH",
|
||||||
"global_settings_setting_smtp_allow_ipv6_help": "Разрешить использование IPv6 для получения и отправки почты"
|
"global_settings_setting_smtp_allow_ipv6_help": "Разрешить использование IPv6 для получения и отправки почты",
|
||||||
|
"permission_deletion_failed": "Не удалось удалить разрешение '{permission}': {error}"
|
||||||
}
|
}
|
|
@ -160,7 +160,7 @@
|
||||||
"diagnosis_apps_broken": "Táto aplikácia je v katalógu aplikácií YunoHost momentálne označená ako rozbitá. Toto môže byť dočasný problém do momentu, kedy jej správcovia danú chybu neopravia. Kým sa tak stane sú aktualizácie tejto aplikácie vypnuté.",
|
"diagnosis_apps_broken": "Táto aplikácia je v katalógu aplikácií YunoHost momentálne označená ako rozbitá. Toto môže byť dočasný problém do momentu, kedy jej správcovia danú chybu neopravia. Kým sa tak stane sú aktualizácie tejto aplikácie vypnuté.",
|
||||||
"diagnosis_apps_deprecated_practices": "Táto verzia nainštalovanej aplikácie používa niektoré prehistorické a zastaralé zásady balíčkovania. Naozaj by ste mali zvážiť jej aktualizovanie.",
|
"diagnosis_apps_deprecated_practices": "Táto verzia nainštalovanej aplikácie používa niektoré prehistorické a zastaralé zásady balíčkovania. Naozaj by ste mali zvážiť jej aktualizovanie.",
|
||||||
"diagnosis_apps_issue": "V aplikácií {app} sa našla chyba",
|
"diagnosis_apps_issue": "V aplikácií {app} sa našla chyba",
|
||||||
"diagnosis_apps_outdated_ynh_requirement": "Tejto verzii nainštalovanej aplikácie stačí yunohost vo verzii 2.x, čo naznačuje, že neobsahuje aktuálne odporúčané zásady balíčkovania a pomocné skripty. Naozaj by ste mali zvážiť jej aktualizáciu.",
|
"diagnosis_apps_outdated_ynh_requirement": "Táto verzia nainštalovanej aplikácie vyžaduje yunohost iba vo verzii 2.x alebo 3.x, čo naznačuje, že neobsahuje aktuálne odporúčané zásady balíčkovania a pomocné skripty. Naozaj by ste mali zvážiť jej aktualizáciu.",
|
||||||
"diagnosis_basesystem_hardware": "Hardvérová architektúra servera je {virt} {arch}",
|
"diagnosis_basesystem_hardware": "Hardvérová architektúra servera je {virt} {arch}",
|
||||||
"diagnosis_basesystem_hardware_model": "Model servera je {model}",
|
"diagnosis_basesystem_hardware_model": "Model servera je {model}",
|
||||||
"diagnosis_basesystem_host": "Server beží na Debiane {debian_version}",
|
"diagnosis_basesystem_host": "Server beží na Debiane {debian_version}",
|
||||||
|
@ -204,12 +204,34 @@
|
||||||
"diagnosis_everything_ok": "V kategórii {category} vyzerá byť všetko v poriadku!",
|
"diagnosis_everything_ok": "V kategórii {category} vyzerá byť všetko v poriadku!",
|
||||||
"diagnosis_failed": "Nepodarilo sa získať výsledok diagnostiky pre kategóriu '{category}': {error}",
|
"diagnosis_failed": "Nepodarilo sa získať výsledok diagnostiky pre kategóriu '{category}': {error}",
|
||||||
"diagnosis_failed_for_category": "Diagnostika pre kategóriu '{category}' skončila s chybou: {error}",
|
"diagnosis_failed_for_category": "Diagnostika pre kategóriu '{category}' skončila s chybou: {error}",
|
||||||
"diagnosis_found_errors": "Bolo nájdených {error} závažných chýb týkajúcich sa {category}!",
|
"diagnosis_found_errors": "Bolo nájdených {errors} závažných chýb týkajúcich sa {category}!",
|
||||||
"diagnosis_found_errors_and_warnings": "Bolo nájdených {error} závažných chýb (a {warnings} varovaní) týkajúcich sa {category}!",
|
"diagnosis_found_errors_and_warnings": "Bolo nájdených {errors} závažných chýb (a {warnings} varovaní) týkajúcich sa {category}!",
|
||||||
"diagnosis_found_warnings": "V kategórii {category} bolo nájdených {warnings} položiek, ktoré je možné opraviť.",
|
"diagnosis_found_warnings": "V kategórii {category} bolo nájdených {warnings} položiek, ktoré je možné opraviť.",
|
||||||
"diagnosis_http_connection_error": "Chyba pripojenia: nepodarilo sa pripojiť k požadovanej doméne, podľa všetkého je nedostupná.",
|
"diagnosis_http_connection_error": "Chyba pripojenia: nepodarilo sa pripojiť k požadovanej doméne, podľa všetkého je nedostupná.",
|
||||||
"diagnosis_http_could_not_diagnose": "Nepodarilo sa zistiť, či sú domény dostupné zvonka pomocou IPv{ipversion}.",
|
"diagnosis_http_could_not_diagnose": "Nepodarilo sa zistiť, či sú domény dostupné zvonka pomocou IPv{ipversion}.",
|
||||||
"diagnosis_http_could_not_diagnose_details": "Chyba: {error}",
|
"diagnosis_http_could_not_diagnose_details": "Chyba: {error}",
|
||||||
"diagnosis_http_hairpinning_issue": "Zdá sa, že Vaša miestna sieť nemá zapnutý NAT hairpinning.",
|
"diagnosis_http_hairpinning_issue": "Zdá sa, že Vaša miestna sieť nemá zapnutý NAT hairpinning.",
|
||||||
"diagnosis_high_number_auth_failures": "V poslednom čase bol zistený neobvykle vysoký počet neúspešných prihlásení. Uistite sa, či je služba fail2ban spustená a správne nastavená alebo použite vlastný port pre SSH ako je popísané na https://yunohost.org/security."
|
"diagnosis_high_number_auth_failures": "V poslednom čase bol zistený neobvykle vysoký počet neúspešných prihlásení. Uistite sa, či je služba fail2ban spustená a správne nastavená alebo použite vlastný port pre SSH ako je popísané na https://yunohost.org/security.",
|
||||||
|
"diagnosis_http_nginx_conf_not_up_to_date_details": "Pre opravu tohto problému preskúmajte rozdiely medzi konfiguráciami v termináli príkazom <cmd>yunohost tools regen-conf nginx --dry-run --with-diff</cmd> a ak so zmenami súhlasíte, aplikujte ich príkazom <cmd>yunohost tools regen-conf nginx --force</cmd>.",
|
||||||
|
"diagnosis_http_timeout": "Pri pokuse o kontaktovanie servera zvonku vypršal časový limit. Vyzerá byť nedostupný.<br>1. Najčastejšou príčinou tohto problému zvykne byť nesprávne nastavenie presmerovania portu 80 (a 443) <a href='https://yunohost.org/isp_box_config'>na váš server</a>.<br>2. Mali by ste skontrolovať, či je služba nginx spustená.<br>3. Pri komplexnejších inštaláciach: ubezpečte sa, že problém nie je spôsobený bránou firewall alebo reverznou proxy.",
|
||||||
|
"diagnosis_http_bad_status_code": "Zdá sa, že miesto vášho servera na vašu požiadavku zareagoval iný počítač (možno váš router).<br>1. Najčastejšou príčinou tohto problému zvykne byť nesprávne nastavenie presmerovania portu 80 (a 443) <a href='https://yunohost.org/isp_box_config'>na váš server</a>.<br>2. Pri komplexnejších inštaláciach: ubezpečte sa, že problém nie je spôsobený bránou firewall alebo reverznou proxy.",
|
||||||
|
"diagnosis_http_hairpinning_issue_details": "Toto pravdepodobne spôsobuje zariadenia od vášho poskytovateľa internetu / router. Vo výsledku pre používateľov mimo vašej miestnej siete (zvonku) funguje pripojenie na server normálne, to však neplatí pre používateľov v rámci miestnej siete (ako ste možno aj vy?) pri použití doménového mena alebo globálnej IP adresy. Túto situáciu sa vám možno podarí vyriešiť po prečítaní <a href='https://yunohost.org/dns_local_network'></a>",
|
||||||
|
"diagnosis_http_nginx_conf_not_up_to_date": "Nginx konfigurácia tejto domény sa zdá byť upravená ručne a znemožňuje YunoHost-u zistiť, či je dostupná na HTTP.",
|
||||||
|
"diagnosis_http_ok": "Doména {domain} je dostupná prostredníctvom HTTP mimo miestnej siete.",
|
||||||
|
"diagnosis_http_partially_unreachable": "Doména {domain} sa zdá byť nedostupná prostredníctvom HTTP mimo miestnej siete pri použití IPv{failed}, hoci funguje pri IPv{passed}.",
|
||||||
|
"diagnosis_http_special_use_tld": "Doména {domain} je založená na top-level doméne (TLD) pre zvláštne určenie ako je .local alebo .test a preto sa neočakáva, aby bola dostupná mimo miestnej siete.",
|
||||||
|
"diagnosis_http_unreachable": "Doména {domain} sa zdá byť nedostupná prostredníctvom HTTP mimo miestnej siete.",
|
||||||
|
"diagnosis_ignored_issues": "(+ {nb_ignored} ignorovaný(ch) problém(ov))",
|
||||||
|
"diagnosis_ip_no_ipv6_tip": "Váš server bude fungovať aj bez IPv6, no pre celkové zdravie internetu je lepšie ho nastaviť. V prípade, že je IPv6 dostupné, systém alebo váš poskytovateľ by ho mal automaticky nakonfigurovať. V opačnom prípade budete možno musieť nastaviť zopár vecí ručne tak, ako je vysvetlené v dokumentácii na <a href='https://yunohost.org/#/ipv6'>https://yunohost.org/#/ipv6</a>. Ak nemôžete povoliť IPv6 alebo je to na vás príliš technicky náročné, môžete pokojne toto upozornenie ignorovať.",
|
||||||
|
"diagnosis_ip_broken_dnsresolution": "Zdá sa, že z nejakého dôvodu nefunguje prekladanie názvov domén… Blokuje vaša brána firewall DNS požiadavky?",
|
||||||
|
"diagnosis_ip_broken_resolvconf": "Zdá sa, že na vašom serveri nefunguje prekladanie názvov domén, čo môže súvisieť s tým, že <code>/etc/resolv.conf</code> neukazuje na <code>127.0.0.1</code>.",
|
||||||
|
"diagnosis_ip_connected_ipv4": "Server nie je pripojený k internetu prostredníctvom IPv4!",
|
||||||
|
"diagnosis_ip_connected_ipv6": "Server nie je pripojený k internetu prostredníctvom IPv6!",
|
||||||
|
"diagnosis_ip_dnsresolution_working": "Preklad názvov domén nefunguje!",
|
||||||
|
"diagnosis_ip_global": "Globálna IP adresa: <code>{global}</code>",
|
||||||
|
"diagnosis_ip_local": "Miestna IP adresa: <code>{local}</code>",
|
||||||
|
"diagnosis_ip_no_ipv4": "Na serveri nefunguje spojenie cez protokol IPv4.",
|
||||||
|
"diagnosis_ip_no_ipv6": "Na serveri nefunguje spojenie cez protokol IPv6.",
|
||||||
|
"diagnosis_ip_not_connected_at_all": "Zdá sa, že tento server nie je vôbec pripojený k internetu!?",
|
||||||
|
"diagnosis_ip_weird_resolvconf": "Zdá sa, že preklad názvov domén funguje, ale podľa všetkého používate vlastný súbor <code>/etc/resolv.conf</code>."
|
||||||
}
|
}
|
|
@ -13,6 +13,6 @@
|
||||||
"admin_password_too_long": "దయచేసి 127 క్యారెక్టర్ల కంటే చిన్న పాస్వర్డ్ ఎంచుకోండి",
|
"admin_password_too_long": "దయచేసి 127 క్యారెక్టర్ల కంటే చిన్న పాస్వర్డ్ ఎంచుకోండి",
|
||||||
"app_action_broke_system": "ఈ చర్య ఈ ముఖ్యమైన సేవలను విచ్ఛిన్నం చేసినట్లుగా కనిపిస్తోంది: {services}",
|
"app_action_broke_system": "ఈ చర్య ఈ ముఖ్యమైన సేవలను విచ్ఛిన్నం చేసినట్లుగా కనిపిస్తోంది: {services}",
|
||||||
"app_action_cannot_be_ran_because_required_services_down": "ఈ చర్యను అమలు చేయడానికి ఈ అవసరమైన సేవలు అమలు చేయబడాలి: {services}. కొనసాగడం కొరకు వాటిని పునఃప్రారంభించడానికి ప్రయత్నించండి (మరియు అవి ఎందుకు పనిచేయడం లేదో పరిశోధించవచ్చు).",
|
"app_action_cannot_be_ran_because_required_services_down": "ఈ చర్యను అమలు చేయడానికి ఈ అవసరమైన సేవలు అమలు చేయబడాలి: {services}. కొనసాగడం కొరకు వాటిని పునఃప్రారంభించడానికి ప్రయత్నించండి (మరియు అవి ఎందుకు పనిచేయడం లేదో పరిశోధించవచ్చు).",
|
||||||
"app_argument_choice_invalid": "ఆర్గ్యుమెంట్ '{name}' కొరకు చెల్లుబాటు అయ్యే వైల్యూ ఎంచుకోండి: '{value}' అనేది లభ్యం అవుతున్న ఎంపికల్లో ({Choices}) లేదు",
|
"app_argument_choice_invalid": "ఆర్గ్యుమెంట్ '{name}' కొరకు చెల్లుబాటు అయ్యే వైల్యూ ఎంచుకోండి: '{value}' అనేది లభ్యం అవుతున్న ఎంపికల్లో ({choices}) లేదు",
|
||||||
"app_argument_password_no_default": "పాస్వర్డ్ ఆర్గ్యుమెంట్ '{name}'ని పార్సింగ్ చేసేటప్పుడు దోషం: భద్రతా కారణం కొరకు పాస్వర్డ్ ఆర్గ్యుమెంట్ డిఫాల్ట్ విలువను కలిగి ఉండరాదు"
|
"app_argument_password_no_default": "పాస్వర్డ్ ఆర్గ్యుమెంట్ '{name}'ని పార్సింగ్ చేసేటప్పుడు దోషం: భద్రతా కారణం కొరకు పాస్వర్డ్ ఆర్గ్యుమెంట్ డిఫాల్ట్ విలువను కలిగి ఉండరాదు"
|
||||||
}
|
}
|
|
@ -650,7 +650,6 @@
|
||||||
"migration_0021_patching_sources_list": "Виправлення sources.lists...",
|
"migration_0021_patching_sources_list": "Виправлення sources.lists...",
|
||||||
"migration_0021_main_upgrade": "Початок основного оновлення...",
|
"migration_0021_main_upgrade": "Початок основного оновлення...",
|
||||||
"migration_0021_yunohost_upgrade": "Початок оновлення ядра YunoHost...",
|
"migration_0021_yunohost_upgrade": "Початок оновлення ядра YunoHost...",
|
||||||
"migration_0021_not_buster": "Поточний дистрибутив Debian не є Buster!",
|
|
||||||
"migration_0021_problematic_apps_warning": "Зверніть увагу, що були виявлені наступні, ймовірно проблемні встановлені застосунки. Схоже, що вони не були встановлені з каталогу застосунків YunoHost або не зазначені як «робочі». Отже, не можна гарантувати, що вони будуть працювати після оновлення: {problematic_apps}",
|
"migration_0021_problematic_apps_warning": "Зверніть увагу, що були виявлені наступні, ймовірно проблемні встановлені застосунки. Схоже, що вони не були встановлені з каталогу застосунків YunoHost або не зазначені як «робочі». Отже, не можна гарантувати, що вони будуть працювати після оновлення: {problematic_apps}",
|
||||||
"migration_0021_modified_files": "Зверніть увагу, що такі файли були змінені вручну і можуть бути перезаписані після оновлення: {manually_modified_files}",
|
"migration_0021_modified_files": "Зверніть увагу, що такі файли були змінені вручну і можуть бути перезаписані після оновлення: {manually_modified_files}",
|
||||||
"migration_0021_cleaning_up": "Очищення кеш-пам'яті і пакетів, які більше не потрібні...",
|
"migration_0021_cleaning_up": "Очищення кеш-пам'яті і пакетів, які більше не потрібні...",
|
||||||
|
@ -683,5 +682,12 @@
|
||||||
"global_settings_setting_webadmin_allowlist_enabled_help": "Дозволити доступ до вебадміністрації тільки деяким IP-адресам.",
|
"global_settings_setting_webadmin_allowlist_enabled_help": "Дозволити доступ до вебадміністрації тільки деяким IP-адресам.",
|
||||||
"global_settings_setting_ssh_allow_deprecated_dsa_hostkey_help": "Дозволити використання (застарілого) ключа DSA для конфігурації демона SSH",
|
"global_settings_setting_ssh_allow_deprecated_dsa_hostkey_help": "Дозволити використання (застарілого) ключа DSA для конфігурації демона SSH",
|
||||||
"global_settings_setting_smtp_allow_ipv6_help": "Дозволити використання IPv6 для отримання і надсилання листів е-пошти",
|
"global_settings_setting_smtp_allow_ipv6_help": "Дозволити використання IPv6 для отримання і надсилання листів е-пошти",
|
||||||
"global_settings_setting_smtp_relay_enabled_help": "Хост SMTP-ретрансляції, який буде використовуватися для надсилання е-пошти замість цього зразка Yunohost. Корисно, якщо ви знаходитеся в одній із цих ситуацій: ваш 25 порт заблокований вашим провайдером або VPS провайдером, у вас є житловий IP в списку DUHL, ви не можете налаштувати зворотний DNS або цей сервер не доступний безпосередньо в Інтернеті і ви хочете використовувати інший сервер для відправки електронних листів."
|
"global_settings_setting_smtp_relay_enabled_help": "Хост SMTP-ретрансляції, який буде використовуватися для надсилання е-пошти замість цього зразка Yunohost. Корисно, якщо ви знаходитеся в одній із цих ситуацій: ваш 25 порт заблокований вашим провайдером або VPS провайдером, у вас є житловий IP в списку DUHL, ви не можете налаштувати зворотний DNS або цей сервер не доступний безпосередньо в Інтернеті і ви хочете використовувати інший сервер для відправки електронних листів.",
|
||||||
|
"migration_0024_rebuild_python_venv_disclaimer_base": "Після оновлення до Debian Bullseye деякі застосунки Python потрібно частково перебудувати, щоб їх було перетворено на нову версію Python, яка постачається в Debian (з технічної точки зору: те, що називається «virtualenv», потрібно створити заново). Тим часом ці застосунки Python можуть не працювати. YunoHost може спробувати перебудувати virtualenv для деяких із них, як описано нижче. Для інших застосунків або якщо спроба відновлення не вдається, вам потрібно буде вручну примусово оновити їх.",
|
||||||
|
"migration_0024_rebuild_python_venv_broken_app": "Пропущено {app}, бо virtualenv не можна легко перебудувати для цього застосунку. Натомість вам слід виправити ситуацію, примусово оновивши застосунок за допомогою `yunohost app upgrade --force {app}`.",
|
||||||
|
"migration_0024_rebuild_python_venv_disclaimer_rebuild": "Буде зроблена спроба перебудувати virtualenv для таких застосунків (Примітка: операція може зайняти деякий час!): {rebuild_apps}",
|
||||||
|
"migration_0024_rebuild_python_venv_in_progress": "Намагаємося перебудувати Python virtualenv для `{app}`",
|
||||||
|
"migration_description_0024_rebuild_python_venv": "Відновлення застосунку Python після міграції до bullseye",
|
||||||
|
"migration_0024_rebuild_python_venv_disclaimer_ignored": "Virtualenvs не можна автоматично перебудувати для цих застосунків. Вам потрібно примусово оновити його для них, що можна зробити з командного рядка за допомогою: `yunohost app upgrade --force APP`: {ignored_apps}",
|
||||||
|
"migration_0024_rebuild_python_venv_failed": "Не вдалося перебудувати Python virtualenv для {app}. Застосунок може не працювати, доки це не вирішено. Ви повинні виправити ситуацію, примусово оновивши його за допомогою `yunohost app upgrade --force {app}`."
|
||||||
}
|
}
|
|
@ -11,8 +11,8 @@ echo "$REPO ($VERSION) $RELEASE; urgency=low"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
git log $LAST_RELEASE.. -n 10000 --first-parent --pretty=tformat:' - %b%s (%h)' \
|
git log $LAST_RELEASE.. -n 10000 --first-parent --pretty=tformat:' - %b%s (%h)' \
|
||||||
| sed -E "s@Merge .*#([0-9]+).*\$@ \([#\1]\($REPO_URL/pull/\1\)\)@g" \
|
| sed -E "s&Merge .*#([0-9]+).*\$& \([#\1]\($REPO_URL/pull/\1\)\)&g" \
|
||||||
| grep -v "Update from Weblate" \
|
| grep -v "Translations update from Weblate" \
|
||||||
| tac
|
| tac
|
||||||
|
|
||||||
TRANSLATIONS=$(git log $LAST_RELEASE... -n 10000 --pretty=format:"%s" \
|
TRANSLATIONS=$(git log $LAST_RELEASE... -n 10000 --pretty=format:"%s" \
|
||||||
|
|
15
src/app.py
15
src/app.py
|
@ -1345,7 +1345,7 @@ def app_ssowatconf():
|
||||||
|
|
||||||
for app in _installed_apps():
|
for app in _installed_apps():
|
||||||
|
|
||||||
app_settings = read_yaml(APPS_SETTING_PATH + app + "/settings.yml")
|
app_settings = read_yaml(APPS_SETTING_PATH + app + "/settings.yml") or {}
|
||||||
|
|
||||||
# Redirected
|
# Redirected
|
||||||
redirected_urls.update(app_settings.get("redirected_urls", {}))
|
redirected_urls.update(app_settings.get("redirected_urls", {}))
|
||||||
|
@ -1713,11 +1713,20 @@ def _get_app_settings(app):
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
with open(os.path.join(APPS_SETTING_PATH, app, "settings.yml")) as f:
|
with open(os.path.join(APPS_SETTING_PATH, app, "settings.yml")) as f:
|
||||||
settings = yaml.safe_load(f)
|
settings = yaml.safe_load(f) or {}
|
||||||
# If label contains unicode char, this may later trigger issues when building strings...
|
# If label contains unicode char, this may later trigger issues when building strings...
|
||||||
# FIXME: this should be propagated to read_yaml so that this fix applies everywhere I think...
|
# FIXME: this should be propagated to read_yaml so that this fix applies everywhere I think...
|
||||||
settings = {k: v for k, v in settings.items()}
|
settings = {k: v for k, v in settings.items()}
|
||||||
|
|
||||||
|
# App settings should never be empty, there should always be at least some standard, internal keys like id, install_time etc.
|
||||||
|
# Otherwise, this probably means that the app settings disappeared somehow...
|
||||||
|
if not settings:
|
||||||
|
logger.error(
|
||||||
|
f"It looks like settings.yml for {app} is empty ... This should not happen ..."
|
||||||
|
)
|
||||||
|
logger.error(m18n.n("app_not_correctly_installed", app=app))
|
||||||
|
return {}
|
||||||
|
|
||||||
# Stupid fix for legacy bullshit
|
# Stupid fix for legacy bullshit
|
||||||
# In the past, some setups did not have proper normalization for app domain/path
|
# In the past, some setups did not have proper normalization for app domain/path
|
||||||
# Meaning some setups (as of January 2021) still have path=/foobar/ (with a trailing slash)
|
# Meaning some setups (as of January 2021) still have path=/foobar/ (with a trailing slash)
|
||||||
|
@ -2440,7 +2449,7 @@ def is_true(arg):
|
||||||
def unstable_apps():
|
def unstable_apps():
|
||||||
|
|
||||||
output = []
|
output = []
|
||||||
deprecated_apps = ["mailman"]
|
deprecated_apps = ["mailman", "ffsync"]
|
||||||
|
|
||||||
for infos in app_list(full=True)["apps"]:
|
for infos in app_list(full=True)["apps"]:
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,9 @@ class MyDiagnoser(Diagnoser):
|
||||||
yunohost_version_req = (
|
yunohost_version_req = (
|
||||||
app["manifest"].get("requirements", {}).get("yunohost", "").strip(">= ")
|
app["manifest"].get("requirements", {}).get("yunohost", "").strip(">= ")
|
||||||
)
|
)
|
||||||
if yunohost_version_req.startswith("2."):
|
if yunohost_version_req.startswith("2.") or yunohost_version_req.startswith(
|
||||||
|
"3."
|
||||||
|
):
|
||||||
yield ("error", "diagnosis_apps_outdated_ynh_requirement")
|
yield ("error", "diagnosis_apps_outdated_ynh_requirement")
|
||||||
|
|
||||||
deprecated_helpers = [
|
deprecated_helpers = [
|
||||||
|
|
|
@ -460,7 +460,7 @@ class DomainConfigPanel(ConfigPanel):
|
||||||
):
|
):
|
||||||
from yunohost.app import app_ssowatconf, app_map
|
from yunohost.app import app_ssowatconf, app_map
|
||||||
|
|
||||||
if "/" in app_map(raw=True)[self.entity]:
|
if "/" in app_map(raw=True).get(self.entity, {}):
|
||||||
raise YunohostValidationError(
|
raise YunohostValidationError(
|
||||||
"app_make_default_location_already_used",
|
"app_make_default_location_already_used",
|
||||||
app=self.future_values["default_app"],
|
app=self.future_values["default_app"],
|
||||||
|
|
|
@ -27,27 +27,27 @@ logger = getActionLogger("yunohost.migration")
|
||||||
N_CURRENT_DEBIAN = 10
|
N_CURRENT_DEBIAN = 10
|
||||||
N_CURRENT_YUNOHOST = 4
|
N_CURRENT_YUNOHOST = 4
|
||||||
|
|
||||||
N_NEXT_DEBAN = 11
|
|
||||||
N_NEXT_YUNOHOST = 11
|
|
||||||
|
|
||||||
VENV_REQUIREMENTS_SUFFIX = ".requirements_backup_for_bullseye_upgrade.txt"
|
VENV_REQUIREMENTS_SUFFIX = ".requirements_backup_for_bullseye_upgrade.txt"
|
||||||
|
|
||||||
|
|
||||||
def _get_all_venvs(dir, level=0, maxlevel=3):
|
def _get_all_venvs(dir, level=0, maxlevel=3):
|
||||||
"""
|
"""
|
||||||
Returns the list of all python virtual env directories recursively
|
Returns the list of all python virtual env directories recursively
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
dir - the directory to scan in
|
dir - the directory to scan in
|
||||||
maxlevel - the depth of the recursion
|
maxlevel - the depth of the recursion
|
||||||
level - do not edit this, used as an iterator
|
level - do not edit this, used as an iterator
|
||||||
"""
|
"""
|
||||||
# Using os functions instead of glob, because glob doesn't support hidden folders, and we need recursion with a fixed depth
|
if not os.path.exists(dir):
|
||||||
|
return []
|
||||||
|
|
||||||
result = []
|
result = []
|
||||||
|
# Using os functions instead of glob, because glob doesn't support hidden folders, and we need recursion with a fixed depth
|
||||||
for file in os.listdir(dir):
|
for file in os.listdir(dir):
|
||||||
path = os.path.join(dir, file)
|
path = os.path.join(dir, file)
|
||||||
if os.path.isdir(path):
|
if os.path.isdir(path):
|
||||||
activatepath = os.path.join(path,"bin", "activate")
|
activatepath = os.path.join(path, "bin", "activate")
|
||||||
if os.path.isfile(activatepath):
|
if os.path.isfile(activatepath):
|
||||||
content = read_file(activatepath)
|
content = read_file(activatepath)
|
||||||
if ("VIRTUAL_ENV" in content) and ("PYTHONHOME" in content):
|
if ("VIRTUAL_ENV" in content) and ("PYTHONHOME" in content):
|
||||||
|
@ -60,13 +60,15 @@ def _get_all_venvs(dir, level=0, maxlevel=3):
|
||||||
|
|
||||||
def _backup_pip_freeze_for_python_app_venvs():
|
def _backup_pip_freeze_for_python_app_venvs():
|
||||||
"""
|
"""
|
||||||
Generate a requirements file for all python virtual env located inside /opt/ and /var/www/
|
Generate a requirements file for all python virtual env located inside /opt/ and /var/www/
|
||||||
"""
|
"""
|
||||||
|
|
||||||
venvs = _get_all_venvs("/opt/") + _get_all_venvs("/var/www/")
|
venvs = _get_all_venvs("/opt/") + _get_all_venvs("/var/www/")
|
||||||
for venv in venvs:
|
for venv in venvs:
|
||||||
# Generate a requirements file from venv
|
# Generate a requirements file from venv
|
||||||
os.system(f"{venv}/bin/pip freeze > {venv}{VENV_REQUIREMENTS_SUFFIX}")
|
os.system(
|
||||||
|
f"{venv}/bin/pip freeze > {venv}{VENV_REQUIREMENTS_SUFFIX} 2>/dev/null"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class MyMigration(Migration):
|
class MyMigration(Migration):
|
||||||
|
@ -185,6 +187,47 @@ class MyMigration(Migration):
|
||||||
del services["postgresql"]
|
del services["postgresql"]
|
||||||
_save_services(services)
|
_save_services(services)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Critical fix for RPI otherwise network is down after rebooting
|
||||||
|
# https://forum.yunohost.org/t/20652
|
||||||
|
#
|
||||||
|
if os.system("systemctl | grep -q dhcpcd") == 0:
|
||||||
|
logger.info("Applying fix for DHCPCD ...")
|
||||||
|
os.system("mkdir -p /etc/systemd/system/dhcpcd.service.d")
|
||||||
|
write_to_file(
|
||||||
|
"/etc/systemd/system/dhcpcd.service.d/wait.conf",
|
||||||
|
"[Service]\nExecStart=\nExecStart=/usr/sbin/dhcpcd -w",
|
||||||
|
)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Another boring fix for the super annoying libc6-dev: Breaks libgcc-8-dev
|
||||||
|
# https://forum.yunohost.org/t/20617
|
||||||
|
#
|
||||||
|
if (
|
||||||
|
os.system("dpkg --list | grep '^ii' | grep -q ' libgcc-8-dev'") == 0
|
||||||
|
and os.system(
|
||||||
|
"LC_ALL=C apt policy libgcc-8-dev | grep Candidate | grep -q rpi"
|
||||||
|
)
|
||||||
|
== 0
|
||||||
|
):
|
||||||
|
logger.info(
|
||||||
|
"Attempting to fix the build-essential / libc6-dev / libgcc-8-dev hell ..."
|
||||||
|
)
|
||||||
|
os.system("cp /var/lib/dpkg/status /root/dpkg_status.bkp")
|
||||||
|
# This removes the dependency to build-essential from $app-ynh-deps
|
||||||
|
os.system(
|
||||||
|
"perl -i~ -0777 -pe 's/(Package: .*-ynh-deps\\n(.+:.+\\n)+Depends:.*)(build-essential, ?)(.*)/$1$4/g' /var/lib/dpkg/status"
|
||||||
|
)
|
||||||
|
self.apt_install(
|
||||||
|
"build-essential-"
|
||||||
|
) # Note the '-' suffix to mean that we actually want to remove the packages
|
||||||
|
os.system(
|
||||||
|
"LC_ALL=C DEBIAN_FRONTEND=noninteractive APT_LISTCHANGES_FRONTEND=none apt autoremove --assume-yes"
|
||||||
|
)
|
||||||
|
self.apt_install(
|
||||||
|
"gcc-8- libgcc-8-dev-"
|
||||||
|
) # Note the '-' suffix to mean that we actually want to remove the packages
|
||||||
|
|
||||||
#
|
#
|
||||||
# Main upgrade
|
# Main upgrade
|
||||||
#
|
#
|
||||||
|
@ -277,9 +320,19 @@ class MyMigration(Migration):
|
||||||
|
|
||||||
# Clean the mess
|
# Clean the mess
|
||||||
logger.info(m18n.n("migration_0021_cleaning_up"))
|
logger.info(m18n.n("migration_0021_cleaning_up"))
|
||||||
os.system("apt autoremove --assume-yes")
|
os.system(
|
||||||
|
"LC_ALL=C DEBIAN_FRONTEND=noninteractive APT_LISTCHANGES_FRONTEND=none apt autoremove --assume-yes"
|
||||||
|
)
|
||||||
os.system("apt clean --assume-yes")
|
os.system("apt clean --assume-yes")
|
||||||
|
|
||||||
|
#
|
||||||
|
# Stupid hack for stupid dnsmasq not picking up its new init.d script then breaking everything ...
|
||||||
|
# https://forum.yunohost.org/t/20676
|
||||||
|
#
|
||||||
|
if os.path.exists("/etc/init.d/dnsmasq.dpkg-dist"):
|
||||||
|
logger.info("Copying new version for /etc/init.d/dnsmasq ...")
|
||||||
|
os.system("cp /etc/init.d/dnsmasq.dpkg-dist /etc/init.d/dnsmasq")
|
||||||
|
|
||||||
#
|
#
|
||||||
# Yunohost upgrade
|
# Yunohost upgrade
|
||||||
#
|
#
|
||||||
|
@ -308,7 +361,6 @@ class MyMigration(Migration):
|
||||||
|
|
||||||
tools_upgrade(target="system", postupgradecmds=postupgradecmds)
|
tools_upgrade(target="system", postupgradecmds=postupgradecmds)
|
||||||
|
|
||||||
|
|
||||||
def debian_major_version(self):
|
def debian_major_version(self):
|
||||||
# The python module "platform" and lsb_release are not reliable because
|
# The python module "platform" and lsb_release are not reliable because
|
||||||
# on some setup, they may still return Release=9 even after upgrading to
|
# on some setup, they may still return Release=9 even after upgrading to
|
||||||
|
@ -335,16 +387,38 @@ class MyMigration(Migration):
|
||||||
not self.debian_major_version() == N_CURRENT_DEBIAN
|
not self.debian_major_version() == N_CURRENT_DEBIAN
|
||||||
and not self.yunohost_major_version() == N_CURRENT_YUNOHOST
|
and not self.yunohost_major_version() == N_CURRENT_YUNOHOST
|
||||||
):
|
):
|
||||||
raise YunohostError("migration_0021_not_buster")
|
try:
|
||||||
|
# Here we try to find the previous migration log, which should be somewhat recent and be at least 10k (we keep the biggest one)
|
||||||
|
maybe_previous_migration_log_id = check_output(
|
||||||
|
"cd /var/log/yunohost/categories/operation && find -name '*migrate*.log' -size +10k -mtime -100 -exec ls -s {} \\; | sort -n | tr './' ' ' | awk '{print $2}' | tail -n 1"
|
||||||
|
)
|
||||||
|
if maybe_previous_migration_log_id:
|
||||||
|
logger.info(
|
||||||
|
f"NB: the previous migration log id seems to be {maybe_previous_migration_log_id}. You can share it with the support team with : sudo yunohost log share {maybe_previous_migration_log_id}"
|
||||||
|
)
|
||||||
|
except Exception:
|
||||||
|
# Yeah it's not that important ... it's to simplify support ...
|
||||||
|
pass
|
||||||
|
|
||||||
|
raise YunohostError("migration_0021_not_buster2")
|
||||||
|
|
||||||
# Have > 1 Go free space on /var/ ?
|
# Have > 1 Go free space on /var/ ?
|
||||||
if free_space_in_directory("/var/") / (1024**3) < 1.0:
|
if free_space_in_directory("/var/") / (1024**3) < 1.0:
|
||||||
raise YunohostError("migration_0021_not_enough_free_space")
|
raise YunohostError("migration_0021_not_enough_free_space")
|
||||||
|
|
||||||
|
# Have > 70 MB free space on /var/ ?
|
||||||
|
if free_space_in_directory("/boot/") / (1024**2) < 70.0:
|
||||||
|
raise YunohostError(
|
||||||
|
"/boot/ has less than 70MB available. This will probably trigger a crash during the upgrade because a new kernel needs to be installed. Please look for advice on the forum on how to remove old, unused kernels to free up some space in /boot/.",
|
||||||
|
raw_msg=True,
|
||||||
|
)
|
||||||
|
|
||||||
# Check system is up to date
|
# Check system is up to date
|
||||||
# (but we don't if 'bullseye' is already in the sources.list ...
|
# (but we don't if 'bullseye' is already in the sources.list ...
|
||||||
# which means maybe a previous upgrade crashed and we're re-running it)
|
# which means maybe a previous upgrade crashed and we're re-running it)
|
||||||
if os.path.exists("/etc/apt/sources.list") and " bullseye " not in read_file("/etc/apt/sources.list"):
|
if os.path.exists("/etc/apt/sources.list") and " bullseye " not in read_file(
|
||||||
|
"/etc/apt/sources.list"
|
||||||
|
):
|
||||||
tools_update(target="system")
|
tools_update(target="system")
|
||||||
upgradable_system_packages = list(_list_upgradable_apt_packages())
|
upgradable_system_packages = list(_list_upgradable_apt_packages())
|
||||||
upgradable_system_packages = [
|
upgradable_system_packages = [
|
||||||
|
@ -391,8 +465,8 @@ class MyMigration(Migration):
|
||||||
message = m18n.n("migration_0021_general_warning")
|
message = m18n.n("migration_0021_general_warning")
|
||||||
|
|
||||||
message = (
|
message = (
|
||||||
"N.B.: This migration has been tested by the community over the last few months but has only been declared stable recently. If your server hosts critical services and if you are not too confident with debugging possible issues, we recommend you to wait a little bit more while we gather more feedback and polish things up. If on the other hand you are relatively confident with debugging small issues that may arise, you are encouraged to run this migration ;)! You can read about remaining known issues and feedback from the community here: https://forum.yunohost.org/t/20590\n\n"
|
"N.B.: This migration has been tested by the community over the last few months but has only been declared stable recently. If your server hosts critical services and if you are not too confident with debugging possible issues, we recommend you to wait a little bit more while we gather more feedback and polish things up. If on the other hand you are relatively confident with debugging small issues that may arise, you are encouraged to run this migration ;)! You can read about remaining known issues and feedback from the community here: https://forum.yunohost.org/t/20590\n\n"
|
||||||
+ message
|
+ message
|
||||||
)
|
)
|
||||||
|
|
||||||
if problematic_apps:
|
if problematic_apps:
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import subprocess
|
import subprocess
|
||||||
import time
|
import time
|
||||||
|
import os
|
||||||
|
|
||||||
from moulinette import m18n
|
from moulinette import m18n
|
||||||
from yunohost.utils.error import YunohostError, YunohostValidationError
|
from yunohost.utils.error import YunohostError, YunohostValidationError
|
||||||
|
@ -19,6 +20,15 @@ class MyMigration(Migration):
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
|
||||||
|
if (
|
||||||
|
os.system(
|
||||||
|
'grep -A10 "ynh-deps" /var/lib/dpkg/status | grep -E "Package:|Depends:" | grep -B1 postgresql'
|
||||||
|
)
|
||||||
|
!= 0
|
||||||
|
):
|
||||||
|
logger.info("No YunoHost app seem to require postgresql... Skipping!")
|
||||||
|
return
|
||||||
|
|
||||||
if not self.package_is_installed("postgresql-11"):
|
if not self.package_is_installed("postgresql-11"):
|
||||||
logger.warning(m18n.n("migration_0023_postgresql_11_not_installed"))
|
logger.warning(m18n.n("migration_0023_postgresql_11_not_installed"))
|
||||||
return
|
return
|
||||||
|
|
|
@ -23,13 +23,16 @@ def extract_app_from_venv_path(venv_path):
|
||||||
|
|
||||||
def _get_all_venvs(dir, level=0, maxlevel=3):
|
def _get_all_venvs(dir, level=0, maxlevel=3):
|
||||||
"""
|
"""
|
||||||
Returns the list of all python virtual env directories recursively
|
Returns the list of all python virtual env directories recursively
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
dir - the directory to scan in
|
dir - the directory to scan in
|
||||||
maxlevel - the depth of the recursion
|
maxlevel - the depth of the recursion
|
||||||
level - do not edit this, used as an iterator
|
level - do not edit this, used as an iterator
|
||||||
"""
|
"""
|
||||||
|
if not os.path.exists(dir):
|
||||||
|
return []
|
||||||
|
|
||||||
# Using os functions instead of glob, because glob doesn't support hidden
|
# Using os functions instead of glob, because glob doesn't support hidden
|
||||||
# folders, and we need recursion with a fixed depth
|
# folders, and we need recursion with a fixed depth
|
||||||
result = []
|
result = []
|
||||||
|
@ -37,7 +40,9 @@ def _get_all_venvs(dir, level=0, maxlevel=3):
|
||||||
path = os.path.join(dir, file)
|
path = os.path.join(dir, file)
|
||||||
if os.path.isdir(path):
|
if os.path.isdir(path):
|
||||||
activatepath = os.path.join(path, "bin", "activate")
|
activatepath = os.path.join(path, "bin", "activate")
|
||||||
if os.path.isfile(activatepath) and os.path.isfile(path + VENV_REQUIREMENTS_SUFFIX):
|
if os.path.isfile(activatepath) and os.path.isfile(
|
||||||
|
path + VENV_REQUIREMENTS_SUFFIX
|
||||||
|
):
|
||||||
result.append(path)
|
result.append(path)
|
||||||
continue
|
continue
|
||||||
if level < maxlevel:
|
if level < maxlevel:
|
||||||
|
@ -50,6 +55,7 @@ class MyMigration(Migration):
|
||||||
After the update, recreate a python virtual env based on the previously
|
After the update, recreate a python virtual env based on the previously
|
||||||
generated requirements file
|
generated requirements file
|
||||||
"""
|
"""
|
||||||
|
|
||||||
ignored_python_apps = [
|
ignored_python_apps = [
|
||||||
"calibreweb",
|
"calibreweb",
|
||||||
"django-for-runners",
|
"django-for-runners",
|
||||||
|
@ -62,7 +68,8 @@ class MyMigration(Migration):
|
||||||
"pgadmin",
|
"pgadmin",
|
||||||
"tracim",
|
"tracim",
|
||||||
"synapse",
|
"synapse",
|
||||||
"weblate"
|
"matrix-synapse",
|
||||||
|
"weblate",
|
||||||
]
|
]
|
||||||
|
|
||||||
dependencies = ["migrate_to_bullseye"]
|
dependencies = ["migrate_to_bullseye"]
|
||||||
|
@ -70,7 +77,9 @@ class MyMigration(Migration):
|
||||||
|
|
||||||
def is_pending(self):
|
def is_pending(self):
|
||||||
if not self.state:
|
if not self.state:
|
||||||
self.state = tools_migrations_state()["migrations"].get("0024_rebuild_python_venv", "pending")
|
self.state = tools_migrations_state()["migrations"].get(
|
||||||
|
"0024_rebuild_python_venv", "pending"
|
||||||
|
)
|
||||||
return self.state == "pending"
|
return self.state == "pending"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -90,6 +99,10 @@ class MyMigration(Migration):
|
||||||
if not self.is_pending():
|
if not self.is_pending():
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
# Disclaimer should be empty if in auto, otherwise it excepts the --accept-disclaimer option during debian postinst
|
||||||
|
if self.mode == "auto":
|
||||||
|
return None
|
||||||
|
|
||||||
ignored_apps = []
|
ignored_apps = []
|
||||||
rebuild_apps = []
|
rebuild_apps = []
|
||||||
|
|
||||||
|
@ -101,48 +114,76 @@ class MyMigration(Migration):
|
||||||
app_corresponding_to_venv = extract_app_from_venv_path(venv)
|
app_corresponding_to_venv = extract_app_from_venv_path(venv)
|
||||||
|
|
||||||
# Search for ignore apps
|
# Search for ignore apps
|
||||||
if any(app_corresponding_to_venv.startswith(app) for app in self.ignored_python_apps):
|
if any(
|
||||||
|
app_corresponding_to_venv.startswith(app)
|
||||||
|
for app in self.ignored_python_apps
|
||||||
|
):
|
||||||
ignored_apps.append(app_corresponding_to_venv)
|
ignored_apps.append(app_corresponding_to_venv)
|
||||||
else:
|
else:
|
||||||
rebuild_apps.append(app_corresponding_to_venv)
|
rebuild_apps.append(app_corresponding_to_venv)
|
||||||
|
|
||||||
msg = m18n.n("migration_0024_rebuild_python_venv_disclaimer_base")
|
msg = m18n.n("migration_0024_rebuild_python_venv_disclaimer_base")
|
||||||
if rebuild_apps:
|
if rebuild_apps:
|
||||||
msg += "\n\n" + m18n.n("migration_0024_rebuild_python_venv_disclaimer_rebuild",
|
msg += "\n\n" + m18n.n(
|
||||||
rebuild_apps="\n - " + "\n - ".join(rebuild_apps))
|
"migration_0024_rebuild_python_venv_disclaimer_rebuild",
|
||||||
|
rebuild_apps="\n - " + "\n - ".join(rebuild_apps),
|
||||||
|
)
|
||||||
if ignored_apps:
|
if ignored_apps:
|
||||||
msg += "\n\n" + m18n.n("migration_0024_rebuild_python_venv_disclaimer_ignored",
|
msg += "\n\n" + m18n.n(
|
||||||
ignored_apps="\n - " + "\n - ".join(ignored_apps))
|
"migration_0024_rebuild_python_venv_disclaimer_ignored",
|
||||||
|
ignored_apps="\n - " + "\n - ".join(ignored_apps),
|
||||||
|
)
|
||||||
|
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
|
||||||
|
if self.mode == "auto":
|
||||||
|
return
|
||||||
|
|
||||||
venvs = _get_all_venvs("/opt/") + _get_all_venvs("/var/www/")
|
venvs = _get_all_venvs("/opt/") + _get_all_venvs("/var/www/")
|
||||||
for venv in venvs:
|
for venv in venvs:
|
||||||
|
|
||||||
app_corresponding_to_venv = extract_app_from_venv_path(venv)
|
app_corresponding_to_venv = extract_app_from_venv_path(venv)
|
||||||
|
|
||||||
# Search for ignore apps
|
# Search for ignore apps
|
||||||
if any(app_corresponding_to_venv.startswith(app) for app in self.ignored_python_apps):
|
if any(
|
||||||
|
app_corresponding_to_venv.startswith(app)
|
||||||
|
for app in self.ignored_python_apps
|
||||||
|
):
|
||||||
rm(venv + VENV_REQUIREMENTS_SUFFIX)
|
rm(venv + VENV_REQUIREMENTS_SUFFIX)
|
||||||
logger.info(m18n.n("migration_0024_rebuild_python_venv_broken_app", app=app_corresponding_to_venv))
|
logger.info(
|
||||||
|
m18n.n(
|
||||||
|
"migration_0024_rebuild_python_venv_broken_app",
|
||||||
|
app=app_corresponding_to_venv,
|
||||||
|
)
|
||||||
|
)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
logger.info(m18n.n("migration_0024_rebuild_python_venv_in_progress", app=app_corresponding_to_venv))
|
logger.info(
|
||||||
|
m18n.n(
|
||||||
|
"migration_0024_rebuild_python_venv_in_progress",
|
||||||
|
app=app_corresponding_to_venv,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
# Recreate the venv
|
# Recreate the venv
|
||||||
rm(venv, recursive=True)
|
rm(venv, recursive=True)
|
||||||
callbacks = (
|
callbacks = (
|
||||||
lambda l: logger.debug("+ " + l.rstrip() + "\r"),
|
lambda l: logger.debug("+ " + l.rstrip() + "\r"),
|
||||||
lambda l: logger.warning(l.rstrip())
|
lambda l: logger.warning(l.rstrip()),
|
||||||
)
|
)
|
||||||
call_async_output(["python", "-m", "venv", venv], callbacks)
|
call_async_output(["python", "-m", "venv", venv], callbacks)
|
||||||
status = call_async_output([
|
status = call_async_output(
|
||||||
f"{venv}/bin/pip", "install", "-r",
|
[f"{venv}/bin/pip", "install", "-r", venv + VENV_REQUIREMENTS_SUFFIX],
|
||||||
venv + VENV_REQUIREMENTS_SUFFIX], callbacks)
|
callbacks,
|
||||||
|
)
|
||||||
if status != 0:
|
if status != 0:
|
||||||
logger.error(m18n.n("migration_0024_rebuild_python_venv_failed",
|
logger.error(
|
||||||
app=app_corresponding_to_venv))
|
m18n.n(
|
||||||
|
"migration_0024_rebuild_python_venv_failed",
|
||||||
|
app=app_corresponding_to_venv,
|
||||||
|
)
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
rm(venv + VENV_REQUIREMENTS_SUFFIX)
|
rm(venv + VENV_REQUIREMENTS_SUFFIX)
|
||||||
|
|
10
src/tools.py
10
src/tools.py
|
@ -73,7 +73,7 @@ def tools_adminpw(new_password, check_strength=True):
|
||||||
from yunohost.user import _hash_user_password
|
from yunohost.user import _hash_user_password
|
||||||
from yunohost.utils.password import (
|
from yunohost.utils.password import (
|
||||||
assert_password_is_strong_enough,
|
assert_password_is_strong_enough,
|
||||||
assert_password_is_compatible
|
assert_password_is_compatible,
|
||||||
)
|
)
|
||||||
import spwd
|
import spwd
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ def tools_postinstall(
|
||||||
from yunohost.utils.dns import is_yunohost_dyndns_domain
|
from yunohost.utils.dns import is_yunohost_dyndns_domain
|
||||||
from yunohost.utils.password import (
|
from yunohost.utils.password import (
|
||||||
assert_password_is_strong_enough,
|
assert_password_is_strong_enough,
|
||||||
assert_password_is_compatible
|
assert_password_is_compatible,
|
||||||
)
|
)
|
||||||
from yunohost.domain import domain_main_domain
|
from yunohost.domain import domain_main_domain
|
||||||
import psutil
|
import psutil
|
||||||
|
@ -219,7 +219,9 @@ def tools_postinstall(
|
||||||
)
|
)
|
||||||
|
|
||||||
# Check there's at least 10 GB on the rootfs...
|
# Check there's at least 10 GB on the rootfs...
|
||||||
disk_partitions = sorted(psutil.disk_partitions(), key=lambda k: k.mountpoint)
|
disk_partitions = sorted(
|
||||||
|
psutil.disk_partitions(all=True), key=lambda k: k.mountpoint
|
||||||
|
)
|
||||||
main_disk_partitions = [d for d in disk_partitions if d.mountpoint in ["/", "/var"]]
|
main_disk_partitions = [d for d in disk_partitions if d.mountpoint in ["/", "/var"]]
|
||||||
main_space = sum(
|
main_space = sum(
|
||||||
psutil.disk_usage(d.mountpoint).total for d in main_disk_partitions
|
psutil.disk_usage(d.mountpoint).total for d in main_disk_partitions
|
||||||
|
@ -538,6 +540,8 @@ def _apt_log_line_is_relevant(line):
|
||||||
"==> Keeping old config file as default.",
|
"==> Keeping old config file as default.",
|
||||||
"is a disabled or a static unit",
|
"is a disabled or a static unit",
|
||||||
" update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults",
|
" update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults",
|
||||||
|
"insserv: warning: current stop runlevel",
|
||||||
|
"insserv: warning: current start runlevel",
|
||||||
]
|
]
|
||||||
return line.rstrip() and all(i not in line.rstrip() for i in irrelevants)
|
return line.rstrip() and all(i not in line.rstrip() for i in irrelevants)
|
||||||
|
|
||||||
|
|
|
@ -145,7 +145,7 @@ def user_create(
|
||||||
from yunohost.hook import hook_callback
|
from yunohost.hook import hook_callback
|
||||||
from yunohost.utils.password import (
|
from yunohost.utils.password import (
|
||||||
assert_password_is_strong_enough,
|
assert_password_is_strong_enough,
|
||||||
assert_password_is_compatible
|
assert_password_is_compatible,
|
||||||
)
|
)
|
||||||
from yunohost.utils.ldap import _get_ldap_interface
|
from yunohost.utils.ldap import _get_ldap_interface
|
||||||
|
|
||||||
|
@ -371,7 +371,7 @@ def user_update(
|
||||||
from yunohost.app import app_ssowatconf
|
from yunohost.app import app_ssowatconf
|
||||||
from yunohost.utils.password import (
|
from yunohost.utils.password import (
|
||||||
assert_password_is_strong_enough,
|
assert_password_is_strong_enough,
|
||||||
assert_password_is_compatible
|
assert_password_is_compatible,
|
||||||
)
|
)
|
||||||
from yunohost.utils.ldap import _get_ldap_interface
|
from yunohost.utils.ldap import _get_ldap_interface
|
||||||
from yunohost.hook import hook_callback
|
from yunohost.hook import hook_callback
|
||||||
|
|
Loading…
Add table
Reference in a new issue