<?xml version="1.0" encoding="utf-8"?>
<!-- synced with r23225 -->
<appendix id="bugreports">
<title>Come segnalare i bug (errori)</title>

<para>
Buone segnalazioni di errori sono un contributo molto valido per lo sviluppo di
un qualsiasi progetto software. Ma proprio come nello scrivere un buon
software, scrivere buoni rapporti sui problemi richiede dell'impegno. Per favore
considera che molti sviluppatori sono estremamente impegnati e ricevono immensi
volumi di email. Perciò, mentre da un lato il tuo feedback è cruciale per
migliorare <application>MPlayer</application> e molto apprezzato, per favore
cerca di capire che devi fornire <emphasis role="bold">tutte</emphasis> le
informazioni che chiediamo e seguire fedelmente le istruzioni qui documentate.
</para>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_security">
<title>Come segnalare i bug di sicurezza (errori)</title>

<para>
Nel caso in cui tu abbia trovato un bug pericoloso e vuoi fare la cosa giusta e
lasciarcelo correggere prima di sfruttarlo, saremmo felici di avere la tua
segnalazione di sicurezza a
<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>.
Per favore aggiungi nell'oggetto [SECURITY] o [ADVISORY].
Assicurati che il rapporto contenga l'analisi completa e dettagliata del bug.
L'invio di una correzione è decisamente apprezzato.
Per piacere non ritardare la segnalazione per scrivere un exploit che la provi,
puoi inviarlo eventualmente con un'altra mail.
</para>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_fix">
<title>Come correggere i bug</title>

<para>
Se pensi di avere le capacità necessarie, sei esortato a provare a correggere
il bug per conto tuo. O forse lo hai già fatto? Leggi per favore
<ulink url="../../tech/patches.txt">questo breve documento</ulink> per scoprire
come far sì che il tuo codice venga incluso in
<application>MPlayer</application>. Le persone sulla mailing list
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">MPlayer-dev-eng</ulink>
ti aiuteranno se avrai dei dubbi.
</para>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_regression_test">
<title>Come fare delle prove retroattive usando Subversion</title>

<para>
Un problema che può capitare delle volte è 'prima funzionava, ora non
funziona più...'.
C'è una procedura passo passo per cercare di scoprire dove il problema si sia
presentato. <emphasis role="bold">Non</emphasis> è destinata agli utenti
casuali.
</para>

<para>
Per prima cosa, dovresti scaricare l'alberatura dei sorgenti di MPlayer da
Subversion. Le istruzioni si possono trovare nella
<ulink url="http://www.mplayerhq.hu/design7/dload.html#svn">sezione su Subversion nella pagina dei download</ulink>.
</para>

<para>
Troverai ora un immagine dell'archivio Subversion dentro alla directory
mplayer/, dal lato client.
Ora aggiorna questa immagine alla data che desideri:
<screen>
cd mplayer/
svn update -r {"2004-08-23"}
</screen>
Il formato della data è YYYY-MM-DD HH:MM:SS.
Usando questo formato di data ti garantisce di essere in grado di estrarre le
path in base alla data in cui sono state applicate, come
nell'<ulink url="http://lists.mplayerhq.hu/pipermail/mplayer-cvslog/">archivio
MPlayer-cvslog</ulink>.
</para>

<para>
Ora procedi come per un normale aggiornamento:
<screen>
./configure
make
</screen>
</para>

<para>
Per chi sta leggendo e non è un programmatore, il modo più veloce di trovare
il punto dove si è presentato il problema è effettuare una ricerca binaria
&mdash; che significa cercare la data della 'rottura' dividendo ripetutamente a
metà l'intervallo di ricerca.
Per esempio, se il problema si è presentato nel 2003, inizia da metà anno,
poi chiediti "C'è già il problema qui?".
Se sì, retrocedi fino al primo di aprile; se no, vai al primo di ottobre, e
così via.
</para>

<para>
Se hai tanto spazio libero sul disco rigido (una compilazione completa occupa
attualmente 100 MB, e circa 300-350 MB se si abilitano i simboli di debug),
copiati la versione funzionante più vecchia prima di aggiornarla; questo ti
farà risparmiare tempo se devi retrocedere.
(Solitamente bisogna eseguire 'make distclean' prima di ricompilare una versione
precedente, perciò se non ne hai una salvata, dovrai ricompilare tutto quanto
quando ritorni alla verisone attuale.)
</para>

<para>
Dopo aver trovato il giorno in cui è nato l'errore, continua a cercare usando
l'archivio mplayer-cvslog (ordinato per data) e un più preciso aggiornamento
su svn con ora, minuto e secondo:
<screen>
svn update -r {"2004-08-23 15:17:25"}
</screen>
Questo ti permetterà di trovare facilmente la patch esatta che lo ha generato.
</para>

<para>
Se trovi la patch che è stata la causa del problema, hai quasi vinto;
fai un rapporto su
<ulink url="http://bugzilla.mplayerhq.hu/">MPlayer Bugzilla</ulink> o
iscriviti a
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users">MPlayer-users</ulink>
e postalo là.
C'è anche la possibilità che l'autore intervenga consigliando una correzione.
Puoi anche controllare attentamente la patch fino a quando la costringi a
rivelarti dove stia il bug :-).
</para>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_report">
<title>Come segnalare i bug</title>

<para>
Per prima cosa per favore prova la versione Subversion di
<application>MPlayer</application> più recente visto che in essa il tuo bug
potrebbe già essere stato risolto. Lo sviluppo avanza velocemente, la maggior
parte dei problemi nei rilasci ufficiali sono segnalati in pochi giorni o poche
ore, perciò parti <emphasis role="bold">solo da Subversion</emphasis> per
segnalare i bug. Ciò include i pacchetti compilati di
<application>MPlayer</application>. Le istruzioni per Subversion si possono
trovare in fondo a
<ulink url="http://www.mplayerhq.hu/dload.html">questa pagina</ulink> o nel
README. Se ciò non ti è stato di aiuto, per favore fai riferimento alla lista
dei <link linkend="bugs">problemi conosciuti</link> e al resto della
documentazione. Se il tuo problema è sconosciuto oppure non risolvibile con le
nostre indicazioni, allora per favore segnala il bug.
</para>

<para>
Per piacere non inviare segnalazioni di bug ai singoli sviluppatori in privato.
Questo è un lavoro di comunità e quindi ci possono essere varie persone
interessate ad esso. Alcune volte altri utenti hanno già avuto i tuoi problemi
e sanno come aggirare un problema anche quando è un bug nel codice di
<application>MPlayer</application>.
</para>

<para>
Per favore descrivi il tuo problema il più dettagliatamente possibile. Fai un
piccolo lavoro di ricerca per evidenziare le circostanze in cui succede il
problema. Il bug si presenta solo in alcune occasioni? E' specifico per certi
file o tipi di file? Capita solo con un codec e è indipendente dal codec? Puoi
riprodurlo con tutti i driver di uscita? Più informazioni fornisci, maggiori
sono le nostre possibilità di correggere il tuo problema. Per favore non
dimenticare di includere anche le importanti informazioni richieste qui sotto,
altrimenti non saremo in grado di diagnosticare il problema.
</para>

<para>
Una guida eccellente e ben scritta su come fare domande in forum pubblici è
<ulink url="http://www.catb.org/~esr/faqs/smart-questions.html">How To Ask Questions The Smart Way</ulink>
(<ulink url="http://xoomer.virgilio.it/army1987k">Come porre domande in modo intelligente</ulink>)
di <ulink url="http://www.catb.org/~esr/">Eric S. Raymond</ulink>.
Ce n'è un'altra chiamata
<ulink url="http://www.chiark.greenend.org.uk/~sgtatham/bugs-it.html">Come
segnalare bug efficacemente</ulink>
di <ulink url="http://www.chiark.greenend.org.uk/~sgtatham/">Simon Tatham</ulink>.
Se segui queste linee guida dovresti poter ottenere aiuto.. Ma per favore tieni
conto che tutti noi seguiamo le mailing list volontariamente nel tempo libero.
Siamo molto occupati e non possiamo garantire che otterrai una soluzione per il
tuo problema o anche solo una risposta.
</para>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_where">
<title>Dove segnalare i bug</title>

<para>
Iscriviti alla mailing list MPlayer-users:
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users"/>
e invia il tuo rapporto sul bug a
<ulink url="mailto:mplayer-users@mplayerhq.hu"/> dove puoi discuterlo.
</para>

<para>
Se preferisci puoi invece usare il nostro bel nuovo
<ulink url="http://bugzilla.mplayerhq.hu/">Bugzilla</ulink>.
</para>

<para>
La lingua di questa lista è l'<emphasis role="bold">inglese</emphasis>.
Per favore segui gli standard delle
<ulink url="http://www.ietf.org/rfc/rfc1855.txt">Linee guida della Netiquette</ulink>
e <emphasis role="bold">non inviare email in HTML</emphasis> ad alcuna delle
nostre mailing list. Verrai semplicemente ignorato bandito. Se non sai cosa sia
una mail in HTML o perché sia il male, leggi questo
<ulink url="http://expita.com/nomime.html">buon documento</ulink>.
Ti spiega tutto in dettaglio e contiene le istruzioni per disabilitare l'HTML.
Inoltre nota che non rispondiamo in CC (copia carbone) alle persone, quindi è
una buona idea iscriversi per poter effettivamente ricevere la risposta.
</para>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_what">
<title>Cosa riportare</title>

<para>
Potrebbe servire che tu includa nel tuo rapporto sul bug registrazioni,
configurazioni o file di esempio. Se alcune di queste cose sono abbastanza
grandi, è meglio caricarle sul nostro
<ulink url="ftp://upload.mplayerhq.hu/MPlayer/incoming/">server FTP</ulink> in
un formato compresso (si preferiscono gzip e bzip2) e inserisci nel rapporto
solo il nome e il percorso del file. Le nostre mailing list hanno un limite
sulla dimensione di 80k, se hai qualcosa di più grande devi comprimerlo o
caricarlo.
</para>

<!-- ********** -->

<sect2 id="bugreports_system">
<title>Informazioni di Sistema</title>

<para>
<itemizedlist>
<listitem><para>
  La tua distribuzione Linux o il sistema operativo e la versione, per es.:
  <itemizedlist>
    <listitem><para>Red Hat 7.1</para></listitem>
    <listitem><para>Slackware 7.0 + pacchetti sviluppo dalla 7.1 ...</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
  La versione del kernel:
  <screen>uname -a</screen>
</para></listitem>
<listitem><para>
  La versione di libc:
  <screen>ls -l /lib/libc[.-]*</screen>
</para></listitem>
<listitem><para>
  Le versioni di gcc e di ld:
  <screen>
gcc -v
ld -v<!--
  --></screen>
</para></listitem>
<listitem><para>
  La versione di binutils:
  <screen>as --version</screen>
</para></listitem>
<listitem><para>
  Se hai dei problemi con la modalità a schermo intero:
  <itemizedlist>
    <listitem><para>Il tipo di gestore di finestre e la versione</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
  Se hai dei problemi con XVIDIX:
  <itemizedlist>
  <listitem><para>
    La profondità colore di X:
    <screen>xdpyinfo | grep "depth of root"</screen>
  </para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
  Se i bug sono solo nella GUI:
  <itemizedlist>
    <listitem><para>La versione di GTK</para></listitem>
    <listitem><para>La versione di GLIB</para></listitem>
    <listitem><para>La situazione della GUI in cui il bug si presenta</para></listitem>
  </itemizedlist>
</para></listitem>
</itemizedlist>
</para>
</sect2>

<!-- ********** -->

<sect2 id="bugreports_hardware">
<title>Hardware e driver</title>

<para>
<itemizedlist>
<listitem><para>
  Informazioni CPU (questo funziona solo in Linux):
  <screen>cat /proc/cpuinfo</screen>
</para></listitem>
<listitem><para>
  La marca della scheda video ed il modello, per es.:
  <itemizedlist>
    <listitem><para>ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM</para></listitem>
    <listitem><para>Matrox G400 DH 32MB SGRAM</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
  Il tipo di driver video &amp; la versione, per es.:
  <itemizedlist>
    <listitem><para>X built-in driver</para></listitem>
    <listitem><para>nVidia 0.9.623</para></listitem>
    <listitem><para>Utah-GLX CVS 2001-02-17</para></listitem>
    <listitem><para>DRI from X 4.0.3</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
  Il tipo di scheda video &amp; driver, per es.:
  <itemizedlist>
    <listitem><para>Creative SBLive! Gold with OSS driver from oss.creative.com</para></listitem>
    <listitem><para>Creative SB16 with kernel OSS drivers</para></listitem>
    <listitem><para>GUS PnP with ALSA OSS emulation</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
  Se hai dei dubbi includi l'emissione di <command>lspci -vv</command> su
  sitemi Linux.
</para></listitem>
</itemizedlist>
</para>
</sect2>

<!-- ********** -->

<sect2 id="bugreports_configure">
<title>Problemi del configure</title>

<para>
Se ricevi degli errori eseguendo <command>./configure</command>, o se fallisce
la rilevazione automatica di qualcosa, leggi <filename>configure.log</filename>.
Puoi travarci la soluzione, per esempio varie versioni della stessa libreria
mescolate sul tuo sistema, o hai dimenticato di installare il pacchetto di
scviluppo (quelli con il suffisso -dev). Se pensi ci sia un bug, includi
<filename>configure.log</filename> nel tuo rapporto sul bug stesso.
</para>
</sect2>

<sect2 id="bugreports_compilation">
<title>Problemi di compilazione</title>

<para>
Per favore includi questi file:
<itemizedlist>
  <listitem><para>config.h</para></listitem>
  <listitem><para>config.mak</para></listitem>
</itemizedlist>
</para>
</sect2>

<!-- ********** -->

<sect2 id="bugreports_playback">
<title>Problemi in riproduzione</title>

<para>
Per favore includi l'output di <application>MPlayer</application> al livello
di verbosità 1, ma ricorda di
<emphasis role="bold">non troncare tale output</emphasis> quando lo incolli
nella tua mail. Agli sviluppatori servono tutti i messaggi per diagnosticare
correttamente un problema. Puoi redirigere l'output in un file in questo modo:
<screen>
mplayer -v <replaceable>options</replaceable> <replaceable>filename</replaceable> &gt; mplayer.log 2&gt;&amp;1
</screen>
</para>

<para>
Se il tuo problema è specifico per uno o più file,
allora per favore carica quello/i incriminato/i in:
<ulink url="ftp://upload.mplayerhq.hu/MPlayer/incoming/"/>
</para>

<para>
Carica anche un piccolo file di testo con lo stesso nome di base del file, con
un'estensione .txt. Descrivi il problema che hai con quel particolare file e
includi il tuo indirizzo email così come ll'ouptut di
<application>MPlayer</application> all livello 1 di verbosità.
Solitamente i primi 1-5 MB di un file sono abbastanza per riprodurre il
problema, ma per esserne certi ti chiediamo di fare:
<screen>
dd if=<replaceable>tuo_file</replaceable> of=<replaceable>piccolo_file</replaceable> bs=1024k count=5
</screen>
Questo copierà i primi 5 mega di '<emphasis role="bold">tuo_file</emphasis>'
e li scriverà su '<emphasis role="bold">piccolo_file</emphasis>'. Dopo prova
di nuovo con il file piccolo e se il problema si presenta ancora per noi è
sufficiente. Per piacere <emphasis role="bold">non inviare mai</emphasis> questi
file via mail! Caricali sull'FTP, e manda solo il percorso/nome del file nel
server FTP. Se il file è raggiungibile in rete, allora è sufficiente inviare
l'URL <emphasis role="bold">preciso</emphasis>.
</para>
</sect2>

<!-- ********** -->

<sect2 id="bugreports_crash">
<title>Crash</title>

<para>
Devi eseguire <application>MPlayer</application> dentro a <command>gdb</command>
e mandarci l'output completo oppure se hai un <filename>core</filename> dump
del crash puoi ricavare informazioni utili dal Core file. Qui spiega come:
</para>


<sect3 id="bugreports_debug">
<title>Come conservare le informazioni di un crash riproducibile</title>

<para>
Ricompila <application>MPlayer</application> con il codice di debug abilitato:
<screen>
./configure --enable-debug=3
make
</screen>
e poi esegui <application>MPlayer</application> da dentro gdb usando:
<screen>gdb ./mplayer</screen>
Ora sei dentro gdb, Scrivi:
<screen>
run -v <replaceable>opzioni-per-mplayer</replaceable> <replaceable>nomefile</replaceable>
</screen>
e riproduci il tuo crash. Appena ci sei riuscito, gdb ti ripresenterà il
prompt dei comandi, dove devi digitare
<screen>
bt
disass $pc-32 $pc+32
info all-registers
</screen>
</para>
</sect3>


<sect3 id="bugreports_core">
<title>Come ricavare informazioni significative da un core dump</title>

<para>
Genera il file di comandi seguente:
<screen>
bt
disass $pc-32 $pc+32
info all-registers
</screen>
Poi lancia semplicemente questo comando:
<screen>
gdb mplayer --core=core -batch --command=file_comandi &gt; mplayer.bug
</screen>
</para>
</sect3>
</sect2>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_advusers">
<title>So quello che sto facendo...</title>

<para>
Se hai generato un rapporto adeguato sul bug seguendo i passi suddetti e sei
certo che sia un bug in <application>MPlayer</application> e non un problema
del compilatore o di un file danneggiato, se hai già letto la documentazione
non sei riuscito a trovare una soluzione, i tuoi driver audio sono OK, allora
potresti voler iscriverti alla lista MPlayer-advusers e inviare lì il tuo
rapporto per ottenere una riposta migliore e più rapida.
</para>

<para>
Renditi per favore conto che se invii lì domande da niubbo o domande che hanno
già una risposta nel manuale, sarai ignorato o alimenterai un flame, invece
di ottenere una risposta adeguata. Non generare flame contro di noi e iscriviti
a -advusers solo se sai davvero cosa stai facendo e senti di essere un utente
avanzato di <application>MPlayer</application> o uno sviuppatore. Se rientri in
questi ranghi non dovrebbe esserti difficile scoprire come iscriverti...
</para>
</sect1>

</appendix>
