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
tutoriel:creer_et_administrer_un_ppa_sur_launchpad [Le 21/07/2010, 19:56]
SaiyanRiku Création du PPA
tutoriel:creer_et_administrer_un_ppa_sur_launchpad [Le 11/09/2022, 12:19] (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 2: Ligne 2:
  
 ---- ----
 +
  
 ====== Créer et administrer un PPA sur Launchpad ====== ====== Créer et administrer un PPA sur Launchpad ======
  
-<note tip>Ce tutoriel indique comment créer et administrer un PPA.</​note>​+Ce tutoriel indique comment créer et administrer un PPA sur Launchpad dans le but de créer et fournir des paquets de votre logiciel à la communauté. Dans ce tutoriel, nous utiliserons le programme [[:​freetuxtv|FreetuxTV]] comme exemple.
  
-Ce tutoriel indique comment créer et administrer un ppa sur Launchpad dans le but de créer et fournir ​des paquets de votre logiciel ​à la communautéDans ce tutorial, nous utiliserons le programme ​[[:freetuxtv|FreetuxTV]] comme exemple.+Il est recommandé d'​avoir lu la page de présentation sur les [[:ppa|PPA (Personal Package Archives)]]. 
 + 
 +===== Pré-requis ===== 
 + 
 +  * Disposer ​des [[:​sudo|droits d'​administration]]. 
 +  * Disposer d'une connexion ​à Internet configurée et activée. 
 +  * [[:tutoriel:​comment_installer_un_paquet#​paquet_present_dans_les_depots|Avoir installé les paquets]] suivants : **[[apt>​debhelper,​cdbs,​lintian,​build-essential,​fakeroot,​devscripts,​dh-make,​dput|debhelper cdbs lintian build-essential fakeroot devscripts dh-make dput]]**.
  
-Il est recommandé d'​avoir lu la page de présentation sur les [[:​ppa|Personal Package Archives]]. 
  
 ===== Création d'un compte Launchpad ===== ===== Création d'un compte Launchpad =====
  
-La première étape ​constiste ​avant tout à vous créer un compte sur [[https://​launchpad.net/​|Launchpad]].+La première étape ​consiste ​avant tout à vous créer un compte sur [[https://​launchpad.net/​|Launchpad]].
  
 ==== Signature du code de conduite ==== ==== Signature du code de conduite ====
  
-Lorsque votre compte est crée, vous devez signé ​le code de conduite de Lanchpad. Ceci consite ​en la récupération d'un certificat que vous devez signé ​avec une clé privé. Puis vous devez uploader, ​le code de conduite signé sur le serveur de Launchpad.+Lorsque votre compte est créé, vous devez [[:​signer_le_code_de_conduite|signer ​le code de conduite de Lanchpad]]. Ceci consiste ​en la récupération d'un certificat que vous devez signer ​avec une clé privée. Puis vous devez téléverser ​le code de conduite signé sur le serveur de Launchpad.
  
-La procédure pour créer une clé PGP se trouve ici : https://​help.launchpad.net/​YourAccount/​ImportingYourPGPKey+La procédure pour créer une clé PGP se trouve ici : [[https://​help.launchpad.net/​YourAccount/​ImportingYourPGPKey|ImportingYourPGPKey]] (anglais)
  
 Une fois que vous avez renseigné l'​empreinte de votre clé, retournez sur les paramètres de votre compte Launchpad. Une fois que vous avez renseigné l'​empreinte de votre clé, retournez sur les paramètres de votre compte Launchpad.
-Suivez les étapes pour signerle code de bonne conduite.+Suivez les étapes pour signer le code de bonne conduite.
  
-Là, le plus chiant ​est fini.+Là, le plus pénible ​est fini. ;-)
  
 ===== Création du PPA ===== ===== Création du PPA =====
Ligne 30: Ligne 36:
 Une fois le code de conduite signé, vous pouvez créer un PPA depuis votre compte. Une fois le code de conduite signé, vous pouvez créer un PPA depuis votre compte.
  
-Il y a plusieurs ​type de PPAque vous pouvez créer : +Il y a plusieurs ​types de PPA que vous pouvez créer : 
-  * Personel ​: Vous pouvez créer un PPA dont vous serez le seul gestionnaire. +  * **Personnel** ​: Vous pouvez créer un PPA dont vous serez le seul gestionnaire. 
-  * Equipe ​(team) : Vous pouvez créer une équipe et créer un PPA pour cette équipe. De cette façon, vous pourrez être plusieurs à l'​administrer. +  * **Équipe ​(team)** : Vous pouvez créer une équipe et créer un PPA pour cette équipe. De cette façon, vous pourrez être plusieurs à l'​administrer. 
-  * Projet : Vous pouvez aussi créer un projet, et utiliser aussi le dépot ​Bazaar et le bugs tracker pour gérer votre projet au complet, comme avec Google Code ou SourceForge. Vous pourrez ainsi gérer un PPA avec votre équipe.+  ​* **Projet** : Vous pouvez aussi créer un projet, et utiliser aussi le dépôt [[:bzr|Bazaar]] et le système de suivi de bogues (//​bug ​tracker//) pour gérer votre projet au complet, comme avec Google Code ou SourceForge. Vous pourrez ainsi gérer un PPA avec votre équipe.
  
-===== Préparation ​du premier ​paquet =====+===== Création ​du paquet ​source ​===== 
 + 
 +Vous aller devoir préparer les sources du paquet à envoyer à Launchpad. 
 + 
 +La procédure est celle de la création d'un paquet classique : [[tutoriel:​creer_un_paquet#​creation_du_paquet_source|Création d'un paquet source]]. 
 + 
 +En résumé : 
 + 
 +Commencez par récupérer les sources de FreetuxTV, et les extraire. Dans un [[:​terminal]] :  
 + 
 +<​code>​ 
 +wget http://​freetuxtv.googlecode.com/​files/​freetuxtv-0.5.0.tar.gz 
 +</​code>​ 
 + 
 +Renommez l'​archive **tar.gz** en **orig.tar.gz** comme ceci (très important) (avec le « _ » à la place du « - » d'​origine) : 
 + 
 +<​code>​ 
 +mv freetuxtv-0.5.0.tar.gz freetuxtv_0.5.0.orig.tar.gz 
 +</​code>​ 
 + 
 +Extraire l'​archive et aller dans le répertoire créé : 
 + 
 +<​code>​ 
 +tar xvzf freetuxtv_0.5.0.orig.tar.gz 
 +cd freetuxtv-0.5.0 
 +</​code>​ 
 + 
 +Créer le squelette du paquet source : 
 + 
 +<​code>​ 
 +dh_make -e votreaddresse@email.tld -s -y 
 +</​code>​ 
 + 
 +[[:​tutoriel:​comment_modifier_un_fichier|Éditer les fichiers]] suivants dans le dossier **debian** qui a été créé : 
 + 
 +  * **changelog** : Mettez à jour les informations du logiciel, la version du paquet et la distribution,​ le détail de la modification (par rapport au paquet précédent) et les informations de l'​empaqueteur (vous) :<​file>​ 
 +freetuxtv (0.5.0-0ubuntu1) lucid; urgency=low 
 + 
 +  * Initial release 
 + 
 + -- Prénom NOM <​votreaddresse@email.tld> ​ Tue, 20 Jul 2010 23:20:08 +0200 
 +</​file>​ 
 + 
 + 
 +<note important>​Le n° de version à mettre dans le changelog est composé suivant cette norme : 
 + 
 +<​upstream_version>​-<​debian_version>​ubuntu<​ubuntu_version>​ 
 +  * upstream_version : la version du logiciel (ici 0.5.0) 
 +  * debian_version : la version du paquet chez debian (le paquet n'​existe pas chez debian donc 0) 
 +  * ubuntu_version : la version du paquet chez ubuntu (on fait la première version de notre paquet donc 1) 
 +</​note>​ 
 + 
 + 
 +  * **copyright** : Mettez à jour les noms d'​auteurs et le type de licence :<​file>​ 
 +This package was debianized by Prénom NOM <​votreaddresse@email.tld>​ on 
 +Tue, 20 Jul 2010 23:20:08 +0200. 
 + 
 +It was downloaded from http://​code.google.com/​p/​freetuxtv/​ 
 + 
 +Upstream Author(s):​ 
 + 
 +    Prénom NOM <​votreaddresse@email.tld>​ 
 + 
 +Copyright:​ 
 + 
 +    Copyright (C) 2010 FreetuxTV 
 +       ​AUTEUR <​adresseauteurs@email.tld>​ 
 + 
 +License: 
 + 
 +    GNU General Public License v3 
 + 
 +The Debian packaging is (C) 2010, Prénom NOM <​votreaddresse@email.tld>​ and 
 +is licensed under the GPL, see `/​usr/​share/​common-licenses/​GPL'​. 
 + 
 +# Please also look if there are files or directories which have a 
 +# different copyright/​license attached and list them here. 
 +</​file>​ 
 + 
 +  * **control** : Mettez à jour les dépendances requises pour compiler votre paquet et les informations sur le programme. Pour FreetuxTV on a :<​file>​ 
 +Source: freetuxtv 
 +Section: video 
 +Priority: extra 
 +Maintainer: Prénom NOM <​votreaddresse@email.tld>​ 
 +Build-Depends:​ vlc, libatk1.0-0 (>= 1.20.0), libc6 (>= 2.3.6-6~), libcairo2 (>= 1.2.4), libcurl3 (>= 7.16.2-1), libdbus-1-3 (>= 1.0.2), libdbus-glib-1-2 (>= 0.74), libfontconfig1 (>= 2.4.0), libfreetype6 (>= 2.2.1), libglib2.0-0 (>= 2.16.0), libgtk2.0-0 (>= 2.12.0), libnotify1 (>= 0.4.4), libnotify1-gtk2.10,​ libsqlite3-dev,​ libpango1.0-0 (>= 1.14.0), libsqlite3-0 (>= 3.4.2), libvlc0-dev,​ libnotify-dev,​ libgtk2.0-dev,​ libdbus-glib-1-dev,​ libglib2.0-dev,​ libcurl4-openssl-dev,​ libvlc0 (>= 0.8.6), libvlc0 (< 0.9.0), libxml2 (>= 2.6.27), debhelper (>= 5), autotools-dev,​ intltool, libtool 
 +Standards-Version:​ 3.7.2 
 +Homepage: http://​code.google.com/​p/​freetuxtv/​ 
 + 
 +Package: freetuxtv 
 +Architecture:​ any 
 +Depends: ${shlibs:​Depends},​ ${misc:​Depends} 
 +Description:​ Internet television channels player 
 + Watch TV on your PC from free WebTV channels or with your ISP television service. 
 +</​file>​ 
 + 
 +La listes des dépendances est souvent indiquée dans le README des sources, elles doivent également être installées sur votre système pour ne pas avoir d'​erreur durant l'​utilisation de ''​debuild''​.  
 +Une fois que tout est OK, on construit le paquet source afin de le télécharger sur Launchpad : 
 + 
 +<​code>​ 
 +debuild -S -sa -d 
 +</​code>​
  
 ===== Envoi des sources pour la construction d'un paquet ==== ===== Envoi des sources pour la construction d'un paquet ====
 +
 +Une fois le paquet source créé, il ne nous reste plus qu'à le télécharger sur le serveur de Launchpad. A la fin de l'​envoi vous recevrez un courriel (à l'​adresse indiquée dans le changelog) pour vous indiquer si la création du paquet est acceptée ou non.
 +
 +Il existe plusieurs méthodes :
 +
 +==== Envoi par FTP ====
 +
 +Créez un fichier **~/​.dput.cf**,​ avec comme contenu :
 +
 +<​file>​
 +[ppa_freetuxtv]
 +fqdn = ppa.launchpad.net
 +method = ftp
 +incoming = ~freetuxtv/​freetuxtv/​ubuntu/​
 +login = anonymous
 +allow_unsigned_uploads = 0
 +</​file>​
 +
 +**incoming** représente la racine du chemin d'​accès à votre PPA sur le serveur de launchpad (pour FreetuxTV, le chemin est http://​ppa.launchpad.net/​freetuxtv/​freetuxtv/​ubuntu/​)
 +
 +Puis pour envoyer le paquet, il faut utiliser la commande **dput**, sur le fichier changelog.
 +
 +<​code>​dput ppa_freetuxtv freetuxtv_0.5.0-0ubuntu1_source.changes</​code>​
 +
 +Le deuxième paramètre correspond au nom de la configuration dans le **~/​.dput.cf**.
 +
 +==== Envoi direct avec dput ====
 +
 +Il suffit d’exécuter la commande suivante (ne fonctionne que sur les distributions récentes) :
 +
 +<​code>​
 +dput ppa:​freetuxtv/​freetuxtv freetuxtv_0.5.0-0ubuntu1_source.changes
 +</​code>​
  
 ===== Mise à jour d'un paquet ===== ===== Mise à jour d'un paquet =====
 +
 +Après avoir réussi l'​intégration du premier paquet, vous avez aussi la possibilité de facilement mettre à jour la version d'un logiciel.
 +
 +Admettons que la version 0.5.1 de FreetuxTV sorte.
 +
 +Tout d’abord, [[:​ppa|ajoutez votre dépôt PPA]] à vos sources de logiciels.
 +
 +<​code>​
 +deb http://​ppa.launchpad.net/​freetuxtv/​freetuxtv/​ubuntu lucid main
 +deb-src http://​ppa.launchpad.net/​freetuxtv/​freetuxtv/​ubuntu lucid main
 +</​code>​
 +
 +Ensuite, récupérer les sources du paquet de la version courante dans les dépôts (0.5.1) :
 +
 +<​code>​
 +apt-get source freetuxtv
 +</​code>​
 +
 +Ceci permet de récupérer la dernière version du changelog et du fichier control.
 +
 +Puis téléchargez les sources de la nouvelle version de FreetuxTV, et préparer-la comme précédemment :
 +
 +<​code>​
 +wget http://​freetuxtv.googlecode.com/​files/​freetuxtv-0.5.1.tar.gz
 +mv freetuxtv-0.5.1.tar.gz freetuxtv_0.5.1.orig.tar.gz
 +tar xvzf freetuxtv_0.5.1.orig.tar.gz
 +cd freetuxtv-0.5.1
 +</​code>​
 +
 +La différence est qu'au lieu de régénérer le squelette, on va se baser sur celui de la version précédente :
 +
 +<​code>​
 +cp -r ../​freetuxtv-0.5.0/​debian .
 +</​code>​
 +
 +Et on met à jour le numéro de version :
 +
 +<​code>​
 +dch -v 0.5.1-0ubuntu1
 +</​code>​
 +
 +Le changelog ressemble alors à ça :
 +
 +<​file>​
 +freetuxtv (0.5.1-0ubuntu1) lucid; urgency=low
 +
 +  * Updating to upstream version 0.5.1
 +
 + -- Prénom NOM <​votreaddresse@email.tld> ​ Thu, 22 Jul 2010 22:30:20 +0200
 +
 +freetuxtv (0.5.1-0ubuntu1) lucid; urgency=low
 +
 +  * Initial release
 +
 + -- Prenom NOM <​votreaddresse@email.tld> ​ Tue, 20 Jul 2010 23:20:08 +0200
 +</​file>​
 +
 +Si les dépendances ont changé, n'​oubliez pas de mettre à jour le fichier **control**.
 +
 +Enfin on finit la construction du paquet :
 +
 +<​code>​
 +debuild -S -sa
 +</​code>​
 +
 +Il ne reste plus qu'à le télécharger sur le serveur de Launchpad.
  
 ===== Ré-intégrer un paquet dont la construction a échoué ===== ===== Ré-intégrer un paquet dont la construction a échoué =====
  
 +Imaginons maintenant que la construction de votre paquet ait échoué, par exemple à cause d'une dépendance non satisfaite.
 +
 +Il suffit de modifier les sources du paquet et de mettre à jour la version.
 +
 +Lancez la commande suivante pour modifier le changelog :
 +
 +<​code>​
 +dch -i
 +</​code>​
 +
 +La commande met à jour le numéro de version ce qui donne quelque chose comme ça :
 +
 +<​file>​
 +freetuxtv (0.5.1-0ubuntu2) lucid; urgency=low
 +
 +  * Updating to upstream version 0.5.1
 +
 + -- Prénom NOM <​votreaddresse@email.tld> ​ Thu, 22 Jul 2010 22:30:20 +0200
 +
 +freetuxtv (0.5.1-0ubuntu1) lucid; urgency=low
 +
 +  * Updating to upstream version 0.5.1
 +
 + -- Prénom NOM <​votreaddresse@email.tld> ​ Thu, 22 Jul 2010 22:30:20 +0200
 +
 +freetuxtv (0.5.0-0ubuntu1) lucid; urgency=low
 +
 +  * Initial release
 +
 + -- Prénom NOM <​votreaddresse@email.tld> ​ Tue, 20 Jul 2010 23:20:08 +0200
 +</​file>​
 +
 +Notez qu'ici c'est le ubuntu_version qui a été incrémenté,​ pour indiquer qu'on a réalisé une nouvelle version du paquet pour Ubuntu.
 +
 +Ensuite, corrigez alors vos fichiers posant problème comme le fichier **control**.
 +
 +Puis une fois que tout est OK, reconstruisez le paquet source pour le télécharger :
  
 +<​code>​
 +debuild -S -sa
 +</​code>​
 +<note tip>A noter que si votre fichier source //​freetuxtv_0.5.0.orig.tar.gz//​ est volumineux. Enlevez le **-sa** pour ne pas renvoyer le fichier que le serveur a déjà lors de l'up avec //dput//. FIXME //Pas clair...//</​note>​
 ===== Conclusion ===== ===== Conclusion =====
  
-Voila, vous savez maintenant administrer un PPA !+Voila, vous savez maintenant administrer un PPA et créer des paquets sur celui-ci ​!
  
 ===== Problèmes connus===== ===== Problèmes connus=====
  
-Aucun+=== Erreur lors de la signature === 
 +Ce qui s'​affiche dans votre terminal après un **debuild -S -sa** 
 +  Now signing changes and any dsc files..
 +   signfile paquet_1.0.0-0ubuntu1ppa~precise1.dsc Prénom N. <​em@il>​ 
 +  gpg: « Prénom N. <​em@il>​ » a été ignoré: la clé secrète n'est pas disponible 
 +  gpg: /​tmp/​debsign.IDpnTP7t/​paquet_1.0.0-0ubuntu1ppa~precise1.dsc:​ clearsign failed: la clé secrète n'est pas disponible 
 +  debsign: gpg error occurred! ​ Aborting.... 
 +  debuild: fatal error at line 1269: 
 +  running debsign failed 
 +Solution:​\\ 
 +  debuild -S -sa -k<​12345678>​ 
 +En remplaçant **<​12345678>​** par votre propre clé. La seconde partie de //​ABCED/​12345678//​
 ===== Voir aussi ===== ===== Voir aussi =====
  
   * **(en)** [[https://​help.launchpad.net/​YourAccount/​ImportingYourPGPKey|Importer sa clé]]   * **(en)** [[https://​help.launchpad.net/​YourAccount/​ImportingYourPGPKey|Importer sa clé]]
 +  * **(fr)** [[https://​openclassrooms.com/​courses/​creer-un-depot-launchpad|Tuto complet]]
  
 ---- ----
 //​Contributeurs principaux : [[:​utilisateurs:​SaiyanRiku]].//​ //​Contributeurs principaux : [[:​utilisateurs:​SaiyanRiku]].//​
  
  • tutoriel/creer_et_administrer_un_ppa_sur_launchpad.1279735019.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)