Sumari
Després del llançament del paquet, és possible que hagis d'actualitzar-ho aviat.
Suposem que s'ha enviat un informe d'error del teu paquet amb el número
#654321
, i que descriu un problema que pots solucionar.
Per construir una nova revisió del paquet, necessites:
Si cal aplicar una nova modificació, executa:
dquilt new
per establir el
nom de la modificació.
nom_modificació.patch
dquilt add
per establir el fitxer al qual s'aplicarà la modificació.
arxiu_a_modificar
Corregir el problema en el paquet de fonts degut a un error de l'autor.
dquilt refresh
per desar els canvis realitzats en el
fitxer del pegat
.
nom_modificació.patch
dquilt header -e
per afegir la descripció;
Si cal actualitzar una modificació ja existent, executa:
dquilt pop
per tornar a
cridar l'arxiu
nom_modificacio.patch
;
nom_modificacio.patch
Corregir el problema existent en la versió incorrecta del fitxer del pegat
.
nom_modificació.patch
dquilt refresh
per actualitzar
.
nom_modificació.patch
dquilt header -e
per actualitzar la descripció a la
capçalera de l'arxiu del pegat.
while dquilt push; do dquilt refresh; done
per aplicar
tots els pegats eliminant les coses innecessàries;
Afegir la informació de la revisió a l'inici del fitxer
changelog
(del directori «Debian»), p. ex. executant
dch -i
o explícitament indicant el número de versió i
revisió executant dch -v
,
i a continuació detallar els canvis realitzats amb un editor [81].
versió
-revisió
Incloure la descripció (breu) de l'error i la solució, seguida de la
referència de la notificació de l'error amb (Closes:
#654321)
. D'aquesta manera, l'informe d'error es «tancarà»
automàticament pel sistema de manteniment del
repositori de Debian quan el paquet sigui acceptat en el repositori.
Repeteix els passos anteriors per a cada una de les modificacions
realitzades actualitzant l'arxiu Debian changelog
amb
dch
si és necessari.
Finalment, reconstrueix el paquet amb les modificacions seguint l'explicació de Secció 6.1, “Reconstrucció completa.”, Capítol 7, Com comprovar el teu paquet per trobar errors., i Capítol 8, Enviar el paquet.. La diferència amb el procediment anterior és que el fitxer de les fonts originals no s'inclourà (degut a que no les ha modificat l'autor original) en carregar el paquet al repositori.
Un dels casos difícils es pot produir en fer un paquet local per
experimentar amb la seva construcció abans de pujar la versió final a
l'arxiu oficial,
p.ex.
.
Per a actualitzacions petites, és una bona idea escriure una entrada a
l'arxiu 1.0.1
-1
changelog
amb la cadena de versió
.
Pots reordenar l'arxiu 1.0.1
-1~rc1
changelog
re-escrivint les
entrades «locals» en una única entrada en fer el paquet definitiu. Consulta
Secció 2.6, “Nom del paquet i versió.” per saber quin és l'ordre de les cadenes de la
versió.
Quan l'autor original allibera una nova versió de les fonts, cal que comencis per revisar la nova versió original.
Comença per llegir els fitxers changelog
,
NEWS
i qualsevol altre documentació on l'autor original
expliqui els canvis realitzats en la nova versió.
Pots comprovar els canvis entre les fonts originals de la nova versió i de l'anterior per detectar qualsevol canvi sospitós de produir errors executant:
$ diff -urNnom_arxiu
-versió_anterior
nom_arxiu
-nova_versió
Les modificacions realitzades en els fitxers generats per «Autotools»
(missing
, aclocal.m4
,
config.guess
, config.h.in
,
config.sub
, configure
,
depcomp
, install-sh
,
ltmain.sh
i Makefile.in
) pots
ignorar-les. Fins i tot pots eliminar-los abans d'executar
diff en les fonts per inspeccionar-les.
Si el paquet
que
examines està correctament empaquetat fent servir els nous formats
nom_del_paquet
3.0 (native)
o 3.0 (quilt)
, per
empaquetar una nova versió de l'autor hauria d'ésser suficient copiar el
directori debian
de la versió anterior a la nova, i a
continuació realitzar les adaptacions necessàries. Pots copiar el directori
debian
de la versió anterior a la nova versió executant
tar xvzf
/
des del directori de les fonts de la nova versió [82]. Per descomptat, caldrà fer algunes tasques òbvies.
ruta
/a
/nom_del_paquet
_versió_anterior
.debian.tar.gz
Comprimir les fonts originals en el fitxer
nom_del_paquet_
.
número_nova_versió
.tar.gz
Actualitzar el fitxer changelog
del directori «debian»
executant dch -v
.
número_nova_versió
-1
Afegeix una nova línia amb el text New upstream release
per indicar que es tracta d'una nova versió de les fonts originals.
Descriu abreujadament els canvis realitzats en les fonts originals
per l'autor que solucionen errors informats i tanca els informes
d'aquests errors afegint Closes:
#
.
número_del_informe_error
Descriu abreujadament els canvis realitzats a les fonts
originals pel desenvolupador (tu mateix en aquest cas) per
solucionar els errors informats i tanca els informes afegint
Closes:
#
.
número_del_informe_error
Executa while dquilt push; do dquilt refresh; done
per
aplicar els pegats eliminat les coses innecessàries.
Si les modificacions no s'executen correctament, inspecciona la situació
(mira la informació dels fitxers .rej
) com segueix:
Si un dels pegats aplicats està integrat en les fonts originals:
executa dquilt delete
per eliminar-lo.
Si un dels pegats entra en conflicte amb els canvis realitzats per l'autor en les fonts originals:
executa dquilt push -f
per aplicar els pegats de la
versió anterior per forçar els rebuigs (tendràs la informació dels rebuigs
en els fitxers
).
truc
.rej
Edita els fitxers
manualment per saber l'efecte que es pretén amb
truc
.rej
.
truc
.rej
Executa dquilt refresh
per actualitzar el pegat.
Continua fins a l'execució de while dquilt push; do dquilt refresh;
done
.
Pots automatitzar aquest procés fent servir l'ordre uupdate(1) com segueix:
$ apt-get sourcenom_del_paquet
... dpkg-source: info: extractingnom_del_paquet
innom_del_paquet
-número_versió_anterior
dpkg-source: info: unpackingnom_del_paquet
_número_versió_anterior
.orig.tar.gz dpkg-source: info: applyingnom_del_paquet
_número_versió_anterior
-1.debian.tar.gz $ ls -Fnom_del_paquet
-número_versió_anterior
/nom_del_paquet
_número_versió_anterior
-1.debian.tar.gznom_del_paquet
_número_versió_anterior
-1.dscnom_del_paquet
_número_versió_anterior
.orig.tar.gz $ wget http://example.org/nom_del_paquet
/nom_del_paquet
-número_versió_actual
.tar.gz $ cdnom_del_paquet
-número_versió_anterior
$ uupdate -vnúmero_versió_actual
../nom_del_paquet
-número_versió_actual
.tar.gz $ cd ../nom_del_paquet
-número_versió_actual
$ while dquilt push; do dquilt refresh; done $ dch ... documenta les modificacions realitzades
Si has configurat el fitxer debian/watch
com s'ha
explicat a Secció 5.20, “Fitxer watch
.”, no és necessari que executis l'ordre
wget. Simplement, executa uscan(1) en el directori
en lloc de l'ordre uupdate. Així, es buscarà
automàticament el fitxer de les fonts, es descarregarà
en el teu ordinador i s'executarà l'ordre uupdate
[83].
nom_del_paquet
-número_versió_anterior
Pots fer el llançament de l'actualització del paquet repetint el que s'ha explicat en Secció 6.1, “Reconstrucció completa.”, Capítol 7, Com comprovar el teu paquet per trobar errors. Capítol 8, Enviar el paquet..
Per actualitzar un paquet no és necessari actualitzar el format de
construcció del paquet. Encara així, pots aprofitar tota la funcionalitat
de debhelper
i del format
3.0
fent el següent [84]:
Si necessites novament algun dels fitxers de plantilla eliminats, pots
regenerar-los executant dh_make amb l'opció
--addmissing
des del directori de les fonts. A
continuació, fes les modificacions ja explicades.
Si el paquet no està actualitzat per fer servir la nova sintaxi
dh de la versió 7 de debhelper
en el fitxer
debian/rules
, fes-ne l'actualització per fer servir
dh. També hauràs d'actualitzar
debian/control
.
Si actualitzes el fitxer rules
construït pel mecanisme
d'inclusió Makefile
del sistema de compilació Debian
(cdbs
) a la nova sintaxi
dh, llegeix els següents documentes per entendre les
variables de configuració DEB_*
.
la còpia local de cdbs-doc.pdf.gz
Si treballes amb un paquet construït amb el format 1.0
sense l'arxiu
, pots
actualitzar-lo a la nova versió nom_del_paquet
.diff.gz3.0 (native)
afegint el
fitxer debian/source/format
amb la línia 3.0
(native)
. Copia els altres fitxers del directori
debian/*
.
Si treballes amb un paquet construït amb el format 1.0
amb el fitxer
, pots
actualitzar-lo al nou format nom_del_paquet
.diff.gz3.0 (native)
afegint el
fitxer debian/source/format
amb la línia 3.0
(native)
. Copia els altres fitxers del directori
debian/*
. Importa el fitxer
nom_del_paquet.diff
generat amb l'ordre
filterdiff -z -x '*/debian/*'
al sistema quilt
[85].
nom_del_paquet
.diff.gz >
nom_del_paquet.diff
Si el paquet s'ha construït amb un altre sistema de pegats com dpatch
, dbs
o cdbs
, fent servir les opcions
-p0
, -p1
o -p2
,
pots convertir-ho al format quilt
fent servir el guió deb3
at http://bugs.debian.org/581186.
Si el paquet s'ha construït executant l'ordre dh amb
l'opció --with quilt
o amb
dh_quilt_patch i dh_quilt_unpatch,
elimina tot això i fes servir el format 3.0 (native)
.
Repassa la secció Secció 9.3, “Nova versió del programa font.” per si has de repetir alguns dels passos indicats en aquesta secció
Aquí tens un llistat de coses a tenir en compte en actualitzar paquets:
Conserva les entrades anteriors del fitxer changelog
(sona a obvietat, però s'han donat casos d'executar dch
en lloc de dch -i
).
Reconsidera els canvis en la construcció del paquet Debian: elimina les modificacions anteriors (sigui el que sigui) i recorda't d'afegir tot el necessari, sempre que no hi hagi una bona raó per no fer-ho.
Si s'ha realitzat alguna modificació en la compilació (ho veuràs quan
inspeccionis els canvis en les fonts originals) pot ser necessari
actualitzar el fitxer debian/rules
i les dependències
de compilació en el fitxer debian/control
.
Comprova si hi ha alguna comunicació de pegats del paquet en el sistema de gestió d'errors (algun usuari pot haver construït i enviat un pegat que puguis fer servir) en Debian Bug Tracking System (BTS).
Comprova el contingut del fitxer .changes
per
assegurar-te que envies el paquet a la distribució correcta, que els
informes d'errors que es tanquen amb la nova versió estan llistats en el
camp Closes
, que el contingut dels camps
Maintainer
i Changed-By
són correctes,
que has signat el fitxer amb la teva clau GPG, etc.
[81] Per escriure la data i hora en el format correcte, cal fer servir
LANG=C date -R
.
[82] Si la versió anterior del paquet està empaquetada amb l'antic format
1.0
, pots fer el mateix executant zcat
/
des del directori de les fonts de la nova versió. ruta
/a
/nom_del_paquet
_versió_anterior
.diff.gz|patch
-p1
[83] Si l'ordre uscan descarrega les fonts però no executa
l'ordre uupdate, cal modificar l'arxiu
debian/watch
afegint debian uupdate
al final de l'URL del fitxer.
[84] Si la persona que patrocina el teu paquet o altres desenvolupadors fan objeccions a l'actualització del format del paquet, no val la pena entossudir-se a argumentar a favor. Hi ha altres coses més importants que atendre.
[85]
Pots fragmentar el fitxer nom_del_paquet.diff
en
diversos fitxers de pegats fent servir l'ordre splitdiff.