Pourquoi les applications Flatpak, c’est l’avenir

Régulièrement, j’entends des utilisateurs se plaindre de ce format de paquet, qui occuperait un peu plus d’espace disque ou qui aurait encore quelques bugs de jeunesse, comme le thème de l’application qui pourrait différer de celui de l’utilisateur ou, plus ennuyeux, l’impossibilité de pouvoir jouir de certaines fonctionnalités, qui seraient pourtant disponibles dans la version standard, non exécutée dans un « bac à sable ».

Mais il faut voir sur le long terme. La version 1.0 est enfin sortie au mois d’août 2018, après plusieurs années de développement, ce qui permet de franchir un premier cap. Maintenant, il faut savoir que si elles n’ont pas été directement pensées pour ce mode de fonctionnement, certaines applications ont besoin d’être adaptées pour pouvoir fonctionner parfaitement. Mais ce n’est qu’une question de temps et ça ne doit pas éclipser pour autant les nombreux avantages déjà permis.

Tout d’abord, nous pouvons citer la sécurité. Les applications Flatpak sont exécutées dans un environnement « bac à sable » (sandbox) sûr, isolé du reste du système. Mieux encore, comme pour les applications mobiles, les développeurs doivent déclarer dans un manifeste de quelles autorisations ils souhaitent pouvoir bénéficier : accès au dossier personnel de l’utilisateur, à certains périphériques (webcam, micro…), à la géolocalisation… Droits que l’utilisateur est libre d’accorder ou révoquer à tout moment. Alors oui, pour un logiciel libre dans lequel l’utilisateur a toute confiance, ça n’a pas forcément grand intérêt, mais dans le cas de logiciels propriétaires, véritables boîtes noires dont on ne sait rien, ça peut tout de suite être plus intéressant.

Autre avantage important, la possibilité offerte aux développeurs de pouvoir atteindre directement l’ensemble de leurs utilisateurs sans attendre le bon vouloir des différentes distributions. Une nouvelle version vient de sortir, un Flatpak est proposé et tout le monde peut en bénéficier, sans avoir à se soucier du système de paquet utilisé par la distribution (DEB, RPM…) ou de la compatibilité des bibliothèques.

Non seulement les développeurs pourront proposer un paquet universel dès la publication de leur application, mais ce dernier pourra représenter la version idéale telle qu’ils l’ont souhaité.

Parce qu’il faut savoir que les paquets des différentes distributions sont souvent bien loin de correspondre à cet idéal. Par exemple, pour des raisons philosophiques ou juridiques, les distributions peuvent très bien désactiver certaines fonctionnalités au moment de la compilation. Des distributions comme Debian ou Fedora, qui font très attention aux quatre libertés du logiciel libre ainsi qu’aux brevets logiciels, préfèrent ainsi se passer de certaines fonctionnalités (par exemple, un algorithme qui serait protégé par un ou plusieurs brevets), plutôt que de se priver de l’application dans son ensemble. Sans parler des nombreux patchs que les distributions peuvent appliquer, dans le but de modifier volontairement le comportement de l’application. Que ces changements soient ou non positifs, l’utilisateur peut très bien préférer la vision des développeurs officiels.

Puis comme les paquets sont identiques pour tous et que les applications sont exécutées dans le même environnement, là encore identique, si l’application fonctionne bien chez le développeur, elle fonctionnera tout aussi bien chez les utilisateurs. Et si l’utilisateur rencontre un bug, ce dernier devrait être plus facilement reproductible par le développeur. Il sera donc bien plus simple d’offrir des garanties et de corriger certains problèmes.

C’est également un gain de temps pour les développeurs, qui n’auront plus à se soucier que d’un unique Flatpak, plutôt que de créer de nombreux paquets pour différentes distributions (quand ils ne se contentent pas, bien souvent, de ne viser qu’une ou deux distributions majeures, laissant les autres sur le carreau).

Alors bien sûr, on se dit que les différentes distributions ont leurs propres contributeurs pour empaqueter toutes ces applications (petite parenthèse pour rappeler que les distributions ne se préoccupent, en général, que de logiciel libre, et que l’éditeur d’une application propriétaire ne bénéficiera pas de toute cette main d’œuvre). Mais quand on y pense, que de temps humain gaspillé à recréer tous ces paquets, chacun dans leur coin, pour les mêmes applications… Sans parler des plus petites distributions, qui n’ont pas forcément les moyens humains de gérer tout ça. Ne serait-il pas plus intéressant de pouvoir créer un paquet universel une fois pour toute, et de pouvoir ensuite se concentrer sur des tâches plus gratifiantes ou plus utiles ?

Autre avantage auquel on ne pense pas forcément, la possibilité d’installer sans risque plusieurs versions en parallèle. Que ce soit une version stable et une version de développement à des fins de test, ou une ancienne version stable qui pourrait proposer des fonctionnalités dont on a besoin mais qui auraient malheureusement été supprimées des versions plus récentes (l’évolution des logiciels que l’on utilise ne nous convient pas toujours).

La compatibilité dans le temps devrait également être renforcée. Aujourd’hui, de souhaiter utiliser de vieilles applications abandonnées par leurs développeurs (et donc non adaptées à des systèmes modernes) peut rapidement devenir compliqué, pour ne pas dire impossible pour la plupart des gens, puisque toutes les distributions n’acceptent pas forcément le risque et la charge de travail supplémentaire que représentent de vieilles applications abandonnées ou des bibliothèques obsolètes. Et si ce n’est pas géré par la distribution ou la communauté, ça implique bien souvent de devoir mettre les mains dans le cambouis et de compiler soi-même. Tandis qu’avec un Flatpak et son runtime d’époque associé (qui contient les différentes bibliothèques nécessaires à son bon fonctionnement), la distribution n’a plus besoin de s’en préoccuper.

Donc même si ça ne vous intéresse pas et que vous ne prévoyez pas de changer vos habitudes, on ne peut honnêtement pas dire que cette technologie n’a aucun intérêt (ne serait-ce que pour tout le temps que ça fait gagner aux développeurs de logiciels libres, qui travaillent bien souvent bénévolement). Tout comme il faut arrêter de penser que les distributions de type rolling release telles que Arch Linux ou Manjaro soient le Saint Graal. La première exclut tous les néophytes et la seconde, qui désactive (à raison) le dépôt communautaire AUR par défaut, n’offre donc pas forcément le même catalogue applicatif ou les mêmes versions. Et bien évidemment, en dehors de leur capacité à proposer des versions plutôt à jour, ces distributions ne règlent aucun des différents problèmes soulevés (sécurité, reproductibilité, compatibilité, gain de temps…).

Il est donc préférable de se mettre un instant à la place de l’utilisateur néophyte qui peut enfin bénéficier, à tout instant et de façon sécurisée, des dernières versions de ses applications préférées sans avoir à se soucier de toutes les questions techniques sous-jacentes, qui ne l’intéressent pas et ne l’intéresseront jamais : le choix de la distribution et du format de paquet qui en découlera, les éventuels dépôts tiers à activer (parfois gérés de façon plutôt hasardeuse, pour ne pas dire risquée), les dépendances nécessaires, l’installation d’éventuels outils de développement pour compiler soi-même et bien faire attention à chaque installation ou mise à jour à ne surtout rien casser…

La question est donc de savoir si l’on souhaite ou non démocratiser l’utilisation de GNU/Linux auprès du grand public. Et si c’est le cas, Flatpak pourrait grandement nous y aider.

Sortie de GNOME 3.30

Après six mois de développement, comme toujours sans le moindre retard, nous avons droit à une nouvelle version de notre environnement préféré (si si :)

Et bien évidemment, comme les traducteurs francophones de GNOME sont tout aussi feignants surbookés que moi, les notes de version n’ont pas encore été traduites. La vidéo de présentation n’est pas prête non plus. À mon avis, ils feraient mieux de s’accorder quelques jours de plus pour qu’au moment de la sortie, tout soit prêt.

GNOME 3.30

Mais revenons dans le vif du sujet. Les utilisateurs de vieilles brouettes seront heureux d’apprendre que durant ce cycle, l’accent a été mis sur l’amélioration des performances. Cette nouvelle version consomme donc beaucoup moins de ressources système, tout en étant bien plus fluide et réactive.

Le partage d’écran a également été amélioré. Un nouveau menu système fait son apparition, affichant un indicateur de connexion distante active, facilitant l’arrêt de la session une fois celle-ci terminée.

GNOME devant servir d’environnement par défaut pour le smartphone Librem 5 qui doit sortir début 2019, de gros efforts ont été fait pour que les différentes applications puissent s’adapter à des résolutions bien plus petites (ce qui bénéficiera également aux mini-machines).

Autre changement important, l’abandon progressif du « menu de l’application » (AppMenu) au profit du menu hamburger que tout le monde connaît bien.

Bien que toujours en bêta, ceux qui voudraient retrouver leurs icônes sur le bureau pourront se rabattre sur l’extension Desktop Icons (qui est développée par le développeur principal de Fichiers).

Pour conclure sur l’interface, si vous avez activé la sur-amplification du son, lorsque vous augmenterez le volume, l’OSD affichera désormais visuellement le dépassement des 100%.

Flatpak

Si vous avez installé des Flatpaks (applications exécutée dans un  « bac à sable », ce qui offre une meilleure sécurité), ces derniers seront désormais mis à jour automatiquement (comportement bien évidemment désactivable). Vous pourrez également demander à être notifié de telles mises à jour.

Même si ce n’est pas propre à GNOME, n’ayant pas publié d’article à ce sujet, j’en profite pour rappeler qu’après plusieurs années de développement, la technologie Flatpak est récemment sortie en version 1.0. Et dans la foulée, le « magasin » d’applications Flathub a également quitté son statut de bêta.

Applications

Commençons par Fichiers. La barre d’emplacement a été complètement retravaillée pour rendre plus simples certaines actions. Un bouton a été ajouté dans les propriétés du dossier pour pouvoir ouvrir l’utilitaire Disques.

Application Disques qui prend désormais en charge TrueCrypt et VeraCrypt (il en va d’ailleurs de même de GVFS).

Les paramètres de GNOME bénéficient d’un nouveau panneau pour la gestion des périphériques Thunderbolt. Les panneaux relatifs au matériel sont désormais dynamiques et ne s’afficheront qu’en cas de présence du matériel concerné.

L’application Games, qui vous permet de gérer votre ludothèque, prend désormais en charge les jeux Steam sous forme de Flatpaks. Les jeux Virtual Boy sont également pris en charge. Et si vous installez Games sous forme de Flatpak, vous aurez droit à une prise en charge par défaut des consoles Sega Game Gear et Master System, ainsi que Nintendo DS et Virtual Boy. Niveau fonctionnalités, vous pouvez désormais naviguer dans votre collection avec votre manette et parcourir vos jeux par nom, développeur ou plateforme. Les pochettes sont désormais mises en cache sur le disque, ce qui permet un chargement bien plus rapide de votre collection. Une option pour voir les différents raccourcis clavier a également été ajoutée.

L’Agenda peut désormais suivre le mode nuit de GNOME.

L’application Boxes, qui permet de gérer des machines virtuelles, mais également de se connecter à des systèmes distants (fonctionnalité qu’on oublie trop souvent), prend désormais en charge les protocoles VNC et RDP. Autre nouveauté, la possibilité d’importer des fichiers OVF / OVA, ce qui devrait faciliter le partage de machines virtuelles.

L’environnement de développement Builder a droit à tout plein de nouveautés, mais ça sonne chiant. Puis comme les développeurs sont bien évidemment bilingues, je vais les laisser regarder par eux-mêmes le fichier NEWS 😁

Ajustements permet désormais de centrer les nouvelles fenêtres et d’afficher ou non les jours de la semaine dans l’horloge de la barre supérieure.

L’éditeur de texte Gedit annonce s’être concentré sur la simplification de l’expérience utilisateur : unification des menus, suppression des redondances, actions plus explicites, ajout de raccourcis pour la plupart des fonctionnalités disponibles et amélioration de la documentation.

Le navigateur Web offre un mode lecture.

On notera également l’apparition d’une nouvelle application, Podcasts, qui, comme son nom le laisse supposer, vous permet de gérer vos podcasts 😁

D’ailleurs, lors du précédent cycle, nous avions également eu droit à une nouvelle application, Utilisation. Cette dernière m’avait vendu du rêve. Voir plus simplement l’utilisation des ressources système (oui, je fais de plus en plus ma feignasse). Alors plutôt légère, on nous avait annoncé l’arrivé prochaine de nouvelles fonctionnalités (activité disque, consommation de la batterie…). Mais malheureusement, comme bien d’autres applications, nous n’avons pas droit à la moindre nouveauté 😭

Pour finir, n’oublions pas les sempiternelles corrections de bugs et autres petites améliorations par-ci par-là. La prise en charge de Wayland continue de s’améliorer et sera peut être finalement utilisable un jour (en ce qui me concerne, tant qu’un plantage du Shell ne pourra pas être rattrapé, comme c’est actuellement le cas avec X11, faisant planter par la même occasion toutes les applications et ainsi perdre le travail en cours, un tel changement est bien évidemment impensable).

La version 3.32, qui devrait être la première à utiliser GTK+ 4, sortira, si tout va bien, le 13 mars 2019.

Il n’y a maintenant plus qu’à attendre que ce soit proposé dans les différentes distributions. J’imagine que la première sera Arch Linux, suivie par Fedora et Ubuntu au mois d’octobre.

Sortie de GNOME Subtitles 1.4

GNOME Subtitles 1.4

GNOME Subtitles est un éditeur de sous-titres qui prend en charge les principaux formats, offre la prévisualisation de la vidéo, permet la synchronisation de timings et la traduction des sous-titres.

La précédente version datant de mars 2013, on croyait le projet mort, mais le revoilà avec un portage en GTK+ 3 et diverses nouveautés, telles que :

  • la prise en charge des fichiers vidéo WebM et OGV
  • l’affichage d’une demande de confirmation quand on recharge une traduction avec des modifications non sauvegardées
  • l’amélioration des boîtes de dialogue Timings Shift/Adjust, qui restent ouvertes lors de l’application des changements
  • la prise en charge des framerates vidéo non standards
  • l’amélioration de la lecture vidéo intégrée
  • la mise à jour de GtkSpell vers la version 3.0

Par contre, la traduction en français est loin d’être complète.

La Fondation GNOME recrute

On y croyait plus, mais ça y est. Suite au récent don d’un million de dollars, la fondation se donne enfin les moyens de ses ambitions. Il aura donc fallu attendre plus de vingt ans et l’arrivée d’un généreux mécène pour que la fondation se décide enfin à embaucher. Par contre, n’espérez pas tout de suite des développeurs pour améliorer un certain nombre d’applications qui en auraient bien besoin (Documents, Musique, Photos…), on y est pas encore.

Mais comme l’indique Neil McGovern, le directeur exécutif de la fondation, « Ces postes sont essentiels pour s’assurer que la fondation reste durable et que nous soyons en mesure de soutenir la communauté dans des domaines clés. J’espère que nous pourrons continuer à développer la fondation pour que non seulement ces postes puissent continuer d’être financés, mais également pour permettre d’autres embauches à l’avenir. »

Dans un premier temps, la fondation annonce quatre recrutements :

  • Un coordinateur du développement qui devra rechercher de nouveaux fonds, nouer des partenariats avec les entreprises, obtenir des subventions… pour assurer l’expansion du projet (typiquement le poste qui aurait du être embauché il y a plus de dix ans, histoire de ne pas avoir besoin d’attendre un don miraculeux).
  • Un coordinateur de programme qui sera en charge de la planification et de la coordination des programmes et activités.
  • Un DevOps / Administrateur système qui devra gérer les serveurs de la fondation (Flathub, GitLab, intégration continue, moteur de production…) et mettre en place de nouveaux services selon les besoins.
  • Un développeur GTK+ qui devra créer, développer et maintenir des composants de base du toolkit.

Il s’agit donc d’une bien bonne nouvelle, et on se prend déjà à rêver des futures annonces qui pourraient subvenir. Comme je l’ai déjà dit, j’adorerais qu’on ne compte plus uniquement sur les bénévoles pour le développement ou la partie visuelle (thème, icônes, fond d’écran dynamique…) et qu’il y ait des professionnels à plein temps sur certains projets qui en auraient bien besoin.

D’autant plus, et on a pu le constater avec l’embauche par Red Hat de Carlos Soriano en tant que mainteneur de Fichiers, d’avoir un développeur à plein temps sur un projet créé une certaine dynamique qui permet d’attirer de nombreux bénévoles (voir Contributors to Nautilus et Nautilus team grows), accélère le développement, apporte de nombreuses nouvelles idées et rend le projet incroyablement plus vivant.

Sortie de NetworkManager 1.12

Une nouvelle version de NetworkManager, cet outil de gestion du réseau qui simplifie grandement la vie, vient de sortir.

Nous avons droit à des améliorations concernant la fonction de Point de contrôle / Restauration. Cette dernière permet à l’utilisateur de définir un point de contrôle quand tout fonctionne bien, avant d’effectuer ses modifications, potentiellement dangereuses, puis de déclarer si tout s’est bien passé.

Le point de contrôle est essentiellement l’instantané d’une configuration réseau active accompagné d’une minuterie. Si les modifications provoquent une panne du réseau, le délai expire avant que l’utilisateur ne puisse confirmer le bon fonctionnement de ses changements, ce qui devrait annuler les modifications et rétablir la connectivité.

Fonctionnalité qui devrait vous éviter bien des sueurs froides en cas d’intervention sur la configuration réseau d’une machine distante.

Au niveau du Wi-Fi, nous pouvons citer la prise en charge de FILS, WoWLAN et IWD

Traditionnellement, l’association d’un client Wi-Fi à un point d’accès est un processus compliqué qui peut facilement prendre plusieurs secondes. Ce n’est pas vraiment un problème tant qu’on reste dans le rayon d’action du point d’accès, mais dès qu’il y a de la mobilité et qu’on doit passer de point d’accès en point d’accès, ça peut rapidement devenir désagréable. Surtout si vous êtes en pleine vidéoconférence et que vous avez régulièrement des pertes de connexion. L’objectif de FILS étant, vous l’aurez compris, de drastiquement réduire le temps nécessaire pour établir l’association.

Vient ensuite le Wake on WLAN (ou plus simplement WoWLAN), qui permet à un appareil équipé de Wi-Fi d’être mis sous tension lors de la réception d’un paquet réseau spécialement conçu à cet effet.

Et pour finir, IWD (iNet Wireless Daemon). Il s’agit d’un démon développé par Intel, qui gère les différents mécanismes de sécurité des réseaux sans fil et permet de s’authentifier auprès du point d’accès. C’est un équivalent à WPA supplicant, qui se veut bien plus optimisé et efficace que ce dernier. Une fois la parité fonctionnelle atteinte, il devrait devenir le nouveau choix par défaut de NetworkManager.

Suppression à venir du menu de l’application

Menu de l’application de Builder sous GNOME 3.28

On va tout d’abord commencer par rappeler de quoi il s’agit, puisque ce menu, maintes fois décrié, n’a jamais obtenu les faveurs des utilisateurs. À tel point que nombre d’entre eux n’ont même jamais remarqué son existence.

Pour citer l’aide officielle, « le menu d’une application, situé à côté du bouton Activités, affiche le nom de l’application en cours avec son icône et permet un accès rapide aux préférences ou à la rubrique d’aide du programme. Les éléments accessibles depuis ce menu varient en fonction de l’application. »

Et c’est là que le bât blesse. Hormis les applications GNOME officielles qui y proposent donc un accès à la rubique d’aide, aux préférences, ainsi qu’aux raccourcis clavier et à quelques options principales, la majorité des applications tierces, et non des moindres (Firefox, Google Chrome…) ne proposent que l’option de base permettant de quitter l’application, rendant ce menu complètement inutile dans la plupart des cas.

Et les griefs ne s’arrêtent pas là :

  • le menu est déconnecté de la fenêtre de l’application
  • ça n’a aucun sens en cas d’utilisation de plusieurs écrans
  • aucun autre système ne propose ce type de menu
  • il n’est accessible que pour l’application qui a le focus
  • les applications GNOME officielles l’utilisent le manière incohérente
  • certains nouveaux utilisateurs sont totalement passés à côté et supposent qu’il n’y a donc pas de préférences

La solution proposée étant de déplacer les différentes entrées du menu vers la fenêtre de l’application, dans le menu hamburger que la plupart des applications GNOME possèdent déjà. Travail relativement facile à mettre en œuvre, et qui devrait, qui plus est, se fondre agréablement avec certaines applications tierces comme Firefox et Chromium, qui utilisent déjà un modèle similaire.

De nombreuses maquettes ont déjà été publiées. La migration devant s’achever avec la sortie de GNOME 3.32, prévue pour le mois de mars 2019.

Sortie d’un thème GTK+ inspiré de macOS Mojave

Après ses versions Yosemite et High Sierra, PaulXFCE remet le couvert avec une version Mojave de son thème inspiré de macOS.

Je tiens d’ailleurs à ouvrir une petite parenthèse pour rappeler que la grosse nouveauté de macOS Majave, dernier bébé d’Apple devant sortir cet automne, est l’apparition d’un thème sombre par défaut, vingt ans après tout le monde 😂

Le thème GTK+ MJV inspiré de macOS Mojave

Les personnes intéressées pourront télécharger les fichiers (que ce soit les anciennes versions ou les variantes sombres ou claires) sur GNOME Look, qu’il suffira ensuite de décompresser dans le dossier ~/.themes/ puis de sélectionner à l’aide de l’application Ajustements.

Et si vous souhaitez aller jusqu’au bout du mimétisme en installant un dock, des icônes et une police ressemblantes… vous pouvez consulter notre article Faire passer GNOME pour macOS.

Nous aurons finalement droit à GTK+ 3.24

Quand le développement de GTK+ 4 a commencé, il avait été décidé que GTK+ 3.22 serait la dernière version stable de la branche 3.x. Deux ans plus tard, le développement de GTK+ 4 prenant du retard, nous aurons finalement droit à GTK+ 3.24 au mois de septembre prochain, en même temps que GNOME 3.30.

Les nouveautés seront par contre plutôt limitées. Le sélecteur de polices aura droit à de nouvelles possibilités autour du format de fonte OpenType (paramétrage des fonctions offertes par les fontes OpenType, affichage des exemples de fonctionnalités proposées, sélection des variantes…). Si j’ai bien tout compris, nous devrions également avoir droit à l’auto-complétion des émojis. De taper <3 devrait se changer en ❤️. Le backend Wayland prendra en charge la mémoire partagée anonyme sous FreeBSD. Et pour finir, un nombre limité de nouvelles APIs devrait également faire son apparition.

Et cette fois-ci, GTK+ 3.24 devrait bel et bien conclure l’aventure GTK+ 3. Parallèle amusant, quand on se souvient que GTK+ 2.24 avait conclut celle de GTK+ 2 😊