Ubuntu logo

Packaging Guide

2. Mise en route

Un certain nombre de choses doivent être accomplies pour commencer à développer pour Ubuntu. Cet article est conçu pour configurer votre ordinateur de sorte que vous puissiez commencer à travailler avec des paquets, puis télécharger vos paquets vers la plate-forme d’hébergement d’Ubuntu, Launchpad. Voici ce que nous allons aborder :

  • Installation des logiciels relatifs à l’empaquetage. Cela comprend :

    • Les utilitaires d’empaquetage spécifiques à Ubuntu

    • Logiciel de chiffrement afin que votre travail soit reconnu comme étant bien réalisé par vous

    • Logiciel de chiffrement supplémentaire afin de transférer des fichiers en toute sécurité

  • Création et configuration de votre compte sur Launchpad

  • Configuration de votre environnement de développement pour vous aider à construire des paquets localement, à interagir avec d’autres développeurs, et à proposer vos modifications sur Launchpad.

Note

Il est conseillé de travailler sur l’empaquetage en utilisant la version de développement actuelle d’Ubuntu. Procéder ainsi vous permettra de tester les modifications dans le même environnement où elles seront effectivement appliquées et utilisées.

Don’t want to install the latest Ubuntu development version of Ubuntu? Spin up an LXD container.

2.1. Installer les logiciels d’empaquetage de base

There are a number of tools that will make your life as an Ubuntu developer much easier. You will encounter these tools later in this guide. To install most of the tools you will need run this command:

$ sudo apt install gnupg pbuilder ubuntu-dev-tools apt-file

Cette commande va installer les logiciels suivants :

  • gnupgGNU Privacy Guard contains tools you will need to create a cryptographic key with which you will sign files you want to upload to Launchpad.
  • pbuilder – un outil pour réaliser des constructions reproductibles d’un paquet dans un environnement propre et isolé.

  • ubuntu-dev-tools (et devscripts, sa dépendance directe) – une collection d’outils simplifiant les nombreuses tâches d’empaquetage.

  • apt-file donne un moyen facile de trouver le paquet binaire contenant un fichier donné.

2.1.1. Créez votre clé GPG

GPG stands for GNU Privacy Guard and it implements the OpenPGP standard which allows you to sign and encrypt messages and files. This is useful for a number of purposes. In our case it is important that you can sign files with your key so they can be identified as something that you worked on. If you upload a source package to Launchpad, it will only accept the package if it can absolutely determine who uploaded the package.

Pour générer une nouvelle clé GPG, exécutez :

$ gpg --gen-key

GPG vous demandera d’abord le type de clé que vous souhaitez générer. Le choix par défaut (RSA et DSA) convient. Ensuite, il vous demandera la taille de clé. La valeur par défaut (actuellement 2048) est correcte, mais 4096 est plus sécurisé. Par la suite, il vous sera demandé si vous souhaitez faire expirer la clé à un certain stade. Vous pouvez sans danger indiquer “0”, ce qui signifie que la clé n’expirera jamais. Les dernières questions seront à propos de votre nom et de votre adresse de courriel. Il suffit ici de choisir ceux que vous allez utiliser pour le développement d’Ubuntu, vous pourrez ajouter des adresses de courriel supplémentaires plus tard. Ajouter un commentaire n’est pas nécessaire. Ensuite, vous devrez définir une phrase secrète, choisissez-en une sûre (une phrase secrète est juste un mot de passe qui autorise les espaces).

GPG va maintenant vous créer une clé, ce qui peut prendre un peu de temps ; comme GPG a besoin d’octets aléatoires, il serait souhaitable que vous donniez quelques tâches à réaliser au système. Déplacez le curseur, tapez quelques paragraphes de texte aléatoire, chargez quelques pages dans votre navigateur internet, etc.

Une fois cela fait, vous obtiendrez un message similaire à celui-ci :

pub   4096R/43CDE61D 2010-12-06
      Key fingerprint = 5C28 0144 FB08 91C0 2CF3  37AC 6F0B F90F 43CD E61D
uid                  Daniel Holbach <dh@mailempfang.de>
sub   4096R/51FBE68C 2010-12-06

Dans ce cas 43CDE61D est l’identifiant clé.

Ensuite, vous devez envoyer la partie publique de votre clé à un serveur de sorte que tout le monde puisse identifier vos messages et fichiers. Pour ce faire, entrez :

$ gpg --send-keys --keyserver keyserver.ubuntu.com <KEY ID>

Cela enverra votre clé au serveur de trousseau d’Ubuntu, inclus dans un réseau d’autres serveurs de trousseaux qui se synchroniseront entre eux. Une fois cette synchronisation terminée, votre clé publique signée sera prête à vérifier vos contributions partout dans le monde.

2.1.2. Créez votre clé SSH

SSH signifie Secure Shell , le protocole permettant d’échanger des données de façon sécurisée sur un réseau. Il est courant d’utiliser SSH pour accéder à un environnement, l’ouvrir sur un autre ordinateur et l’utiliser pour transférer des fichiers en toute sécurité. Dans notre cas, nous allons principalement utiliser SSH pour télécharger en toute sécurité nos paquets source vers Launchpad.

Pour générer une clé SSH, saisissez :

$ ssh-keygen -t rsa

Le nom de fichier par défaut est généralement logique, vous pouvez donc simplement le laisser tel quel. Pour des raisons de sécurité, il est fortement recommandé d’utiliser une phrase secrète.

2.1.3. Configurer pbuilder

pbuilder vous permet de construire des paquets en local sur votre machine. Il dispose de différentes fonctions :

  • La construction se fera dans un environnement minimal et propre. Cela vous aide à vous assurer que vos constructions réussiront de façon reproductible, mais sans modifier votre système local

  • Il est inutile d’installer toutes les dépendances de construction nécessaires en local

  • Vous pouvez configurer plusieurs instances pour différentes versions d’Ubuntu et de Debian

Configurer pbuilder est très simple, lancez :

$ pbuilder-dist <release> create

where <release> is for example xenial, zesty, artful or in the case of Debian maybe sid or buster. This will take a while as it will download all the necessary packages for a “minimal installation”. These will be cached though.

2.2. Mettez vous en place pour travailler avec Launchpad

Avec l’installation d’une configuration de base en local, la prochaine étape sera de configurer votre système pour travailler avec Launchpad. Cette section portera sur les sujets suivants :

  • Description de Launchpad et création d’un compte Launchpad

  • Téléversement de vos clés GPG et SSH vers Launchpad

  • Configure your shell to recognize you (for putting your name in changelogs)

2.2.1. À propos de Launchpad

Launchpad est la pièce maîtresse de l’infrastructure que nous utilisons dans Ubuntu. Il stocke non seulement nos paquets et notre code, mais également d’autres choses comme les traductions, les rapports de bogues et les informations sur les personnes qui travaillent sur Ubuntu et leurs équipiers. Vous pourrez également utiliser Launchpad pour publier vos propositions de corrections et obtenir leur examen et leur parrainage par d’autres développeurs d’Ubuntu.

Vous devez vous inscrire à Launchpad et fournir un minimum d’informations. Cela vous permettra de télécharger du code depuis et vers Launchpad, de soumettre des rapports de bogues et plus encore.

Outre l’hébergement d’Ubuntu, Launchpad peut accueillir tout projet de logiciel libre. Pour plus d’informations, voir le wiki Aide de Launchpad.

2.2.2. Créer un compte Launchpad

If you don’t already have a Launchpad account, you can easily create one. If you have a Launchpad account but cannot remember your Launchpad id, you can find this out by going to https://launchpad.net/~ and looking for the part after the ~ in the URL.

Le processus d’inscription à Launchpad vous demandera de choisir un nom à afficher. Il vous est recommandé d’utiliser votre vrai nom, afin que vos collègues développeurs sur Ubuntu soient en mesure de mieux vous connaître.

Lorsque vous enregistrez un nouveau compte, Launchpad envoie un courriel avec un lien que vous devez ouvrir dans votre navigateur afin de faire vérifier votre adresse de courriel. Si vous ne le recevez pas, vérifiez dans votre dossier de pourriel.

The new account help page on Launchpad has more information about the process and additional settings you can change.

2.2.3. Téléversez votre clé GPG sur Launchpad

First, you will need to get your fingerprint and key ID.

Pour connaître votre empreinte GPG, exécutez :

$ gpg --fingerprint email@address.com

et cela affichera quelque chose comme :

pub   4096R/43CDE61D 2010-12-06
      Key fingerprint = 5C28 0144 FB08 91C0 2CF3  37AC 6F0B F90F 43CD E61D
uid                  Daniel Holbach <dh@mailempfang.de>
sub   4096R/51FBE68C 2010-12-06

Then run this command to submit your key to Ubuntu keyserver:

$ gpg --keyserver keyserver.ubuntu.com --send-keys 43CDE61D

where 43CDE61D should be replaced by your key ID (which is in the first line of output of the previous command). Now you can import your key to Launchpad.

Dirigez-vous vers https://launchpad.net/~/+editpgpkeys et copiez le fichier “Key fingerprint” dans la zone de texte. Dans le cas ci-dessus ce serait 5C28 0144 FB08 91C0 2CF3 37AC 6F0B F90F 43CD E61D. Ensuite, cliquez sur “Importer la clé”.

Launchpad utilise l’empreinte pour vérifier votre clé sur le serveur de trousseau d’Ubuntu et, en cas de succès, vous envoie un courriel crypté vous demandant de confirmer l’import de la clé. Vérifiez votre compte de messagerie et lisez le courriel envoyé par Launchpad. Si votre client de messagerie prend en charge le chiffrement OpenPGP, il vous demandera d’entrer le mot de passe choisi pour la clé lors de la génération GPG. Entrez le mot de passe, puis cliquez sur le lien pour confirmer que la clé est la vôtre.

Launchpad encrypts the email, using your public key, so that it can be sure that the key is yours. If you are using Thunderbird, the default Ubuntu email client, you can install the Enigmail plugin to easily decrypt the message. If your email software does not support OpenPGP encryption, copy the encrypted email’s contents, type gpg in your terminal, then paste the email contents into your terminal window.

De retour sur le site Launchpad, utilisez le bouton “Confirmer” et Launchpad terminera l’import de votre clé OpenPGP.

Vous trouverez plus d’informations sur https://help.launchpad.net/YourAccount/ImportingYourPGPKey

2.2.4. Téléchargez votre clé SSH vers Launchpad

Ouvrez https://launchpad.net/~/+editsshkeys dans un navigateur internet, ainsi que ~/.ssh/id_rsa.pub dans un éditeur de texte. Il s’agit de la partie publique de votre clé SSH, il est donc sûr de la partager avec Launchpad. Copiez le contenu du fichier et collez-le dans la zone de texte sur la page Web affichant “Ajouter une clé SSH”. Ensuite, cliquez sur “Importer la clé publique”.

For more information on this process, visit the creating an SSH keypair page on Launchpad.

2.2.5. Configurez votre shell

The Debian/Ubuntu packaging tools need to learn about you as well in order to properly credit you in the changelog. Simply open your ~/.bashrc in a text editor and add something like this to the bottom of it:

export DEBFULLNAME="Bob Dobbs"
export DEBEMAIL="subgenius@example.com"

Maintenant, sauvegardez le fichier et redémarrez votre terminal ou exécutez :

$ source ~/.bashrc

(Si vous n’utilisez pas l’environnement par défaut, bash, veuillez modifier en conséquence le fichier de configuration pour cet environnement.)