English version
Hello everyone!
We’re happy to announce the release of version 3.5
!
This release includes various highlights
:
-
The appearance of the user SSO portal can now be changed using themes ! This allows you to customize the look and feel of your user portal, including changing the YunoHost logo / branding, such that you may feel more “at home” (e.g. if you run a YunoHost instance for a small association or company and would like to display your own logo instead
). For now this is only available through the command line, but the procedure and how-tos are documented here ! - Many small UX and robustness improvements during app installations and upgrades (e.g. display more messages explaining what’s happening, and detect/prevent common issues before they happen)
- New global settings have been introduced to be able to change the compability vs. security tradeoff for nginx and sshd configurations. So for instance if you’d like to harden the nginx ciphers used, check out this page (section “Change cipher compatibility configuration”)
- For app packagers : many improvements and new helpers ! Including : the use of getopts for more flexible and semantic arguments,
ynh_script_progression(progress bar), fail2ban helpers,ynh_systemd_action, improve setting helpers, postgresql and nodejs helpers, … - Metronome gets upgraded to 3.11.8
- Many translations additions / improvements in so many languages : French, Catalan, Esperanto, Occitan, Russian, Chinese, Portuguese, Hungarian, Breton, Greek, Swedish, Polish, Arabic, Italian, Bengali
- And of course as always, many technical bugfixes and improvements for UX, robustness and security !
Thanks to all contributors (Aleks, ariasuni, Arthur L., Bram, ButterflyOfFire, chateau, frju365, Gabriel C., Jibec, JimboeJoe, Josué, Kayou, ljf, Lukas F., Maniack, mytechpro, n3uz, opi, ppr, Quentí, Romuald, silkevicious, Taekiro, Xaloc, yalh76, Алексей) ! 
Detailed changelog
Core
- [enh] Display version inside app info (YunoHost-admin#235)
- [fix] Fix the dbus interface to get info for services (avoid annoying error about being unable to fetch info for a disabled service) (#698)
- [fix] Rework
tools_updateto better handle the damn “FetchFailedException” (#695) - [enh] Be able to use themes for the User SSO portal (SSOwat#122, #689)
- [enh] Check that required services are up before running app install and upgrade (#670)
- [enh] Add settings to control security vs. compatibility tradeoff for nginx and sshd configurations (#640)
- [enh] Allow apps to extend the recommended DNS configuration through a hook (#517)
- [fix] Disable gzip entirely to avoid BREACH attacks (#675)
- [fix] Repair backup tests (#673)
- [fix] Backup fails because output directory not empty (#672)
- [fix] Reject app password if they contains { or } (#671)
- [fix] Optimize dyndns requests (#662)
- [enh] Don’t add Strict-Transport-Security header in nginx conf if using a selfsigned cert (#661)
- [enh] Add apt-transport-https to dependencies (#658)
- [enh] Cache results from meltdown vulnerability checker (#656)
- [enh] Ensure the tar file is closed during the backup (#655)
- [enh] Be able to define hook to trigger when changing a setting (#654)
- [enh] Assert apt/dpkg is not broken before app install (#652)
- [fix] Loading only one helper file leads to errors because missing getopts (#651)
- [enh] Improve / add some messages to improve UX (#650)
- [enh] Reload fail2ban instead of restart to improve performances (#649)
- [enh] Add IPv6 resolvers from diyisp.org to resolv.dnsmasq.conf (#639)
- [fix] Remove old SMTP port (465) from fail2ban jail.conf (#637)
- [enh] Improve protection against indexation from robots (#622)
- [enh] Allow hooks to return data (#526)
- [fix] Do not make version number available from web API to unauthenticated users (#291, YunoHost-admin#226, YunoHost-admin#233)
- [enh] Add Konami code in webadmin
(YunoHost-admin#208) - [i18n] Improve translations for French, Catalan, Esperanto, Occitan, Russian, Chinese, Portuguese, Hungarian, Breton, Greek, Swedish, Polish, Arabic, Italian, Bengali
App helpers
- [enh] Support php versions in
ynh_add_fpm_config(#674) - [fix] Make sure that
ynh_system_user_deletealso deletes the group (#680) - [doc] Add min version for all helpers (#664)
- [enh] Optimize app setting helpers (#663, #676)
- [enh] Allow
display_text‘fake’ argument in manifest.json (#669, #697, YunoHost-admin#234) - [enh] Handle
ynh_install_nodejsfor arm64 / aarch64 (#660) - [enh] Update postgresql helpers (#657)
- [enh] Print diff of files when backup by
ynh_backup_if_checksum_is_different(#648) - [enh] Add app debugger helper (#647)
- [fix]
ynh_local_curlnot using the right url in some cases (#644) - [fix] Get rid of annoying ‘unable to initialize frontend’ messages (#643)
- [enh] Check if dpkg is not broken when calling
ynh_wait_dpkg_free(#638) - [enh] Warn the packager that
ynh_secure_removeshould be used with only one arg… (#635, #642) - [enh] Add
ynh_script_progressionhelper (#634) - [enh] Add
ynh_systemd_actionhelper (#633, #681) - [enh] Allow to dig deeper into an archive with
ynh_setup_source(#630) - [enh] Use getops for app helpers (#561, #646, #685, #683)
- [enh] Add
ynh_check_app_version_changedhelper (#521) - [enh] Add fail2ban helpers (#364)
How to upgrade
From the web admin
If you are not yet in 3.4.x, we recommend upgrading from the command line to avoid an issue related to the Metronome upgrade
- Go to “Update system”
- Then hit the “Update” button in the “System” block.
Or from the command line
$ apt-get update
$ apt-get dist-upgrade
(if during the upgrade, the system asks which version of Metronome configuration to keep, answer ‘N’ (default value))
Misc news about the project
Many things are happening in parallel of this release, especially on the apps side !
In the following months, we are progressively going to remove the concept of “official” (vs “community”) apps. We identified that the concept of “official” was too constraining and not really effective (it’s been a long time since a new app was added in the official apps, and it’s not clear who is supposed to maintain them). Instead, we will introduce a new concept of “high quality” apps for those who closely follow packaging recommendations, and evolution will be reviewed by the app team.
This happens at the same time as a rework of the definition of app levels. So far, level 4 was related to the LDAP/SSO integration which turns out to be quite complicated for many apps … hence quite a lot of apps were stuck to level 3~4 whereas they implement backup/restore (corresponding to level 7). Those definitions were therefore rework to make more sense. (More info here : https://github.com/YunoHost/doc/pull/927).
About the packaging of app themselves : the new recommendations includes more verbosity for the app scripts. You will notice that more and more apps will display messages explaining what’s happening while they install (using not-too-technical messages) instead or displaying nothing or just warnings. Some of them might even show a progress bar ! (c.f. the ynh_script_progression helper)
Cool news if you would like to obtain a VPS with preinstalled YunoHost : Time4VPS now makes it easy to obtain a VPS installed with YunoHost ! In the future, we except to see other actors being able to provide such pre-installed VPS (Alsace Réseau Neutre, Scaleway, …) 
Version française
Bonjour tout le monde !
Nous sommes heureux d’annoncer la sortie de la version 3.5
!
Voici les points clefs de cette version
:
-
L’apparence du portail utilisateur (SSO) peut maintenant être modifié en utilisant des thèmes ! Cela vous permet de personnaliser votre portail utilisateur, y compris de changer le logo ‘YunoHost’, afin que votre serveur puisse avoir un peu plus un air de “chez soi” (notamment si vous utilisez une instance YunoHost pour une petite association ou entreprise et aimeriez avoir votre propre logo affiché
). Pour l’instant, cela n’est disponible qu’en ligne de commande, mais la procédure et la marche à suivre sont documentées ici ! - Beaucoup de petites améliorations sur l’UX et la robustesse lors de l’installation et de la mise à jour d’applications (par exemple, afficher plus de messages expliquant ce qui se passe, et détecter/prévenir des problèmes courants avant qu’ils ne se produisent)
- De nouveaux paramètres globaux ont été introduits pour être capable de choisir quel compromis faire entre sécurité et compatibilité pour les configurations nginx et sshd. Ainsi, par exemple, si vous souhaitez durcir les ciphers utilisés par nginx, vous pouver regarder la procédure à suivre sur cette page (section “Durcir la sécurité de la configuration des services”)
- Pour les packageurs d’applications : beaucoup d’améliorations et de nouveaux helpers ! Dont : l’utilisation de getopts qui permet une gestion d’options plus flexibles et sémantiques,
ynh_script_progression(barre de progression), ajout des helpers fail2ban,ynh_systemd_action, amélioration des helpers pour les settings, postgresql et nodejs… - Mise à jour de Metronome en 3.11.8
- De nombreuses contributions sur les traductions ! : Français, Catalan, Espéranto, Occitan, Russe, Chinois, Portugais, Hongrois, Breton, Grec, Suédois, Polonais, Arabe, Italien, Bengali
- Et bien sûr, comme toujours, diverses corrections techniques et autres améliorations sur l’UX, la robustesse et la sécurité !
*Merci à tou·te·s les contributeur.ice.s (Aleks, ariasuni, Arthur L., Bram, ButterflyOfFire, chateau, frju365, Gabriel C., Jibec, JimboeJoe, Josué, Kayou, ljf, Lukas F., Maniack, mytechpro, n3uz, opi, ppr, Quentí, Romuald, silkevicious, Taekiro, Xaloc, Yalh76, Алексей) !
Details des changements
Core
- [enh] Affichage de la version dans les infos d’une application (YunoHost-admin#235)
- [fix] Correction de l’interface dbus pour obtenir des informations sur les services (#698)
- [fix] Refonte de
tools_updatepour mieux gérer la foutue erreur “FetchFailedException” (#695)) - [enh] Poussibilité d’utiliser des thèmes pour le portail utilisateur / SSO (SSOwat#122,#689)
- [enh] Vérifiez que les services requis sont en place avant d’exécuter l’installation et la mise à niveau des applications (#670))
- [enh] Ajout de paramètres pour contrôler le compromis entre sécurité et compatibilité pour les configurations nginx et sshd (#640)
- [enh] Permettre aux applications d’étendre la configuration DNS recommandée via un hook (#517)
- [fix] Désactiver complètement gzip pour éviter les attaques BREACH (#675)
- [fix] Réparation des tests de backups (#673)
- [fix] Certaines sauvegardes échouaient parce que le répertoire de sortie n’était pas vide (#672))
- [fix] Rejet des mot de passe pour apps s’ils contiennent { ou }. (#671))
- [fix] Optimiser les requêtes dyndns (#662)
- [enh] Ne pas ajouter le header Strict-Transport-Security dans nginx si un certificat auto-signé est utilisé (#661)
- [enh] Ajout de apt-transport-https aux dépendances (#658)
- [enh] Mettre en cache les résultat du diagnostic de vulnérabilité à Meltdown (#656))
- [enh] S’assurer que le fichier tar est fermé pendant la sauvegarde (#655)
- [enh] Possibilité de déclencher des hooks lorsqu’un setting est modifié (#654)
- [enh] Vérifier que apt/dpkg n’est pas cassé avant d’installer une application (#652))
- [fix] Correction du chargement des helpers suite à l’utilisation de getopts (#651)
- [enh] Améliore / ajoute des messages pour améliorer l’UX (#650)
- [enh] Recharger fail2ban au lieu de le redémarrer pour améliorer les performances (#649)
- [enh] Ajout des résolveurs IPv6 de diyisp.org à resolv.dnsmasq.conf (#639)
- [fix] Suppression de l’ancien port SMTP (465) de fail2ban jail.conf (#637))
- Améliorer la protection contre l’indexation des robots (#622)
- [enh] Permettre aux hooks de retourner des données (#526)
- [fix] Ne pas rendre le numéro de version disponible depuis l’API web aux utilisateurs non authentifiés (#291,YunoHost-admin#226,YunoHost-admin#233)
-
Ajouter d’un Konami code dans la webadmin
(YunoHost-admin#208) - [i18n] Amélioration des traductions en français, catalan, espéranto, occitan, russe, chinois, portugais, hongrois, breton, grec, suédois, polonais, arabe, italien, bengali
Helpers pour les apps
- [enh] Support des versions php dans
ynh_add_fpm_config(#674)) - [fix] Faire en sorte que
ynh_system_user_deletesupprime également le groupe (#680) - [doc] Ajouter la version minimale pour tous les helpers (#664)
- [enh] Optimisation des helpers pour les settings (#663,#676)
- [enh] Support des arguments de type
display_textdans manifest.json (#669,#697,YunoHost-admin#234) - [enh] Gestion de
ynh_install_nodejspour arm64 / aarch64 (#660)) - [enh] Mise à jour des helpers postgresql (#657))
- [enh] Montrer les différences des fichiers lors de la sauvegarde par
ynh_backup_if_checksum_is_different(#648)) - [enh] Ajouter d’un helper pour aider au debug d’apps (#647))
- [fix]
ynh_local_curln’utilisais pas la bonne url dans certains cas (#644) - [fix] Suppression des messages relou ‘unable to initialize frontend’ (#643)
- [enh] Vérifiez que dpkg n’est pas cassé lorsque
ynh_wait_dpkg_freeest appelé (#638)) - [enh] Avertir les packagers que
ynh_secure_removedoit être utilisé avec un seul argument… (#635,#642) - [enh] Ajout de
ynh_script_progression(#634) - [enh] Ajout de
ynh_systemd_action(#633, #681)) - [enh] Permettre d’aller plus profondément dans l’archive lors de l’utilisation de
ynh_setup_source(#630) - [enh] Utilisez getops for app helpers (#561, #646, #685, #683)
- [enh] Ajout de
ynh_check_app_version_version_changed** (#521) - [enh] Ajouter des helpers fail2ban (#364)
Comment mettre à jour
Depuis la webadmin
Si vous n’êtes pas sur la version 3.4.x, nous vous recommandons de mettre à jour à partir de la ligne de commande pour éviter un problème lié à la mise à jour du Metronome.
- Aller dans “Mettre à jour le système”
- Puis cliquez sur “Mettre à jour” dans le bloc “Système”.
Ou à partir de la ligne de commande
$ apt-get update
$ apt-get dist-upgrade
(si pendant l’upgrade le système vous demande quelle version de la configuration de Metronome garder, répondre ‘N’ (valeur par défaut))
Autres nouvelles du projet
Beaucoup de choses se passent en parallèle de cette version, en particulier du côté des applications !
Dans les mois à venir, nous allons progressivement supprimer le concept d’applications “officielles” (vs “communautaires”). Nous avons conclu que ce concept d’application " officiellle" était trop contraignant et pas vraiment efficace (cela fait un moment qu’aucune application n’a pas été ajoutée dans les apps officielles, et ça n’a jamais été très clair de savoir qui est censé maintenir ces apps). À la place, nous introduisons un concept d’“applications de haute qualité” pour celles qui suivent de près les recommendations de packaging, et qui suivent un protocole rigoureux d’après lequel les évolution de l’app sont revue et validée par l’équipe des apps.
En parallèle, la définition des niveaux des applications a été revue. Jusqu’à présent, le niveau 4 était lié à l’intégration LDAP/SSO qui est au final un des aspects les plus compliqués du packaging des applications… Ainsi, beaucoup d’applications étaient restées au niveau 3~4 alors qu’elles implémentent la sauvegarde/restauration (correspondant au niveau 7). Ces définitions ont donc été retravaillées pour avoir plus de sens. (Plus d’informations ici : https://github.com/YunoHost/doc/pull/927).
A propos du packaging des apps en lui-même : les nouvelles recommandations incluent plus de verbosité pour les scripts de l’application. Vous remarquerez peut-être que de plus en plus d’applications afficheront des messages expliquant ce qui se passe pendant l’installation (en utilisant des messages pas trop techniques) plutôt que ne rien afficher ou bien d’afficher uniquement les avertissements… Certaines apps afficheront peut-être même une barre de progression ! (c.f. le helper ynh_script_progression)
Autre nouvelle intéressante : si vous êtes intéressé par la commande d’un VPS avec YunoHost préinstallé : Time4VPS propose maintenant des VPS installés avec YunoHost ! A l’avenir, il est possible que d’autres acteurs se mettent à proposer ce genre de service (Alsace Réseau Neutre, Scaleway, …) 

