Product SiteDocumentation Site

15.4. Diventare un maintainer di pacchetti

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.

15.4.1.1. Regole

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.

15.4.1.2. Procedure

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.

15.4.1.3. Strumenti

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.
15.4.1.3.2. devscripts
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.

15.4.2.1. Prerequisiti

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.

15.4.2.2. Registrazione

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.