Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
projets:paquets:creer_un_paquet_avec_cdbs [Le 05/11/2006, 10:55]
91.163.45.40
projets:paquets:creer_un_paquet_avec_cdbs [Le 11/09/2022, 13:17] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-Article mis en forme par DvP suite à la séance de formation organisée par Gloubiboulga sur le canal IRC #​ubuntu-fr-classroom. Encore merci à lui pour ces excellents cours.+Article mis en forme par DvP suite à la séance de formation organisée par Gloubiboulga sur le canal IRC #​ubuntu-fr-classroom. Encore merci à lui pour ses excellents cours. 
 + 
 +Merci à Gloubiboulga pour la relecture et corrections. 
 + 
 +====== CDBS, un outil de création de paquets debian ======
  
-====== CDBS, un outil de création de paquets debian ====== ​ 
 ===== Présentation ===== ===== Présentation =====
-CDBS, pour Common Debian Build System, est un outil qui permet de simplifier votre debian/​rules. Il permet de faire la même chose que ce que vous pouvez faire avec debhelper. Pour certains paquets faits avec CDBS, le debian/​rules se résume à 2 lignes. CDBS est de plus en plus utilisé par les mainteneurs. Sous Ubuntu, GNOME, KDE et Xfce sont entièrement packagés grâce à CDBS.+CDBS, pour Common Debian Build System, est un outil qui permet de simplifier votre debian/​rules. Il permet de faire la même chose que ce que vous pouvez faire avec debhelper. Pour certains paquets faits avec CDBS, le debian/​rules se résume à 2 lignes. CDBS est de plus utilisé par les mainteneurs. Sous Ubuntu, GNOME, KDE et Xfce sont entièrement packagés grâce à CDBS. 
  
 ==== Pré requis ==== ==== Pré requis ====
-Pour pouvoir suivre cette documentation un certain nombre de pré-requis sont nécessaires :  +Pour pouvoir suivre cette documentation un certain nombre de pré-requis sont nécessaires : 
-  * Avoir suivi (ou lu) les cours précédents sur la [[http://​doc.ubuntu-fr.org/​projets/​paquets/​creer_un_paquet|création de paquets]] et la [[http://​doc.ubuntu-fr.org/​projets/​paquets/​compiler_un_programme|compilation d'un programme]]+  * Avoir suivi (ou lu) les cours précédents sur la [[tutoriel:​creer_un_paquet|création de paquets]] et la [[:tutoriel:​compilation|compilation d'un programme]]
   * Installer sur votre ordinateur les paquets suivants :   * Installer sur votre ordinateur les paquets suivants :
     * devscripts     * devscripts
Ligne 16: Ligne 20:
     * fakeroot     * fakeroot
  
-Afin d'​installer rapidement ces paquets, exécuter la commande suivante ​+Afin d'​installer rapidement ces paquets :
  
-  ​sudo apt-get install devscripts build-essential cdbs debhelper lintian fakeroot+[[apt://​devscripts,​build-essential,​cdbs,​debhelper,​lintian,​fakeroot|{{apt.png}}]] ou en console : 
 +<​code>​sudo apt-get install devscripts build-essential cdbs debhelper lintian fakeroot</​code>​
  
  
Ligne 34: Ligne 39:
 Quand vous téléchargez un logiciel, 3 commandes suffisent souvent à le compiler/​installer (les fameuses commandes ./​configure,​ make et make install) mais vous pouvez aussi faire vous même la compilation en utilisant directement gcc ou g++. Quand vous téléchargez un logiciel, 3 commandes suffisent souvent à le compiler/​installer (les fameuses commandes ./​configure,​ make et make install) mais vous pouvez aussi faire vous même la compilation en utilisant directement gcc ou g++.
 C'est ce que font les 3 commandes, mais pour vous c'est beaucoup plus simple. C'est ce que font les 3 commandes, mais pour vous c'est beaucoup plus simple.
-C'est le même principe avec debhelper et cdbs, vous pouvez tout faire manuellement avec debhelper mais vous pouvez aussi utiliser cdbs qui fera le même boulot avec 2 lignes de code (en utilisant debhelper 99 fois sur 100). +C'est le même principe avec debhelper et cdbs, vous pouvez tout faire manuellement avec debhelper mais vous pouvez aussi utiliser cdbs qui fera le même boulot avec 2 lignes de code (en utilisant debhelper 99 fois sur 100).
  
 **Attention** : Notez que seul le debian/​rules est concerné par CDBS, le reste des fichiers de debian/ reste identique suivant que vous utilisiez debhelper ou CDBS. **Attention** : Notez que seul le debian/​rules est concerné par CDBS, le reste des fichiers de debian/ reste identique suivant que vous utilisiez debhelper ou CDBS.
  
-===== Création d'un paquet avec CDBS ===== +===== Création d'un paquet avec CDBS =====
 ==== Préparation ==== ==== Préparation ====
 On va aujourd'​hui empaqueter libtextcat (http://​software.wise-guys.nl/​libtextcat/​). On va procéder en 2 étapes. D'​abord en créant un paquet très laid, mais qui nous permettra de nous faire la main, puis en créant un vrai paquet, tout beau, et qui nous donnera plusieurs .debs. On va aujourd'​hui empaqueter libtextcat (http://​software.wise-guys.nl/​libtextcat/​). On va procéder en 2 étapes. D'​abord en créant un paquet très laid, mais qui nous permettra de nous faire la main, puis en créant un vrai paquet, tout beau, et qui nous donnera plusieurs .debs.
 +
 +
 +
 +
  
  
Ligne 46: Ligne 55:
 Pour aller vite, Gloubiboulga a préparé un petit script qui va vous permettre de récupérer tous les fichiers nécessaires sur son site. Placez vous dans un dossier (le dossier ~/packaging de la première session fera très bien l'​affaire si vous l'avez toujours) et utilisez : Pour aller vite, Gloubiboulga a préparé un petit script qui va vous permettre de récupérer tous les fichiers nécessaires sur son site. Placez vous dans un dossier (le dossier ~/packaging de la première session fera très bien l'​affaire si vous l'avez toujours) et utilisez :
 <code bash> <code bash>
-wget http://​gauvain.tuxfamily.org/school/​2006-10-31/​get_files.sh+wget http://​gauvain.pocentek.net/u-classroom/​2006-10-31/​get_files.sh
 chmod a+x get_files.sh chmod a+x get_files.sh
 ./​get_files.sh init ./​get_files.sh init
 </​code>​ </​code>​
 +<note important>​Il faut modifier le script get_files.sh,​ et remplacer à la ligne 6 la valeur de BASE_URL par :
 +  BASE_URL="​http://​gauvain.pocentek.net/​u-classroom/​2006-10-31/​textcat"​
 +</​note>​
 Ceci va vous permettre de récupérer le paquet source orig.tar.gz de libtextcat et un dossier debian/ contenant les fichiers nécessaires à la création d'un paquet tout moche ;) Ceci va vous permettre de récupérer le paquet source orig.tar.gz de libtextcat et un dossier debian/ contenant les fichiers nécessaires à la création d'un paquet tout moche ;)
  
Ligne 58: Ligne 70:
 Puis choisir « b » pour la création d'un paquet en utilisant cdbs. Ceci générera le dossier debian/ ainsi que les fichiers au « format » cdbs. Puis choisir « b » pour la création d'un paquet en utilisant cdbs. Ceci générera le dossier debian/ ainsi que les fichiers au « format » cdbs.
  
-Pour le détail sur les fichiers contenus dans le dossier debian/ rapporter vous au précédent tutoriel : [[http://​doc.ubuntu-fr.org/​projets/​paquets/​creer_un_paquet|Créer un paquet]]+Pour le détail sur les fichiers contenus dans le dossier debian/ rapporter vous au précédent tutoriel : [[tutoriel:​creer_un_paquet|Créer un paquet]]
  
 === Contenu du dossier debian/ === === Contenu du dossier debian/ ===
Ligne 78: Ligne 90:
 Ces deux lignes pourraient suffire à faire le paquet, mais essayons d'​aller plus loin. Ces deux lignes pourraient suffire à faire le paquet, mais essayons d'​aller plus loin.
  
-Première chose : installer une page man. On a vu tout à l'​heure que de nombreuses variables sont définies dans debhelper.mk. L'​utilisateur de CDBS peut utiliser ces variables, les modifier ou les compléter pour adapter son paquet. Dans le cas d'un page man, c'est la variable DEB_INSTALL_MANPAGES_<​paquet>​ qui entre en jeu. Le paquet dans notre cas est "​textcat",​ et la page man debian/​createfp.8 (déjà écrite, et disponible dans le dossier debian/ que vous avez téléchargé).+Première chose : installer une page man. On a vu tout à l'​heure que de nombreuses variables sont définies dans debhelper.mk. L'​utilisateur de CDBS peut utiliser ces variables, les modifier ou les compléter pour adapter son paquet. Dans le cas d'une page man, c'est la variable DEB_INSTALL_MANPAGES_<​paquet>​ qui entre en jeu. Le paquet dans notre cas est "​textcat",​ et la page man debian/​createfp.8 (déjà écrite, et disponible dans le dossier debian/ que vous avez téléchargé).
  
 Pour assigner une valeur à la variable, on utilise le symbole ":​="​. Par exemple : //​DEB_INSTALL_MANPAGES_textcat := debian/​createfp.8 // Pour assigner une valeur à la variable, on utilise le symbole ":​="​. Par exemple : //​DEB_INSTALL_MANPAGES_textcat := debian/​createfp.8 //
Ligne 84: Ligne 96:
 CDBS saura qu'une page man existe, et dans quel paquet l'​installer lors de la construction du paquet binaire (en utilisant en fait dh_installman). CDBS saura qu'une page man existe, et dans quel paquet l'​installer lors de la construction du paquet binaire (en utilisant en fait dh_installman).
  
-Il n'y a pas d'​intérêt à détailler toutes les variables utilisables avec CDBS (il y en a des tonnes). Regarder ce qui se passe dans les fichiers .mk est certainement une meilleure idée. Vous pouvez pour cela utiliser grep pour rechercher quelque chose : +Il n'y a pas d'​intérêt à détailler toutes les variables utilisables avec CDBS (il y en a des tonnes). Regarder ce qui se passe dans les fichiers .mk est certainement une meilleure idée. Vous pouvez pour cela utiliser grep pour rechercher quelque chose :
 <code bash> <code bash>
 $ grep -Ri manpage /​usr/​share/​cdbs/​1 $ grep -Ri manpage /​usr/​share/​cdbs/​1
 </​code>​ </​code>​
-Ce qui vous donnera en retour :  +Ce qui vous donnera en retour :
 <code bash> <code bash>
 /​usr/​share/​cdbs/​1/​rules/​debhelper.mk: ​  ​dh_installman -p$(cdbs_curpkg) $(DEB_INSTALL_MANPAGES_$(cdbs_curpkg)) /​usr/​share/​cdbs/​1/​rules/​debhelper.mk: ​  ​dh_installman -p$(cdbs_curpkg) $(DEB_INSTALL_MANPAGES_$(cdbs_curpkg))
Ligne 94: Ligne 106:
 **Note sur grep** : -R permet de chercher dans tous les fichiers, -i de ne pas tenir compte de la casse. Cela donne une indication sur les variables à utiliser. Les noms des variables sont généralement suffisamment explicites pour permettre une recherche avec grep. **Note sur grep** : -R permet de chercher dans tous les fichiers, -i de ne pas tenir compte de la casse. Cela donne une indication sur les variables à utiliser. Les noms des variables sont généralement suffisamment explicites pour permettre une recherche avec grep.
  
-La documentation sur CDBS n'est pas très riche. La meilleure pour le moment est : http://​perso.duckcorp.org/​duck/​cdbs-doc/​cdbs-doc.xhtml+La documentation sur CDBS n'est pas très riche. La meilleure pour le moment est : [[http://​perso.duckcorp.org/​duck/​cdbs-doc/​cdbs-doc.xhtml]] traduite en français [[http://​perso.duckcorp.org/​duck/​cdbs-doc/​fr/​cdbs-doc.xhtml|ici]].
  
 === Customisation du paquet === === Customisation du paquet ===
Ligne 115: Ligne 127:
 debuild -us -uc debuild -us -uc
 </​code>​ </​code>​
-Ce script utilise les fichiers téléchargés tout à l'​heure pour créer un vrai paquet (simplement en copiant le dossier textcat/​debian dans le dossier source décompressé).  +Ce script utilise les fichiers téléchargés tout à l'​heure pour créer un vrai paquet (simplement en copiant le dossier textcat/​debian dans le dossier source décompressé). 
-Contrairement à ce que nous avons fait lors de la première session, on ne passe pas par l'​étape paquet source puis pbuilder, puisque vous savez tous faire ça, que c'est long, et que ça n'a aucun intérêt aujourd'​hui ;)+Contrairement à ce que nous avons fait lors de la première session, on ne passe pas par l'​étape paquet source puis [[:pbuilder]], puisque vous savez tous faire ça, que c'est long, et que ça n'a aucun intérêt aujourd'​hui ;)
  
 Après le '​moulinage'​ (compilation du paquet) effectuer un : Après le '​moulinage'​ (compilation du paquet) effectuer un :
Ligne 163: Ligne 175:
 Le debian/​rules est quasiment identique à celui de notre premier paquet, seul le paquet cible pour l'​installation de la page man et pour le renommage de bin en sbin est changé. Pas besoin d'​appeler dh_install explicitement,​ debhelper.mk s'en charge. Le debian/​rules est quasiment identique à celui de notre premier paquet, seul le paquet cible pour l'​installation de la page man et pour le renommage de bin en sbin est changé. Pas besoin d'​appeler dh_install explicitement,​ debhelper.mk s'en charge.
  
-=== Compilation du paquet === +=== Compilation du paquet ===
 Nous allons maintenant compiler les paquets : Nous allons maintenant compiler les paquets :
 <code bash> <code bash>
  • projets/paquets/creer_un_paquet_avec_cdbs.1162720501.txt.gz
  • Dernière modification: Le 05/11/2006, 12:02
  • (modification externe)