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édentesRévision précédente
Prochaine révision
Révision précédente
tutoriel:creer_et_administrer_un_ppa_sur_launchpad [Le 17/03/2016, 22:42] – [Ré-intégrer un paquet dont la construction a échoué] 90.36.140.113tutoriel:creer_et_administrer_un_ppa_sur_launchpad [Le 14/08/2018, 23:24] (Version actuelle) – [Création du paquet source] L'Africain
Ligne 1: Ligne 1:
 +{{tag>ppa wiki:tutoriel gestionnaire_de_paquets}}
 +
 +----
 +
 +
 +====== Créer et administrer un PPA sur Launchpad ======
 +
 +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.
 +
 +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,pbuilder,dh-make,debootstrap|debhelper cdbs lintian build-essential fakeroot devscripts pbuilder dh-make debootstrap]]**.
 +
 +
 +===== Création d'un compte Launchpad =====
 +
 +La première étape consiste avant tout à vous créer un compte sur [[https://launchpad.net/|Launchpad]].
 +
 +==== Signature du code de conduite ====
 +
 +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|ImportingYourPGPKey]] (anglais)
 +
 +Une fois que vous avez renseigné l'empreinte de votre clé, retournez sur les paramètres de votre compte Launchpad.
 +Suivez les étapes pour signer le code de bonne conduite.
 +
 +Là, le plus pénible est fini. ;-)
 +
 +===== Création du PPA =====
 +
 +Une fois le code de conduite signé, vous pouvez créer un PPA depuis votre compte.
 +
 +Il y a plusieurs types de PPA que vous pouvez créer :
 +  * **Personnel** : Vous pouvez créer un PPA dont vous serez le seul gestionnaire.
 +  * **É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é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.
 +
 +===== 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
 +</code>
 +
 +===== 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 =====
 +
 +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é =====
 +
 +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 =====
 +
 +Voila, vous savez maintenant administrer un PPA et créer des paquets sur celui-ci !
 +
 +===== Problèmes connus=====
 +
 +=== 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 =====
 +
 +  * **(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]].//