Creer un paquet pisi

De PardusWiki.
Aller à : Navigation, rechercher


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 :

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
<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

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
Outils personnels
Espaces de noms
Variantes
Actions
Navigation
Boîte à outils
Imprimer / exporter