====== Préparation d'une source pour la création d'un paquet "Debian/Ubuntu" ====== Nous allons voir ici comment faire pour préparer la création d'un paquet Debian/Ubuntu "propre" (ou presque) à partir de zéro. :?: Pour comprendre 8-o les étapes nécessaires à la création de ce nouveau paquet, prenons l'exemple de ce logiciel simple AVE. ===== Exemple du logiciel AVE non compilé et très simple ===== 1. Télécharger les sources du logiciel {{abuledu:mainteneur:ave-1.0.tar.gz|ave-1.0.tar.gz}} 2. Décompressez-le dans votre répertoire de travail 3. Analyser ce logiciel pour trouver ce dont il a besoin pour fonctionner, c'est la recherche des dépendances, quels autres paquets Debian ce logiciel nécessite ... par exemple dans notre cas il faut * python * python-gtk2 ===== Définir le nom du paquet à construire ===== Dans l'exemple ci-dessus nous voulons construire un paquet deb qui s'appelera : abuledu-ave_1.0-ryxeo1.deb Pour obtenir ce résultat, les fichiers suivant doivent contenir - dans **control** : abuledu-ave - dans **changelog** : abuledu-ave (1.0-ryxeo1) En regardant après installation dans synaptic, on retrouve les informations, dans l'exemple ci-dessous, le nom déclaré était **ave** à la place de **abuledu-ave** et la version était **1.0-lprod1** au lieu de **1.0-ryxeo1**. {{abuledu:mainteneur:ave.jpg|}} La description du logiciel provient de la section description du fichier **control**. ===== Création des fichiers nécessaires au paquet debian/ubuntu ===== Un paquet debian/ubuntu doit normalement contenir 8 fichiers de références, **control**, **changelog**, **copyright**, **rules**, **menu**, **postinst**, **postrm**, **prerm**. Seuls les fichiers **control**, **changelog**, **copyright**, **rules**, **menu** sont **indispensables** Pour commencer votre travail de création de paquet, commencez par créer un répertoire "**debian**" dans vos fichiers sources dans lequel vous mettrez les 8 fichiers suivants. ==== debian/control ==== Source: abuledu-ave Section: universe/x11 Priority: extra Maintainer: Eric Seigne Build-Depends: debhelper Standards-Version: 3.6.2.1 Package: abuledu-ave Architecture: all Depends: python, python-gtk2 Description: ave, petit logiciel pour apprendre a faire un paquet Ce logiciel affiche une boite "hello world" en version romaine Remplacez les informations et adaptez à votre logiciel en prenant comme modèle l'exemple ci-dessus : * Source : Le nom de la source du logiciel * Section : la liste des sections possibles se trouve [[http://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections|ici sur le site Debian (anglais)]] * Priority : Il existe 5 solutions pour renseigner cette ligne, choisissez celle qui convient le mieux à votre paquet |Niveau|signification| |required|indispensable| |important|doit être dans tout système GNU/Linux| |standard|peut être dans tout système GNU/Linux| |optional|paquets intéressants suivant l'installation réalisée| |extra|paquets optionnels qui simplifient GNU/Linux| :?: Plus de détails ici : [[http://www.debian.org/doc/manuals/reference/ch-system.fr.html#s-pkg-basics|Guide du mainteneur Debian]] * Maintainer : Mettez votre prénom, votre nom et votre adresse email valide où l'on peut vous contacter en respectant la structure * Architecture: |type d'ordinateur|conditions nécessaires|ce qu'il faut mettre| |Toutes plateformes|Les scripts qui marchent sur toutes les architectures du monde|**all** ou **any**| |i386|Les scripts ne marchent que sur intel386|**i386**| * Depends (valable aussi pour Build-Depends) : Vous complétez la liste des dépendances du logiciel, par exemple il a besoin de Mencoder, vous mettez **mencoder**. Si vous souhaitez en plus un contrôle de version, rajoutez **(>= 4.0.0)**, ce qui donne **mencoder (>= 4.0.0)**. ==== debian/changelog ==== abuledu-ave (1.0-ryxeo1) dapper; urgency=low * nouvelle version du logiciel * avec la liste des choses qui sont arrivees dans cette version -- Eric Seigne Wed, 11 Apr 2007 11:03:26 +0200 - Pour ce fichier le nom déclaré, ici **abuledu-ave** doit parfaitement correspondre à celui déclaré dans le fichier **control** - La version du logiciel sera indiquée entre les parenthèses. ==== debian/copyright ==== This package was debianized by Eric Seigne on Wed, 11 Apr 2007 It was downloaded from http://docs.abuledu.org Upstream Author: Autre Développeur Copyright: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License with the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. ==== debian/rules ==== C'est ce fichier qui embarque réellement "l'intelligence" de la création du paquet ... #!/usr/bin/make -f # -*- mode: makefile; coding: utf-8 -*- # # Copyright (c) 2007 Eric Seigne DEB=debian/abuledu-ave DEST=usr/share/abuledu-ave include /usr/share/cdbs/1/rules/debhelper.mk common-install-indep:: mkdir -p $(DEB)/$(DEST) mkdir -p $(DEB)/usr/bin cp abuledu-ave $(DEB)/usr/bin mkdir -p $(DEB)/usr/share/pixmaps cp debian/abuledu-ave.xpm $(DEB)/usr/share/pixmaps chmod 755 $(DEB)/usr/bin/abuledu-ave chown -R root:root $(DEB) Remarquez le fichier abuledu-ave.xpm qui est dans le repertoire debian/ en effet le développeur n'a pas distribué d'icone pour son application, le mainteneur de paquet l'ajoute donc, c'est à vous de créer une image d'icone ! Inspirez vous des icones systèmes ... ou réutilisez-en une ! ==== debian/menu ==== C'est le fichier qui détermine le menu qui sera utilisé dans gnome/kde/et autres applications compatibles ?package(abuledu-ave):needs="X11"\ section="XShells"\ hints="AVE"\ title="AbulEdu AVE"\ icon="/usr/share/pixmaps/abuledu-ave.xpm"\ command="/usr/bin/abuledu-ave" ==== debian/postinst ==== Si vous avez besoin de lancer une commande spéciale après l'installation du paquet, c'est dans ce fichier que ça se passe === debian/preinst === Si vous avez besoin de lancer une commande spéciale avant l'installation du paquet, c'est dans ce fichier que ça se passe ==== debian/postrm ==== Si vous avez besoin de lancer une commande spéciale après la suppression du paquet, c'est dans ce fichier que ça se passe ==== debian/prerm ==== Si vous avez besoin de lancer une commande spéciale avant la suppression du paquet, c'est dans ce fichier que ça se passe ===== Lancer la création du paquet ===== Vous êtes maintenant dans la situation d'un mainteneur de paquet existant, vous pouvez donc passer à la [[abuledu:mainteneur:creer_un_paquet|l'étape suivante]] ... ===== Pour en savoir plus sur Internet ===== - [[http://www.debian.org/doc/manuals/maint-guide/|Guide officiel Debian du mainteneur de paquet]] Revenir au menu [[abuledu:mainteneur:mainteneur|Mainteneur]]