[ 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. [51]
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
Changes to some auto-generated files by Autotools such as missing
,
aclocal.m4
, config.guess
, config.h.in
,
config.sub
, configure
, depcomp
,
install-sh
, ltmain.sh
, and Makefile.in
may be ignored. You may erase them before running diff
to the
source for inspection.
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. [52] 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
If you set up a debian/watch
file as described in Il file watch
, Sezione 5.20,
you can skip the wget
command. You simply run
uscan(1)
in the foo-oldversion
directory instead of the uupdate
command. This will
automagically look for the updated source, download it, and run the
uupdate
command. [53]
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. [54]
Se c'è bisogno per qualsiasi motivo di aggiungere file di template cancellati,
si può ancora eseguire il comando dh_make
nella stessa directory,
già debianizzata, con l'opzione --addmissing. Fatto ciò
si potrà modificarla 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_*. [55]
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.
If you have a 1.0 source package with the
foo.diff.gz
file, you can update it to the newer
3.0 (native) source format by creating
debian/source/format
with "3.0 (quilt)".
The rest of debian/*
files can be just copied. Import the
big.diff
file generated by the "filterdiff -z -x
'*/debian/*' foo.diff.gz > big.diff" command to your
quilt
system, if needed. [56]
If it was packaged with another patch system such as dpatch
,
dbs
, or cdbs
with -p0, -p1,
or -p2, convert it to the quilt
command using
deb3
at http://bugs.debian.org/581186
.
If it was packaged with the dh
command with the "--with
quilt" option or with the dh_quilt_patch
and
dh_quilt_unpatch
commands, remove such things and make it use the
newer 3.0 (native) source format.
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 Debian Bug Tracking
System (BTS)
se qualcuno abbia fornito delle patch a 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.19, 2010-05-31 13:48:35 UTCjoy-mg@debian.org
kalos@nerdrug.org
jacopo.reggiani@gmail.com