Nota: Tomado del Software Freedom Camp.
Contents
- Nivel 0: Conocimientos básicos del proceso de publicación y preparación de un entorno de desarrollo
- Nivel 1: La base para empaquetar
- Nivel 2: Actualizar paquetes existentes a versiones originales menores o parcheadas
- Nivel 3: Empaquetar módulos más complicados
- Nivel 4: Escojer un módulo útil no empaquetado y subirlo al repositorio
Nivel 0: Conocimientos básicos del proceso de publicación y preparación de un entorno de desarrollo
Ciclo de vida de una publicación (el viaje de un paquete desde la primera carga hasta que llega al usuario, incluído en una publicación soportada).
Administrar repositorios / sources.list (administrar la lista de servidores de paquetes Deb).
Cómo instalar paquetes desde stable-backports (se requieren algunos pasos adicionales para incluir versiones nuevas en un sistema estable).
Orden apt-file find para saber qué paquete incluye un fichero (normalmente para localizar un programa o fichero de cabecera que falta) - - tutorial de apt-file
Diferentes opciones para preparar un entorno Debian Sid (si te has familiarizado con el ciclo de vida de una publicación mirando los pasos anteriores, sabrás que los paquetes y versiones nuevos se suben primero a Sid o Inestable, así que desarrollamos en esa rama).
Compilar paquetes existentes desde su código fuente (las instrucciones node-pretty-ms son recientes, así que se puede obviar el ejemplo de fdupes del tutorial). Aprender a compilar desde el código fuente es útil para cuando quieres retroportar (backport) un paquete (por ejemplo si quieres recompilar una versión nueva de un paquete desde instable o en pruebas (testing) a tu sistema estable). También es útil si quieres modificar un paquete existente, por ejemplo para corregir un defecto o insertar un commit del repositorio original.
En este punto deberías estar familiarizado con las órdenes
apt source, dget, debcheckout o gbp clone
dpkg-source -x,
dpkg-buildpackage/debuild,
apt build-dep,
apt source -b
para recompilar un paquete Debian desde el código fuente.
Nivel 1: La base para empaquetar
Comprender los conceptos básicos para usar debmake/dh_make (obtener tarballs de código fuente, crear un paquete de fuentes, compilar el paquete binario, hacer que cumpla con lintian)
Una visión general y por encima del empaquetamiento incluye
Descargar el código fuente del software a empaquetar (habitualmente tarballs de publicación)
Crear una plantilla de directorio debian (con herramientas como npm2deb or gem2deb según el lenguaje de programación que se use)
Compilar el fichero *.deb combinando ambos (con dpkg-buildpackage)
Nota: Actualmente debmake tiene un defecto al crear paquetes node. Así que usa la orden dh_make del paquete dh-make en vez de debmake.
Una vez comprendas los conceptos básicos, usa npm2deb para automatizar algunas de esas tareas, como descargar el tarball original, una mejor plantilla del directorio debian que las que crean dh_make/debmake ya que npm2deb sabe más detalles especificos de los modulos node. Todavía tendrás que arreglar lo que te marca Lintian.
En este punto deberías saber
- crear paquetes aprobados por Lintian para módulos simples y
compilarlos en un entorno limpio como sbuild.
También deberías saber como importar un fichero dsc a un repositorio git (gbp import-dsc --pristine-tar) y
subir tu trabajo a un servicio de alojamiento git público como http://salsa.debian.org (git push -u --all --follow-tags)
Nivel 2: Actualizar paquetes existentes a versiones originales menores o parcheadas
Una vez que tengas una visión clara del empaquetamiento de un modulo simple podemos subir al siguiente escalón: Actualizar paquetes existentes
Comprender el Esquema Semántico de Versionado y cómo una nueva versión en origen puede implicar un cambio rompedor. Presta especial atención al software con versiones 0.x porque tampoco garantizan la compatibilidad de sus actualizatciones menores.
Actualizar paquetes existentes a versiones originales nuevas
Usar Quilt si necesitar crear o modificar cualquier parche
Empieza firmando tus commits en git y sube tu clave GPG pública al servidor de claves de OpenPGP.org (este es el servidor por omisión en GPG y Thunderbird así que cualquiera podrá buscar tus claves a partir de tu dirección de correo electrónico. Necesitas verificar tu correo tras la carga para que la búsqueda funcione.)
En este punto deberías saber...
- Cómo enviar correos RFS
- Usar Quilt para modificar código fuente original si fuera necesario
- Firmar tus commits en git
Nivel 3: Empaquetar módulos más complicados
El siguiente paso es empaquetar módulos más complicados que conlleven cosas como, modificar algunos ficheros originales, eliminar algunos del tarball de fuentes, generar algunos ficheros desde el código fuente, obtener el tarball a partir de un commit etc.
En este punto deberías saber...
- Crear parches con quilt
- Reempaquetar un orig.tar y excluir ficheros especificos
Usar las opciones de pkg-js-tools para compilar desde el código fuente
Compilar paquetes con código fuente typescript
Nivel 4: Escojer un módulo útil no empaquetado y subirlo al repositorio
Únete a los equipos de empaquetamiento que te interesen. Únete a sus listas y/o canales de IRC y diles que quieres ayudar empaquetando de acuerdo a su documentación.
En este punto deberías saber...
- Cómo instanciar un ITP
