Come segnalare un bug in Debian usando reportbug
Si raccomanda l'uso del programma
reportbug per segnalare un bug in Debian. Per installarlo e
avviarlo è sufficiente usare:
# aptitude install reportbug
$ reportbug
Il programma guida passo dopo passo nel processo di scrittura della segnalazione.
Se si hanno domande a cui le indicazioni di reportbug non danno risposta si può fare riferimento al resto di questa documentazione oppure chiedere alla mailing list Debian user.
Come segnalare un bug in Debian usando una e-mail (e uso avanzato di reportbug)
Cose importanti da sapere prima di spedire
A quale pacchetto attribuire la segnalazione di un bug?
Si deve sapere a quale pacchetto attribuire la propria segnalazione di un bug. Si veda questo esempio per sapere come trovare questa informazione (questa informazione è utile anche per vedere se il bug è già stato segnalato).
Se non si riesce a determinare verso quale pacchetto segnalare il bug, spedire una e-mail alla mailing list Debian user chiedendo consigli.
Se il problema non è legato a un solo pacchetto ma a un generico servizio Debian, ci sono parecchi pseudo-pacchetti o anche mailing list tramite le quali è possibile effettuare la segnalazione.
Il bug è già stato segnalato?
Prima di inviare la segnalazione si deve controllare se il bug è già stato segnalato; si possono vedere i bug già segnalati per un pacchetto specifico usando l'opzione pacchetto nel modulo di ricerca. Se è già presente la segnalazione del bug con numero #<numero> è opportuno aggiungere i propri commenti spedendo una e-mail all'indirizzo <numero>@bugs.debian.org anziché inserire la segnalazione di un nuovo bug.
Inviare una segnalazione per ogni bug
Non segnalare più bug slegati, soprattutto se relativi a pacchetti differenti, in un unico messaggio.
Non segnalare il bug agli sviluppatori
Se si segnala un bug in Debian, non inviare una copia del bug anche a chi sviluppa il programma a monte; è possibile che il bug sia presente solo nel pacchetto per Debian. Se necessario, sarà il manutentore del pacchetto a informare gli sviluppatori del bug.
Spedire la segnalazione di bug via e-mail
È possibile segnalare un bug in Debian spedendo un'e-mail a
submit@bugs.debian.org,
come descritto in seguito. reportbug (vedi
sopra) prepara e-mail nel formato corretto, si consiglia di
utilizzarlo.
Intestazioni
Come ogni e-mail, si deve mettere un chiaro e preciso Oggetto
fra le intestazioni principali della e-mail. L'oggetto inserito diventa il
titolo iniziale del bug nel sistema di gestione perciò è importante che sia
significativo.
Per spedire una copia della propria segnalazione ad altri (ad esempio a delle liste di messaggi), non si devono usare le solite intestazioni delle e-mail, ma un metodo differente, descritto in seguito.
Pseudo-intestazioni
La prima parte della segnalazione è costituita dalle pseudo-intestazioni le quali contengono informazioni sul pacchetto e in quale versione si applica la segnalazione. La prima riga del corpo del messaggio deve sempre essere una pseudo-intestazione come la seguente:
Package: <nomepacchetto>
sostituire <nomepacchetto> con il nome del pacchetto
con il bug.
La seconda riga del messaggio deve essere:
Version: <versionepacchetto>
sostituire <versionepacchetto> con la versione del
pacchetto. Non va incluso null'altro in questa riga poiché il sistema si
affida a quanto scritto per capire quali versioni sono affette dal bug.
È necessario fornire una corretta riga Package nella
pseudo-intestazione affinché il sistema di gestione dei bug possa inviare il
messaggio allo sviluppatore del pacchetto. Si veda questo esempio per informazioni su come rintracciare questo dato.
Per altre pseudo-intestazioni valide, si veda Altre pseudo-intestazioni.
Corpo della segnalazione
Si consiglia di includere nella segnalazione:
- L'esatto e completo testo di ogni messaggio di errore stampato a video o nel log. Ciò è molto importante!
- Descrivere esattamente le operazioni effettuate per riprodurre il problema.
- Una descrizione del comportamento incorretto: esattamente quale comportamento ci si aspettava, e cosa si è osservato. Una trascrizione della prova fatta è un buon metodo per mostrare ciò.
- Una correzione suggerita, o anche una patch, se disponibile.
- Dettagli della configurazione del programma con il bug. Includere il testo completo dei suoi file di configurazione.
- Le versioni di ogni pacchetto da cui dipende il pacchetto che riporta il problema.
- Quale versione del kernel è in uso (scrivere
uname -a), la versione della libreria C (scriverels -l /lib/libc.so.6odpkg -s libc6 | grep ^Version), e ogni altro dettaglio riguardo il sistema Debian che sembra utile. Per esempio, nel caso di un problema con uno script Perl, si dovrebbe fornire la versione del binarioperl
(scrivereperl -vodpkg -s perl | grep ^Version:). - Dettagli relativi dell'hardware del sistema. Se si segnala un problema con il driver di un device, elencare tutti i componenti hardware del sistema, poiché i problemi sono spesso causati da conflitti fra IRQ e I/O.
- Se reportbug
è installato, può essere utile anche l'output di
reportbug -q --template -T none -s none -S normal -b --list-cc none -q <pacchetto>, dato che contiene l'output di alcuni script di manutenzione e le informazioni sulla versione.
Includere ogni dettaglio che sembra rilevante, non ci sono pericoli nello scrivere una segnalazione molto lunga includendo molte informazioni. Se sono piccoli, includere nella segnalazione tutti i file utilizzati per riprodurre il problema (se i file sono di grosse dimensioni, pubblicarli su un sito web, se possibile).
Per maggiori informazioni su come aiutare gli sviluppatori a risolvere il problema, si consiglia la lettura del How to Report Bugs Effectively.
Esempio di segnalazione di un bug
Una segnalazione, con intestazione e pseudo-intestazione, assomiglia a quanto scritto sotto, ma è opportuno scriverla in inglese.
To: submit@bugs.debian.org From: diligent@testing.linux.org Subject: Hello stampa `goodbye' Package: hello Version: 1.3-16 Quando invio il programma `hello' senza argomenti dall'interprete dei comandi normale, questo stampa la stringa `goodbye', piuttosto che `hello, word'. Ecco l'esempio $ hello goodbye $ /usr/bin/hello goodbye $ Suggerirei di cambiare la stringa stampata nel file hello.c correggendola. Sto usando Debian GNU/Linux 2.2, kernel 2.2.17-pre-patch-13 e libc6 2.1.3-10.
Invio di copie di segnalazioni ad altri indirizzi
Può capitare di dover mandare una copia della segnalazione a qualcuno
diverso da debian-bugs-dist e dal manutentore del pacchetto,
che sono i normali destinatari del messaggio.
Si potrebbe fare inserendo gli indirizzi in più nel campo CC della e-mail,
però questi non riceverebbero il numero associato alla segnalazione nei
campi Reply-To e Subject. Se gli altri
destinatari risponderanno al messaggio useranno l'indirizzo
submit@bugs.debian.org e il loro messaggio diventa una
nuova segnalazione di bug. Ciò genera molte segnalazioni duplicate.
Il modo corretto di fare questo è di usare il campo
X-Debbugs-CC dell'intestazione. Aggiungere una riga
simile a questa alla propria intestazione:
X-Debbugs-CC: other-list@cosmic.edu
Questo fa sì che il sistema di gestione dei bug mandi una copia della
segnalazione agli indirizzi specificati nel campo X-Debbugs-CC
oltre che a debian-bugs-dist.
Evitare di inviare questo tipo di copie verso altre segnalazioni di bug;
interferirebbero con i controlli che prevengono i mail loop. C'è
anche un'altra piccola controindicazione nell'uso di X-Debbugs-CC
per questo scopo, dato che il numero del bug aggiunto da questo meccanismo
viene semplicemente sostituito da uno nuovo; è preferibile invece una normale
intestazione CC.
Questa caratteristica può essere ben combinata con l'invio a
quiet; vedi oltre.
Altre pseudo-intestazioni
Livelli di gravità
Una segnalazione può riguardare un bug serio oppure la semplice richiesta di una aggiunta ad un pacchetto, quindi è possibile indicare il livello di gravità della segnalazione. Questo valore non è obbligatorio e gli sviluppatori assegneranno il livello adeguato alle segnalazioni sprovviste.
Per assegnare un livello di gravità, inserire una riga come questa fra le pseudo-intestazioni:
Severity: <qualsiasi>
sostituendo <qualsiasi> con uno dei livelli validi, come descritto nella documentazione tecnica.
Aggiunta di tag
Si possono assegnare dei tag durante la creazione di una segnalazione. Ad
esempio, se si sta includendo una patch alla segnalazione, si può pensare di
inserire il tag patch. Questo non è obbligatorio, e il manutentore
aggiungerà il tag al momento opportuno.
Per aggiungere dei tag, si inserisca una riga come questa nella pseudo-intestazione:
Tags: <tags>
sostituendo <tags> con uno o più dei tag disponibili descritti nella documentazione tecnica. Tag multipli vanno separati con virgole, spazi o entrambi.
User: <username> Usertags: <usertags>
sostituendo <usertags> con uno o più usertag. Tag multipli vanno separati con virgole, spazi o entrambi. Se si specifica un <username>, il tag user sarà impostato con esso. Altrimenti, l'indirizzo di posta elettronica del mittente sarà utilizzato come username.
Forwarded: foo@example.com
marca il bug appena segnalato come inoltrato a foo@example.com. Si veda Registrare l'inoltro della segnalazione nella documentazione per gli sviluppatori per i dettagli.
Owner: foo@example.com
Indica che foo@example.com è ora responsabile della soluzione di questo bug. Si veda Cambiare l'assegnatario del bug nella documentazione degli sviluppatori per i dettagli.
Source: foopackage
L'equivalente di Package: per i bug presenti nel pacchetto
sorgente di foopackage; nel caso di molti bug presenti in molti pacchetti non
usare questa opzione.
Infine, se il proprio MUA non consente di modificare le intestazioni, si può impostare
le varie intestazioni X-Debbugs- nelle pseudo-intestazioni.
Altre informazioni
Altri indirizzi per le segnalazioni (segnalazioni minori o segnalazioni multiple massive)
Se il bug non è grave (ad esempio, se c'è una svista nella documentazione o
un banale problema di compilazione), scegliere il giusto livello di gravità e
spedire il tutto a maintonly@bugs.debian.org invece che a
submit@bugs.debian.org. maintonly invia la
segnalazione solo a chi manutiene il pacchetto e non la invia alle mailing
list del BTS.
Se si inviano molte segnalazioni in una volta, si dovrebbe assolutamente
utilizzare maintonly@bugs.debian.org così non si provoca
troppo traffico ridondante sulle mailing list del BTS. Prima di inviare
molte segnalazioni simili si dovrebbe comunicare le proprie intenzioni a
debian-bugs-dist.
Per inviare al sistema di gestione dei bug per la segnalazione
di un bug che il manutentore già conosce si può utilizzare
quiet@bugs.debian.org. Le segnalazioni spedite a
quiet@bugs.debian.org non sono inoltrate a nessuno,
vengono solo registrate.
Quando si utilizzano indirizzi differenti per segnalare bug, il sistema di
gestione dei bug imposta il Reply-To di ogni messaggio inoltrato
così le risposte saranno automaticamente elaborate allo stesso modo della
segnalazione originaria. Ciò significa che, per esempio, le risposte a
maintonly andranno a nnn-maintonly@bugs.debian.org
invece che a nnn@bugs.debian.org, a meno che ovviamente
qualcuno non sostituisca questi campi manualmente.
Riconoscimenti
Normalmente il sistema di tracciamento dei bug spedisce un'e-mail come
ricevuta quando si invia una segnalazione di bug o si forniscono spiegazioni
addizionali ad un bug esistente. Per evitare queste e-mail, inserire
X-Debbugs-No-Ack nell'intestazione o nelle pseudo-intestazioni
nel messaggio (il contenuto dell'intestazione non ha importanza). Se si
invia una nuova segnalazione con questa intestazione, si dovrà usare
l'interfaccia web per sapere quale numero è stato assegnato al bug.
Notare che questa intestazione non elimina le ricevute provenienti dal
mailserver control@bugs.debian.org, visto che tali ricevute
potrebbero contenere dei messaggi d'errore che andrebbero letti e
considerati.
Lotta allo spam e mail perse
Il sistema di tracciamento dei bug dispone di un insieme abbastanza
complesso di regole per evitare che lo spam arrivi al BTS. Nonostante
gli sforzi, si possono comunque verificare dei falsi positivi. Se si ha
il sospetto che un proprio messaggio sia stato riconosciuto come un falso
positivo, è possibile contattare owner@bugs.debian.org per
chiedere assistenza. Un'altra causa comune per la quale le mail non
raggiungono il BTS è l'uso di indirizzi che corrispondono con FROM_DAEMON
di procmail, tra questi ci sono gli indirizzi simili a
mail@esempio.com. Per verificare se il proprio indirizzo
corrisponde con FROM_DAEMON, si veda
procmailrc(5) e, se corrisponde, inviare nuovamente la mail da un
indirizzo che non corrisponda con FROM_DAEMON.
Pacchetti sconosciuti o segnalazioni senza la specifica
Package
Se il sistema di tracciamento non conosce chi sia il manutentore
del pacchetto, gira la segnalazione alla lista di messaggi
debian-bugs-dist anche se era stato usato il
maintonly.
Quando si invia a maintonly@bugs.debian.org o a
nnn-maintonly@bugs.debian.org si deve essere certi
che la segnalazione sia assegnata al pacchetto corretto, inserendo la voce
Package all'inizio della pseudo-intestazione o usando
il robot control@bugs.debian.org
per (ri)assegnarla.
Usare dpkg per trovare il pacchetto e
la versione per la segnalazione
Quando si utilizza reportbug per segnalare un bug in un
comando, per esempio grep, il seguente comando seleziona il
giusto pacchetto e scrive la segnalazione in modo corretto: reportbug
--file $(which grep)
Si può scoprire in quale pacchetto sia distribuito usando il comando
dpkg --search. Per sapere la versione di un pacchetto
installato si possono usare i comandi dpkg --list e dpkg
--status.
Per esempio
$ which apt-get /usr/bin/apt-get $ type apt-get apt-get is /usr/bin/apt-get $ dpkg --search /usr/bin/apt-get apt: /usr/bin/apt-get $ dpkg --list apt Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii apt 0.3.19 Advanced front-end for dpkg $ dpkg --status apt Package: apt Status: install ok installed Priority: standard Section: base Installed-Size: 1391 Maintainer: APT Development Team <deity@lists.debian.org> Version: 0.3.19 Replaces: deity, libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7) Provides: libapt-pkg2.7 Depends: libapt-pkg2.7, libc6 (>= 2.1.2), libstdc++2.10 Suggests: dpkg-dev Conflicts: deity Description: Advanced front-end for dpkg This is Debian's next generation front-end for the dpkg package manager. It provides the apt-get utility and APT dselect method that provides a simpler, safer way to install and upgrade packages. . APT features complete installation ordering, multiple source capability and several other unique features, see the Users Guide in /usr/doc/apt/guide.text.gz
Altri comandi e pacchetti utili
Il comando querybts, contenuto anch'esso nel pacchetto reportbug, fornisce una comoda interfaccia testuale al sistema di tracciamento dei bug.
Gli utenti di emacs possono anche usare il comando debian-bug fornito dal
pacchetto debian-el. Quando richiamato tramite M-x debian-bug,
richiede tutte le informazioni necessarie, similarmente a
reportbug.
Altre pagine BTS (sistema di gestione delle anomalie)
- Pagina principale del sistema di tracciamento.
- Istruzioni per segnalare le anomalie.
- Accedere ai log del sistema in maniera diversa dal WWW.
- Informazioni per sviluppatori sul sistema di tracciamento delle anomalie.
- Informazioni agli sviluppatori sulla manipolazione delle segnalazioni tramite l'interfaccia e-mail.
- Carta di riferimento per il mailserver.
- Richiedere segnalazioni via e-mail.
Debian BTS administrators <owner@bugs.debian.org>
Debian bug tracking system
Copyright © 1999 Darren O. Benham, 1997, 2003 nCipher Corporation Ltd,
1994-1997 Ian Jackson.
