# Appendice B - Come segnalare i bug

Buoni bug-report sono sempre un valido contributo nello sviluppo di qualsiasi progetto software. Ma proprio come lo scrivere del buon software, anche il fare una buona segnalazione di un problema include del lavoro. Per favore, considerate che la maggior parte degli sviluppatori è molto occupata e riceve una quantita' oscena di email. Quindi sebbene il vostro feedback sia importantissimo per migliorare MPlayer e molto apprezzato, dovete capire che ci dovete fornire tutte le informazioni che richiediamo e seguire esattamente le istruzioni in questo documento.

## B.1 Come risolvere i bug

Se pensate di avere le capacita' necessarie siete invitati a provare a risolvere voi stessi il bug. O forse lo avete gia' fatto? Leggete questo breve testo (in inglese) per scoprire come avere il proprio codice incluso in MPlayer. Le persone sulla mailing list mplayer-dev-eng vi potranno aiutare se avete dei problemi.

## B.2 Come segnalare i bug

Prima, prova l'ultima versione CVS di mplayer, forse il tuo bug è già stato corretto. Lo sviluppo avanza molto velocemente, la maggior parte dei problemi presenti nelle versioni ufficiali sono segnalati entro ore o minuti, quindi utilizza solo la versione CVS per segnalare i bug. Questo include anche le distribuzioni binarie di MPlayer. Non segnalare bug utilizzando le versioni RPM o Debian. Le istruzioni per scaricare tramite CVS si trovano in fondo a questa pagina o nel file README. Se questo non è d'aiuto fai riferimento alla lista dei bug noti, ed al resto della documentazione. Se il tuo problema non è conosciuto o non si risolve con le nostre istruzioni, allora per favore segnala il bug.

## B.3 Dove si segnalano i bug?

Iscriviti alla mailing list mplayer-users:
http://mplayerhq.hu/mailman/listinfo/mplayer-users
e manda la tua segnalazione a:
mplayer-users@mplayerhq.hu
Per favore nota che noi non manderemo le vostre mail in CC (carbon-copy) nella lista, quindi è una buona idea iscriversi alla mailing list per ricevere veramente una risposta.

Per favore non mandare segnalazioni di bug privatamente a singoli sviluppatori. Il nostro è un lavoro di comunità e quindi potrebbero esserci più persone interessate. Inoltre a volte altri utenti hanno già avuto il tuo stesso problema e hanno una soluzione per evitarlo anche quando è un bug del codice di mplayer. La lingua di questa lista è l' Inglese

Per favore descrivi il tuo problema in dettaglio, con esempi ecc, e non dimenticare di includere queste importanti informazioni:

## B.4 Cosa segnalare?

Potrebbe essere necessario allegare file di log, di configurazione o esempi alla tua segnalazione. Se questi sono grossi, è preferibile caricarli sul nostro server FTP in formato compresso (preferibilmente gzip o bzip) ed includere solo il percorso ed il nome del file nella segnalazione del bug. Le nostre mailing list hanno un limite di 80k sulla dimensione dei messaggi, se hai qualcosa di più grosso devi comprimerlo o caricarlo.

### B.4.1 Informazioni sul sistema

- La tua distribuzione Linux o il tuo sistema operativo indicando la versione es.:
  - RedHat 7.1
  - Slackware 7.0 + pacchetti di sviluppo dalla 7.1 ...
- versione kernel:
  `uname -a`
- versione libc:
  `ls -l /lib/libc[.-]*`
- versione X:
  `X -version`
- versione gcc e ld:
  `gcc -v
  ld -v`
- versione binutils:
  `as --version`
- Se hai problemi con la modalità a pieno schermo:
  - Tipo e versione del window manager
- Se hai problemi con XVIDIX:
  - Profondità di colore di X:
    `xdpyinfo | grep "depth of root"`
- se solo la GUI è difettosa :
  - versione GTK
  - versione GLIB
  - versione libpng
  - situazione della GUI in cui si manifesta il bug

### B.4.2 Hardware e driver

- informazioni sulla CPU (questo funziona solo su Linux):
  `cat /proc/cpuinfo`
- Produttore e modello della scheda video, es.:
  - chip ASUS V3800U: nVidia TNT2 Ultra pro 32MB SDRAM
  - Matrox G400 DH 32MB SGRAM
- Tipo e versione del driver video, es.:
  - driver di X
  - nvidia 0.9.623
  - Utah-GLX CVS 2001-02-17
  - DRI di X 4.0.3
- Tipo e driver della scheda sonora, es.:
  - Creative SBLive! Gold con driver OSS da oss.creative.com
  - Creative SB16 con driver OSS del kernel
  - GUS PnP con emulazione OSS di ALSA
- se non sei sicuro manda l'output di lspci -v

### B.4.3 Problemi con configure

Se hai errori durante l'esecuzione di `./configure`, o il rilevamento di qualche elemento non ha successo, leggi `configure.log`: potresti tovarci la soluzione, ad esempio più versioni della stessa libreria presenti nel sistema, oppure hai dimenticato di installare il pacchetto di sviluppo (quello con il suffisso -dev). Se pensi sia un bug, includi `configure.log` nella tua segnalazione.

### B.4.4 Problemi di compilazione

Per favore includi questi file:

- `config.h`
- `config.mak`

Includi questi file solo se la compilazione fallisce in una di queste directory:

- `Gui/config.mak`
- `libvo/config.mak`
- `libao2/config.mak`

### B.4.5 Problemi in riproduzione

Per favore includi l'output di mplayer al livello di verbosità 1 ma ricordati di non tagliare l'output quando lo incolli nella tua mail. Gli sviluppatori hanno bisogno di tutti i messaggi per scoprire il problema. Puoi ridirezionare l'output in un file in questo modo:

`mplayer -v [opzioni] [nomefile] > mplayer.log 2>&1`

Se il problema è specifico ad uno o più file, allora per favore mandaci il file a:

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

Manda anche un piccolo file di testo con lo stesso nome del tuo file, con estensione .txt. Descrivi qui il tuo problema e includi l'output del comando mplayer -v file e il tuo indirizzo e-mail.
Di solito i primi 1-5 MB del file sono abbastanza per riprodurre il problema, ma per esserne sicuri ti chiediamo di fare questo:

`dd if=tuofile of=piccolofile bs=1024k count=5`

Questo taglierà i primi 5MB di 'tuofile' e lo salverà in 'piccolofile'. Quindi riprova con il file piccolo, e se il bug è ancora presente allora per noi è abbastanza quest'ultimo.
Per favore non mandare mai questi file via mail. Caricalo, e manda solo il percorso/nomefile su FTP. Se il file è presente sulla rete allora è sufficiente mandare l' URL esatta.

### B.4.6 Crash

Devi eseguire MPlayer in `gdb` ed inviarci l'output completo o, se hai un core dump del crash, puoi estrarre delle informazioni utili dal file `Core`. Procedi cosi:

### B.4.6.1 Come conservare informazioni su un crash riproducibile

Ri-compila mplayer col codice di debug abilitato:

`./configure --enable-debug=3
make`

quindi esegui mplayer all'interno di gdb, in questo modo:

`# gdb mplayer`

Ora sei all'interno di gdb. Scrivi:

`> run -v [opzioni-per-mplayer] nomefile`

e riproduci il tuo crash. Appena fatto, gdb ti rimanderà al prompt, dove devi scrivere

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

e mandaci l'output completo.

#### B.4.6.2 Come estrarre informazioni significative da un core dump

Per favore crea il seguente file di comandi:

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

Quindi semplicemente esegui la seguente linea di comando:

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

## B.5 So quello che sto facendo...

Se hai fatto un appropriata segnalazione seguendo i passi sopra, e sei sicuro che sia un bug di mplayer, non un problema del compilatore o un file danneggiato, hai già letto la documentazione e non hai trovato la soluzione, i tuoi driver del suono sono ok, allora puoi voler iscriverti alla lista mplayer-advusers e mandare lì la tua segnalazione per avere una migliore e più rapida risposta. Ma sei avvisato: se mandi domande da newbie o con risposte presenti nella documentazione, sarai ignorato invece di avere una risposta appropriata. Quindi non ti arrabbiare con noi, iscriviti a -advusers solo se sai veramente cosa stai facendo e ti senti un utente o sviluppatore avanzato di mplayer. Se hai queste caratteristiche non ti dovrebbe essere difficile scoprire come iscriverti...