# Flatpak

Flatpak (anciennement xdg-app) est un système de virtualisation d’application pour les distributions Linux de bureau.

## Historique

À l'origine, le système de paquets Flatpak fut développé pour faciliter le déploiement sécurisé d'applications sur tout type de distributions Linux. Le développeur principal du projet est Alexander Larsson.
Au départ, le projet s’appelle xdg-app, en référence à freedesktop.org qui est souvent abrégé « xdg », cette structure ayant hébergé sur ses serveurs le projet xdg-app.
Le 21 juin 2016, le projet annonce son changement de nom pour « Flatpak ». À cette occasion, Red Hat, Endless Computers et Collabora annoncent soutenir le projet. Lors de cette annonce, un certain nombre de projets indiquent qu'ils proposent leurs logiciels dans ce format. C'est notamment le cas de LibreOffice, GIMP, InkScape et une grande partie des logiciels de l'environnement GNOME.
La version 0.8.0 de Flatpak est la première à bénéficier d'une prise en charge à long terme ; elle a été intégrée dans Debian 9 Stretch et RHEL 7.
En mai 2017 est lancé Flathub, un magasin d'applications qui permet de facilement trouver et installer un paquet Flatpak.
Le 20 août 2018 sort la version 1.0, cette sortie marque le passage en version stable du logiciel. Au même moment, les mainteneurs du magasin Flathub retirent la mention bêta de leur référentiel.
Endless OS 3.2.5 est la première distribution à intégrer Flatpak avec le magasin Flathub configuré par défaut, rapidement suivi par Linux Mint 18.3 Cinnamon.

## Objectifs

Le premier ojectif est de fournir un environnement « bac à sable » (sandbox) sûr, isolé du reste du système, dans lequel les utilisateurs peuvent exécuter des applications non validées par les dépôts de la distribution (des versions de test, par exemple). Les applications utilisent des appels de fonctions spécifiques fournies par Flatpak pour contrôler les périphériques matériels ou accéder aux fichiers de l'utilisateur, et Flatpak demande à l'utilisateur sa permission avant d'y donner accès.
Le second objectif est de permettre l’installation des paquets Flatpak sur n'importe quelle distribution, les développeurs n'ont plus besoin d'emballer leur application à destination de chaque distribution Linux.

## Fonctionnement

L'installation des applications Flatpak peut se faire de différentes manières :
* La plus simple en mode graphique en utilisant les logiciels GNOME Logiciels ou KDE Discover qui prennent en charge ce type de fichier.
* En utilisant le magasin d'application Flathub afin de télécharger l'application souhaitée.
* En ligne de commande.
* Au moyen d'un périphérique amovible ou en LAN quand aucun réseau n'est disponible.
Les paquets Flatpak sont des fichiers archives (dont l'extension se termine par .flatpakref) capables d'être exécutés sur le système, de façon indépendante de la distribution Linux utilisée, sous réserve que le logiciel Flatpak ait été préalablement installé sur cette distribution. Ils peuvent être installés sur l'ensemble du système ou seulement dans l'espace utilisateur, ce qui présente l'avantage de ne pas nécessiter de droit administrateur.
Pour permettre au « bac à sable » de fonctionner malgré son isolement du système, il faut que les bibliothèques ou dépendances indispensables à un logiciel emballé soient embarquées avec lui au sein de son paquet « Flatpak ». Ce système a pour inconvénient d'embarquer potentiellement plusieurs fois la même bibliothèque (une par paquet Flatpak), et donc de prendre plus de place. Il a, en revanche, pour avantage de ne pas déstabiliser un logiciel Flatpak lors d'une mise à jour de dépendances ou de bibliothèques, puisque cette mise à jour ne le concernera pas. Il est dès lors assez simple de faire cohabiter plusieurs versions d'un même logiciel. Pour pallier le problème de duplication des bibliothèques, Flatpak utilise des runtimes (environnements d'exécution) : il s'agit d'un regroupement de bibliothèques partagées entre applications.
À la sortie de la version 1.0, un grand nombre de distributions intègrent la prise en charge des paquets Flatpak, comme Fedora, Debian ou encore OpenSUSE.

## Disponibilité

Les paquets Flatpak sont utilisables sur toutes les distributions Linux compatibles avec Windows Subsystem for Linux.

### Distributions ayant Flatpak pré-installé

* CentOS
* Clear Linux
* Elementary OS$^,$
* Endless OS
* Fedora Linux
* Linux Mint$^,$
* Pop! OS$^,$
* PureOS
* Zorin OS$^,$
* MassOS

### Distributions compatibles mais sans Flatpak pré-installé

* AlmaLinux
* Alpine Linux
* Arch Linux
* Ataraxia Linux
* Bodhi Linux
* Chrome OS
* Clear Linux
* Debian
* Deepin
* EndeavourOS
* Gentoo Linux
* KaOS
* KDE neon
* Kubuntu
* Mageia
* Manjaro
* MX Linux$^,$
* NixOS
* OpenMandriva Lx
* OpenSUSE
* Pardus
* PCLinuxOS
* Peppermint OS
* Pisi Linux
* Raspberry Pi OS
* Red Hat Enterprise Linux
* Rocky Linux
* Solus
* SparkyLinux
* SulinOS
* Ubuntu
* Void Linux
* Zenwalk