<?xml version="1.0" encoding="utf-8"?>
<!-- synced with r19715 -->
<appendix id="bugreports">
<title>Comment rapporter les bogues</title>

<para>
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
<application>MPlayer</application> et soit très apprécié, comprenez que vous
devez fournir <emphasis role="bold">toutes</emphasis> les informations que nous
demandons et suivre de près les instructions de ce document.
</para>
<sect1 id="bugreports_security">
<title>Rapport de sécurité lié aux bogues</title>
<para>
Au cas où vous trouveriez un bogue exploitable, laissez-nous le temps de le
corriger avant de le révéler. Vous pouvez envoyer vos alertes de sécurité à
<ulink url="mailto:&#115;&#101;&#99;&#117;&#114;&#105;&#116;&#121;&#64;&#109;&#112;&#108;&#97;&#121;&#101;&#114;&#104;&#113;&#46;&#104;&#117;">&#115;&#101;&#99;&#117;&#114;&#105;&#116;&#121;&#64;&#109;&#112;&#108;&#97;&#121;&#101;&#114;&#104;&#113;&#46;&#104;&#117;</ulink>.
Veuillez ajouter [SECURITE] ou [CONSEILLE] dans le sujet.
Soyez sûr que votre rapport contienne une analyse complète et détailée du bogue.
L'envoi d'un correctif est hautement apprécié.
Veuillez ne pas retarder l'envoi de votre rapport juste pour l'écriture d'une
preuve que le bogue est exploitable, vous pouvez envoyer ceci dans un autre
message.
</para>
</sect1>
<sect1 id="bugreports_fix">
<title>Comment réparer les bogues</title>
<para>
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 <ulink url="../../tech/patches.txt">ce court document</ulink> (en anglais)
pour trouver comment faire inclure votre code dans <application>MPlayer</application>.
Les gens de la liste de diffusion
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">MPlayer-dev-eng</ulink>
vous assisterons si vous avez des questions.
</para>
</sect1>
<sect1 id="bugreports_regression_test">
<title>Comment faire des tests de regression en utilisant Subversion</title>
<para>
Un problème qui peut survenir quelque fois est 'cela marchait avant, et
plus maintenant...'.
Voici une procédure étape-par-étape pour tenter d'indiquer quand exactement
le problème s'est produit. Ceci n'est <emphasis role="bold">pas</emphasis> pour les utilisateurs
occasionnels.
</para>
<para>
Premièrement, vous aurez besoin de récuperer l'arbre des sources de MPlayer depuis le dépot
Subversion.
Les instructions peuvent être trouvé au bas de
<ulink url="http://www.mplayerhq.hu/dload.html">cette page</ulink>.
</para>
<para>
Vous aurez donc dans le repertoire mplayer/ une image de l'arbre Subversion, du coté
client.
Maintenant mettez à jour cette image à la date voulue:
<screen>
cd mplayer/
svn update -r {"2004-08-23"}
</screen>
Le format de date est AAAA-MM-JJ HH:MM:SS.
Utiliser ce format de date vous assure que vous pourrez extraire les patches
selon la date à laquelle elles ont été fusionnés au dépot, comme dans l'
<ulink url="http://lists.mplayerhq.hu/pipermail/mplayer-cvslog/">archive MPlayer-cvslog</ulink>.
</para>
<para>
Maintenant procéder comme pour une mise-à-jour normale:
<screen>
./configure
make
</screen>
</para>
<para>
Pour un non-informaticien qui lit ceci, la méthode la plus rapide d'arriver au point
où le problème se produit est d'utiliser une recherche dichotomique &mdash; qui est,
chercher la date où est survenu le problème en divisant à plusieurs reprises l'intervalle
de recherche par moitié.
Par exemple, si le problème se produit en 2003, commencez en milieu d'année, puis demandez-vous
"Le problème est-il déjà présent à ce moment?".
Si oui, revenez au premier Avril; si non, allez au premier Octobre,
et ainsi de suite.
</para>
<para>
Si vous avez beaucoup d'espace libre sur le disque dur (une compilation complète des sources prend actuellement
100 MO, et environ 300-350 MO si les symboles de déboguage sont activés), copiez la
plus vieille version fonctionnelle connue avant de la mettre à jour; cela sauvera du temps si
vous devez y revenir.
(Il est habituellement nécessaire de lancer 'make distclean' avant de recompiller une
version plus récente, donc si vous ne faites pas une copie de sauvegarde de votre arbre
source original, vous devrez tout recompiler dedans quand vous reviendrez
à la version présente.)
</para>
<para>
Quand vous avez trouvé le jour où le problème survient, continuez la recherche
en utilisant l'archive mplayer-cvslog (triée par date) et en affinant par des
mises-à-jour depuis Subversion en précisant heure, minute et seconde:
<screen>
svn update -r {"2004-08-23 15:17:25"}
</screen>
Cela vous permettra de trouver facilement le patch exact à l'origine du problème.
</para>
<para>
Si vous trouvez le patch qui est la cause du problème, vous avez quasiement gagné;
signalez le à
<ulink url="http://bugzilla.mplayerhq.hu/">MPlayer Bugzilla</ulink> ou
souscrivez à
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users">MPlayer-users</ulink>
et postez-le là.
Il y a une chance pour que l'auteur s'empresse de suggérer un correctif.
Vous pouvez également décortiquer le patch jusqu'à ce que le bug vous saute aux yeux :-).
</para>
</sect1>
<sect1 id="bugreports_report">
<title>Comment rapporter les bogues</title>
<para>
Tout d'abord veuillez essayer la dernière version Subversion de <application>MPlayer</application>
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
<emphasis role="bold">que la version Subversion</emphasis> pour rapporter les bogues. Ceci
est également valable pour les paquets binaires de <application>MPlayer</application>.
Les instructions Subversion peuvent être trouvées en bas de
<ulink url="http://www.mplayerhq.hu/dload.html">cette page</ulink>
ou dans le README. Si tout cela ne vous aide pas, veuillez vous référer à
<link linkend="bugs">la liste des bogues connus</link> 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.
</para>

<para>
Merci de ne pas envoyer de rapports de bogues en privé à chaque développeur.
C'est un travail commun et il y a donc pas mal 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 <application>MPlayer</application>.
</para>

<para>
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.
</para>

<para>
Un guide excellent et bien écrit pour poser des questions sur les forums
publiques est
<ulink url="http://www.linux-france.org/article/these/smart-questions/smart-questions-fr.html">
Comment Poser Les Questions De Manière Intelligente</ulink> par <ulink url="http://www.catb.org/~esr/">Eric S. Raymond</ulink>.
Il y en a un autre (en anglais) appelé
<ulink url="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">How to Report
Bugs Effectively</ulink> par <ulink url="http://www.chiark.greenend.org.uk/~sgtatham/">Simon Tatham</ulink>.
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.
</para>

</sect1>

<sect1 id="bugreports_where">
<title>Où rapporter les bogues</title>
<para>
Souscrivez à la liste de diffusion mplayer-users:
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users"/>
et envoyez votre rapport à
<ulink url="mailto:mplayer-users@mplayerhq.hu"/> où vous pourrez en discuter.
</para>
<para>
Si vous préférez, vous pouvez utiliser notre tout nouveau
<ulink url="http://bugzilla.mplayerhq.hu/">Bugzilla</ulink> à la place.
</para>
<para>
La langue de cette liste est l'<emphasis role="bold">Anglais</emphasis>.
Suivez les <ulink url="http://www.ietf.org/rfc/rfc1855.txt">Règles de la Netiquette</ulink>
SVP et <emphasis role="bold">n'envoyez de mails en HTML</emphasis> 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 <ulink url="http://expita.com/nomime.html">sympatique document</ulink>
(en Anglais).
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.
</para>
</sect1>

<sect1 id="bugreports_what">
<title>Que rapporter</title>
<para>
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 <ulink url="ftp://upload.mplayerhq.hu/MPlayer/incoming/">serveur FTP</ulink>
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.
</para>

<sect2 id="bugreports_system">

<title>Information Système</title>
<para>
<itemizedlist>
<listitem><para>
Votre distribution Linux ou système d'exploitation et version, ex.:
  <itemizedlist>
    <listitem><para>Red Hat 7.1</para></listitem>
    <listitem><para>Slackware 7.0 + paquets de développement de la 7.1 ...</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
version du noyau:
<screen>uname -a</screen>
</para></listitem>
<listitem><para>
version de la libc:
<screen>ls -l /lib/libc[.-]*</screen>
</para></listitem>
<listitem><para>
versions de gcc et ld :
<screen>
gcc -v
ld -v
</screen>
</para></listitem>
<listitem><para>
version des binutils:
<screen>as --version</screen>
</para></listitem>
<listitem><para>
Si vous avez des problèmes avec le mode plein-écran:
  <itemizedlist>
    <listitem><para>Type de gestionnaire de fenêtre et version</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
Si vous avez des problèmes avec XVIDIX:
  <itemizedlist>
    <listitem><para>profondeur de couleur de X:
<screen>xdpyinfo | grep &quot;depth of root&quot;</screen>
    </para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
Si seul le GUI (ou IHM - Interface Homme Machine) est boguée:
  <itemizedlist>
    <listitem><para>version de GTK</para></listitem>
    <listitem><para>version de GLIB</para></listitem>
    <listitem><para>version de libpng</para></listitem>
    <listitem><para>Position dans le GUI au moment où le bogue se produit</para></listitem>
  </itemizedlist>
</para></listitem>
</itemizedlist>
</para>
</sect2>

<sect2 id="bugreports_hardware">
<title>Matériel et pilotes</title>
<para>
<itemizedlist>
<listitem><para>
Info CPU (cela ne fonctionne que sous Linux):
<screen>cat /proc/cpuinfo</screen>
</para></listitem>
<listitem><para>
Fabricant et modèle de votre carte vidéo, ex.:
  <itemizedlist>
    <listitem><para>chip ASUS V3800U: nVidia TNT2 Ultra pro 32Mo SDRAM</para></listitem>
    <listitem><para>Matrox G400 DH 32Mo SGRAM</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
Type et version des drivers vidéo, ex.:
  <itemizedlist>
    <listitem><para>Pilote X intégré</para></listitem>
    <listitem><para>nVidia 0.9.623</para></listitem>
    <listitem><para>Utah-GLX CVS 2001-02-17</para></listitem>
    <listitem><para>DRI avec X 4.0.3</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
Type de carte son et pilote, ex.:
  <itemizedlist>
    <listitem><para>Creative SBLive! Gold avec pilote OSS de oss.creative.com</para></listitem>
    <listitem><para>Creative SB16 avec pilotes noyau OSS</para></listitem>
    <listitem><para>GUS PnP avec émulation OSS ALSA</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
En cas de doute, joignez-y le résultat de <command>lspci -vv</command> sur les systèmes Linux.
</para></listitem>
</itemizedlist>
</para>
</sect2>

<sect2 id="bugreports_configure">
<title>Problèmes de configuration</title>
<para>
Si vous rencontrez des erreurs pendant l'éxecution de <command>./configure</command>,
ou si l'auto-détection ou autre chose échoue, lisez <filename>configure.log</filename>.
Vous pourriez y trouver la réponse, par exemple des versions multiples
mélangées de la même librairie 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
<filename>configure.log</filename> dans votre rapport de bogue.
</para>
</sect2>

<sect2 id="bugreports_compilation">
<title>Problèmes de compilation</title>
<para>
Veuillez inclure ces fichiers:
<itemizedlist>
<listitem><para>config.h</para></listitem>
<listitem><para>config.mak</para></listitem>
</itemizedlist>
</para>
</sect2>

<sect2 id="bugreports_playback">
<title>Problèmes de lecture</title>
<para>
Merci d'inclure la sortie de <application>MPlayer</application> en verbosité niveau 1,
mais rappelez-vous de <emphasis role="bold">ne pas tronquer la sortie</emphasis> 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:
<screen>mplayer -v <replaceable>options</replaceable> <replaceable>nomfichier</replaceable> &gt; mplayer.log 2&gt;&amp;1</screen>
</para>

<para>
Si votre problème est spécifique à un ou plusieurs fichiers, alors merci d'uploader
le(s) fautif(s) sur:
<ulink url="ftp://upload.mplayerhq.hu/MPlayer/incoming/"/>
</para>

<para>
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:
<screen>dd if=<replaceable>votre_fichier</replaceable> of=<replaceable>petit_fichier</replaceable> bs=1024k count=5</screen>
Cela coupera les 5 premiers Mo de '<emphasis role="bold">votre_fichier</emphasis>'
et les sauvera dans '<emphasis role="bold">petit_fichier</emphasis>'.
Essayez alors de lire le petit fichier, et si le bogue persiste vous pouvez
envoyer le petit fichier par ftp. <emphasis role="bold">N'envoyez jamais</emphasis>
ces fichiers par e-mail SVP !
Envoyez-les par FTP, et postez seulement le chemin/nom des fichiers sur le serveur
FTP. Si le fichier est accessible en téléchargement à partir d'Internet, alors
envoyez seulement son adresse URL <emphasis role="bold">exacte</emphasis>.
</para>
</sect2>

<sect2 id="bugreports_crash">
<title>Plantages</title>
<para>
Vous devez lancer <application>MPlayer</application> à l'intérieur de
<command>gdb</command> et nous envoyer le résultat complet ou si vous
avez un <filename>core</filename> dump du plantage vous pouvez extraire
des informations utiles du fichier Core. Voici comment:
</para>

<sect3 id="bugreports_debug">
<title>Comment conserver les informations sur un plantage reproductible</title>
<para>
Recompilez <application>MPlayer</application> avec les instructions de
déboguage activées:
<screen>
./configure --enable-debug=3
make
</screen>
et ensuite lancez MPlayer à l'intérieur de gdb en utilisant:
<screen>gdb ./mplayer</screen>
Vous êtes maintenant à l'intérieur de gdb. Tapez:
<screen>run -v <replaceable>options-pour-mplayer</replaceable> <replaceable>nomfichier</replaceable></screen>
et reproduisez votre plantage.
Aussitôt que vous l'avez fait, gdb va vous renvoyer à la ligne de commande
où vous devrez entrer
<screen>
bt
disass $pc-32 $pc+32
info all-registers
</screen>
</para>
</sect3>

<sect3 id="bugreports_core">
<title>Comment extraire les informations significatives d'un core dump</title>
<para>
Créer le fichier de commande suivant:
<screen>
bt
disass $pc-32 $pc+32
info all-registers
</screen>
Ensuite exécutez simplement la commande:
<screen>gdb mplayer --core=core -batch --command=<replaceable>fichier_de_commande</replaceable> &gt; mplayer.bug</screen>
</para>
</sect3>
</sect2>
</sect1>

<sect1 id="bugreports_advusers">
<title>Je sais ce que je fait...</title>
<para>
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
<application>MPlayer</application>, et non un problème de compilateur
ou d'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 y envoyer votre
rapport pour obtenir une réponse plus intéressante et plus rapide.
</para>

<para>
Soyez prévenu que si vous posez des questions de newbie (débutant) 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 <application>MPlayer</application> ou un développeur.
Si vous correspondez à ces critères il ne devrait pas être difficile de
trouver comment on s'inscrit...
</para>

</sect1>

</appendix>
