Au revoir Debian, bonjour Debian avec Flatpak (mise à jour)
J'avais évoqué, à l'occasion de la sortie de Debian 9 Stretch, la combinaison Debian Stable + Flatpak, que je déclarais gagnante sur le papier… Il est temps de passer à la pratique !
Sommaire
- Pourquoi Flatpak ?
- Comment Flatpak ?
- Compte-rendu de mon expérience de flatpak-isation de ma Debian Testing
Pourquoi Flatpak ?
Déjà précisons que ma machine tourne sous Debian GNU/Linux Testing avec GNOME-Wayland.
Je vois plusieurs avantages à Flatpak, que je vous présente par ordre d'intérêt décroissant :
- Stabiliser ma Debian : ajouter un dépôt non officiel comme le dépôt deb-multimedia pour bénéficier d'Avidemux, ou ajouter les dépôts d'une autre branche de Debian comme Unstable pour bénéficier de Firefox Release plutôt que de Firefox ESR, n'est pas sans risque pour la stabilité générale du système. Or ces logiciels existent en Flatpak ;
- Profiter de la sécurité accrue du bac à sable des Flatpak, lorsque l'application en tire partie et à condition d'être sous Wayland – ce qui est mon cas (sans parler de la gestion fine des permissions d'accès à vos périphériques type webcam, microphone, à la géolocalisation…) ;
- Profiter des dernières versions logicielles ;
- Profiter des logiciels en version vanille, c'est-à-dire tels qu'ils ont été conçus par leurs développeurs sans modification par la distribution.
Les deux derniers points ne concernent toutefois pleinement que ceux des Flatpak qui ont été générés par les développeurs de l'application eux-mêmes, nous y reviendrons.
J'ai eu l'occasion de me frotter à Flatpak pour la première fois lors de mes tests de la version de développement de Pitivi (logiciel de montage vidéo pour GNOME) pour lesquels la version Flatpak du logiciel est recommandée (notamment parce que, étant générée par les développeurs du logiciel eux-mêmes, elle permet à l'utilisateur de faire tourner exactement la même version que les développeurs, ce qui facilite le débogage).
Comment Flatpak ?
Vous avez le choix entre la ligne de commande ou une interface graphique.
Pour ce qui est de comprendre les bases du fonctionnement de Flatpak en ligne de commande, je vous renvoie aux premières pages de ce manuel, et aux nombreux tutos disponibles sur la Toile.
Si vous préférez une interface graphique, la logithèque de GNOME vous permettra d'installer de manière transparente aussi bien de paquets .deb que de paquets Flatpak (sous Debian, installer pour cela le paquet gnome-software-plugin-flatpak
).
Pour certains paquets Flatpak installés via la Logithèque de GNOME, l'interface était restée en anglais. J'ai donc dû installer les traductions du logiciel en ligne de commande (ajouter « .Locale » à la fin de l'identifiant du logiciel pour installer ses traductions. Le problème serait réglé avec les versions 3.32 ou suivantes de la Logithèque.
Il existe un dépôt central, Flathub, qui héberge un grand nombre d'applications. C'est d'ailleurs là-bas, à la page du logiciel concerné, que je récupère l'identifiant Flatpak des logiciels qui m’intéressent (l'identifiant peut aussi être récupéré avec la commande $ flatpak search nom-de-l'application
). Attention, toutes les applications qui y figurent ne sont pas libres. C'est la raison pour laquelle, sur un certain nombre de distributions, ce dépôt n'est pas configuré par défaut. Il faudra donc l'ajouter ainsi : $ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
.
Au sujet de Flathub, j'ai découvert que certains paquets Flatpak sont préparés par les développeurs de l'application (directement du producteur au consommateur, pourrait-on écrire), comme LibreOffice, GIMP, Pitivi, Firefox ou encore Thunderbird, tandis que d'autres, comme Audacity, Avidemux, Transmission ou VLC media player sont générés indépendamment de leurs développeurs. Dans tous les cas, il ne s'agit pas des développeurs de votre distribution (d'où le titre de ce billet), ce qui est un changement de paradigme dans la distribution des logiciels sous GNU/Linux.
Compte-rendu de mon expérience de flatpak-isation de ma Debian Testing
Sans plus attendre, voici les paquets deb que j'ai choisi de remplacer par leur équivalent Flatpak, et les éventuels problèmes auxquels j'ai été confronté (en gras, les plus gênants).
Les noms des Flatpak qui sont générés par les développeurs de l'application eux-mêmes figurent en bleu et sont affublés de l'étiquette « [Flatpak officiel] ». Les carrés rouges-violets-verts signalent d'un coup d’œil les applications qui fonctionnent péniblement-correctement-bien.
🟩 Audacity (application native Wayland, basée sur wxWidgets 3) : Pas de problème.
🟩 Avidemux (application native Wayland, basée sur Qt) : Tout semble ok (je me retrouve avec un choix de codecs un peu plus réduit via Flathub que via le dépôt deb-multimedia.org mais bon : osef). Les deux bogues (#3 et #8) que j'avais ont été réglés depuis. À noter aussi que le runtime de KDE (KDE Application Platform) est installé dans le cas de la version Flatpak, alors que j'avais juste des dépendances à Qt via le dépôt deb-multimedia.org : c'est inévitable pour limiter les efforts de maintenance à trois runtimes : freedesktop, GNOME et KDE.
🟩 Calibre (application native Wayland, basée sur Qt) : Tout semble ok (mais je ne l'utilise pas, je l'ai installée au cas où).
🟩 Déjà Dup [Flatpak officiel] (application native Wayland, basée sur GTK+3 ou supérieur) : Tout semble ok.🟩 EasyTAG (application native Wayland, basée sur GTK+3) : Tout semble ok (mais je ne l'utilise pas, je l'ai installée au cas où. À noter que le logiciel n'est plus maintenu en tant que tel, seul le paquet Flatpak l'est). Du coup on pourra lui préférer :
🟩 Ear Tag [Flatpak officiel] (application native Wayland, basée sur GTK4), évoqué ici.
🟪 Evince [Flatpak officiel] (application basée sur GTK+3 ou supérieur) : Je ne l'ai pas installé car, sur ma distribution, le paquet evince
dépend du paquet gnome-core
que je souhaite garder pour maintenir une cohérence à mon système, et aussi bénéficier automatiquement de tout nouveau logiciel qui pourrait être ajouté en dépendance de gnome-core
au fur et à mesure des développements du bureau GNOME ($ apt depends gnome-core
pour voir la liste des paquets associés à gnome-core
sur Debian). Par ailleurs, lire l'avertissement en tête de paragraphe pour des logiciels en charge de gérer des formats de fichiers comme Evince.🟩 Extensions [Flatpak officiel] (application native Wayland, basée sur GTK+3 ou supérieur) : La nouvelle application de GNOME 3.36 pour gérer ses extensions, et qui se charge de les mettre à jour automatiquement au démarrage du système. À la place :
🟩 Gestionnaire d'extensions [Flatpak officiel] (application native Wayland, basée sur GTK 4 ou supérieur) : plus complète que l'application Extensions officielle.
🟪 FileZilla (application native Wayland, basée sur wxWidgets 3) : Tout semble ok, sauf la possibilité d'ouvrir des fichiers dans des applications tierces (rapport de bogue).
🟥 (Debian Stable) / 🟩 (Debian Testing) Firefox [Flatpak officiel] (application X11 par défaut, basée sur Web Components, qui peut être configurée en native Wayland en réglant la variable d'environnement comme il faut [1]) : Version stable ou bêta, au choix – mais pas les deux – et en attendant les déclinaisons Nightly et Developer Edition. On patientera toutefois jusqu'à ce que ce bogue d'affichage des polices soit réglé pour basculer son profil (mise à jour du 09/09/23 : sous Debian Testing le bogue est réglé !).
🟩 Frozen Bubble (application X11, basée sur SDL) : Tout semble ok !
🟩 GIMP [Flatpak officiel] (application encore en GTK+2 donc X11 exclusivement) : Outre la dernière version stable qui est proposée en Flatpak, la future version (tirant partie de GTK+3) peut aussi être testée ainsi. Pas de problème particulier semble t-il pour GIMP, à moins que vous n'utilisiez des greffons. Pour ma part, j'avais l'habitude d'installer le paquet deb gimp-plugin-registry (qui fournit notamment le greffon "Save for Web" que j'affectionne) en même temps que la version deb de ce bon vieux GIMP, mais gimp-plugin-registry n'est pas proposé sur Flathub. J'ai donc dû retourner un peu le web et j'ai appris (mieux vaut tard que jamais !) que GIMP propose un système manuel d'installation des greffons ! D'ailleurs, je me souviens maintenant que Jehan a, de longue date, un plan pour améliorer la gestion des extensions dans GIMP. En attendant le résultat de ce travail, j'ai dû compiler le greffon "Save for Web" en suivant les instructions présentes dans l'archive officielle. L'exécutable webexport est alors copié dans /home/mon_user/.config/GIMP/2.10/plug-ins/ (à noter que normalement il faudrait le déplacer manuellement dans /home/mon_user/.var/app/org.gimp.GIMP/config/GIMP/2.10/plug-ins/ pour coller à l'organisation spécifique de Flatpak, mais il y a une difficulté à régler – rapport de bogue). À noter également que je n'ai pas réussi à franciser le greffon. Mise à jour du 18/10/20 : avec la sortie de GIMP 2.10.22 vient la possibilité de récupérer des greffons sous forme d'extensions Flatpak :) Mais pas "Save for Web".
🟩 LibreOffice [Flatpak officiel] (application native Wayland, basée sur VCL) : Tout semble ok. Petit détail : le menu Outils->Options est très long à se lancer (plus de 5 secondes à attendre) (rapport de bogue).
🟩 Liferea [Flatpak officiel] (application native Wayland, basée sur GTK+3 ou supérieur) : Pas de problème.
🟥 Machines (alias Boxes) [Flatpak officiel] (application native Wayland, basée sur GTK+3 ou supérieur) : La version Flatpak ne permet pas à ce jour à vos machines virtuelles d'accéder à vos disques USB : cela demande d'ajouter préalablement à Flatpak un portail ad hoc (rapport de bogue).
🟩 MComix (application native Wayland, basée sur GTK+3 ou supérieur) : Aucun problème.
🟩 Pitivi [Flatpak officiel] (application native Wayland, basée sur GTK+3 ou supérieur) : Aucun problème, et vous pouvez choisir votre version : la stable ou une des deux en développement.
🟥 Rhythmbox (application basée sur GTK+3 ou supérieur) : Tout semble ok, si ce n'est que, parmi tous mes xdg-user-dirs, seul mon dossier Musique apparaît (rapports de bogue ici et là) et que les CD audio n'apparaissent pas (rapport de bogue). Du coup je reste à la version .deb en attendant la correction de ce bogue.
🟩 Scribus (application native Wayland, basée sur Qt) : Semble fonctionner correctement à part ce bogue concernant un problème d'affichage du menu « Formes » avec le thème Adwaita qui est en passe d'être réglé (il y avait aussi cet autre bogue, qui a été réglé depuis).
🟩 Shotwell [Flatpak officiel] (application native Wayland, basée sur GTK+3 ou supérieur) : Tout semble ok (à noter que, parmi tous les xdg-user-dirs, seul le dossier Images apparait sous la rubrique Dossiers du panneau latéral et que c'est voulu).
🟩 Thunderbird [Flatpak officiel] (application X11 par défaut, basée sur XUL, qui peut être configurée en native Wayland en réglant la variable d'environnement comme il faut [2]) : Pas de soucis depuis le passage à la v. 102.2 qui a réglé ce bogue. À noter que le bogue d'affichage des polices qui affecte Firefox Flatpak (lire ci-avant) peut se manifester également avec Thunderbird Flatpak.
🟩 Transmission (application native Wayland, ici dans sa version GTK – v3 ou supérieure) : Tout semble ok !
🟩 Video Downloader [Flatpak officiel] (application native Wayland, basée sur GTK+3 ou supérieur) : Tout semble ok !
🟩 VLC media player (application basée sur Qt en mode X11 en attandant la v4) : Tout semble ok !
🟩 GNOME Web (alias Epiphany) [Flatpak officiel] (application basée sur GTK+3 ou supérieur) : Tout semble ok !
Toutes ces applications peuvent êtres installées dans leur version stable en une ligne de commande : $ flatpak install flathub org.audacityteam.Audacity org.avidemux.Avidemux com.calibre_ebook.calibre org.gnome.DejaDup org.gnome.Epiphany org.gnome.Evince com.mattjakeman.ExtensionManager org.filezillaproject.Filezilla org.mozilla.firefox org.frozen_bubble.frozen-bubble org.gimp.GIMP org.libreoffice.LibreOffice net.sourceforge.liferea org.gnome.Boxes net.sourceforge.mcomix org.pitivi.Pitivi org.gnome.Rhythmbox3 net.scribus.Scribus org.gnome.Shotwell org.mozilla.Thunderbird com.transmissionbt.Transmission com.github.unrud.VideoDownloader org.videolan.VLC
.
À la date du 10 septembre 2023, il n'y a donc guère que Evince, Machine et Rhythmbox que j'utilise encore dans leurs versions .deb (pour les raisons sus-mentionnées).
Par ailleurs, certains logiciels que j'utilise ne sont pas (encore ?) sur Flathub : Brasero, DevedeNG, Imagination. Notez que, par contre, plein de jeux ou d'émulateurs (ScummVM…), libres ou non, y sont.
En ce qui me concerne, je ne vois que des avantages à utiliser les versions Flatpak de mes logiciels usuels. Et pour celles qui ne fonctionnent pas correctement, et bien, il suffit de rester sur la version fournie par votre distribution en attendant que le problème soit réglé !
Prochaine étape : généralisation de Flatpak & Wayland, mise au placard de X.Org
Sur le strict plan de la sécurité, Flatpak n'a véritablement de sens que lorsqu'il est couplé avec Wayland. Et, dès lors que vos applications courantes fonctionnent nativement sous Wayland, il n'est plus utile d'avoir X.Org lancé en permanence en mémoire.
Justement, depuis GNOME 40, dans une session Wayland, GNOME Shell se lance indépendamment de X.Org (fonctionnalité dite « XWayland à la demande »). Et depuis GNOME 42, XWayland se ferme tout seul quand il n'est plus nécessaire.
L'idéal à présent pour moi serait d'avoir toutes mes applications courantes en version Flatpak et fonctionnant nativement sous Wayland, de manière à ce que X.Org ne tourne plus en permanence.
Côté applications, tandis que les développeurs de GIMP travaillent d'arrache-pied à la version 3 qui consacrera le port vers GTK+ 3 permettant théoriquement le fonctionnement natif sous Wayland, on se rapproche sans doute d'un Firefox upstream tournant nativement sous Wayland à présent qu'une distribution comme Fedora a franchi le pas (depuis sa version 33 sortie le 27 octobre 2020) – d'ailleurs upstream a commencé à tester le mode natif Wayland depuis début 2022 (pour suivre les développements sur cette question, voir ici). Pour ce qui est d'avoir un Thunderbird sous Wayland, la volonté semble moins forte, et l'échéance sans doute plus lointaine. Enfin, s'agissant de VLC, la prise en charge upstream de Wayland pourrait se concrétiser à l'occasion de la sortie de la version 4.
[1] Pour profiter du mode Wayland natif avec Firefox Flatpak, il faut saisir $ flatpak override --user --env=MOZ_ENABLE_WAYLAND=1 --socket=wayland org.mozilla.firefox
. Et pour revenir au mode X11, saisir $ flatpak override --user --env=MOZ_ENABLE_WAYLAND= org.mozilla.firefox
.
[2] Pour profiter du mode Wayland natif avec Thunderbird Flatpak, il faut saisir $ flatpak override --user --env=MOZ_ENABLE_WAYLAND=1 --socket=wayland org.mozilla.Thunderbird
. Et pour revenir au mode X11, saisir $ flatpak override --user --env=MOZ_ENABLE_WAYLAND= org.mozilla.Thunderbird
.