Cette page est en cours de rédaction.
Apportez votre aide…

Ceci est une ancienne révision du document !


Ceci est une ébauche d'une traduction de la page https://wiki.ubuntu.com/Bugs/HowToFix
Attention la traduction est aussi sous une licence défini par ces termes :

The website HTML, text, images audio, video, software or other content that is made available on this website are the property of someone - the author in the case of content produced elsewhere and reproduced here with permission, or Canonical or its content suppliers. Before you use this content in some way please take care to ensure that you have the relevant rights and permissions from the copyright holder.

You are welcome to display on your computer, download and print pages from this website provided the content is only used for personal, educational and non-commercial use. You must retain copyright and other notices on any copies or printouts you make. Certain of the materials available on this site are "open source" materials subject to the GNU General Public License ("GPL") or other open source license and are so marked - use of those materials is governed by the individual applicable license.

Bugs / Comment corriger un paquet

Chaque paquet installé sur le systeme Ubuntu a été construit a partir de sources. Chaque source a une page dédiée pour rapporter des bugs touchant le paquets fils ( paquet issue de la compilation des sources ).

Prenons pour exemple, la page des bugs du paquet "hello" à l'adresse suivante : https://launchpad.net/ubuntu/+source/hello/+bugs.

Vous ne savez pas comment corriger un problème ( bug ) reporter mais ça aide ! Il y a certaine chose que n'importe qui peut faire. Pour commencer, beaucoup de bugs touchent la typographie ou la documentation et ils peuvent facilement être corrigé par tous. Si vous connaissez une autre langue, vous pouvez surement corriger les erreurs de traduction. Pour le fonctionnement, vous pouvez essayer d'améliorer les rapport de bug reporté pour les auteurs du paquet concerné. Ou trouver une solution qui sera inclu dans une autre distribution ( pas clair cette phrase ).

Avant de corriger un bug, assurez vous que le bug peut etre reproduit sur votre machine. Sinon, essayer de corriger un bug que vous ne constater par n'est pas prioritaire pour une résolution Si vous avez besoin d'information pour reproduite le bug, demandez plus d'informations de la part de l'auteur du rapport de bug dans un commentaire de bug.

De nombreux scripts ont été développé pour aider tout en travaillant avec les outils débian et des patches. Installer ces paquet :

sudo apt-get install devscripts ubuntu-dev-tools

Générer un patch :

Ici le simple exemple pour voir comment créer un patch :

 1. Imaginons que vous avez un rapport de bug disant que la description du paquet xicc contient une erreur orthographique touchant le mot "color " et que nous voulons corriger. (Très mauvais exemples je vous l'accorde) Premièrement vérifier que le rapport dit vrai:
    $ apt-cache show xicc
    Package: xicc
    Priority: optional
    Section: universe/x11
    Installed-Size: 72
    Maintainer: Ross Burton <ross@debian.org>
    Architecture: amd64
    Version: 0.2-2
    Depends: libc6 (>= 2.3.4-1), libglib2.0-0 (>= 2.8.0), libice6, libsm6, libx11-6
    Filename: pool/universe/x/xicc/xicc_0.2-2_amd64.deb
    Size: 8224
    MD5sum: a266d60cd721ef91fcb1d3d47ecd6a40
    SHA1: b8da21b8dfba7ed9c7ac6fa5c9c3e70b438d7124
    SHA256: 635c287a1c43df31670a20194e774561479d70d981bf24c143c3711799bd839a
    Description: set the ICC **colour** profile for an X display
     This utility lets you set an ICC colour profile for an X display, so that
     applications can use it to display colour calibrated images.  Applications have
     to specifically look for this atom but several applications such as Gimp and
     Eye Of Gnome already do.
    Bugs: mailto:ubuntu-users@lists.ubuntu.com
    Origin: Ubuntu
 2.L'erreur constaté, le rapport de bug est confirmé, c'est le moment d'agir commençons a rapatrier les sources de ce paquet:
dget -xu http://people.ubuntu.com/~dholbach/motu/xicc_0.2-2.dsc
 3. Éditez le fichier debian/control qui contient l'erreur et corrigeons ce mot:
    cd xicc-0.2
    sed -i 's/colour/color/g' debian/control
 Bien entendu le patch n'est pas toujours si facile et pourrait nécéssiter un patch bien plus important touchant beaucoup de partie dans le paquet originel. Reportez vous à la partie Patch guidelines.
 4.Adhérer a DebianMaintainerField: Éditez le fichier debian/control et remplacer :
    Maintainer: Ross Burton <ross@debian.org>

par

    Maintainer: Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>
    XSBC-Original-Maintainer: Ross Burton <ross@debian.org>

Pour cette action, vous pouvez utiliser l'outil update-maintainer ( dans le paquet ubuntu-dev-tools).

 5.Mettre à jour le fichier debian/changelog:
    dch -i

et décrire les changements que vous avez effectué.

 6.

Générer le nouveau paquet:

    debuild -S

Ou si vous créez un paquet non signé:

    debuild -S -us -uc
 7.Regardez avez debdiff:
    cd ..
    debdiff xicc_0.2-2.dsc xicc_0.2-2ubuntu1.dsc | less
 8.Pour créer un fichier patch, vous devez envoyer le résultat de debdiff dans un autre fichier:
    debdiff xicc_0.2-2.dsc xicc_0.2-2ubuntu1.dsc > xicc_0.2.2ubuntu1.debdiff
 9. C'est fait. Vous pouvez maintenant joindre le patch debdiff a un rapport de bugou l'envoyer à une personne s'y connaissant ( FIXME à revoir ). SponsorshipProcess explique comment envoyer un paquet à Ubuntu. ( FIXME ) 
  • Vérifier SponsorshipProcess pour voir comment inclure ce patch à Ubuntu.
  • (PackagingGuide contient plus d'informations pour construire un paquet, le patcher et le tester.)
  • UbuntuDevelopment/Patches à un guide pour générer de bon patchs.

Une fois que votre patch est générer re-rentre dans le dossier des sources et construire le paquet.

cd hello-2.2
sudo apt-get build-dep hello
debuild -us -uc

If the build fails, please review your changes to verify that they are not the cause of the failure. You can regenerate your patched version of the source with the following commands:

rm -rf hello-2.2 dpkg-source -x hello_2.2-1.dsc patch -p0 < hello.patch

If the build succeeds, install the package and make sure you can no longer replicate the bug. The local package can be installed with the following command:

sudo dpkg -i hello_2.2-1_*.deb

If your fix doesn't work, or you cannot fix the bug, remember to update the bug, assigning "Nobody", and changing the status to "Confirmed". You may wish to add a comment describing your experience to assist others trying to fix the bug.

Uploading the patch

If your patch fixes the bug, please add a comment to the bug, and attach your patch. Be sure to check the patch checkbox when uploading your patch. Assign the bug to "Nobody", and the status to "Confirmed". At this point, seek out a developer to review your patch for inclusion in the next upload of the package. Check out SponsorshipProcess. If you have any other questions, ask on #ubuntu-motu on InternetRelayChat.

N.B. If you are familiar with debian packaging, and would be willing to prepare a new revision candidate including the patches to fix the bug, please review MOTU/Contributing for some pointers on creating a new revision.

Check out MOTU/GettingStarted to see how to get more involved with packaging and the Ubuntu Development team.

Fixing bugs in stable releases

The major focus of development and changes is on the current Ubuntu development release. Once we do a stable Ubuntu release, millions of users out there work with it every day and depend on its stability, thus we restrict changes to stable releases to a minimum, for two reasons:

  • A regression in a stable release is a catastrophe. It is much better to keep a stable set of known bugs which people learned to live with and work around, than to break existing functionality.
  • Even some bug fixes might cause confusion, if they disrupt the way users previously worked with the software. This particularly affects user interface and string changes, API/ABI breaks, etc.

Nevertheless we do want to provide fixes for critical/data loss/security bugs, and in a lot of cases also trivial bugs which have a near-zero regression potential. Every developer is welcome and invited to provide these updates. The procedure is explained at the SecurityUpdateProcedures and StableReleaseUpdates pages.

Besides that, a lot of users also need a newer version of a particular piece of software, without generally updating their entire distribution. For those we provide a "backports" repository, which is not enabled by default and thus is allowed to receive much more intrusive changes. The procedure for this is documented at https://help.ubuntu.com/community/UbuntuBackports.

  • howtofix.1232498994.txt.gz
  • Dernière modification: Le 18/04/2011, 14:52
  • (modification externe)