Come segnalare un bug in Debian con reportbug
Per segnalare un bug in Debian si raccomanda di usare il programma
reportbug
.
Sulla maggior parte dei sistemi reportbug è già installato. Se non fosse disponibile, può essere installato utilizzando lo strumento di gestione dei pacchetti disponibile sul proprio sistema.
reportbug può essere avviato dalla sezione Sistema del menù oppure
eseguendo reportbug
dalla riga di comando.
Come segnalare un bug in Debian con una e-mail (e uso avanzato di reportbug)
Cose importanti da conoscere prima di inviare la segnalazione
A quale pacchetto la segnalazione attribuisce un bug?
Si deve conoscere a quale pacchetto la propria segnalazione attribuisce un bug. Per sapere come trovare questa informazione, vedere questo esempio (questa informazione è utile anche per verificare se il bug è stato già segnalato).
Se non si riesce a determinare verso quale pacchetto segnalare il bug, spedire una e-mail alla mailing list Debian user chiedendo un consiglio.
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 è stato già segnalato?
Prima di inviare la segnalazione di un bug si deve controllare se lo
stesso bug è stato già comunicato; per consultare i bug già aperti per
uno specifico pacchetto usare l'opzione
pacchetto
nel modulo di ricerca. Se il bug è stato già
comunicato nella segnalazione numero #<numero>, è
opportuno aggiungere i propri commenti inviando una e-mail all'indirizzo
<numero>@bugs.debian.org anziché inserire una nuova
segnalazione di un bug.
Inviare una segnalazione per ogni bug
Non segnalare più bug slegati in un unico messaggio, soprattutto se relativi a pacchetti differenti.
Non segnalare il bug agli sviluppatori
Quando 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.
Inviare segnalazioni di bug via e-mail
È possibile segnalare un bug in Debian spedendo un'e-mail a
[email protected]
,
come descritto in seguito. reportbug
(vedi
sopra) prepara e-mail nel formato corretto, si raccomanda di
utilizzarlo!
Intestazioni
Come per ogni e-mail, è necessario 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 che la riga Package
della pseudo-intestazione
sia corretta affinché il sistema di gestione dei bug possa inviare il
messaggio a chi manutiene il pacchetto. Si veda questo esempio per informazioni su come rintracciare questo dato.
Esistono 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 in modo da 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.
- La versione del kernel in uso (usare il comando
uname -a
), la versione della libreria C (usarels -l /lib/*/libc.so.6
oapt show 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
(usareperl -v
odpkg -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 inserire anche l'output di
reportbug --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: [email protected] From: [email protected] Subject: Hello stampa `goodbye' Package: hello Version: 1.3-16 Quando eseguo 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 da chi manutiene il pacchetto,
che sono i normali destinatari del messaggio.
Si potrebbe inserire gli indirizzi in più nel campo CC della e-mail,
però queste copie non avranno il numero associato alla segnalazione nei
campi Reply-To
e Subject
. Inoltre, se gli
altri destinatari risponderanno al messaggio spediranno all'indirizzo
[email protected]
e quindi il loro messaggio di risposta
diventa una nuova segnalazione di bug. Ciò genera molte segnalazioni
duplicate.
Il modo corretto per inviare copie della segnalazione è usare
la pseudo-intestazione X-Debbugs-CC
. Aggiungere una riga
simile a questa nella pseudo-intestazione della segnalazione:
X-Debbugs-CC: [email protected]
Questo fa sì che il sistema di gestione dei bug spedisca una copia della
segnalazione agli indirizzi specificati nel campo X-Debbugs-CC
oltre che a debian-bugs-dist
.
Per inviare copie del messaggio a più indirizzi è sufficiente inserire
tutti gli indirizzi nella riga X-Debbugs-CC
separandoli con
una virgola.
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 inviare una copia della segnalazione verso altre segnalazioni, il
numero del bug aggiunto da questo meccanismo viene semplicemente sostituito
da uno nuovo; è preferibile usare 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, è 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: <gravità>
sostituendo <gravità> con uno dei livelli validi, come descritto nella documentazione tecnica.
Aggiunta di tag
È possibile 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, inserire una riga come questa nella pseudo-intestazione:
Tags: <tag>
sostituendo <tag> con uno o più dei tag disponibili descritti nella documentazione tecnica. Tag multipli vanno separati con virgole, spazi o entrambi.
User: <nome utente> Usertags: <tag utente>
sostituendo <tag utente> con un o più tag utente. Tag multipli vanno separati con virgole, spazi o entrambi. Se si specifica un <nome utente>, il tag utente sarà associato con esso. Altrimenti, l'indirizzo di posta elettronica del mittente sarà utilizzato come nome utente.
È possibile impostare più tag utente al momento dell'invio della segnalazione inserendo più pseudo-intestazioni User, ogni pseudo-intestazione Usertags imposta un tag utente relativa alla pseudo-intestazione User precedente. Ciò è particolarmente utile per impostare i tag utente per un gruppo con più utenti, per impostare i tag utente per più gruppi o per impostare i tag utente per architettura per i bug che interessano più architetture.
User: <primo nome utente> Usertags: <tag utente del primo nome utente> User: <secondo nome utente> Usertags: <tag utente del secondo nome utente>
Impostazione dell'inoltro della segnalazione
Forwarded: [email protected]
marca il bug appena segnalato come inoltrato a [email protected]. Vedere Registrazione di segnalazione esterna a Debian nella documentazione per gli sviluppatori per i dettagli.
Cambiare l'assegnatario
Owner: [email protected]
Indica che [email protected] è ora responsabile della soluzione di questo bug. Si veda Cambiare l'assegnatario del bug nella documentazione degli sviluppatori per i dettagli.
Pacchetto sorgente
Source: pacchetto_pippo
L'equivalente di Package:
per i bug presenti nel pacchetto
sorgente di pacchetto_pippo; per la maggior parte dei bug e per la maggior
parte dei pacchetti non serve usare questa opzione.
Comandi di controllo
Control: comandi di controllo
Permette di usare tutti i comandi che devono essere inviati a
[email protected]
anche quando sono spediti a
[email protected]
o [email protected]
.
Con -1 è possibile far riferimento al bug corrente (cioè al bug
creato con la mail a submit@ oppure al bug verso cui si invia la
mail nnn@). Per maggiori informazioni sui comandi di controllo
validi consultare la documentazione del
server di controllo.
Per esempio, la seguente pseudo-intestazione in un messaggio
inviato a [email protected]
:
Control: retitle -1 this is the title Control: severity -1 normal Control: summary -1 0 Control: forwarded -1 https://bugs.debian.org/nnn
Implicherà che il bug 12345 cambi titolo e gravità, che sia impostato summary e che sia marcato come forwarded.
Intestazioni X-Debbugs-
Infine, se il proprio MUA non consente di modificare le intestazioni, è possibile inserire
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 [email protected]
invece che a
[email protected]
. maintonly
invia la
segnalazione solo a chi manutiene il pacchetto e non la invia alle mailing
list del BTS.
Quando si inviano molte segnalazioni in una volta, si dovrebbe assolutamente
utilizzare [email protected]
in modo da non provocare
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 la segnalazione
di un bug che il manutentore già conosce è possibile utilizzare
[email protected]
. Le segnalazioni spedite a
[email protected]
non sono inoltrate a nessuno,
vengono solo registrate.
Quando si utilizza uno degli indirizzi alternativi per segnalare bug,
il sistema di gestione dei bug imposta il Reply-To
di ogni
messaggio in modo da elaborare automaticamente le risposte nello stesso
modo della segnalazione originaria. Ciò significa che, per esempio, le
risposte a maintonly
andranno a nnn[email protected]
invece che a nnn@bugs.debian.org
, a meno che
ovviamente qualcuno non sostituisca questi campi manualmente.
Notifiche di ricezione
Normalmente il sistema di tracciamento dei bug spedisce un'e-mail
come notifica di ricezione quando si invia una segnalazione di bug o
si forniscono informazioni aggiuntive ad un bug esistente. Per evitare
queste notifiche, inserire X-Debbugs-No-Ack
nell'intestazione
o nelle pseudo-intestazioni nel messaggio (il contenuto dell'intestazione
non ha importanza). Quando si invia una nuova segnalazione con questa
intestazione sarà necessario utilizzare l'interfaccia web per sapere
quale numero è stato assegnato al bug.
Notare che questa intestazione non elimina le notifiche provenienti
dal server di posta [email protected]
, visto che tali
notifiche 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 [email protected]
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
[email protected]
. 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 il messaggio era stato inviato
all'indirizzo maintonly
.
Quando si invia a [email protected]
o a
nnn[email protected]
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 [email protected]
per (ri)assegnarla.
Usare dpkg
per trovare il pacchetto e
la versione da inserire nella segnalazione
Quando si utilizza reportbug
per segnalare un bug in un
programma, per esempio grep
, il seguente comando seleziona il
giusto pacchetto e scrive la segnalazione in modo corretto: reportbug
--file $(which grep)
È possibile scoprire in quale pacchetto è distribuito usando il comando
dpkg --search
. Per sapere la versione installata di un pacchetto
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 <[email protected]> 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 <[email protected]>
Debian bug tracking system
Copyright © 1999 Darren O. Benham, 1997, 2003 nCipher Corporation Ltd,
1994-1997 Ian Jackson.