Ubuntu logo

Packaging Guide

7. Réparation de paquets FTBFS

Avant qu’un paquet puisse être utilisé dans Ubuntu, il doit être compilé depuis le source. S’il échoue (on le qualifie en anglais de FTBFS « Fails To Build From Source »), il attendra probablement dans -proposed et ne sera pas disponible dans les archives Ubuntu. Vous trouverez une liste complète des paquets qui échouent à compiler depuis le source sur http://qa.ubuntuwire.org/ftbfs/. Il y a 5 catégories principales affichées sur la page :

  • Package failed to build (F) : (Compilation du paquet a échoué) Quelque chose s’est réellement mal passé pendant la compilation.

  • Cancelled build (X) : (Compilation annulée) Le processus de compilation a été annulé pour une raison ou une autre. Il faudrait probablement éviter de débuter avec.

  • Package is waiting on another package (M): (Le paquet attend un autre paquet) Ce paquet attend un autre paquet pour compiler, être mis à jour ou (si le paquet est dans main) une de ses dépendances est dans une mauvaise partie de l’archive.

  • Failure in the chroot (C) : (Échec dans le chroot) Une partie du chroot a échoué, cela a de bonnes chances d’être réparé par une recompilation. Demandez à un développeur de recompiler le paquet et il devrait être réparé.

  • Failed to upload (U) : (Échec du téléversement) Le paquet n’a pas pu être téléversé. Habituellement, il suffit juste de recompiler, mais vérifiez d’abord le journal de compilation.

7.1. Premiers pas

La première chose que vous devrez faire est de voir si vous pouvez reproduire vous-même le FTBFS. Récupérez le code soit en exécutant bzr branch lp:ubuntu/PACKAGE et en récupérant le tarball, soit en exécutant ``dget PACKAGE_DSC``sur le fichier .dsc depuis la page launchpad. Une fois que vous l’avez, compilez-le dans un schroot.

Vous devriez pouvoir reproduire le FTBFS. Sinon, vérifiez si la compilation télécharge une dépendance manquante, ce qui signifie que vous avez juste besoin d’en faire une dépendance de compilation dans debian/control. Compiler le paquet localement peut aussi aider à trouver si le problème est causé par une dépendance manquante, non listée (compile localement mais échoue sur un schroot).

7.2. Vérification de Debian

Une fois que vous avez reproduit le problème, il est temps d’essayer de trouver une solution. Si le paquet est aussi dans Debian, vous pouvez vérifier s’il y compile en allant à http://packages.qa.debian.org/PACKAGE. Si Debian a une version plus récente, vous devriez la fusionner. Sinon, recherchez dans les journaux de compilation et les bogues répertoriés sur cette page s’il y a des informations supplémentaires sur les ftbfs ou les correctifs. Debian tient aussi à jour une liste de commandes FTBFS (commandes qui font échouer la compilation) et ce qu’il convient de faire pour les corriger que vous trouverez à https://wiki.debian.org/qa.debian.org/FTBFS, vous devez aussi y rechercher des solutions.

7.3. Autres causes de paquets FTBFS

Si un paquet se trouvant dans main a une dépendance manquante qui n’est pas dans main, vous devrez déposer un rapport de bogue MIR. https://wiki.ubuntu.com/MainInclusionProcess explique la procédure.

7.4. Résoudre le problème

Une fois que vous avez trouvé comment corriger le problème, suivez la même démarche que pour tout autre bogue. Créez un correctif, ajoutez-le à une branche bzr ou à un bogue, abonnez-y ubuntu-sponsors, puis essayez de le faire inclure en amont et/ou dans Debian.