Créer un dépôt Launchpad

Formation

En Ligne

Prix sur demande

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Description

  • Typologie

    Formation

  • Méthodologie

    En ligne

Grâce à cette formation vous pourrez acquérir les connaissances nécessaires qui vous permettrons d’ajouter des compétences à votre profil et obtenir de solides aptitude qui vous offriront de nombreuses opportunités professionnelles.

Questions / Réponses

Ajoutez votre question

Nos conseillers et autres utilisateurs pourront vous répondre

À qui souhaitez-vous addresser votre question?

Saisissez vos coordonnées pour recevoir une réponse

Nous ne publierons que votre nom et votre question

Les Avis

Le programme

Introduction du cours

Ça y est ! Votre œuvre est désormais terminée, vous avez réussi à vous débarrasser des dernières anomalies et voilà que se pose une question cruciale : que faire pour diffuser votre programme le plus largement possible ?

Eh oui, ce n'est pas tout de créer un programme qui va révolutionner la vie des gens, encore faut-il qu'ils y aient accès.
Ce tutoriel tâchera de résoudre ce problème en vous permettant de créer votre propre dépôt afin de laisser vivre votre programme. ^^

Nous utiliserons Launchpad. Des notions de shell seront nécessaires (cf. le tuto de M@teo21) mais également la notion de ce qu'est un paquet .deb (cf. le tuto de outadoc).

Je vous conseille également d'installer avec apt-get les paquets suivants :

debhelper cdbs lintian build-essential fakeroot devscripts pbuilder dh-make debootstrap

Il s'agit un peu de votre trousse à outils pour mener à bien le processus que présente ce tutoriel !

Commençons tout de suite, nous avons du pain sur la planche. :p

Création du compte Launchpad

C'est bon ! Votre choix est fait, vous allez bénéficier de ce que peut offrir votre propre dépôt Launchpad.
Launchpad vous permettra de mettre à disposition vos sources, compilera pour la release 32 ou 64 bits d'Ubuntu (nous travaillerons d'ailleurs sur Ubuntu Lucid Lynx 10.04) et les rendra disponibles 24 heures sur 24 avec la possibilité de faire une mise à jour depuis apt-get… votre propre dépôt en somme. ^^

Pour ce faire, il faudra d'abord obtenir une clé de cryptage qui vous est propre en tant que développeur. Elle servira, entre autres, à signer vos paquets et à valider votre compte Launchpad.

Nous allons générer une clé sous Ubuntu.

Rendons-nous dans Applications › Accessoires › Mots de passe et clés de chiffrement. Une fois la fenêtre ouverte, vous pourrez cliquer sur l'onglet Mes clés personnelles. Puis vous cliquerez en haut dans Fichier › Nouveau et sélectionnerez Clé PGP.

Saisissez donc vos informations personnelles (comme ci-dessus), et lancez la création de la clé. Elle se trouvera ensuite dans la liste de vos clés personnelles.

Merveilleux ! Votre clé a été générée mais pour l'instant, seul votre PC la connaît. On va donc synchroniser la liste de clés avec le serveur pour lui signaler qu'on a créé une nouvelle clé et qu'on aimerait bien qu'il la reconnaisse. Allez dans la barre du haut et cliquez sur Distant › Synchroniser et publier des clés.

Et voilà, en principe, après une petite attente, tout devrait être fonctionnel… du moins pour la clé !

Zut, on n'y est pas encore… Mais à présent, on peut s'authentifier auprès de Launchpad et s'attaquer à la création du compte : il faut maintenant se rendre sur le site de Launchpad et créer son compte en cliquant en haut à droite, sur Register.

Il existe quelques problèmes avec Firefox au niveau du referer header. Corrigez cela avec une extension Firefox ou utilisez un autre navigateur !

Cliquez ensuite sur Create new account et renseignez les informations demandées. La suite de la création du compte ne devrait pas vous poser de gros problèmes. Passons ensuite à l'importation de la clé PGP.

En retournant dans Mots de passe et clés de chiffrement, nous pourrons accéder à l'empreinte de la clé. Pour ce faire, clic droit Propriétés › Détails et il ne vous reste plus qu'à copier la liste de caractère sous empreinte.

Rendez-vous sur votre page Launchpad, après vous y être connecté. Vous devriez voir un lien, sous openPGP keys, vous invitant à rajouter votre clé. Ajoutez la fingerprint qui est l'empreinte de votre clé. Launchpad va alors questionner le serveur d'Ubuntu pour savoir si votre clé est valide. Si vous rencontrez un problème, vous avez peut-être oublié de synchroniser votre clé.

Maintenant, un petit saut vers la messagerie s'impose ! Un mail devrait être arrivé de leur part, charmante intention, mais… mais c'est incompréhensible ! o_O En fait, le contenu que vous voyez là est crypté et seule votre clé pourra le décrypter.

Copiez-collez le mail dans un fichier texte. Lancez votre terminal et placez-vous dans le dossier où se trouve votre fichier. Ensuite, écrivez cette commande :

gpg --decrypt monMail.txt

Et voilà, les explications sont à présent tout à fait compréhensibles. Vous pouvez maintenant suivre les instructions pour valider votre clé auprès de Launchpad. ;)

Des logiciels de messagerie comme Thunderbird proposent directement le décryptage.

De retour sur votre page Launchpad, vous allez signer le code de conduite d'Ubuntu en suivant simplement les étapes. À noter que, pour signer avec votre clé, vous devrez utiliser l'option --sign puis leur renvoyer le code de conduite et la signature.

Pfiou ! Voilà qui est enfin fait. Nous venons de créer notre compte Launchpad et tout est désormais prêt pour y mettre nos programmes sauf peut-être… les programmes. :(

Amorçons déjà la partie suivante ; vous pouvez créer un nouveau PPA en cliquant sur Create a new PPA dans Personal Package Archives.
La Personal Package Archive sera un petit coin où vous pourrez mettre tout ce qui est relatif à un projet : des binaires, un fichier source, des informations et le tout avec une URL. Vous pouvez en créer pour chacun de vos projets mais, partant du fait que vous êtes sur Launchpad pour la première fois, on va se contenter d'un seul et unique projet. :-°

Debian dans Ubuntu

Partie amusante du tutoriel, nous allons créer une architecture Debian dans notre dossier afin de guider Launchpad quand il fabriquera les .deb. Le but sera donc de créer un paquet source.

Architecture « Debian » ? Mais nous ne sommes pas sous Ubuntu ? o_O

Évidemment, mais Ubuntu est une dérivée de Debian, tout comme Debian est une dérivée de Linux. L'architecture étant semblable, ce tutoriel peut servir à des personnes réalisant des versions pour Debian ou Knoppix. Comme je l'ai dit plus haut, lisez le tutoriel d'outadoc pour fabriquer des .deb, ça vous permettra de mieux comprendre ce que nous allons faire ici, qui est un peu plus compliqué.

En effet, quand vous créez une archive Debian, il suffit de préciser où vous voulez chaque fichier, quelques fichiers intéressants (changelog, readme, control, etc.) et l'installeur disposera tout correctement sur l'ordinateur de l'utilisateur.
Oui mais, pour nous, c'est Launchpad qui va créer le ce fichier. On va donc devoir lui montrer comment il doit créer ces fichiers. Le gros point positif, c'est que Launchpad est suffisamment bien équipé pour compiler dans les environnements que vous souhaitez. Vous pourrez ainsi, par exemple, obtenir une version 32 bits et une version 64 bits pour Ubuntu Lucid Lynx.

C'est d'ailleurs — curieusement — ce que nous allons faire… :-°

Voici quelques faits que je vais présupposer pour faciliter la compréhension : nous tournons sur Ubuntu Lucid et nous avons réalisé un programme en C++ sous Qt, dont nous souhaitons obtenir un paquet pour une architecture en 32 bits et une en 64 bits. Nous souhaitons aussi rendre les sources disponibles sur Launchpad. Pourquoi Qt ? Car M@teo21 a rendu cette bibliothèque très utilisée par les programmeurs en herbe qui traînent ici grâce à son très bon tutoriel ! ^^

Créez ou choisissez un dossier où travailler, car c'est parti ! :p Dans celui-ci, vous allez créer trois dossiers : debian src datas. Attention à la casse !

  • datas sera le dossier dans lequel nous retracerons l'architecture d'Ubuntu en ne plaçant que les dossiers nécessaires ;

  • debian sera le dossier où nous placerons les règles de fabrication du paquet .deb ainsi que les sources, vu que nous les voulons disponibles sur Launchpad ;

  • enfin, src sera le dossier dans lequel nous mettrons les précieuses sources du programme pour Launchpad.

Ouvrons d'abord src : vous devez créer un dossier par exécutable (surtout parce que c'est plus propre et que ça vous facilitera l'écriture du Makefile ^^ ). J'imagine que vous n'en êtes pas à des programmes qui nécessitent une dizaine de binaires donc vous n'en créerez qu'un. Le mien s'appelle monProgramme.

Ce dossier contiendra tout ce qui est nécessaire à la compilation. Vos sources, en somme.

Rendons-nous à présent dans le dossier debian. Dedans, vous devez créer un dossier source.

Une fois cette petite broutille faite, nous pouvons faire un saut dans le dossier datas. Nous allons y reproduire exactement ce qui nous intéresse pour le fonctionnement. Ce que je présente ici est évidemment minimal. Libre à vous d'en faire davantage si vous vous sentez créatif ou que votre programme l'exige.

On commence par créer un dossier usr dans lequel on placera les dossiers binet share.
Le dossier bin est important. Il contiendra le fichier qui sera appelé par le programme quand nous taperons son nom. Comme dans le terminal lorsque vous tapez

vlc

Et une fenêtre VLC s'ouvre.

Rien de bien magique à tout cela, le secret se cache dans le dossier bin.

Dans le dossier share, nous ajouterons notre programme à la barre dans la liste des Applications.
Nous allons créer un dossier applications étant donné que nous souhaitons l'y faire apparaître. Dans ce dossier, je vais créer un fichier, à l'aide de vim, qui se nommera monProjet.desktop et qui permettra son lancement.
Dans ce fichier, je vais rentrer ceci :

[Desktop Entry] Version=0.1.0 Encoding=UTF-8 Name=monProjet GenericName=monProjet Comment=monProjet est un jeu video Exec=/usr/share/monProjet/monProjet Icon=/usr/share/pixmaps/monProjetIcon.png Terminal=false Type=Application Categories=Application;Game; Name[fr_FR]=monProjet

Quelques éclaircissements s'imposent :

  • Version est en fait la version de mon projet, soit 0.1.0 ;

  • Encoding est simplement l'encodage du fichier. Évidemment, mon jeu est en UTF-8 afin de bien gérer les accents ; ^^

  • Exec est la commande à exécuter pour lancer le programme depuis le dossier : il s'agit de monProjet dans /usr/share. C'est en fait le nom du fichier compilé que nous mettrons dans le dossier bin ;

  • Icon est l'adresse de la petite icône qui symbolisera le jeu. Je ne vous en ai pas encore parlé mais on s'en charge juste après. Vous pouvez tout de même remplir ce champ à l'avance ; ;)

  • Categories permettra de situer le jeu ; je le place dans les applications › les jeux. Observez les autres desktop pour vous forger une bonne idée des autres noms de catégories. ;)

Je pense avoir précisé les points les plus difficiles à comprendre, à vous de créer le fichier selon vos besoins.
Nous sommes donc toujours dans share et nous allons créer le dossier pixmaps dans lequel nous placerons notre monProjetIcon.png. Le format .png n'est pas obligatoire pour autant.

Le dernier des dossiers à placer dans share sera le dossier monProjet dans lequel vous pourrez placer les fichiers éventuellement utiles à votre programme (vidéos, plugins, textures, etc.) en n'oubliant pas de faire en sorte que votre programme aille les chercher là où ils se trouvent effectivement.

Bien ! Les dossiers sont créés. Pfiou, c'est un peu fatigant tout ça.

C'est tout à fait normal, on fait ici un premier projet. Une fois tous les fichiers correctement créés, ce sera plus simple de faire une petite mise à jour. Et dire que dans les gros projets, il y a des gens dont c'est la spécialité de faire ça. :o

À présent que les dossiers sont faits, nous allons nous attaquer aux fichiers nécessaires pour le .deb ! ^^

Murmurer à l'oreille des .deb

Partie intéressante, bien que connue de ceux qui savent déjà faire des .deb, nous allons configurer les fichiers pour bien expliquer comment on veut que tout ça soit mis. Ce ne sera pas bien compliqué. ^^

Tout d'abord, où allons-nous mettre ces fichiers ? Dans le dossier debian bien sûr ! Comme je l'ai dit, ce dossier permettra à dpkg d'avoir tout en main pour faire le .deb. Mais vous ne vous souciez pas de dpkg, c'est le problème de Launchpad de savoir comment il fonctionne. Vous devez juste lui donner ce dont il a besoin pour fonctionner.

Dans debian, nous allons créer un fichier changelog :

monProjet (0.1.0) lucid; urgency=low   * Initial Release.  -- Jean Dumoulin <jean@dumoulin.com>  Sun, 15 May 2011 08:22:49 +0200

Ce fichier comporte simplement les dernières informations sur le package :

  • son nom (qui est monProjet) ;

  • sa version (qui est 0.1.0) ;

  • la version compatible qui, dans ce cas, est Lucid car nous travaillons sur la dernière version d'Ubuntu ;

  • l'urgency est une propriété pour que Launchpad estime la priorité de construction du package. On n'est pas à une heure ou deux près (selon le temps et les ressources en place, Launchpad peut prendre une demi-journée pour lancer ça) donc low est très bien ;

  • un petit commentaire sur les changements : on sort la première release ;

  • votre nom et votre adresse mail, ainsi que la date.

Voilà, changelog a toutes les infos. Le plus important, pour permettre au serveur de comparer les infos, est surtout la ligne contenant le nom, la version et la distribution évidemment (même s'il pourrait ne pas créer votre paquet s'il manque des informations).

On crée ensuite un fichier control :

Source: monProjet Section: games Priority: optional Maintainer: Jean Dumoulin <jean@dumoulin.com> Build-Depends: debhelper (>= 7), qt4-qmake,  libqt4-opengl-dev, libqt4-dev Standards-Version: 3.8.3 Homepage: https://launchpad.net/~jeandumoulin/+archive/monProjet Package: monProjet Architecture: any Depends: libqt4-opengl,libqtgui4,libqtcore4  Description: mon jeu fait par moi C'est un jeu merveilleux auquel chacun devrait jouer.

Pour la suite, rien de bien compliqué :

  • la source (ici, on développe monProjet) ;

  • la section qui, dans mon cas, est games ;

  • la priorité qui est l'importance de la mise à jour du paquet ;

  • le maintainer qui contient toujours vos informations ;

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Créer un dépôt Launchpad

Prix sur demande