Paquet pisi

Un article de PardusWiki.

Sommaire

[modifier] Construction d'un paquet PiSi

[modifier] La structure d'un paquet PiSi 1.1

Un paquet pisi est essentiellement un fichier zippé. On va télécharger un fichier pisi et l'examiner :

$ wget http://paketler.pardus.org.tr/pardus-2007/knazar-0.2-3-3.pisi
$ unzip knazar-0.2-3-3.pisi -d apackage
Archive:  knazar-0.2-3-3.pisi
  inflating: apackage/metadata.xml
  inflating: apackage/files.xml
  inflating: apackage/install.tar.lzma
$ cd apackage
$ ls
files.xml  install.tar.lzma  metadata.xml
  • files.xml contient les traductions, les types, les tailles et les sha1sums de tous les fichiers du paquet.
  • metadata.xml contient les informations générales comme le nom du paquet, le site du projet, le paquageur, ...
  • install.tar.lzma contient les fichiers du logiciel paquagé.

Les fichiers peuvent être extrait avec ces commandes :

$ lzma d install.tar.lzma install.tar
$ tar xvf install.tar

[modifier] Créer un paquet PiSi

Pour construire un paquet pisi nous avons besoin au minimum des fichiers suivants : pspec.xml et actions.py

[modifier] pspec.xml

C'est un fichier XML qui contient trois noeuds : Source, Package, History

Il peut contenir plusieurs noeuds Package. En d'autres termes, un paquet source peut générer plusieurs paquets binaires. Pisi est très souple :)

Regardons notre exemple : http://svn.pardus.org.tr/pardus/devel/desktop/kde/knazar/pspec.xml

Comme vous pouvez le voir dans l'exemple :

  • La section Source contient les informations suivantes : nom du paquet (Name), le site du projet (Homepage), des informations sur le paquageur (Packager), des infos sur les sources (Archive : le sha1sum, le type et l'adresse des sources de l'archive), les patchs (Patches) et les dépendences pour la compilation (BuildDependencies).
  • La section Package contient les noeuds suivants : les dépendences pour l'execution (RuntimeDependencies), l'emplacement des différents fichiers du paquet binaire par type (Files), les fichiers supplémentaires (AdditionalFiles) et les scripts Comar (Provides) si nécessaire.
  • La section History contient tout simplement l'hisorique du paquet.

Vous voulez peut être étudier le fichier dtd de pisi; il est disponnible ici : http://www.pardus.org.tr/projeler/pisi/pisi-spec.dtd

[modifier] Installation de fichiers supplémentaires

Le paquet peut contenir le noeud : AdditionalFiles qui est utilisé pour copier des fichiers depuis le répertoire files du paquet source (exemple : http://svn.pardus.org.tr/pardus/devel/desktop/kde/PyKDE/files/) vers le .pisi.

E.g., supposons que j'ai une structure comme ceci :

myproject/
myproject/files/somefile.config
myproject/actions.py
myproject/pspec.xml

Ensuite, le paquet peut être comme ceci :

   <Package>
       <Name>myproject</Name>
       <Summary>Core of MyProject.</Summary>
       <RuntimeDependencies>
           <Dependency>some-lib</Dependency>
       </RuntimeDependencies>
       <Files>
           <Path fileType="executable">/usr/bin</Path>
       </Files>
       <AdditionalFiles>
           <AdditionalFile target="/etc/path/to/install" permission="0644"                                 
                           owner="root">somefile.config</AdditionalFile>
       </AdditionalFiles>
   </Package>

[modifier] actions.py

Ce fichier contient du code Python qui compile et installe le paquet source dans un dossier particulier (InstallDIR). Dans notre exemple ca sera : /var/pisi/knazar-0.2-3-3/install/.

Dans ce fichier, nous utilisons Actions API. Actions API a toutes les fonctionnalités don nous avons besoins pour compiler et installer notre package.

Si vous connaissez Python, vous devriez regarder les sources : http://svn.pardus.org.tr/uludag/trunk/pisi/pisi/actionsapi/

[modifier] Créer le fichier PiSi

Après avoir préparé : pspec.xml et actions.py, vous pouvez facilement créer votre .pisi avec cette commande :

 sudo pisi build pspec.xml

Pour compiler l'exemple sans récupérer les fichiers on peut aussi tapper cette commande :

 sudo pisi bi http://svn.pardus.org.tr/pardus/devel/desktop/kde/knazar/pspec.xml

Finalement, vous pouvez examiner les autres paquets sources officiels : http://svn.pardus.org.tr/pardus/devel/

Autres langues