15.4.1. Imparare a creare pacchetti
La creazione di un pacchetto Debian di qualità non è sempre un compito semplice, diventare un maintainer di pacchetti richiede una fase di apprendimento teorico e pratico. Non è una semplice questione di costruzione e installazione del software, la parte più complessa è comprendere i problemi ed i conflitti, e più in generale le interazioni con la miriade di altri pacchetti disponibili.
Un pacchetto Debian deve rispettare delle regole ben precise presenti nelle policy di Debian, ed ogni maintainer di pacchetti deve conoscerli. Non c'è l'obbligo di conoscerli a memoria, ma è importante sapere che esistono e che si possono consultare ogni volta che si presenta una scelta alternativa non banale. Ogni maintainer Debian ha fatto degli errori dati dal fatto che non conosceva una regola, ma questo non è un grosso problema, l'errore verrà risolto quando un utente lo segnalerà con un bug report, cosa che normalmente accadere molto presto, grazie agli utenti esperti.
Debian non è una semplice raccolta di pacchetti. Il lavoro di tutti per la pacchettizzazione fa parte di un progetto collettivo; essere uno sviluppatore Debian implica conoscere come opera, nel suo complesso, il progetto Debian. Ogni sviluppatore, prima o poi, interagisce con gli altri. La guida di riferimento per lo sviluppatore Debian (nel pacchetto
developers-reference) riassume ciò che ogni sviluppatore deve conoscere per interagire nel miglior modo possibile con i vari team all'interno del progetto ed a usufruire dei vantaggi dati delle risorse disponibili. Questo documento elenca anche una serie di doveri a cui uno sviluppatore dovrebbe adempiere.
Molti strumenti aiutano i maintainer di pacchetti nel loro lavoro. In questa sezione verranno descritti brevemente, tralasciando tutti i dettagli, dal momento che tutti hanno una documentazione completa per conto proprio.
15.4.1.3.1. Il programma lintian
Questo strumento è uno dei più importanti: si occupa di verificare i pacchetti Debian. Si basa su una vasta gamma di test creati dalla policy di Debian, rileva in modo rapido e automatico un gran numero di errori che possono essere risolti prima che i pacchetti vengano rilasciati.
Questo strumento lo si deve considerare solamente come un aiuto e può capitare che a volte si comporti in modo errato (per esempio, poiché le policy di Debian cambiano nel corso del tempo, lintian
a volte può essere obsoleto). Inoltre non è molto dettagliato: se non si riceve alcun errore da Lintian non di deve interpretare questo comportamento come la prova che il pacchetto sia perfetto ma che, al massimo, non contiene gli errori più comuni.
Il pacchetto devscripts contiene molti programmi che aiutano in una vasta gamma del lavoro dello sviluppatore Debian:
debuild
permette di generare un pacchetto (con dpkg-buildpackage
) ed eseguire lintian
per verificarne la conformità con le policy di Debian.
debclean
pulisce un pacchetto sorgente dopo che è stato generato un pacchetto binario.
dch
permette di modificare velocemente il file debian/changelog
nel sorgente del pacchetto.
uscan
verifica se è stata rilasciata una nuova versione del software dall'autore originale; questo richiede il file debian/watch
con una descrizione delle posizioni delle varie versioni.
debi
permette di installare (con dpkg -i
) il pacchetto Debian che è stato appena generato, evitando di digitare il suo nome completo e il percorso.
In modo simile, debc
consente la scansione dei contenuti del pacchetto generato di recente (con dpkg -c
), senza la necessità di digitare il suo nome completo e il percorso.
bts
permette di controllare il sistema di tracciamento dei bug dalla riga di comando; questo programma genera automaticamente le e-mail in maniera appropriata.
debrelease
carica il pacchetto generato di recente in un server remoto, senza la necessità di digitare il nome completo e il percorso del relativo file .changes
.
debsign
firma i file *.dsc
e *.changes
.
uupdate
automatizza la creazione di una nuova versione del pacchetto, appena è rilasciata una nuova versione del software originale.
15.4.1.3.3. debhelper e dh-make
Debhelper è un insieme di script che aiutano nella creazione di pacchetti conformi con la policy di Debian; questi script sono eseguiti da debian/rules
. Debhelper è stato ampiamente adottato in Debian, come dimostra il fatto che è utilizzato dalla maggior parte dei pacchetti ufficiali di Debian. Tutti i comandi che contiene hanno come prefisso dh_
. Debhelper è sviluppato principalmente da Joey Hess.
Lo script dh_make
(nel pacchetto dh-make) crea i file necessari per la generazione di un pacchetto Debian, in una directory contenente i sorgenti di un software. Come si può immaginare dal nome del programma, i file generati utilizzano Debhelper in maniera predefinita.
15.4.1.3.4. dupload
e dput
I comandi dupload
e dput
permettono il caricamento di un pacchetto Debian su un server (anche remoto). Questo permette agli sviluppatori di pubblicare il proprio pacchetto sul server principale di Debian (ftp-master.debian.org
) in modo che possa essere integrato nell'archivio e distribuito nei mirror. Questi comandi prendono il file *.changes
come parametro e deducono gli altri file importanti dal suo contenuto.
15.4.2. Processo di accettazione
Diventare uno sviluppatore Debian non è una semplice questione amministrativa. Il processo è costituito da diverse fasi ed è più simile ad un'iniziazione, in quanto è un processo di selezione. In ogni caso, l'intero processo è ben formalizzato e documentato, in modo che chiunque sia in grado di monitorarne l'avanzamento di stato, sul sito web dedicato al processo per il nuovo maintainer.
Tutti i candidati sono tenuti ad avere almeno una conoscenza di base della lingua inglese. Questo è necessario a tutti i livelli: per le comunicazioni iniziali con l'esaminatore, naturalmente, ma anche più avanti, dal momento che l'inglese è la lingua preferita per la maggior parte della documentazione, anche gli utilizzatori del pacchetto comunicheranno in inglese per la segnalazione di bug e si aspetteranno delle risposte in inglese.
Altri prerequisiti dipendono dalla motivazione. Diventare uno sviluppatore Debian è un processo che ha senso solo se il candidato sa che l'interesse per Debian durerà per molti mesi. Il processo di accettazione può durare diversi mesi ed ha bisogno di sviluppatori Debian a lungo termine, ogni pacchetto ha bisogno di manutenzione permanente, e non solo un caricamento iniziale.
Il primo (vero) passo consiste nel trovare uno sponsor o un sostenitore, il che significa uno sviluppatore ufficiale disposto a dichiarare che crede che accettare X sarebbe una buona cosa per Debian. Ciò implica in genere che il candidato sia già attivo all'interno della comunità e che il suo lavoro sia stato apprezzato. Se il candidato è timido e il suo lavoro non viene elogiato pubblicamente, può cercare di convincere uno sviluppatore Debian a sostenerlo, mostrandogli il suo lavoro in privato.
Al tempo stesso, il candidato deve generare una coppia, pubblica/privata, di chiavi RSA
con GnuPG, che dovrebbe essere firmata da almeno uno sviluppatore ufficiale Debian. La firma autentica il nome della chiave. In effetti, durante un key signing party, ogni partecipante deve mostrare la carta d'identità insieme all'identificativo della chiave. Questo passaggio rende ufficiale il legame tra la persona e la chiave. Questa firma pertanto richiede un incontro nella vita reale. Se non si è ancora incontrato alcun sviluppatore Debian in una conferenza pubblica sul software libero, si possono cercare gli sviluppatori che vivono nelle vicinanze utilizzando, come punto di partenza, l'elenco alla seguente pagina web.
Una volta che la registrazione sul sito nm.debian.org
è stato convalidata da un sostenitore, è assegnato un Application Manager al candidato. Da quel portale, l'application manager può seguire le procedure e validare i vari passaggi del processo.
La prima verifica è un controllo d'identità. Se si possiede già una chiave firmata da due sviluppatori di Debian, questo passaggio è semplice, altrimenti, l'application manager cercherà di guidare il candidato alla ricerca di sviluppatori Debian nelle vicinanze per organizzare un incontro e firmare la chiave. Nella fase iniziale, quando il numero di sviluppatori era piccolo, c'è stata un'eccezione a questa procedura, che permetteva di completare il passaggio con una scansione digitale dei documenti ufficiali d'identità, questo non è più possibile.
15.4.2.3. Accettare i principi
Queste formalità amministrative sono seguite da considerazioni filosofiche. Il punto è fare in modo che il candidato capisca e accetti il contratto sociale e i principi alla base del Software Libero. Partecipare a Debian è possibile solo se si condividono i valori che uniscono gli attuali sviluppatori, espressi nei testi dei fondamentali (e riassunti in
Capitolo 1, Il progetto Debian).
Inoltre, ogni candidato che desidera aderire a Debian è tenuto a conoscere il funzionamento del progetto e come interagire in modo appropriato per risolvere i problemi che, senza dubbio, si incontreranno col passare del tempo. Tutte queste informazioni sono generalmente documentate nei manuali rivolti ai nuovi maintainer e nella guida di riferimento per lo sviluppatore Debian. Una lettura attenta di questo documento dovrebbe essere sufficiente per rispondere alle domande dell'esaminatore. Se le risposte non sono soddisfacenti, il candidato sarà informato. Quindi, egli dovrà leggere (nuovamente) la relativa documentazione prima di riprovare. Nei casi in cui la documentazione esistente non contenesse la risposta appropriata per la domanda, il candidato di solito può trovare una risposta, facendo una po' d'esperienza pratica in Debian, oppure discutendone con altri sviluppatori Debian. Questo meccanismo garantisce che i candidati vengano coinvolti un po' in Debian prima di diventare parte integrante del progetto. Si tratta di una scelta intenzionale, con la quale i candidati che alla fine aderiranno al progetto sono integrati come un altro pezzo di un puzzle infinitamente espandibile.
Questo passaggio è generalmente conosciuto come
Philosophy & Procedures (P&P in breve) nel gergo degli sviluppatori coinvolti nel processo per i nuovi maintainer.
15.4.2.4. Verifica delle capacità
Ogni domanda per diventare uno sviluppatore ufficiale Debian deve essere giustificata. Per diventare un membro del progetto è necessario dimostrare di meritare tale stato e che lo stato di membro, semplifichi il contributo del candidato allo sviluppo di Debian. La giustificazione più comune è che sia concesso lo status di sviluppatore Debian perché facilita la manutenzione di un pacchetto Debian, ma non è l'unico motivo. Alcuni sviluppatori aderiscono al progetto per contribuire al porting di una specifica architettura, altri vogliono migliorare la documentazione, e così via.
Questo passaggio rappresenta l'occasione per il candidato di indicare che cosa intende fare nell'ambito del progetto Debian e di mostrare ciò che ha già fatto in tal senso. Debian è un progetto pragmatico e dire qualcosa che non è sufficiente, se non si compiono le azioni vengono annunciate. Generalmente, quando il ruolo previsto all'interno del progetto è legato alla manutenzione dei pacchetti, una prima versione del potenziale pacchetto dovrà essere convalidata tecnicamente e caricata sui server di Debian da uno sponsor tra gli sviluppatori Debian.
Infine, l'esaminatore verifica le abilità tecniche del candidato (la pacchettizzazione) con un questionario dettagliato. Non sono ammesse risposte sbagliate, ma il tempo per rispondere è illimitato. Tutta la documentazione è disponibile e sono consentiti diversi tentativi, se le prime risposte non sono soddisfacenti. Questo passaggio non ha come obiettivo quello di discriminare i candidati, ma assicurarsi che i nuovi collaboratori abbiamo un minimo di conoscenza.
Questo passaggio è noto come
Tasks & Skills nel gergo degli esaminatori.
15.4.2.5. Approvazione finale
Nell'ultima fase, l'intero processo è revisionato da un DAM (Debian Account Manager). Il DAM riesaminerà tutte le informazioni sul candidato che l'esaminatore ha raccolto e deciderà se creare o meno un account nei server Debian. Nei casi in cui sono richieste ulteriori informazioni, la creazione dell'account può essere rinviata. I rifiuti sono piuttosto rari se l'esaminatore fa un buon lavoro seguendo in maniera corretta l'iter, ma a volte succede. In ogni caso il rifiuto non è permanente e il candidato è libero di riprovare in un secondo momento.
La decisione del DAM è autorevole e (quasi) senza appello, il che spiega perché le persone in questa posizione (attualmente, Jörg Jaspert, Christoph Berg e Enrico Zini) sono state spesso criticate in passato.