# Appendice B - Comment reporter un bogue

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ème exigent du travail. Rendez-vous compte que la plupart des développeurs sont extrêmement occupés et reçoivent un nombre obscène 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.

## B.1 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.

## B.2 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. Ne rapportez pas de bogues sur les divers paquets RPM ou Debian 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 par 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 on 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 é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.

## B.3 Où rapporter les bogues

Souscrivez à la liste de diffusion mplayer-users:
http://mplayerhq.hu/mailman/listinfo/mplayer-users
et décrivez votre problème:
mplayer-users@mplayerhq.hu

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.

## B.4 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 bug. 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.

### B.4.1 Information Système

- Votre distribution Linux ou système d'exploitation et version ex.:
  - Red Hat 7.1
  - Slackware 7.0 + paquetages de développement de la 7.1 ...
- version du noyau:
  `uname -a`
- version de la libc:
  `ls -l /lib/libc[.-]*`
- version du serveur X:
  `X -version`
- version du gcc et de 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

### B.4.2 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.:
  - ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM
  - Matrox G400 DH 32MB SGRAM
- Type et version des drivers vidéo, ex.:
  - Pilote X intégré
  - nVidia 0.9.623
  - Utah-GLX CVS 2001-02-17
  - DRI from X 4.0.3
- Type et version des drivers son, 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.

### B.4.3 Problèmes de configuration

Si vous rencontrez des erreurs pendant l'éxecution de `./configure`, ou si l'autodetection ou autre chose échoue, lisez `configure.log`. Vous pouvez y trouver la réponse, par exemple des versions multiples de la même librairie mélangés 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.

### B.4.4 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`

### B.4.5 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:

ftp://mplayerhq.hu/MPlayer/incoming/

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 MB sont suffisants pour reproduire le problème, mais pour être sûrs nous vous demandons de faire:

`dd if=votrefichier of=petitfichier bs=1024k count=5`

cela coupera les 5 premiers Mo de 'votrefichier' et les sauvera dans 'petitfichier'. Essayez alors de lire le petit fichier, et si le bogue persiste vous pouvez envoyer le petit fichier par ftp. . N'envoyez jamaisces fichiers par e-mail ! 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.

### B.4.6 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:

#### B.4.6.1 Comment conserver les informations avec un plantage reproduisible

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`

#### B.4.6.2 Comment extraire les informations significatives d'un core dump

créez le fichier de commande suivant:

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

puis exécutez simplement la ligne de commande suivante:

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

## B.5 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 dessus, 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...