# Comment rapporter les bogues

Les bons rapports de bogue sont une contribution précieuse pour tout projet en développement. Mais tout comme pour écrire un bon logiciel, les bons rapports de problèmes exigent du travail. Rendez-vous compte que la plupart des développeurs sont extrêmement occupés et reçoivent un nombre colossal d'emails. Donc bien que votre retour soit crucial pour l'amélioration de MPlayer et soit très apprécié, comprenez que vous devez fournir toutes les informations que nous demandons et suivre de près les instructions de ce document.

## Comment réparer les bogues

Si vous pensez avoir les talents nécessaires vous êtes invité à essayer de réparer le bogue vous-même. Ou peut-être l'avez-vous déjà fait ? Veuillez lire ce court document (en anglais) pour trouver comment faire inclure votre code dans MPlayer. Les gens de la liste de diffusion mplayer-dev-eng vous assisterons si vous avez des questions.

## Comment rapporter les bogues

Tout d'abord veuillez essayer la dernière version CVS de MPlayer car votre bogue y est peut-être déjà réparé. Le développement évolue très rapidement, la plupart des problèmes des versions officielles sont rapportés dans les jours voir les heures qui suivent, donc n'utilisez que le CVS pour rapporter les bogues. Ceci est également valable pour les paquets binaires de MPlayer. Les instructions CVS peuvent être trouvées en bas de cette page ou dans le README. Si tout cela ne vous aide pas, veuillez vous référer à la liste des bogues connus et au reste de la documentation. Si votre problème n'est pas connu ou non résolvable avec nos instructions, alors merci de rapporter le bogue.

Merci de ne pas envoyer de rapports de bogues en privé à chaque développeur. C'est un travail commun et il y a donc plein de gens que cela pourrait intéresser. Parfois d'autres utilisateurs ont rencontré les mêmes ennuis que vous et savent comment contourner le problème même si c'est un bogue dans le code de MPlayer.

Merci de décrire votre problème avec le plus de détails possibles. Faites un petit travail de détective pour restreindre les conditions d'occurrence du problème. Est ce que le bogue ne se montre que dans certaines situations ? Est-il spécifique à certains fichiers ou types de fichier ? Apparaît-il avec un seul codec ou est-ce indépendant du codec ? Pouvez-vous le reproduire avec tous les pilotes de sortie ? Plus vous fournissez d'information, plus grandes sont nos chances de résoudre votre problème. Merci de ne pas oublier d'inclure également les informations importantes requises plus bas, sinon nous ne pourront pas établir un diagnostic précis de votre problème.

Un guide excellent et bien écrit pour poser des questions sur les forums publiques est Comment Poser Les Questions De Manière Intelligente par Eric S. Raymond. Il y en a un autre (en anglais) appelé How to Report Bugs Effectively par Simon Tatham. Si vous suivez ces règles vous devriez pouvoir obtenir de l'aide. Mais merci de comprendre que nous suivons tous les listes de diffusion volontairement sur notre temps libre. Nous sommes très occupés et ne pouvons garantir que vous aurez une solution à votre problème ou même une réponse.

## Où rapporter les bogues

Souscrivez à la liste de diffusion mplayer-users: et envoyez votre rapport à où vous pourrez en discuter.

Si vous préférez, vous pouvez utiliser notre tout nouveau Bugzilla à la place.

La langue de cette liste est l'Anglais. Suivez les Règles de la Netiquette SVP et n'envoyez de mails en HTML sur aucune de nos listes de diffusion. Vous ne serez qu'ignoré ou banni. Si vous ne savez pas ce qu'est un mail en HTML ou pourquoi c'est mauvais, lisez ce sympatique document. Il explique tous les détails et a des instructions pour désactiver le HTML. Notez également que nous ne ferons pas de CC (copie conforme) individuelle et que c'est donc une bonne idée de souscrire pour recevoir votre réponse.

## Que rapporter

Vous pouvez avoir besoin d'inclure des fichiers de log, de configuration ou d'échantillon. Si certains sont très gros alors il vaut mieux les uploader sur notre serveur FTP en format compressé (gzip et bzip2 préférés) et indiquer uniquement leur chemin et nom dans le rapport de bogue. Nos listes de diffusion ont une taille de message limite de 80k, si vous avez quelque chose de plus gros vous devrez le compresser ou l'uploader.

### Information Système

- Votre distribution Linux ou système d'exploitation et version c-a-d:

  - Red Hat 7.1

  - Slackware 7.0 + paquets de développement de la 7.1 ...

- version du noyau:

      uname -a

- version de la libc:

      ls -l /lib/libc[.-]*

- versions de gcc et ld :

      gcc -v
      ld -v

- version des binutils:

      as --version

- Si vous avez des problèmes avec le mode plein-écran:

  - Type de gestionnaire de fenêtre et version

- Si vous avez des problèmes avec XVIDIX:

  - profondeur de couleur de X:

        xdpyinfo | grep "depth of root"

- Si seule la GUI est boguée:

  - version de GTK

  - version de GLIB

  - version de libpng

  - Endroit de la GUI où le bogue se produit

### Matériel et pilotes

- Info CPU (cela ne fonctionne que sous Linux):

      cat /proc/cpuinfo

- Fabricant et modèle de votre carte vidéo, ex.:

  - chip ASUS V3800U: nVidia TNT2 Ultra pro 32Mo SDRAM

  - Matrox G400 DH 32Mo SGRAM

- Type et version des drivers vidéo, ex.:

  - Pilote X intégré

  - nVidia 0.9.623

  - Utah-GLX CVS 2001-02-17

  - DRI de X 4.0.3

- Type de carte son et pilote, ex.:

  - Creative SBLive! Gold avec pilote OSS de oss.creative.com

  - Creative SB16 avec pilotes noyau OSS

  - GUS PnP avec émulation OSS ALSA

- En cas de doute, joignez-y le résultat de `lspci -vv` sur les systèmes Linux.

### Problèmes de configuration

Si vous rencontrez des erreurs pendant l'éxecution de `./configure`, ou si l'auto-détection ou autre chose échoue, lisez `configure.log`. Vous pourriez y trouver la réponse, par exemple des versions multiples de la même librairie mélangées dans votre système, ou vous avez oublié d'installer les paquets de développement (ceux avec le suffixe -dev). Si vous pensez que c'est un bogue, incluez `configure.log` dans votre rapport de bogue.

### Problèmes de compilation

Veuillez inclure ces fichiers:

- config.h

- config.mak

Uniquement si la compilation échoue à partir d'un de ces répertoires, incluez ces fichiers:

- Gui/config.mak

- libvo/config.mak

- libao2/config.mak

### Pour les problèmes de lecture

Merci d'inclure la sortie de MPlayer en verbosité niveau 1, mais rappelez-vous de ne pas tronquer la sortie en le copiant dans votre mail. Les développeurs ont besoin de tous les messages pour diagnostiquer correctement un problème. Vous pouvez rediriger la sortie dans un fichier comme ceci:

    mplayer -v options nomfichier > mplayer.log 2>&1

Si votre problème est spécifique à un ou plusieurs fichiers, alors merci d'uploader le(s) fautif(s) sur:

Uploadez aussi un petit fichier texte ayant le même nom que votre fichier mais avec une extension .txt. Décrivez le problème que vous avez avec ce fichier et incluez votre adresse e-mail ainsi que la sortie de MPlayer en verbosité niveau 1. Généralement les premiers 1-5 Mo sont suffisants pour reproduire le problème, mais pour être sûrs nous vous demandons de faire:

    dd if=votre fichier of=petit fichier bs=1024k count=5

Cela coupera les 5 premiers Mo de 'votre fichier' et les sauvera dans 'petit fichier'. Essayez alors de lire le petit fichier, et si le bogue persiste vous pouvez envoyer le petit fichier par ftp. N'envoyez jamais ces fichiers par e-mail SVP ! Envoyez les par FTP, et postez seulement leur nom/adresse sur ce FTP. Si le fichier est accessible en téléchargement, envoyez seulement son adresse exacte.

### Plantages

Vous devez lancer MPlayer à l'intérieur de `gdb` et nous envoyer le résultat complet ou si vous avez un core dump du plantage vous pouvez extraire des informations utiles du fichier `core`. Voici comment:

#### Comment conserver les informations avec un plantage reproductible

Recompilez MPlayer avec les instructions de déboguage:

    ./configure --enable-debug=3
    make

et ensuite lancez MPlayer à l'intérieur de gdb en utilisant:

    gdb ./mplayer

Vous êtes maintenant à l'intérieur de gdb. Tapez:

    run -v options-pour-mplayer nomfichier

et reproduisez votre plantage. Aussitôt que vous l'avez fait, gdb va vous renvoyer à la ligne de commande où vous devrez entrer

    bt
    disass $pc-32 $pc+32
    info all-registers

#### Comment extraire les informations significatives d'un core dump

Veuillez créer le fichier de commande suivant:

    bt
    disass $pc-32 $pc+32
    info all-registers

Ensuite exécutez simplement:

    gdb mplayer --core=core -batch --command=fichier_de_commande > mplayer.bug

## Je sais ce que je fait...

Si vous avez créé un rapport de bogue correct en suivant les étapes ci-dessus et que vous êtes persuadé qu'il s'agit d'un bug dans MPlayer, pas un problème de compilateur ou un fichier endommagé, vous avez déjà lu la documentation et vous n'arrivez pas à trouver une solution, vos pilotes son sont OK, alors vous pouvez souscrire à la liste mplayer-advusers et envoyer votre rapport dessus pour obtenir une réponse meilleure et plus rapide.

Soyez prévenu que si vous posez des questions de newbie ou des questions dont les réponses sont dans le manuel, vous serez ignoré ou insulté au lieu de recevoir une réponse appropriée. Donc ne nous insultez pas et ne vous inscrivez à -advusers que si vous savez vraiment ce que vous faites et vous sentez en mesure d'être un utilisateur avancé de MPlayer ou un développeur. Si vous correspondez à ces critères il ne devrait pas être difficile de trouver comment on s'inscrit...