Sumari
The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers. Please use this new tutorial as the primary tutorial document.
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 [76].
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.
Repeteix el que vas fer a Secció 6.1, «Reconstrucció completa.» i Capítol 7, Com comprovar el teu paquet per trobar errors..
Una vegada satisfet, canvia el valor de la distribució en el fitxer
changelog de UNRELEASED al valor de
la distribució objectiu unstable (o bé
experimental).[77]
Upload the package as in Capítol 9, Enviar el paquet.. The difference is that this time, the original source archive won't be included, as it hasn't been changed and it already exists in the Debian archive.
One tricky case can occur when you make a local package, to experiment with
the packaging before uploading the normal version to the official archive,
e.g.,
.
For smoother upgrades, it is a good idea to create a
1.0.1-1changelog entry with a version string such as
.
You may unclutter 1.0.1-1~rc1changelog by consolidating such local
change entries into a single entry for the official package. See Secció 2.6, «Nom del paquet i versió.» for the order of version strings.
When preparing packages of a new upstream release for the Debian archive, you must check the new upstream release first.
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_del_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ó [78]. 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ó.orig.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_paquetinnom_del_paquet-número_versió_anteriordpkg-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.21, «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
[79].
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 9, 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 [80]:
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_*.
còpia local de /usr/share/doc/cdbs/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
[81].
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 nou format font 3.0
(quilt).
Has de consultar DEP - Debian Enhancement Proposals i adoptar les propostes ACCEPTADES.
Repassa la secció Secció 8.3, «Nova versió del programa font.» per si has de repetir alguns dels passos indicats en aquesta secció
Si el documents originals fan servir una codificació antiga, actualitzar-los a la codificació UTF-8 és una bona idea.
Fes servir iconv(1) per convertir codificacions de fitxers de text sense format.
iconv -f latin1 -t utf8fitxer_original.txt>fitxer_convertit.txt
Fes servir w3m(1) per convertir fitxers HTML a fitxers sense format en codificació UTF-8. Quan ho facis, assegura't que la configuració local fa servir UTF-8.
LC_ALL=en_US.UTF-8 w3m -o display_charset=UTF-8 \
-cols 70 -dump -no-graph -T text/html \
< fitxer_original.html > fitxer_convertit.txt
Here are a few reminders for updating packages:
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.
[76] Per escriure la data i hora en el format correcte, cal fer servir
LANG=C date -R.
[77] Si fas servir l'ordre dch -r per fer efectiu aquest
darrer canvi, assegura't que deses el fitxer changelog
des del editor.
[78] 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
[79] 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.
[80] 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.
[81]
Pots fragmentar el fitxer nom_del_paquet.diff en
diversos fitxers de pegats fent servir l'ordre splitdiff.