[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ A ] [ successivo ]
Supponiamo che sia stato segnalato un bug del tuo pacchetto, il #54321, e che si riferisca a un problema che sei in grado di risolvere. Per creare una nuova revisione Debian del pacchetto, hai bisogno di:
Correggere il problema nel pacchetto sorgente, ovviamente.
Aggiungere una nuova revisione nel file changelog Debian, per esempio con `dch -i', oppure esplicitamente con `dch -v <version>-<revision>` e quindi includere i tuoi commenti usando il tuo editor preferito,
Suggerimento: come ottenere la data facilmente nel formato richiesto? Usa `822-date`, or `date -R`.
Includi una breve descrizione del bug e la soluzione nella voce del changelog, seguita da: "Closes: #54321". In questo modo, la sottomissione del bug sarà automaticamente chiusa dal software di mantenimento, nel momento in cui il tuo pacchetto sarà accettato nell'archivio Debian.
Ripeti quanto fatto in Costruzione completa, Sezione 6.1, Controllare il pacchetto per errori, Capitolo 7, e Caricamento del pacchetto, Capitolo 8. La differenza è che questa volta il sorgente originale non sarà incluso, dal momento che non è stato modificato e già esiste nell'archivio Debian.
Adesso consideriamo una situazione differente, un po' più complicata - una nuova versione upstream è stata rilasciata, e ovviamente vuoi pacchettizzarla. Avrai bisogno di fare quanto segue:
Scarica i nuovi sorgenti e sposta il relativo archivio (per es. dal nome
`gentoo-0.9.13.tar.gz
') nella directory al di sopra del vecchio
albero di sorgenti (per es. ~/gentoo/
).
Spostati nella vecchia directory di sorgenti e lancia:
uupdate -u gentoo-0.9.13.tar.gz
Ovviamente, sostituisci questo nome di file con il nome dell'archivio dei
sorgenti del tuo programma. uupdate(1)
rinominerà in modo
appropriato quell'archivio, proverà ad applicare tutte le modifiche dal tuo
precedente file .diff.gz
, e aggiornerà il nuovo file
debian/changelog
.
Portati nella directory `../gentoo-0.9.13
', il nuovo albero di
sorgenti del pacchetto, e ripeti quanto fatto in Costruzione completa, Sezione 6.1,
Controllare il pacchetto per errori, Capitolo
7, e Caricamento del pacchetto, Capitolo 8.
Osserva che se hai configurato il file `debian/watch
' come
descritto in watch.ex, Sezione 5.10,
puoi lanciare uscan(1)
per cercare automaticamente i sorgenti
aggiornati, scaricarli e lanciare uupdate
.
Nel preparare pacchetti per il caricamento nell'archivio Debian, dovresti verificare i pacchetti risultanti in dettaglio. Di seguito, ecco un esempio più realistico di tal procedura.
Verificare le modifiche nei sorgenti upstream
Leggi i file changelog
, NEWS
, e ogni altra
documentazione che possa essere stata rilasciata con la nuova versione.
Esegui `diff -urN' tra la vecchia e la nuova versione dei sorgenti upstream per prendere visione della portata delle modifiche, capire dove è stato fatto attivamente lavoro (e perciò dove nuovi bug potrebbero apparire), e dai anche una occhiata per qualsiasi cosa sospetta.
Migra il vecchio pacchetto Debian alla nuova versione.
Spacchetto l'archivo dei sorgenti e rinomina la radice dell'albero dei sorgenti
come <packagename>-<upstream_version>/
quindi spostati
con `cd' in tale directory
Copia l'archivio dei sorgenti nella directory precedente e rinominalo come
<packagename>_<upstream_version>.orig.tar.gz
.
Applica lo stesso tipo di modifica al nuovo albero dei sorgenti e al vecchio. I metodi possibili sono>
il comando `zcat /path/to/<packagename>_<old-version>.diff.gz | patch -p1' .
il comando `uupdate
' ,
il comando `svn merge' se gestisci i sorgenti con un deposito Subversion , oppure
semplicemente copia la directory debian/
dai vecchi sorgenti se
era pacchettizzata con dpatch
.
Conserva i vecchi contenuti di changelog (sembra ovvio, ma ci sono stati incidenti in proposito...)
La nuova versione del pacchetto è la versione di rilascio upstream con l'aggiunta di un numero di revisione Debian -1, per esempio, `0.9.13-1'.
Aggiungi una voce al changelog con indicato "New upstream release"
per tale nuova versione all'inizio del file debian/changelog
. Per
esempio `dch -v 0.9.13-1'.
Descrivi in modo coinciso le modifiche nel nuovo rilascio upstream che risolvono bug riportati e chiudi tali bug nel changelog.
Descrivi in modo coinciso le modifiche apportate al nuovo rilascio upstream dal manutentore che risolvono bug riportati e chiudi tali bug nel changelog.
Se una patch/fusione non si applica in modo pulito, esamina la situazione per
stabilire cosa è andato male (indicazioni in merito sono nei file
.rej
). Il più delle volte, il problema è che una patch da te
applicata al sorgente è stata integrata dall'upstream, e perciò non è più
rilevante.
Gli aggiornamenti a nuove versioni dovrebbero essere silenti non intrusivi (utenti esistenti dovrebbero solo notare l'aggiornamento scoprendo che che vecchi bug sono stati corretti e che ci sono forse nuove funzionalità). [4]
Se occorre aggiungere dei file modello cancellati per qualsiasi motivo, puoi
lanciare nuovamente dh_make
nella stessa directory, già
"debianizzata", con l'opzione -o . A quel punto
modificali in maniera appropriata.
Le modifiche Debian esistenti devono essere nuovamente vautate: elimina materiale che l'upstream ha incorporato (in una forma o un'altra) e rucorda di mantenere ciò che non è stato incluso dal upstream, a meno che non ci sia una valida ragione per non farlo.
Se fosse stata fatta qualche modifica al sistema di compilazione (sperabilmente
dovresti già scoprirlo al passo 1 e aggiornare il file
debian/rules
e le dipendenze per la compilazione in
debian/control
se necessario.
Crea il nuovo pacchetto come descritto in Il comando debuild
, Sezione
6.3 o Il pacchetto
pbuilder
, Sezione 7.6. L'impiego di pbuilder
è
consigliato.
Verifica che il nuovo pacchetto compila correttamente.
Esegui Verificare gli aggiornamenti di pacchetti, Sezione 9.6.
Controlla nuovamente per capire se qualche bug è stato corretto ed è
correntemente aperto nel Sistema di
Gestione dei Bug Debian
.
Verifica il contenuto del file .changes per essere sicuro di caricare nella distribuzione corretta, che i bug appropriati vengano chiusi nel campo Closes: , che i campi Maintainer: e Changed-By: coincidano, che il file abbia una firma GPG, ecc.
Se avessi apportato qualche cambiamento nel pacchetto in corso d'opera, torna al passo 2 fino a soddisfarlo.
Se il caricamento richiede uno sponsor, assicurati di annotare qualsiasi opzione speciale richiesta nella creazione del pacchetto (come 'dpkg-buildpackage -sa -v ...') e informane il tuo sponsor in modo che questi possa fare la compilazione in modo esatto.
Se devi caricare tu stesso il pacchetto esegui Caricamento del pacchetto, Capitolo 8.
orig.tar.gz
Se provi a creare il pacchetto solo a partire dal nuovo albero dei sorgenti,
con la directory debian/
ma senza il file orig.tar.gz
nella directory superiore, finirai per creare non intenzinalmente un pacchetto
sorgente nativo, che risulta privo di un file diff.gz
. Questo
tipo di pacchettizzazione è appropriato solo per pacchetti specifici di Debian,
che non saranno mai utili per un altra distribuzione. [5]
Per creare un pacchetto a sorgente non nativo, che consiste in una coppia di
file orig.tar.gz
e diff.gz
, devi copiare manualmente
l'archivio dell'upstream nella directory superiore con il nome del file
modificato in
<packagename>_<upstream_version>.orig.tar.gz
come
viene fatto dal comando dh_make
in La "debianizzazione" iniziale,
Sezione 2.4.
cvs-buildpackage
e similariDovresti prendere in considerazione l'eventualità di usare un sistema di gestione del codice per l'attività di pacchettizzazione. Ci sono diversi programmi di interfaccia adattati per usare i sistemi più comuni.
CVS
cvs-buildpackage
Subversion
svn-buildpackage
Arch (tla)
tla-buildpackage
arch-buildpackage
Questi comandi possono anche automatizzare la pacchettizzazione di nuovi rilasci dell'upstream.
Quando crei una nuova versione del pacchetto, dovresti fare quanto segue per verificare che il pacchetto può essere aggiornato in modo sicuro:
aggiorna dalla versione precedente,
torna indietro e rimuovilo,
installa il nuovo pacchetto,
rimuovilo e reinstallalo nuovamente,
fanne un purge.
Se il pacchetto fa un uso di script non banali di pre/post/inst/rm, assicurati di controllarli in aggiornamento.
Tieni a mente che se il pacchetto è stato in precedenza rilasciato in Debian, la gente vorrà spesso fare un aggiornamento dalla versione che era nell'ultima versione Debian. Ricorda di provare l'aggiornamento da tale versione, anche.
Prima di deciderti a fare una domanda in qualche area pubblica, sei pregato di
leggere i dannati manuali (RTFM). Questo include la documentazione in
/usr/share/doc/dpkg
, /usr/share/doc/debian
,
/usr/share/doc/autotools-dev/README.Debian.gz
i file
/usr/share/doc/package/*
e le pagine man/info di tutti i programmi
menzionati in questo documento. Vedi tutte le informazioni in http://nm.debian.org/
e http://people.debian.org/~mpalmer/debian-mentors_FAQ.html
.
Se hai domande sulla pacchettizzazione alle quale non trovi risposta nella
documentazione, puoi chiedere alla mailing list dei Debian Mentors su debian-mentors@lists.debian.org
.
Gli sviluppatori più esperti di Debian ti aiuteranno con piacere, ma leggi
almeno un po' di documentazione prima di chiedere!
Guarda http://lists.debian.org/debian-mentors/
per maggiori informazioni riguardo la mailing list.
Quando ricevi una segnalazione di bug (sì, effettive segnalazioni di bug!)
saprai che è il momento di fare fare riferimento al Sistema Debian di tracciamento dei
bug
e leggere la documentazione lì, per essere in grado di gestire
le segnalazioni in modo efficiente. Ti raccomando di leggere la Guida di
Riferimento dello Sviluppatore, al capitolo "Gestione dei Bug", su
/usr/share/doc/developers-reference/ch-pkgs.en.html#s-bug-handling
Se ancora hai delle domande, chiedi sulla mailing list degli sviuppatori Debian
all'indirizzo debian-devel@lists.debian.org
.
Guarda http://lists.debian.org/debian-devel/
per maggiori informazioni su questa mailing list.
Anche se tutto funziona bene, è venuto il momento di iniziare a pregare. Perché? Perché in poche ore (o giorni), gli utenti di tutto il mondo inizieranno a usare il pacchetto, e se hai commesso qualche errore critico, sarai bombardato dalle mail di numerosi utenti Debian arrabbiati... sto scherzando :-)
Rilassati e sii pronto per le segnalazioni dei bug, perché c'è molto lavoro da fare prima che il tuo pacchetto sia completamente in linea con le politiche Debian (ancora una volta, leggi la documentazione reale per i dettagli). Buona fortuna!
[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ A ] [ successivo ]
Guida per il nuovo Maintainer
versione 1.2.3, 18 January 2005.joy-mg@debian.org
frankie@debian.org