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.

Participez facilement au bêta-test du prochain GNOME

La première version bêta du futur GNOME 3.22 est sortie il y a peu et il reste encore trois semaines avant la sortie de la version finale. D’ici là, les développeurs vont se concentrer sur la correction du maximum de bugs qui leur seront rapportés.

Mais pour ça, il faut que les utilisateurs acceptent de tester les versions bêta de leurs applications préférées, puis qu’ils prennent le temps de rapporter les éventuels problèmes rencontrés.

Comme le rappelait Renault il y a quelques jours, la distribution Fedora propose d’ores et déjà des images de la version alpha de Fedora 25 incluant la première version bêta de GNOME 3.22, ainsi que la documentation nécessaire pour faire de bons rapports de bug.

Mais voilà, le code évolue vite, et il est parfois préférable de tester une version n’ayant guère plus de quelques heures. Et ça tombe bien, le projet GNOME a mis en place un système de construction automatique quotidien de paquets Flatpak ^_^

Pour rappel, la prochaine version de GNOME apportera la prise en charge par défaut de la technologie Flatpak, ce qui permettra de pouvoir installer en quelques clics des applications qui ne sont pas dans les dépôts de la distribution (que ce soit des versions stables récupérées directement chez le développeur, ou des versions en cours de développement). Rappelons également que les paquets Flatpak étant isolés du reste du système, vous pouvez sans problème installer des versions bêtas sans qu’elles n’interfèrent avec votre environnement stable.

Mais en attendant la sortie de GNOME 3.22, nous devons tâter une dernière fois de la ligne de commande :p

Il va tout d’abord falloir installer l’application Flatpak. Opération particulièrement simple chez Arch / Manjaro ou Fedora qui la proposent déjà depuis quelques temps. Pour les autres, je vous renvoi au site officiel :)

Une fois que c’est bon, nous devons ensuite demander à Flatpak de récupérer la clé GnuPG du projet, ainsi que l’environnement d’exécution du futur GNOME :

$ wget https://sdk.gnome.org/nightly/keys/nightly.gpg
$ flatpak remote-add --gpg-import=nightly.gpg gnome-nightly-apps https://sdk.gnome.org/nightly/repo-apps/
$ flatpak remote-add --gpg-import=nightly.gpg gnome-nightly https://sdk.gnome.org/nightly/repo/
$ flatpak install gnome-nightly org.gnome.Platform master

Nous pouvons désormais jeter un œil à la liste des applications disponibles :

$ flatpak remote-ls gnome-nightly-apps --app

org.gnome.Books
org.gnome.Builder
org.gnome.Calculator
org.gnome.Calendar
org.gnome.Characters
org.gnome.Dictionary
org.gnome.Documents
org.gnome.Epiphany
org.gnome.Evince
org.gnome.Games
org.gnome.Geary
org.gnome.Gitg
org.gnome.Glade
org.gnome.Maps
org.gnome.Nautilus
org.gnome.News
org.gnome.Photos
org.gnome.Polari
org.gnome.Rhythmbox3
org.gnome.Software.XdgApp
org.gnome.Todo
org.gnome.Totem
org.gnome.Weather
org.gnome.bijiben
org.gnome.clocks
org.gnome.eog
org.gnome.gedit
org.gnome.iagno

Pour les personnes qui ne seraient pas familières des noms de modules, Books correspond à l’application Livres, Calculator à la calculatrice, Calendar à l’agenda, Epiphany au navigateur web, Evince au visionneur de documents, Maps à l’application Cartes, Nautilus au gestionnaire de fichiers, Software à la logithèque, Totem au lecteur vidéo, Weather à l’application météo et bijiben à l’application de prises de notes.

Nous pouvons donc passer à l’installation à proprement parler. Dans le cas de Nautilus, cela donnera :

$ flatpak install gnome-nightly-apps org.gnome.Nautilus master

Avant de lancer l’application dans sa version bêta, il est conseillé de fermer les éventuelles instances déjà existantes :

$ killall nautilus

Et voilà, il ne nous reste plus qu’à lancer l’application :

$ flatpak run org.gnome.Nautilus

Par la suite, les paquets étant mis à jour quotidiennement, vous pourrez récupérer les toutes dernières versions avec un simple :

$ flatpak update

Et si vous constatez des problèmes, n’hésitez pas à faire des rapports de bugs.

Lancement du site Flatpak

flatpak
Flatpak, la technologie qui nous permettra enfin de pouvoir vivre cette fameuse année du bureau Linux (rien que ça), vient de lancer son site officiel.

Pour rappel, Flatpak, qui est également connu sous son ancien nom xdg-app, doit mettre fin aux sempiternels problèmes relatifs à la distribution d’applications sur les systèmes GNU/Linux. Les développeurs n’ayant plus qu’à proposer un unique paquet Flatpak, que les utilisateurs pourront installer sur n’importe quelle distribution, sans avoir à se soucier des questions de formats de paquets (DEB, RPM…), de la distribution utilisée, des versions de telle ou telle bibliothèque ou toute autre question du même acabit.

L’utilisateur d’une Debian stable pourra enfin jouir des dernières versions des applications GNOME ou de LibreOffice s’il le souhaite :P

Mais ce n’est pas le seul avantage, puisque plusieurs versions d’une même application pourront être installées en parallèle (ce qui peut être utile si vous souhaitez tester une version de développement), de même que la sécurité sera renforcée. Une application Flatpak étant isolée du reste du système, elle ne pourra plus accéder à vos périphériques sans votre permission, et qu’il s’agisse d’une application malveillante ou d’un malencontreux défaut de conception, elle ne pourra plus non plus vous espionner ou supprimer tous vos fichiers.

Malheureusement, bien que la technologie soit désormais pleinement fonctionnelle, l’installation d’un paquet Flatpak doit encore s’effectuer en ligne de commande, et il faudra attendre la prochaine version de GNOME pour que sa prise en charge par Logiciels soit effective.

Malgré tout, je ne peux qu’inviter les développeurs à proposer au plus vite des paquets Flatpak à leurs utilisateurs.

xdg-app change de nom et devient Flatpak

flatpak

xdg-app est une technologie permettant d’installer facilement des applications sans avoir à se préoccuper de la distribution GNU/Linux utilisée ou de sa version, tout en isolant l’application du reste du système, proposant ainsi une bien meilleure sécurité. Sous GNOME, sa prise en charge sera assurée par la future version 3.22 de Logiciels.

Le 9 mai, Alexander Larsson, principal développeur du projet, décide de changer le nom pour Flatpak. Une discussion sur la liste de diffusion laisse entendre qu’il s’agirait d’une référence aux cartons plats d’Ikea qui rendent les meubles faciles à distribuer, déballer et installer, tout en ayant un côté nordique / scandinave plutôt sympa ;)

Jakub Steiner a ensuite profité de l’occasion pour créer une nouvelle icône et commencé à travailler sur un nouveau site web.

On peut donc espérer que la technologie se démocratise enfin et que de plus en plus d’éditeurs se mettent à proposer leurs applications sous ce format. Et ce, même si on ne peut s’empêcher de penser qu’entre le serveur d’affichage Mir et son nouveau système de paquets Snappy censé proposer les mêmes avantages, Canonical risque de diviser une fois de plus les distributions, tout en faisant encore perdre du temps à la démocratisation du poste de travail sous GNU/Linux.

Présentation de Pinos

Christian Schaller vient de publier un billet de blog pour présenter Pinos, projet développé par Wim Taymans, co-créateur du framework multimédia GStreamer et contributeur régulier de PulseAudio.

Le projet devrait apporter une solution équivalente à la vidéo de ce que permet PulseAudio pour l’audio (support de sources multiples, mixage…), tout en offrant des API pour que ce soit facilement utilisable par les différentes applications.

Pino permettra ainsi de partager le flux vidéo d’une caméra vers différentes applications, de pouvoir basculer facilement d’une caméra à l’autre au sein de l’application, ou de multiplexer les différents flux.

Plusieurs sources pourront également être gérées simultanément. En plus d’une ou plusieurs caméras, le bureau lui-même pourra être considéré comme une source vidéo. On pourra donc facilement faire une capture vidéo du bureau, tout en superposant l’image d’une caméra en train de filmer l’utilisateur.

La première application pratique concernera justement le mécanisme de capture vidéo intégré à GNOME Shell (utilisable par le raccourci clavier Ctrl+Alt+Shift+R ou depuis l’extension EasyScreenCast), qui sera plus robuste, tout en offrant plus de possibilités.

Une autre application concrète, concernera l’accès au matériel par les applications sandboxées. Pour pouvoir finement gérer les droits d’accès à la webcam de l’utilisateur, une telle infrastructure était nécessaire.

Par contre, aucune date n’a pour le moment été annoncée pour son intégration au sein de GNOME.