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
-1
changelog
entry with a version string such as
.
You may unclutter 1.0.1
-1~rc1
changelog
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ó_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ó [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_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.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.