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

Debianizzare un programma Python #10

16 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.

#10 Configurazione della directory debian (file control)

Tutti i files indicati in precedenza dovranno essere compilati nella maniera corretta per consentire la creazione del file deb, li analizzeremo uno per volta.

control
Un altro file fondamentale per l’impacchettamento di un programma è il file control che definisce le informazioni sul pacchetto, il nome, la sezione, le dipendenze e tutto il resto.

La sua struttura è suddivisa in due parti: la prima con le informazioni sul pacchetto sorgente e la seconda con le informazioni sul pacchetto binario finito, osserviamo subito il suo contenuto per comprenderlo meglio:

Source: gespeaker
Section: sound
Priority: optional
Maintainer: Fabio Castelli <muflone@XXXXXX.net>
Standards-Version: 3.8.4
Build-Depends: cdbs (>= 0.4.49), python (>= 2.5), debhelper (>= 7)
Build-Depends-Indep: python-support (>=0.6)
Homepage: http://code.google.com/p/gespeaker/

Package: gespeaker
Architecture: all
Depends: espeak, espeak-data, python-gtk2, python-glade2, python-gobject,
  alsa-utils | pulseaudio-utils, ${python:Depends}, ${misc:Depends}
Suggests: mbrola
Description: GTK+ front-end for eSpeak and mbrola
 Gespeaker is a GTK+ frontend for eSpeak and mbrola.
 It allows to play a text in many languages with settings
 for voice, pitch, volume, speed and word gap.
 .
 Since version 0.6 it can use mbrola package and voices to
 obtain a more realistic text reading experience.
  1. La specifica Source è obbligatoria e definisce il nome del pacchetto sorgente.
  2. La specifica Section è raccomandata e indica la sezione nella quale sarà inserito il pacchetto, deve essere una sola a scelta tra admin, cli-mono, comm, database, devel, debug, doc, editors, electronics, embedded, fonts, games, gnome, graphics, gnu-r, gnustep, hamradio, haskell, httpd, interpreters, java, kde, kernel, libs, libdevel, lisp, localization, mail, math, misc, net, news, ocaml, oldlibs, otherosfs, perl, php, python, ruby, science, shells, sound, tex, text, utils, vcs, video, web, x11, xfce, zope.
  3. Priority è raccomandata, definisce l’importanza del pacchetto nel sistema, può essere una a scelta tra:
    • required identifica pacchetti vitali per l’utilizzo del sistema apt
    • important identifica pacchetti importanti nel sistema e che normalmente devono essere installati
    • standard identifica pacchetti standard, generalmente presenti e basati su terminale
    • optional identifica pacchetti opzionali non strettamente necessari, la maggior parte dei software rientra in questa categoria
    • extra identifica pacchetti non necessari e con funzionalità specializzate a certi utenti
  4. La sezione Maintainer è obbligatoria dovrà riportare il nome, cognome e indirizzo email del manutentore del pacchetto, ovvero colui che si occuperà della pacchettizzazione. Oltre la sezione Maintainer è possibile aggiungere una sezione Uploaders che indichi il responsabile del caricamento del pacchetto nel repository debian.
  5. La sezione Standards-Version è raccomandata e rappresenta il numero della versione per la corretta valutazione del pacchetto, identifica la policy debian applicata al pacchetto.
  6. Le sezioni Build-Depends e Build-Depends-Indep sono raccomandate e rappresentano le dipendenze necessarie alla compilazione del pacchetto. La differenza tra le due è che la prima si applica a tutte le regole di compilazione, la seconda si applica soltanto ad alcune regole di compilazione. Da entrambe queste sezioni vanno esclusi i pacchetti parti del gruppo Build-essential.
  7. La sezione Homepage potrà riportare l’indirizzo web dove recuperare il sorgente o eventuale documentazione sul progetto.

La seconda parte del file control conterrà informazioni sull’uso e installazione del pacchetto, non sulla sua compilazione.

  1. Package è una sezione obbligatoria e dovrà contenere il nome del pacchetto.
  2. Architecture è anch’essa obbligatoria e indica l’architettura per la quale il pacchetto potrà essere utilizzato, per i programmi Python è sempre all che indica che il pacchetto è indipendente dall’architettura. L’alternativa è la specifica di un’architettura che può essere una a scelta tra quelle riportate dal comando dpkg-architecture -l.
  3. La sezione Depends conterrà l’elenco delle dipendenze obbligatorie per l’uso del pacchetto senza le quali il pacchetto non potrà funzionare. Indicare in questa tutte le dipendenze esplicite necessarie escludendo però il pacchetto python e utilizzando al suo posto ${python:Depends}, la versione utilizzata sarà poi regolata dal file pyversions.
    Inoltre poiché il pacchetto fa utilizzo di debhelper è necessario includere la dipendenza ${misc:Depends}.
  4. La sezione Suggests indica le dipendenze extra che vengono suggerite dal pacchetto e che possono fornire funzionalità extra o utili al suo funzionamento.
  5. E’ possibile aggiungere altre sezioni di dipendenza quali Recommends (per i pacchetti raccomandati e che vengono installati automaticamente), Conflicts, Replace e altri riportati nella policy debian.
  6. Infine la sezione Description dovrà riportare due descrizioni sul pacchetto, una breve sulla prima riga di massimo 80 caratteri e una più dettagliata nella seconda e righe successive.
    La descrizione più dettagliata dovrà essere rientrata di uno spazio rispetto quella sulla prima riga. Inserendo una riga con un punto soltanto verrà inserita una riga vuota nella descrizione del pacchetto.
  1. Non c'è ancora nessun commento.
  1. 16 giugno 2010 alle 12:07
I commenti sono chiusi.
%d blogger cliccano Mi Piace per questo: