Sumari
Després del llançament del paquet, és possible que hagis d'actualitzar-ho aviat.
Suposem que s'ha creat 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-1changelog amb la cadena de versió
.
Pots reordenar l'arxiu 1.0.1-1~rc1changelog 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 quins é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ó_anteriornom_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_paquet3.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, que cal fer algunes tasques
òbvies.
ruta/a/nom_paquet_versió_anterior.debian.tar.gz
Comprimir les fonts originals en el fitxer
nom_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) como segueix:
$ apt-get sourcenom_paquet... dpkg-source: info: extractingnom_paquetinnom_paquet-número_versió_anteriordpkg-source: info: unpackingnom_paquet_número_versió_anterior.orig.tar.gz dpkg-source: info: applyingnom_paquet_número_versió_anterior-1.debian.tar.gz $ ls -Fnom_paquet-número_versió_anterior/nom_paquet_número_versió_anterior-1.debian.tar.gznom_paquet_número_versió_anterior-1.dscnom_paquet_número_versió_anterior.orig.tar.gz $ wget http://example.org/nom_paquet/nom_paquet-número_versió_actual.tar.gz $ cdnom_paquet-número_versió_anterior$ uupdate -vnúmero_versió_actual../nom_paquet-número_versió_actual.tar.gz $ cd ../nom_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, se descarregarà
en el teu ordinador i s'executarà l'ordre uupdate
[83].
nom_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 cdbs-doc.pdf.gz i aprèn les variables de
configuració DEB_*.
Si treballes amb un paquet construït amb el format 1.0
sense l'arxiu
, pots
actualitzar-lo a la nova versió nom_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_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_paquet.diff generat amb l'ordre filterdiff
-z -x '*/debian/*' al sistema quilt [85].
nom_paquet.diff.gz >
nom_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 executantzcat
/ des del directori de les fonts de la nova versió. ruta/a/nom_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_paquet.diff en diversos
fitxers de pegats fent servir l'ordre splitdiff.