Mes excuses à Flatpak

Thu, 29 Jan 2026 11:30:00 GMT

Les Humeurs de Gee (32)

Préambule : je participe à Libre à vous !, l'émission de radio de l'April, diffusée en région parisienne sur la radio Cause Commune (93.1 fm) et sur Internet dans le reste du monde. J'y tiens une chronique humoristique mensuelle intitulée Les humeurs de Gee.

Un grand merci à l'équipe de l'April pour l'accueil, l'enregistrement, et tout le boulot d'édition des podcasts ! Vous pouvez aussi retrouver le reste de l'émission en ligne, émission dans laquelle j'ai d'ailleurs interviewé mon camarade Booteille !

Texte de la chronique

Salut camarades,

Si vous suivez mes chroniques depuis longtemps, vous avez sans doute remarqué qu'elles se divisaient en trois grosses catégories : les chroniques coup-de-gueule, où je tape sur les fameuses frasques des GAFAM et lubies anti-internet de notre classe politique ; les chroniques coup-de-cœur, où je parle de ce que j'aime dans le logiciel libre, la culture libre, etc. ; et enfin, les chroniques techniques, où j'essaie de vulgariser un peu de culture numérique.

Bon, eh bien la chronique d'aujourd'hui va entrer dans cette dernière catégorie qui est sans doute la moins fournie des trois. Aujourd'hui, je vais vous parler d'un sujet un peu niche, parce qu'il s'agit d'un logiciel – libre – évidemment, mais qui est spécifiquement fait pour GNU/Linux, et qu'en plus, une bonne partie des linuxien⋅nes n'utilise pas. Ce logiciel, c'est Flatpak.

Pour comprendre ce qu'est Flatpak, il faut d'abord revenir à la façon dont fonctionne l'installation de logiciels. Un logiciel, c'est souvent basé sur d'autres briques logicielles, ce qu'on appelle communément des bibliothèques logicielles. Ce sont des éléments de programme plus bas niveau qu'on peut réutiliser d'un logiciel sur l'autre : par exemple si votre logiciel a besoin d'afficher une fenêtre, en général vous n'allez pas recoder tout un système de fenêtrage depuis zéro, vous allez utiliser un système existant.

Sur Windows, vous pouvez identifier ça, en gros, comme les fichiers DLL que vous voyez dans les dossiers de vos programmes, si jamais ça vous arrive d'aller y jeter un œil. Oui, je sais que ça se fait plus trop, mais moi quand j'étais gamin, j'allais voir ça. Et j'cassais des trucs, des fois, mais ne ressortons pas les vieux dossiers.

Bon, il se trouve qu'autant sur Windows, chaque logiciel va en général embarquer les bibliothèques dont il a besoin, autant les Gnunux utilisent des gestionnaires de paquets qui vont faire en sorte de mutualiser les dépendances : si dix logiciels ont besoin de la même bibliothèque, alors il est inutile d'avoir dix copies de cette bibliothèque. C'est ce qui permet d'avoir un système beaucoup plus léger… et aussi plus stable et plus sûr, parce que si un bug est corrigé dans une bibliothèque partagée, alors c'est tous les logiciels qui utilisent cette bibliothèque qui en profitent directement.

Bref, tout ça c'est super, mais évidemment, ça a un coût : ça veut dire maintenir tout un graphe parfois très complexe de dépendances, avec potentiellement des problèmes lorsqu'une mise à jour de bibliothèque la rend incompatible avec d'autres logiciels… et si plusieurs logiciels dépendent de versions différentes d'une même bibliothèque, ça devient vite casse-tête.

Ça veut aussi dire qu'installer un logiciel qui n'est pas inclus dans le système de paquets de votre Gnunux n'est pas forcément aussi simple que sur Windows où, en général, vous téléchargez juste un fichier EXE, vous le lancez, et ça marche tout seul. Alors sur Gnunux c'est un truc qu'on peut un peu faire avec le système AppImage qui nous donne des fichiers exécutables autonomes, mais qui du coup ne vont pas s'installer proprement avec les bonnes icones dans le menu, etc.

Arrive alors Flatpak. Flatpak, on appelle souvent ça un « gestionnaire de paquet agnostique », c'est-à-dire que c'est fait pour marcher sur tout un tas de Gnunux différents, peu importe leur gestionnaire de paquet de base. Et c'est même beaucoup plus que ça, Wikipédia nous dit que c'est « un logiciel utilitaire de virtualisation d’applications », waw, rien que ça.

L'idée de Flatpak, c'est que vous construisez votre logiciel dans un système « virtualisé », c'est-à-dire que vous avez une sorte de petite boîte qui contient un sous-ensemble des choses dont vous avez besoin sur votre système pour faire fonctionner ce logiciel, et lorsque votre logiciel est distribué, eh bien cette petite boîte est réutilisée sur les systèmes de tout le monde, ce qui fait que vous n'avez plus besoin d'adapter votre logiciel à toutes les configurations de Gnunux possibles et imaginables.

Alors sur le papier, c'est sympa, mais évidemment, on récupère les inconvénients de la gestion de logiciels « à la Windows » : un logiciel devient mécaniquement plus lourd à installer puisqu'il va embarquer un certain nombre de dépendances, et même si ces dépendances peuvent encore être partagées, la multiplication des versions – qui permettent une plus grande simplicité du point de vue développement – implique nécessairement un plus grand espace disque occupé du point de vue utilisation.

Et force est de constater qu'au lancement de Flatpak, en 2016, la réception dans l'univers gnunuxien a été pour le moins… froide. Moi le premier, au départ, j'ai regardé le projet avec beaucoup de dédain, considérant que ça cassait la philosophie de Gnunux – simplicité, sobriété – et que c'était la porte ouverte à des logiciels lourdingues, mal foutus et mal packagés… puisque ça n'obligeait plus les dev à se tenir à jour sur les versions des bibliothèques et à rester compatible avec les systèmes de paquets habituels.

Bon. Arrive l'année 2024. À ce moment-là, je viens de libérer mon premier jeu vidéo Superflu Riteurnz, et pour le distribuer sur Gnunux, je fournis un script qui tente d'installer correctement les dépendances et qui mets le logiciel au bon endroit, avec la bonne entrée dans les menus, etc. J'avais au départ envisagé de distribuer des paquets spécifiques pour les Gnunux les plus courants, Debian et dérivée, Fedora et dérivées, etc., mais ça impliquait nécessairement une multiplication du boulot et, quoi qu'il arrive, tout plein de distributions non-supportées.

C'est là que je réalise que le système Flatpak serait particulièrement adapté à mon cas : un jeu vidéo comme le mien, c'est un logiciel fini, c'est-à-dire qu'il n'aura pas besoin de mises à jour, et il n'y a pas spécialement d'intérêt à mettre de l'énergie pour le garder compatibles avec les versions plus récentes de bibliothèques utilisées. Il n'y a rien de critique, peu de chances d'avoir des failles de sécurité, bref. Moi, faire le boulot pour packager le logiciel une fois pour toutes, et que ça tourne ensuite sur tous les Gnunux en un clic, ça me plaît bien.

Et je découvre alors que Flatpak, c'est loin d'être le moyen pour les dévs de faire des trucs crades par flemme, comme je l'imaginais, bien au contraire. Déjà, pour faire un Flatpak, il faut écrire un fichier manifest : ce fichier, en gros, il donne les instructions pour construire votre logiciel, à partir des sources, de fichiers d'archives, de données, de ce que vous voulez.

Eh bah mine de rien, rien que ça, ça vous force quelque part à documenter correctement la façon dont vous construisez votre logiciel ! Et ça vous force aussi à vérifier que ça marche bien dans un environnement qui n'est pas le vôtre, parce que des fois on oublie qu'on a telle dépendance déjà installée et qui est trouvée toute seule, ou qu'on a oublié d'inclure tel ou tel fichier dans son archive, etc.

Le manifeste, il vous demande aussi de lister les permissions dont vous avez besoin. Encore un truc chouette avec Flatpak ! Comme les applications sont lancées dans une sorte de « bac à sable », ben vous pouvez très facilement accorder ou refuser l'accès à plein de choses : les dossiers du système, le réseau, le bluetooth, tout ça.

Et j'ai pu aussi constater que les gens qui bossent sur Flathub, le principal magasin d'applications utilisant Flatpak, sont particulièrement attentifs à cela : pour ma première soumission de Superflu Riteurnz sur Flathub, j'avais dit dans le manifeste que j'avais besoin à l'accès réseau. C'était une erreur car le jeu n'a pas de mode multi et se joue juste tout seul, de manière déconnectée. Eh bien ma soumission a été retoquée car l'accès réseau n'était pas justifié.

Bon, un rejet, c'est jamais agréable, mais personnellement je trouve ça hyper-chouette d'avoir des personnes humaines qui prennent le soin de vérifier la qualité de ce qu'on soumet, parce qu'à la fin, ça profite à tout le monde.

Autre chose que j'apprécie avec Flatpak et notamment son principal magasin Flathub, c'est l'attention portée au respect des standards. En l'occurrence, les standards en question viennent du projet FreeDesktop, une organisation qui rassemble les principaux environnements de bureau de Gnunux – Gnome, KDE, Xfce et plein d'autres – ainsi que d'autres logiciels libres. L'idée ? Mettre en place des standards pour favoriser l'interopérabilité des environnements graphiques.

Sur Gnunux, vous avez un choix immense d'environnements graphiques, mais grâce à FreeDesktop, plein de choses vont fonctionner de la même manière à l'intérieur de ce choix, ce qui va permettre une plus grande compatibilité des logiciels.

Et typiquement, la soumission de mon jeu vidéo à Flathub m'a fait découvrir le principe du fichier MetaInfo. Le fichier MetaInfo, c'est une sorte de fiche d'information de votre logiciel : vous y renseignez son nom, sa description, les liens vers le site officiel, la licence, des liens vers des captures d'écran et tout plein d'autres infos utiles. Tout cela éventuellement traduit dans les langues supportées par votre application.

Flatpak n'a pas inventé ce fichier, mais il est requis pour une soumission sur Flathub, et c'est une très bonne chose : parce que ce fichier, standardisé, permet à tous les gestionnaires de paquet de Gnunux d'afficher des pages d'information unifiées, claires et complètes sur votre logiciel. Alors oui, écrire ce fichier, c'est un boulot non-négligeable, mais je ne saurais que vous conseiller de le faire si vous publiez des logiciels libres sur Gnunux : non seulement ça aide les gens à trouver et identifier votre logiciel, mais ça vous force aussi à faire un boulot de synthèse d'information très utile mais qu'on a parfois tendance à négliger.

Bref, personnellement, la soumission de mon jeu à Flathub a en fait eu un effet bénéfique sur le jeu en question même pour les gens qui n'utilisent pas Flatpak : il est maintenant mieux documenté, et mieux référencé.

Un autre point sur lequel Flatpak a un intérêt, à mon sens, c'est l'installation de logiciels propriétaires. Calmez-vous ! Calmez-vous ! Fred, range cette arbalète, je ne suis pas en train de faire la promotion de logiciels propriétaires dans l'émission de radio de l'April. Non non, vive le logiciel libre, gloire à GNU, tout ça.

Je dis juste que, dans le cas où vous avez besoin d'un logiciel propriétaire – ça peut arriver –, eh bien l'installer via Flathub, si l'application y est disponible, c'est encore la moins pire des options. Encore une fois, parce qu'avec Flatpak, vous pouvez gérer les permissions d'une application comme sur un smartphone Android, et couper par exemple l'accès réseau ou l'accès à vos documents personnels. Quitte à avoir un logiciel propriétaire dont vous ignorez s'il va faire des saletés sur votre ordinateur, bah autant le ranger dans une petite cage où vous contrôlez ce qu'il peut faire.

Évidemment je ne doute pas que ce soit faisable sans Flatpak, mais là c'est directement prévu et ça se règle en un clic avec l'interface Flatseal.

Voilà, c'est pour toutes ces raisons que je voudrais présenter mes excuses à Flatpak : j'ai jugé un peu hâtivement ce système à sa sortie, et je dois bien reconnaître que c'est en fait un projet sacrément bien foutu, et qui participe à rendre l'installation de logiciels sur Gnunux plus propre et plus standardisée.

Alors, je ne pense pas pour autant que Flatpak devrait devenir la méthode par défaut d'installation de logiciels sur Gnunux : ça reste plus efficace et souhaitable d'avoir un gestionnaire de paquet unifié sur son système, et je comprends pourquoi Ubuntu avait provoqué une levée de bouclier en ne proposant plus Firefox, un logiciel central, que via leur système Snap, une sorte d'équivalent de Flatpak spécifiquement développé pour Ubuntu.

Au passage, non, je ne vais pas parler de Snap car je ne l'ai jamais utilisé et j'ignore quel est son intérêt par rapport à Flatpak. J'ai l'impression que c'est plus ou moins la même chose et que Canonical, la boîte qui développe Ubuntu, l'a développé de son côté pour pouvoir avancer tout seul, comme souvent, sur un truc qu'elle contrôle… mais s'il y a bien une chose que m'a appris Flatpak, ça à ne pas juger trop vite ce genre de projet, alors je ne vais juste rien dire sur Snap.

Pour conclure, pour la majorité de vos logiciels sur Gnunux, je ne saurais trop vous conseiller d'utiliser en priorité le gestionnaire de paquet de votre distribution. En revanche, si vous voulez ponctuellement la version la plus à jour d'un logiciel, si vous avez besoin d'un logiciel propriétaire, si vous voulez un logiciel qui n'est pas forcément dans les gestionnaires de paquet classiques… alors Flatpak et Flathub sont de sacrées bonnes solutions.

Voilà, c'était la chronique technique de l'année, désolé aux personnes qui n'utilisent pas Gnunux et qui n'ont rien pigé et n'en ont sans doute pas eu grand-chose à secouer. Promis, le mois prochain, je reviens avec un coup-de-gueule ou un coup-de-cœur, on verra bien.

Allez salut !