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.
Rapport de sécurité lié aux bogues
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é à
security@mplayerhq.hu.
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.
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 faire des tests de regression en utilisant Subversion
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 pas pour les utilisateurs
occasionnels.
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
cette page.
Vous aurez donc dans le repertoire mplayer/ une image de l'arbre Subversion, du coté
client.
Maintenant mettez à jour cette image à la date voulue :
cd mplayer/
svn update -r {"2004-08-23"}
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'
archive MPlayer-cvslog.
Maintenant procéder comme pour une mise-à-jour normale :
./configure
make
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 — 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.
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.)
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 :
svn update -r {"2004-08-23 15:17:25"}
Cela vous permettra de trouver facilement le patch exact à l'origine du problème.
Si vous trouvez le patch qui est la cause du problème, vous avez quasiement gagné;
signalez le à
MPlayer Bugzilla ou
souscrivez à
MPlayer-users
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 :-).
Comment rapporter les bogues
Tout d'abord veuillez essayer la dernière version Subversion 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 la version Subversion pour rapporter les bogues. Ceci
est également valable pour les paquets binaires de MPlayer.
Les instructions Subversion 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
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 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 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
(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.
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, ex. :
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 seul le GUI (ou IHM - Interface Homme Machine) est boguée :
Version de GTK
Version de GLIB
Position dans le GUI au moment 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. :
Puce 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 avec 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
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
configure.log dans votre rapport de bogue.
Problèmes de compilation
Veuillez inclure ces fichiers :
config.h
config.mak
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 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 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 sur un plantage reproductible
Recompilez MPlayer avec les instructions de
déboguage activées :
./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
Créer le fichier de commande suivant :
bt
disass $pc-32 $pc+32
info all-registers
Ensuite exécutez simplement la commande :
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, 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.
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 MPlayer ou un développeur.
Si vous correspondez à ces critères il ne devrait pas être difficile de
trouver comment on s'inscrit...