abuledu:mainteneur:creer_un_paquet_a_partir_de_rien

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.

1. Télécharger les sources du logiciel 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

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.

La description du logiciel provient de la section description du fichier control.

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.

Source: abuledu-ave
Section: universe/x11
Priority: extra
Maintainer: Eric Seigne <eric.seigne@ryxeo.com>
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
  • Priority : Il existe 5 solutions pour renseigner cette ligne, choisissez celle qui convient le mieux à votre paquet
Niveausignification
requiredindispensable
importantdoit être dans tout système GNU/Linux
standardpeut être dans tout système GNU/Linux
optionalpaquets intéressants suivant l'installation réalisée
extrapaquets optionnels qui simplifient GNU/Linux

:?: Plus de détails ici : 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 <adresse_email@fai>
  • Architecture:
type d'ordinateurconditions nécessairesce qu'il faut mettre
Toutes plateformesLes scripts qui marchent sur toutes les architectures du mondeall ou any
i386Les scripts ne marchent que sur intel386i386
  • 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).
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 <eric.seigne@ryxeo.com>  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.

This package was debianized by Eric Seigne <eric.seigne@ryxeo.com> on
Wed, 11 Apr 2007

It was downloaded from
http://docs.abuledu.org

Upstream Author: Autre Développeur <adresse.email@domaine.ext>

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.

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 <eric.seigne@ryxeo.com>

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 !

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"

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

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

Si vous avez besoin de lancer une commande spéciale avant la suppression du paquet, c'est dans ce fichier que ça se passe

Vous êtes maintenant dans la situation d'un mainteneur de paquet existant, vous pouvez donc passer à la l'étape suivante

  • abuledu/mainteneur/creer_un_paquet_a_partir_de_rien.txt
  • Dernière modification: 2008/02/08 10:48
  • de laurent