Merge branch 'dev' into bookworm

This commit is contained in:
axolotle 2023-12-01 18:46:39 +01:00
commit dad366da61
8 changed files with 41 additions and 22 deletions

9
debian/changelog vendored
View file

@ -4,6 +4,15 @@ yunohost (12.0.0) unstable; urgency=low
-- Alexandre Aubin <alex.aubin@mailoo.org> Thu, 04 May 2023 20:30:19 +0200
yunohost (11.2.7) stable; urgency=low
- helpers: fix fail2ban helper when using using --use_template arg ([#1743](https://github.com/yunohost/yunohost/pull/1743))
- i18n: Translations updated for Basque, French, Galician
Thanks to all contributors <3 ! (José M, OniriCorpe, ppr, xabirequejo)
-- Alexandre Aubin <alex.aubin@mailoo.org> Mon, 27 Nov 2023 14:13:54 +0100
yunohost (11.2.6) stable; urgency=low
- mail: Improve dovecots rspamd integration wrt junk/spam folder naming ([#1731](https://github.com/yunohost/yunohost/pull/1731))

View file

@ -74,7 +74,7 @@ ynh_add_fail2ban_config() {
ports=${ports:-http,https}
use_template="${use_template:-0}"
if [ $use_template -ne 1 ]; then
if [ "$use_template" -ne 1 ]; then
# Usage 1, no template. Build a config file from scratch.
test -n "$logpath" || ynh_die --message="ynh_add_fail2ban_config expects a logfile path as first argument and received nothing."
test -n "$failregex" || ynh_die --message="ynh_add_fail2ban_config expects a failure regex as second argument and received nothing."
@ -86,7 +86,7 @@ port = __PORTS__
filter = __APP__
logpath = __LOGPATH__
maxretry = __MAX_RETRY__
" >$YNH_APP_BASEDIR/conf/f2b_jail.conf
" >"$YNH_APP_BASEDIR/conf/f2b_jail.conf"
echo "
[INCLUDES]
@ -94,20 +94,28 @@ before = common.conf
[Definition]
failregex = __FAILREGEX__
ignoreregex =
" >$YNH_APP_BASEDIR/conf/f2b_filter.conf
" >"$YNH_APP_BASEDIR/conf/f2b_filter.conf"
fi
ynh_add_config --template="f2b_jail.conf" --destination="/etc/fail2ban/jail.d/$app.conf"
ynh_add_config --template="f2b_filter.conf" --destination="/etc/fail2ban/filter.d/$app.conf"
# if "$logpath" doesn't exist (as if using --use_template argument), assign
# "$logpath" using the one in the previously generated fail2ban conf file
if [ -z "${logpath:-}" ]; then
# the first sed deletes possibles spaces and the second one extract the path
logpath=$(grep "^logpath" "/etc/fail2ban/jail.d/$app.conf" | sed "s/ //g" | sed "s/logpath=//g")
fi
# Create the folder and logfile if they doesn't exist,
# as fail2ban require an existing logfile before configuration
mkdir -p "/var/log/$app"
if [ ! -f "$logpath" ]; then
touch "$logpath"
chown -R "$app:$app" "/var/log/$app"
chmod -R u=rwX,g=rX,o= "/var/log/$app"
fi
# Make sure log folder's permissions are correct
chown -R "$app:$app" "/var/log/$app"
chmod -R u=rwX,g=rX,o= "/var/log/$app"
ynh_systemd_action --service_name=fail2ban --action=reload --line_match="(Started|Reloaded) Fail2Ban Service" --log_path=systemd

View file

@ -389,7 +389,7 @@
"group_already_exist_on_system_but_removing_it": "{group} taldea existitzen da sistemaren taldeetan, baina YunoHostek ezabatuko du…",
"diagnosis_mail_fcrdns_nok_details": "Lehenik eta behin zure routerraren konfigurazio gunean edo hostingaren enpresaren aukeretan alderantzizko DNSa konfiguratzen saiatu beharko zinateke <code>{ehlo_domain}</code> erabiliz. (Hosting enpresaren arabera, ezinbestekoa da beraiekin harremanetan jartzea).",
"diagnosis_mail_outgoing_port_25_ok": "SMTP posta zerbitzaria posta elektronikoa bidaltzeko gai da (25. atakaren irteera ez dago blokeatuta).",
"diagnosis_ports_partially_unreachable": "{port}. ataka ez dago eskuragarri kanpotik Pv{failed} erabiliz.",
"diagnosis_ports_partially_unreachable": "{port}. ataka ez dago eskuragarri kanpotik IPv{failed} erabiliz.",
"diagnosis_ports_forwarding_tip": "Arazoa konpontzeko, litekeena da operadorearen routerrean ataken birbideraketa konfiguratu behar izatea, <a href='https://yunohost.org/isp_box_config'>https://yunohost.org/isp_box_config</a>-n agertzen den bezala",
"domain_creation_failed": "Ezinezkoa izan da {domain} domeinua sortzea: {error}",
"domains_available": "Erabilgarri dauden domeinuak:",

View file

@ -776,11 +776,11 @@
"dyndns_unsubscribe_failed": "Impossible de se désinscrire du domaine DynDNS : {erreur}",
"dyndns_unsubscribed": "Désinscription du domaine DynDNS",
"dyndns_unsubscribe_denied": "Échec de la désinscription du domaine : informations d'identification non valides",
"dyndns_unsubscribe_already_unsubscribed": "Le domaine est déjà désabonné/retiré",
"dyndns_set_recovery_password_denied": "Échec de la définition du mot de passe de récupération : mot de passe non valide",
"dyndns_unsubscribe_already_unsubscribed": "Le domaine est déjà retiré",
"dyndns_set_recovery_password_denied": "Échec de la mise en place du mot de passe de récupération : mot de passe non valide",
"dyndns_set_recovery_password_unknown_domain": "Échec de la définition du mot de passe de récupération : le domaine n'est pas enregistré",
"dyndns_set_recovery_password_invalid_password": "Échec de la définition du mot de passe de récupération : le mot de passe n'est pas assez fort/solide",
"dyndns_set_recovery_password_failed": "Échec de la définition du mot de passe de récupération : {erreur}",
"dyndns_set_recovery_password_invalid_password": "Échec de la mise en place du mot de passe de récupération : le mot de passe n'est pas assez fort/solide",
"dyndns_set_recovery_password_failed": "Échec de la mise en place du mot de passe de récupération : {erreur}",
"dyndns_set_recovery_password_success": "Mot de passe de récupération changé !",
"log_dyndns_unsubscribe": "Se désabonner d'un sous-domaine YunoHost '{}'",
"dyndns_too_many_requests": "Le service dyndns de YunoHost a reçu trop de requêtes/demandes de votre part, attendez environ 1 heure avant de réessayer.",

View file

@ -21,12 +21,12 @@
"backup_archive_cant_retrieve_info_json": "Non se puido cargar a info do arquivo '{archive}'... Non se obtivo o ficheiro info.json (ou é un json non válido).",
"backup_archive_open_failed": "Non se puido abrir o arquivo de copia de apoio",
"backup_archive_name_unknown": "Arquivo local de copia de apoio descoñecido con nome '{name}'",
"backup_archive_name_exists": "Xa existe un arquivo de copia con este nome.",
"backup_archive_name_exists": "Xa existe un ficheiro de copia con nome '{name}'.",
"backup_archive_broken_link": "Non se puido acceder ao arquivo da copia (ligazón rota a {path})",
"backup_archive_app_not_found": "Non se atopa {app} no arquivo da copia",
"backup_applying_method_tar": "Creando o arquivo TAR da copia...",
"backup_applying_method_custom": "Chamando polo método de copia de apoio personalizado '{method}'...",
"backup_applying_method_copy": "Copiando tódolos ficheiros necesarios...",
"backup_applying_method_copy": "Copiando os ficheiros na copia...",
"backup_app_failed": "Non se fixo copia de {app}",
"backup_actually_backuping": "Creando o arquivo de copia cos ficheiros recollidos...",
"backup_abstract_method": "Este método de copia de apoio aínda non foi implementado",
@ -215,7 +215,7 @@
"diagnosis_mail_ehlo_wrong_details": "O EHLO recibido polo diagnosticador remoto en IPv{ipversion} é diferente ao dominio do teu servidor.<br>EHLO recibido: <code>{wrong_ehlo}</code><br>Agardado: <code>{right_ehlo}</code><br>A razón máis habitual para este problema é que o porto 25 <a href='https://yunohost.org/isp_box_config'>non está correctamente redirixido ao teu servidor</a>. Alternativamente, asegúrate de non ter un cortalumes ou reverse-proxy interferindo.",
"diagnosis_regenconf_manually_modified_details": "Probablemente todo sexa correcto se sabes o que estás a facer! YunoHost non vai actualizar este ficheiro automáticamente... Pero ten en conta que as actualizacións de YunoHost poderían incluír cambios importantes recomendados. Se queres podes ver as diferenzas con <cmd>yunohost tools regen-conf {category} --dry-run --with-diff</cmd> e forzar o restablecemento da configuración recomendada con <cmd>yunohost tools regen-conf {category} --force</cmd>",
"diagnosis_regenconf_manually_modified": "O ficheiro de configuración <code>{file}</code> semella que foi modificado manualmente.",
"diagnosis_regenconf_allgood": "Tódolos ficheiros de configuración seguen a configuración recomendada!",
"diagnosis_regenconf_allgood": "Todos os ficheiros de configuración seguen a configuración recomendada!",
"diagnosis_mail_queue_too_big": "Hai demasiados emails pendentes na cola de correo ({nb_pending} emails)",
"diagnosis_mail_queue_unavailable_details": "Erro: {error}",
"diagnosis_mail_queue_unavailable": "Non se pode consultar o número de emails pendentes na cola",
@ -358,7 +358,7 @@
"log_app_install": "Instalar a app '{}'",
"log_app_change_url": "Cambiar o URL da app '{}'",
"log_operation_unit_unclosed_properly": "Non se pechou correctamente a unidade da operación",
"log_does_exists": "Non hai rexistro de operación co nome '{log}', usa 'yunohost log list' para ver tódolos rexistros de operacións dispoñibles",
"log_does_exists": "Non hai rexistro de operación co nome '{log}', usa 'yunohost log list' para ver todos os rexistros de operacións dispoñibles",
"log_help_to_get_failed_log": "A operación '{desc}' non se completou. Comparte o rexistro completo da operación utilizando o comando 'yunohost log share {name}' para obter axuda",
"log_link_to_failed_log": "Non se completou a operación '{desc}'. Por favor envía o rexistro completo desta operación <a href=\"#/tools/logs/{name}\">premendo aquí</a> para obter axuda",
"migration_ldap_rollback_success": "Sistema restablecido.",
@ -484,7 +484,7 @@
"service_description_rspamd": "Filtra spam e outras características relacionadas co email",
"service_description_redis-server": "Unha base de datos especial utilizada para o acceso rápido a datos, cola de tarefas e comunicación entre programas",
"service_description_postfix": "Utilizado para enviar e recibir emails",
"service_description_nginx": "Serve ou proporciona acceso a tódolos sitios web hospedados no teu servidor",
"service_description_nginx": "Serve ou proporciona acceso a todos os sitios web hospedados no teu servidor",
"service_description_mysql": "Almacena datos da app (base de datos SQL)",
"service_description_metronome": "Xestiona as contas de mensaxería instantánea XMPP",
"service_description_fail2ban": "Protexe contra ataques de forza bruta e outro tipo de ataques desde internet",
@ -693,7 +693,7 @@
"global_settings_setting_webadmin_allowlist_enabled": "Activar a lista de IP autorizados",
"invalid_credentials": "Credenciais non válidas",
"log_settings_reset": "Restablecer axuste",
"log_settings_reset_all": "Restablecer tódolos axustes",
"log_settings_reset_all": "Restablecer todos os axustes",
"log_settings_set": "Aplicar axustes",
"admins": "Admins",
"all_users": "Tódalas usuarias de YunoHost",

View file

@ -1555,9 +1555,7 @@ class RestoreManager:
operation_logger.success()
# Call post_app_restore hook
env_dict = _make_environment_for_app_script(
app_instance_name
)
env_dict = _make_environment_for_app_script(app_instance_name)
hook_callback("post_app_restore", env=env_dict)
else:
self.targets.set_result("apps", app_instance_name, "Error")

View file

@ -336,7 +336,7 @@ def domain_add(
# should identify the root of this bug...
_force_clear_hashes([f"/etc/nginx/conf.d/{domain}.conf"])
regen_conf(
names=["nginx", "metronome", "dnsmasq", "postfix", "rspamd", "mdns"]
names=["nginx", "metronome", "dnsmasq", "postfix", "rspamd", "mdns", "dovecot"]
)
app_ssowatconf()

View file

@ -1107,7 +1107,9 @@ class AptDependenciesAppResource(AppResource):
values["packages"] = [value.strip() for value in values["packages"].split(",")] # type: ignore
if isinstance(values.get("packages_from_raw_bash"), str):
out, err = self.check_output_bash_snippet(values.get("packages_from_raw_bash"))
out, err = self.check_output_bash_snippet(
values.get("packages_from_raw_bash")
)
if err:
logger.error(
f"Error while running apt resource packages_from_raw_bash snippet for '{key}' extras:"
@ -1126,7 +1128,9 @@ class AptDependenciesAppResource(AppResource):
)
# Drop 'extras' entries associated to no packages
self.extras = {key: values for key, values in self.extras.items() if values["packages"]}
self.extras = {
key: values for key, values in self.extras.items() if values["packages"]
}
def provision_or_update(self, context: Dict = {}):
script = " ".join(["ynh_install_app_dependencies", *self.packages])