Flatpak – Importer une bibliothèque

de | décembre 27, 2019

Le gnome builder empaquête les applications via Flatpack. La documentation se trouve sur http://docs.flatpak.org/en/latest/. Il est très important de la lire afin de compléter ce qui suit. La configuration de flatpak se fait dans un fichier <app>.json situé à la racine du projet.

Prenons comme exemple l’utilisation de de la bibliothèque Avahi qui permet de découvrir des hôtes implémentant le protocole zeroconf sur un réseaux.

"modules": [
        {
            "name" : "avahi",
            "buildsystem" : "autotools",
	    "config-opts": [
	    	"--disable-manpages",
	    	"--with-distro=none",
	    	"--disable-mono",
	    	"--disable-monodoc",
	    	"--disable-python",
	    	"--disable-qt3",
	    	"--disable-qt4",
	    	"--disable-core-docs",
	    	"--disable-gtk",
	    	"--disable-tests",
	    	"--disable-qt5",
	    	"--disable-libdaemon"
	    ],
            "sources" : [
                {
                  "type" : "git",
                  "url" : "https://github.com/lathiat/avahi.git"
                }
            ],
            "modules" : [
                {
                    "name" : "libevent",
                    "sources" : [
                        {
                            "type" : "archive",
                            "url" : "https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz",
                            "sha256": "a65bac6202ea8c5609fd5c7e480e6d25de467ea1917c08290c521752f147283d"
                        }
                    ]
                }
           ]
        }
]

Pour ajouter un module, nous ajoutons une entrée dans le tableau module du fichier <app>.json. Nous définissons le nom du module, ici avahi. Nous précisons le processus de build. Pour avahi il s’agit de autotools. Plusieurs sont disponibles.

  • autotools
  • cmake
  • cmake-ninja
  • meson
  • the « Build API
  • simple

Le processus simple permet l’exécution de commandes personnalisées. L’entrée config-opts, permet de spécifier les options qui seront passées lors du build. Ici nous ciblons Gtk3. Enfin nous précisons une source pour le module.

  • archive.tar or .zip archive files
  • git – Git repositories
  • bzr – Bazaar repositories
  • file – local file (these are copied into the source directory)
  • dir – local directory (these are copied into the source directory)
  • script – an array of shell commands (these are put in a shellscript file)
  • shell – an array of shell commands that are run during source extraction
  • patch – a patch (are applied to the source directory)
  • extra-data – data that can be downloaded at install time; this can include archive or package files

Dépendances

Un module peut lui même avoir des dépendances. C’est le cas pour avahi avec libevent. Cette fois-ci nous utilisons directement les binaires précompilés. Pour cela nous définissons une sous-entrée module par dépendances.

00

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.