[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ successivo ]
Una volta rilasciato un pacchetto, ci sarà presto bisogno di aggiornarlo.
Si supponga che sia stato compilato il bug report #54321 per il pacchetto creato, e che questo descriva un problema che si può risolvere. Per creare una nuova revisione del pacchetto Debian, si proceda come qui di seguito descritto:
Se la modifica deve essere registrata come una nuova patch, si seguano queste istruzioni.
"quilt new bugname.patch" per impostare il nome della patch.
"quilt add buggy-file" per indicare i file modificati.
Correggere il problema evidenziato dal bug report nel pacchetto sorgente.
"quilt refresh" per registrare le modifiche in
bugname.patch
.
"quilt header -e" per aggiungere una descrizione.
Se la modifica è un aggiornamento ad una patch esistente, si seguano queste istruzioni.
"quilt pop foo.patch" per richiamare la patch
foo.patch
esistente.
Correggere il problema nella vecchia patch foo.patch
.
"quilt refresh" per aggiornare
foo.patch
.
"quilt header -e" per aggiornarne la descrizione.
"while quilt push; do quilt refresh; done" per applicare tutte le patch mentre si sta rimouvendo il "fuzz".
Aggiungere una nuova revisione in cima al file di changelog
Debian, per esempio con "dch -i", o esplicitamente con
"dch -v version-revision" e poi
inserire i commenti utilizzando l'editor preferito. [53]
Includere nella nuova voce del changelog una breve descrizione del problema e della relativa soluzione, seguita da "Closes: #54321". In questo modo, il report del problema verrà automaticamente chiuso dal programma di manutenzione dell'archivio Debian nel momento stesso in cui il pacchetto viene accettato.
Si ripetano questi passaggi per risolvere ulteriori problemi e si ricordi nel
frattempo di aggiornare il file Debian di changelog
con
"dch" a seconda della necessità.
Si ripetano i passi fatti in (ri)Creazione completa, Sezione 6.1, Controllare il pacchetto per errori, Capitolo 7, e Caricamento del pacchetto, Capitolo 8. La differenza è che questa volta, l'archivio sorgente originale non sarà incluso, dal momento che non è stato modificato ed esiste già nell'archivio Debian.
Quando si stanno preparando i pacchetti della nuova distribuzione per l'archivio Debian, bisogna innanzitutto effettuare dei controlli.
Si comincia leggendo i file originali changelog
,
NEWS
, e qualsiasi altra documentazione che possa essere stata
rilasciata con la nuova versione.
Successivamente si controllano i cambiamenti tra i sorgenti originali e quelli nuovi, come mostrato in seguito, alla ricerca di qualsiasi modifica sospetta.
$ diff -urN foo-oldversion foo-newversion
I cambiamenti effettuati ad alcuni file generati automaticamente dagli
Autotools come missing
, aclocal.m4
,
config.guess
, config.h.in
, config.sub
,
configure
, depcomp
, install-sh
,
ltmain.sh
, e Makefile.in
possono essere ignorati.
Possono anzi venire cancellati prima di eseguire diff
per
controllare i sorgenti.
Se un pacchetto foo
è stato impacchettato
correttamente nei nuovi formati 3.0 (native) o 3.0
(quilt), si rende necessario impacchettare anche la versione originale
muovendo la directory debian
nella nuova sorgente. Questo può
essere fatto eseguendo "tar xvzf
/path/to/foo_oldversion.debian.tar.gz"
nella nuova directory sorgente scompattata. [54] Ovviamente bisognerà effettuare alcuni passaggi.
Creare una copia della sorgente originale nel file
foo_newversion.tar.gz
.
Aggiornare il file di changelog
Debian con "dch -v
newversion-1".
Aggiungere una voce che dica "New upstream release".
Descrivere brevemente i cambiamenti nella nuova distribuzione che correggono i bug riportati e ne chiudono altri.
Descrivere brevemente i cambiamenti nella nuova distribuzione, effettuati dal manutentore, che correggono i bug riportati e li chiudono.
"while quilt push; do quilt refresh; done" per applicare tutte le patch mentre si sta rimouvendo il "fuzz".
Se la patch/merge non è stata applicata in maniera corretta, si controlli la
situazione (gli indizi vengono lasciati nei file .rej
).
Se una patch applicata alla sorgente è stata integrata nei sorgenti originali,
si rimuova con "quilt delete".
Se una patch applicata alla sorgente è andata in conflitto con i nuovi cambiamenti nei sorgenti originali,
si esegua "quilt push -f" per applicare le vecchie patch
forzando gli scarti nel file baz.rej
.
Modificare manualmente il file baz
per applicare gli
effetti desiderati presenti nel file baz.rej
.
"quilt refresh" per aggiornare la patch.
Ritornare alla procedura "while quilt push; do quilt refresh; done".
Questo processo può essere automatizzato utilizzando il comando
uupdate(1)
come segue:
$ apt-get source foo ... dpkg-source: info: extracting foo in foo-oldversion dpkg-source: info: unpacking foo_oldversion.orig.tar.gz dpkg-source: info: applying foo_oldversion-1.debian.tar.gz $ ls -F foo-oldversion/ foo_oldversion-1.debian.tar.gz foo_oldversion-1.dsc foo_oldversion.orig.tar.gz $ wget http://example.org/foo/foo-newversion.tar.gz $ cd foo-oldversion $ uupdate -v newversion ../foo-newversion.tar.gz $ cd ../foo-newversion $ while quilt push; do quilt refresh; done $ dch ... document changes made
Se si imposta il file debian/watch
come descritto in Il file watch
, Sezione 5.20,
si può saltare il comando wget
. Basterà eseguire
uscan(1)
nella directory
foo-oldversion
al posto del comando
uupdate
. Questo cercherà auto-magicamente i sorgenti
corretti, li scaricherà ed eseguirà il comando uupdate
. [55]
Si possono rilasciare questi sorgenti aggiornati ripetendo ciò che si è fatto in (ri)Creazione completa, Sezione 6.1, Controllare il pacchetto per errori, Capitolo 7, ed Caricamento del pacchetto, Capitolo 8.
L'aggiornamento dello stile del pacchetto non è una attività obbligatoria nel
processo di aggiornamento di quest'ultimo. Tuttavia facendo ciò si può
sfruttare appieno la capacità del moderno sistema debhelper
ed il
formato sorgente 3.0. [56]
Se per qualsiasi motivo c'è la necessità di aggiungere file di template
cancellati, si può eseguire nuovamente il comando dh_make
nella
stessa directory del sorgente del pacchetto Debian con l'opzione
--addmissing. Fatto questo si potrà modificarlo di conseguenza.
Se il pacchetto non è stato aggiornato per utilizzare la sintassi V7 di
dh
del pacchetto debhelper
per il file
debian/rules
, si deve effettuare una aggiornamento per poter usare
dh
. Si aggiorni di conseguenza anche il file
debian/control
.
Se si vuole aggiornare il file rules
creato con il meccanismo di
inclusione del makefile del Common Debian Build System (cdbs
) per
la sintassi di dh
, si veda
/usr/share/doc/cdbs/cdbs-doc.html
e si presti attenzione alle sue
variabili di configurazione DEB_*. [57]
Se si ha un pacchetto sorgente nella versione 1.0 senza il file
foo.diff.gz
, si può aggiornare al nuovo formato
sorgente 3.0 (native) creando il file
debian/source/format
con "3.0 (native)".
Gli altri file debian/*
possono essere semplicemente copiati.
Se si ha un pacchetto sorgente nella versione 1.0 con il file
foo.diff.gz
, si può aggiornare al nuovo formato
sorgente 3.0 (quilt) creando il file
debian/source/format
con "3.0 (quilt)".
Gli altri file debian/*
possono essere semplicemente copiati. Se
necessario, si importi il file big.diff
generato dal comando
"filterdiff -z -x '*/debian/*' foo.diff.gz >
big.diff" nel sistema quilt
.[58]
Si nel pacchetto è stato utilizzato un altro sistema di patch come
dpatch
, dbs
, o cdbs
con
-p0, -p1, o -p2, lo si può convertire
con il comando quilt
utilizzando deb3
presente su
http://bugs.debian.org/581186
.
Se il pacchetto è stato creato con il comando dh
con l'opzione
"--with quilt" o con i comandi
dh_quilt_patch
e dh_quilt_unpatch
, si rimuovano i
file prodotti e li si sostituisca usando il nuovo formato dei sorgenti
3.0 (native).
Ci sarà anche bisogno di eseguire ulteriori operazioni descritte in Nuova distribuzione, Sezione 9.3.
Vengono qui presentate alcune note per l'aggiornamento dei pacchetti.
Si preservino le vecchie voci del changelog
(sembra ovvio, ma a
volte si sono verificati problemi per aver scritto "dch"
mentre si sarebbe dovuto scrivere "dch -i".)
Cambiamenti preesistenti devono essere ricontrollati; si scarti tutto ciò che è stato incorporato in upstream (in una forma o nell'altra) e ci si ricordi di mantenere tutto quello che non è stato incorporato dall'upstream, a meno che non ci sia una buona ragione per non farlo.
Se è stato fatto qualsiasi cambiamento nel sistema di costruzione del
pacchetto (sperabilmente ce se ne renderà conto controllando i cambiamenti
dall'originale) allora si aggiorni il file debian/rules
e le
dipendenze di debian/control
se necessario.
Si controlli nel Debian Bug
Tracking System (BTS)
se qualcuno ha reso disponibili delle patch ai
bug che sono attualmente aperti.
Si controlli il contenuto del file .changes
per essere sicuri che
si stia caricando la distribuzione corretta, le risoluzioni ai bug vengono
listate nel campo Closes, i campi Maintainer e
Changed-By corrispondono, il file è firmato con GPG, ecc.
[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ successivo ]
Guida per il nuovo Maintainer
version 1.2.25, 2010-12-22 12:44:34 UTCjoy-mg@debian.org
kalos@nerdrug.org
jacopo.reggiani@gmail.com