Home > Dai forum, Debian, Debianizzazione, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu > Debianizzare un programma Python #19

Debianizzare un programma Python #19

25 giugno 2010

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#19 Verifica dei pacchetti

Superata la pacchettizzazione, prima di sottoporre i pacchetti binario (deb) e sorgente (.dsc) ad uno sviluppatore Debian è obbligatorio controllare la loro congruenza per evitare l’immediato scarto a causa di errori formali.

Per il controllo ci viene in aiuto lintian che dispone di tantissimi controlli sugli errori formali più comuni. Il suo utilizzo è estremamente semplice.

Per controllare il pacchetto binario:

lintian gespeaker_0.7-1_all.deb

Per controllare il pacchetto sorgente:

lintian gespeaker_0.7-1.dsc

Per controllare entrambi contemporaneamente:

lintian gespeaker_0.7-1_i386.changes

Per ogni errore rilevato lintian riporta un avviso composto di una riga.
Se abbiamo seguito tutti i procedimenti correttamente ovviamente non sarà riportato nessun errore.

Un esempio degli errori che si potrebbero incontrare:

W: gespeaker: binary-without-manpage usr/bin/gespeaker
W: gespeaker: description-synopsis-might-not-be-phrased-properly
W: gespeaker: spelling-error-in-description GTK GTK+
W: gespeaker: new-package-should-close-itp-bug

Se il messaggio di errore non dovesse risultare sufficientemente esplicativo è possibile aggiungere il parametro -i:

lintian -i gespeaker_0.7-1_all.deb

E verrà riportato un risultato molto più prolisso e con spiegazioni generali sull’errore e un giudizio sul tipo (Severity) e probabilità dell’errore (Certainty):

W: gespeaker: binary-without-manpage usr/bin/gespeaker
N:
N:    Each binary in /usr/bin, /usr/sbin, /bin, /sbin or /usr/games should
N:    have a manual page
N:    
N:    Note that though the man program has the capability to check for several
N:    program names in the NAMES section, each of these programs should have
N:    its own manual page (a symbolic link to the appropriate manual page is
N:    sufficient) because other manual page viewers such as xman or tkman
N:    don't support this.
N:    
N:    If the name of the man page differs from the binary by case, man may be
N:    able to find it anyway; however, it is still best practice to make the
N:    case of the man page match the case of the binary.
N:    
N:    If the man pages are provided by another package on which this package
N:    depends, lintian may not be able to determine that man pages are
N:    available. In this case, after confirming that all binaries do have man
N:    pages after this package and its dependencies are installed, please add
N:    a lintian override.
N:    
N:    Refer to Debian Policy Manual section 12.1 (Manual pages) for details.
N:    
N:    Severity: normal, Certainty: possible
N:

Il primo errore avvisa quindi dell’assenza di una manpage per l’eseguibile /usr/bin/gespeaker.

Se il software originale non possedeva una manpage è ruolo del pacchettizzatore produrne una o spingere il programmatore a farla.

W: gespeaker: description-synopsis-might-not-be-phrased-properly
N:
N:    The synopsis (first line in the package "Description:" field, the short
N:    description) ends with a full stop "." character. This is not necessary,
N:    as the synopsis doesn't need to be a full sentence. It is recommended
N:    that a descriptive phrase is used instead.
N:    
N:    Note also that the synopsis is not part of the rest of the
N:    "Description:" field.
N:    
N:    Refer to Debian Policy Manual section 3.4.1 (The single line synopsis)
N:    for details.
N:    
N:    Severity: normal, Certainty: possible
N:

La descrizione del pacchetto potrebbe essere errata e termina con un punto alla fine.

W: gespeaker: spelling-error-in-description GTK GTK+
N:
N:    Lintian found a spelling or capitalization error in the package
N:    description. Lintian has a list of common misspellings that it looks
N:    for. It does not have a dictionary like a spelling checker does. It is
N:    particularly picky about spelling and capitalization in package
N:    descriptions since they're very visible to end users.
N:    
N:    Severity: normal, Certainty: certain
N:

Nella descrizione del pacchetto c’è un errore ortografico, è indicato GTK invece di GTK+.

W: gespeaker: new-package-should-close-itp-bug
N:
N:    This package appears to be the first packaging of a new upstream
N:    software package (there is only one changelog entry and the Debian
N:    revision is 1), but it does not close any bugs. The initial upload of a
N:    new package should close the corresponding ITP bug for that package.
N:    
N:    This warning can be ignored if the package is not intended for Debian or
N:    if it is a split of an existing Debian package.
N:    
N:    Refer to Debian Developer's Reference section 5.1 (New packages) for
N:    details.
N:    
N:    Severity: normal, Certainty: certain
N:

Si tratta di un pacchetto nuovo in quanto il changelog ha soltanto una voce ma non è indicato il bug ITP da chiudere (vedi terzo e quarto passaggio e chiudere il bug come indicato nel nono passaggio).

Gli errori possono essere molti altri, è necessario risolverli tutti.

Quando lintian non riporterà più nessun errore sia sul pacchetto binario (.deb) sia su quello sorgente (.dsc) rieseguire i test pedanti con:

lintian -i --pedantic gespeaker_0.7-1_i386.changes

Si tratta di test aggiuntivi molto più approfonditi e pignoli che potrebbero risultare persino falsi. Potrebbero essere presentati errori aggiuntivi che se corrispondenti alla realtà andranno ovviamente corretti.

E’ fortemente raccomandato di non ignorare gli avvisi riportati da lintian, soprattutto quelli non pedanti. Il pacchetto potrebbe venire immediatamente scartato senza neanche valutazione a causa degli errori.

%d blogger cliccano Mi Piace per questo: