Creer un paquet pisi
Sommaire
|
Préparation
Je vais prendre comme exemple imlib2. C'est une librairie pour les images en C.
Création des dossiers
Tout d'abord il faut se créer un répertoire de travail par exemple pardus :
~ $ mkdir pardus ~ $ cd pardus
Ensuite il faut créer les dossiers qui correspondent au type de votre logiciel (regarder : http://svn.pardus.org.tr/pardus/devel et http://svn.pardus.org.tr/contrib). Par exemple pour imlib2 :
~/pardus $ mkdir -p multimedia/library ~/pardus $ cd multimedia/library
Enfin il faut créer un dossier qui porte nom de votre logiciel. Dans notre exemple cas ce sera imlib2 :
~/pardus/programming/libs/ $ mkdir imlib2
Création des fichiers et dossiers utiles pour le paquet
Pour créer un .pisi il faut obligatoirement 3 fichiers : component.xml (dans notre exemple il est dans ~/pardus/multimedia/library), pspec.xml (~/pardus/multimedia/library/imlib2) et actions.py (~/pardus/multimedia/library/imlib2). Il faudra donc avoir quelque chose comme ceci :
pardus/: programming pardus/programming: libs pardus/programming/libs: component.xml imlib2 pardus/programming/libs/imlib2: actions.py pspec.xml
component.xml
Le component.xml précise dans quelle section sera votre logiciel : applications.editors, programming.libs, ... Il y a 2 solutions pour créer ce fichier :
- Le récupérer sur un dépot source de Pardus
Dans la plupart des cas ce sera la solution retenue. Donc si votre section existe déjà sur devel ou contrib il suffit de récupérer le fichier. Pour packager imlib2 on fera :
~/pardus/multimedia/library $ wget http://svn.pardus.org.tr/pardus/2009/devel/multimedia/library/component.xml
- Si la section de votre logiciel n'existe pas, il faut créer le fichier.
<PISI>
<Name>applications</Name>
<LocalName xml:lang="tr">Uygulamalar</LocalName>
<Summary xml:lang="tr">Pardus kullanıcıları için seçilmiş uygulama programları</Summary>
<Description xml:lang="tr">Uygulamalar, internette gezinmek gibi iyi belirlenmiş kullanım alanlarına hitap eden programlardır</Description>
</PISI>
La création du package
pspec.xml
Le fichier pspec.xml permet de saisir toutes les informations (dépendances, description, nom du paquet, ...) sur un paquet.
Template de pspec.xml
Voici un template vide pspec.xml :
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pardus.org.tr/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name></Name>
<Homepage>http://</Homepage>
<Packager>
<Name></Name>
<Email></Email>
</Packager>
<License>GPLv2</License>
<Icon></Icon>
<IsA></IsA>
<Summary></Summary>
<Description></Description>
<Archive sha1sum="" type="">http://</Archive>
<BuildDependencies>
<Dependency></Dependency>
</BuildDependencies>
<Patches>
<Patch level=""></Patch>
</Patches>
</Source>
<Package>
<Name></Name>
<RuntimeDependencies>
<Dependency versionFrom=""></Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc</Path>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="header">/usr/include</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="localedata">/usr/share/locale</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="data">/usr/share</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target=""></AdditionalFile>
</AdditionalFiles>
<Provides>
<COMAR script=""></COMAR>
</Provides>
</Package>
<History>
<Update release="1">
<Date>YYYY-MM-DD</Date>
<Version></Version>
<Comment>First release.</Comment>
<Name></Name>
<Email></Email>
</Update>
</History>
</PISI>
Les sections du pspec.xml
Le pspec.xml est divisé en 3 parties qui sont elles-mêmes divisées en plusieurs parties.
Langage invalide
Vous devez spécifier un langage comme ceci : <source lang="html4strict">...</source>
Langages supportés pour la coloration syntaxique :
4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic
Le noeud Source
Langage invalide
Vous devez spécifier un langage comme ceci : <source lang="html4strict">...</source>
Langages supportés pour la coloration syntaxique :
4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic
Cette partie permet de configurer tout ce qui est relatif aux sources : son nom, son emplacement, la homepage du projet, les informations sur le packageur, le nom de l'icône, l'ISA, l'intitulé, la description, l'emplacement de l'archive, les dépendances source et les patches.
<Name></Name> (obligatoire)
La balise "Name" qui se trouve dans la balise "Source" permet de nommer votre paquet source dans notre exemple ça sera bien évidemment imlib2.
<Homepage></Homepage> (obligatoire)
Cette balise permet de renseigner l'adresse du projet dans notre exemple c'est : http://enlightenment.org/Libraries/Imlib2
<Packager></Packager> (obligatoire)
Cette balise permet de renseigner le nom et l'email du packageur principale dans notre exemple il s'agit de Kenan Pelit
<Packager>
<Name>Kenan Pelit</Name>
<Email>kpelit@gmail.com</Email>
</Packager>
<License></License> (obligatoire)
Cette balise précise la licence du logiciel dans ce cas là ça sera BSD mais ça peut également être : GPLv2, GPLv3, LGPLv2, LGPLv2.1, MIT, ...
<Icon></Icon> (facultative)
Cette balise permet d'associer l'icône du logiciel avec le paquet (elle s'affiche dans "Package Manager"). En règle générale il s'agit tout simplement du nom du logiciel. Cette balise est malheureusement assez peu utilisée. Bien sûr dans l'exemple cette balise n'est pas utilisée.
<IsA></IsA> (obligatoire)
La balise IsA ou plutôt Is-a (http://en.wikipedia.org/wiki/Isa_%28computer_science%29) précise de quel type est le logiciel : app:gui, app:console, service ou library. Dans notre exemple ça sera bien sûr library.
<Summary></Summary> (obligatoire)
Cette balise permet de décrire rapidement le logiciel. Attention le contenu de la balise doit absolument être en anglais.
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Copyright 2008 TUBITAK/UEKAE
# Licensed under the GNU General Public License, version 2.
# See the file http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get
def setup():
pass
def build():
pass
def install():
pass