J'ai dit « facultatives ». Sur une distribution externe, ce n'est pas activé par défaut, mais il suffit d'une commande pour le faire (et c'est recommandé par le manuel, et proposé par le script d'installation). Le fait que ça ne soit pas activé par défaut est simplement dû à la procédure d'installation dans ce cas, plus qu'à un choix réfléchi. Sur le système Guix, c'est activé par défaut.
Ok.
Pour flatpak, je vois par exemple que gimp est basé sur "org.gnome.Platform", ce qui a l'air assez vague et sans doute plus gros que nécessaire. C'est défini quelque part ?
C'est un runtime GNOME. À ce jour, y a au moins 3 runtime majeurs: Freedesktop (assez simple avec peu de dépendances), KDE et GNOME (tous deux basés sur le runtime Freedesktop auquel ils ajoutent des dépendances assez classiques dans les logiciels KDE ou GNOME). Ils sont bien sûr défini quelque part:
GNOME runtime, je crois que c'est ce lien, à vérifier
KDE runtime, ça m'a l'air d'être ici bien que ça m'étonne que ce soit sur github (peut-être un mirroir?)
Ensuite oui dans un runtime, y a très probablement plus que nécessaire. Ça part évidemment du principe qu'un runtime est utilisé par de multiples applications et permet au contraire de partager la charge (construction des dépendances, téléchargements, espace disque, maintenance et mises à jour, etc.). Mais bien entendu si GIMP est le seul flatpak installé, ça aura l'effet inverse (ça fait installer beaucoup inutilement).
Qui construit ces images ?
Les mainteneurs de ces runtimes chez GNOME, KDE, etc.
Le paquet gimp a l'air de redéfinir tout ce dont il a besoin : gtk2, ibus-gtk2, etc...
C'est un cas particulier car GIMP utilise encore GTK+2. Il y a encore pas si longtemps, GTK+2 était inclus dans le runtime GNOME, et on avait pas besoin de le définir dans le manifest/compiler dans notre flatpak. Ça a changé avec la version 3.30 du runtime, où ils ont décidé de ne plus inclure la version 2. Ça a du sens si on considère que la plupart des logiciels n'utilise plus GTK+2 qui est vraiment en fin de vie, et donc ça sert à rien de l'avoir par défaut.
Donc si j'ai deux flatpak qui utilisent les mêmes dépendances, j'ai deux fois les mêmes dépendances ?
Dans le cas cité, oui, retirer GTK+2 du runtime a un prix. Dès que quelqu'un aura au moins 2 applications basés sur GTK+2, alors il y aura duplication. Je pense personnellement que les mainteneurs du runtime ont retiré GTK+2 un chouille trop tôt, car il y a encore plusieurs applications très répandues basées sur GTK+2 (ne serait-ce que GIMP, qui est tout de même le flatpak le plus téléchargé de tout le dépôt flathub).
Ensuite c'est toujours une décision difficile à évaluer: quand retirer une vieille dépendance pour essayer de pousser les développeurs d'application à se mettre à jour?
Mais dans le cas d'une dépendance qui est dans le runtime dont un flatpak dépend, il existe en une unique version pour tous les logiciels basés dessus.
Notre flatpak stable est ainsi un exemple typique d'un logiciel avec une longue histoire et un peu de dette technique. Ainsi on doit se taper en effet l'ajout de GTK+2 mais aussi d'autres technos liées, comme ibus-gtk2 ou webkitgtk (v2!), du Python 2 (et pygtk 2). Notre flatpak de développement est bien plus simple (GTK+3, Webkit récent, etc. dispos dans le runtime GNOME).
À la fin, les dépendances à l'exécution sont un sous-ensemble des dépendances à la compilation, ce qui garanti que ce soient les mêmes dans les deux cas.
Pareil pour flatpak. Un runtime est constitué d'un ".Platform" et d'un ".Sdk". Le ".Sdk" comprend en addition les dépendances de compilation et n'est pas téléchargé par les gens qui n'ont que besoin d'exécuter.
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]
[^] # Re: Plusieurs questions
Posté par Jehan (site web personnel, Mastodon) . En réponse à la dépêche GNU Guix version Un‐Point‐Zéro. Évalué à 3.
Ok.
C'est un runtime GNOME. À ce jour, y a au moins 3 runtime majeurs: Freedesktop (assez simple avec peu de dépendances), KDE et GNOME (tous deux basés sur le runtime Freedesktop auquel ils ajoutent des dépendances assez classiques dans les logiciels KDE ou GNOME). Ils sont bien sûr défini quelque part:
Ensuite oui dans un runtime, y a très probablement plus que nécessaire. Ça part évidemment du principe qu'un runtime est utilisé par de multiples applications et permet au contraire de partager la charge (construction des dépendances, téléchargements, espace disque, maintenance et mises à jour, etc.). Mais bien entendu si GIMP est le seul flatpak installé, ça aura l'effet inverse (ça fait installer beaucoup inutilement).
Les mainteneurs de ces runtimes chez GNOME, KDE, etc.
C'est un cas particulier car GIMP utilise encore GTK+2. Il y a encore pas si longtemps, GTK+2 était inclus dans le runtime GNOME, et on avait pas besoin de le définir dans le manifest/compiler dans notre flatpak. Ça a changé avec la version 3.30 du runtime, où ils ont décidé de ne plus inclure la version 2. Ça a du sens si on considère que la plupart des logiciels n'utilise plus GTK+2 qui est vraiment en fin de vie, et donc ça sert à rien de l'avoir par défaut.
Dans le cas cité, oui, retirer GTK+2 du runtime a un prix. Dès que quelqu'un aura au moins 2 applications basés sur GTK+2, alors il y aura duplication. Je pense personnellement que les mainteneurs du runtime ont retiré GTK+2 un chouille trop tôt, car il y a encore plusieurs applications très répandues basées sur GTK+2 (ne serait-ce que GIMP, qui est tout de même le flatpak le plus téléchargé de tout le dépôt flathub).
Ensuite c'est toujours une décision difficile à évaluer: quand retirer une vieille dépendance pour essayer de pousser les développeurs d'application à se mettre à jour?
Mais dans le cas d'une dépendance qui est dans le runtime dont un flatpak dépend, il existe en une unique version pour tous les logiciels basés dessus.
Notre flatpak stable est ainsi un exemple typique d'un logiciel avec une longue histoire et un peu de dette technique. Ainsi on doit se taper en effet l'ajout de GTK+2 mais aussi d'autres technos liées, comme ibus-gtk2 ou webkitgtk (v2!), du Python 2 (et pygtk 2). Notre flatpak de développement est bien plus simple (GTK+3, Webkit récent, etc. dispos dans le runtime GNOME).
Pareil pour flatpak. Un runtime est constitué d'un ".Platform" et d'un ".Sdk". Le ".Sdk" comprend en addition les dépendances de compilation et n'est pas téléchargé par les gens qui n'ont que besoin d'exécuter.
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]