Empaquetar un paquete Debian por medio de mercurial

63
Empaquetado con Mercurial Empaquetado con Mercurial Ernesto Crespo [email protected] Debian Venezuela www.debian.org.ve Velug www.velug.org.ve Blog ernesto-ecrespo.blogspot.com Twitter: @ernestocrespo Presentación liberada bajo Licencia GDFL Día Debian Barquisimeto 21 de Agosto de 2010

description

Se describe el proceso de como mantener un paquete Debian por medio de un control de versiones distribuido llamado mercurial

Transcript of Empaquetar un paquete Debian por medio de mercurial

Page 1: Empaquetar un paquete Debian por medio de mercurial

Empaquetado con MercurialEmpaquetado con Mercurial

Ernesto [email protected]

Debian Venezuela www.debian.org.veVelug www.velug.org.veBlog ernesto-ecrespo.blogspot.comTwitter: @ernestocrespo

Presentación liberada bajo Licencia GDFL

Día Debian Barquisimeto 21 de Agosto de 2010

Page 2: Empaquetar un paquete Debian por medio de mercurial

AgendaAgenda

●¿Qué es Debian?●Contrato Social de Debian●Directrices de Debian●Objetivos●Organigrama●Algunas estadísticas●¿Dónde contribuir?●Proceso de adopción de un paquete●Empaquetado●Herramientas para facilitar el empaquetado●¿Dónde seguir?●Proceso para ser un Nuevo Mantenedor●Mapa Conceptual. Lo necesario para ser DD●Empaquetado con Mercurial●Referencias

Page 3: Empaquetar un paquete Debian por medio de mercurial

¿Qué es Debian?¿Qué es Debian?

●Debian nace como una iniciativa de la FSF y su Proyecto GNU

●Ian Murdock se hace cargo de la dirección del Proyecto en 1993

●El nombre de Debian deriva del nombre de su esposa Debra e Ian

●El ideal es crear un Sistema Operativo totalmente Libre y Universal

●Su desarrollo corresponde a voluntarios a nivel mundial

Page 4: Empaquetar un paquete Debian por medio de mercurial

Feliz Cumpleaños al Proyecto Debian!!!Feliz Cumpleaños al Proyecto Debian!!!

Page 5: Empaquetar un paquete Debian por medio de mercurial

Contrato Social de DebianContrato Social de Debian

●Debian permanecerá 100% LibreDebian permanecerá 100% Libre

●Contribuir a la comunidad del Software LibreContribuir a la comunidad del Software Libre

●No ocultaremos los problemasNo ocultaremos los problemas

●Nuestra prioridad son los usuarios y el Software LibreNuestra prioridad son los usuarios y el Software Libre

●Trabajos que no Trabajos que no reúnanreúnan nuestros estándares irán a contrib y/o non-free nuestros estándares irán a contrib y/o non-free

Page 6: Empaquetar un paquete Debian por medio de mercurial

Directrices de Debian●De libre distribuciónDe libre distribución

●Incluir código fuenteIncluir código fuente

●Debe permitir trabajos derivadosDebe permitir trabajos derivados

●Integridad del código fuente del autor original del programaIntegridad del código fuente del autor original del programa

●Ninguna discriminación contra personas o gruposNinguna discriminación contra personas o grupos

●No discriminación en función de la finalidad perseguidaNo discriminación en función de la finalidad perseguida

●Distribución de la LicenciaDistribución de la Licencia

●La Licencia no debe ser específica para DebianLa Licencia no debe ser específica para Debian

●La Licencia no debe contaminar otros programasLa Licencia no debe contaminar otros programas

●Ejemplos de Licencias: GPLv2, GPLv3,BSD y ArtísticaEjemplos de Licencias: GPLv2, GPLv3,BSD y Artística

Page 7: Empaquetar un paquete Debian por medio de mercurial

Objetivos Objetivos

●Mejor sistema operativo libre posibleMejor sistema operativo libre posible

●Facilitar la instalación de SoftwareFacilitar la instalación de Software

● Precompilado,configurado, legal y librePrecompilado,configurado, legal y libre

● Dependencias, actualizaciones, seguridadDependencias, actualizaciones, seguridad

●Facilitar la Facilitar la desinstalacióndesinstalación de Software de Software

● Que paquete es el responsable de cada archivoQue paquete es el responsable de cada archivo

●Asegurar que todo el Software funcionaAsegurar que todo el Software funciona

Page 8: Empaquetar un paquete Debian por medio de mercurial

OrganigramaOrganigrama●Directores Directores

● DPL – Líder del Proyecto Stefano ZacchiroliDPL – Líder del Proyecto Stefano Zacchiroli● ComitéComité Técnico. 1 Presidente y 7 miembros Técnico. 1 Presidente y 7 miembros● SecretarioSecretario

●DistribuciónDistribución● Proyectos de DesarrolloProyectos de Desarrollo● Paquetes IndividualesPaquetes Individuales● DocumentaciónDocumentación● Lista de paquetes que necesitan ayudaLista de paquetes que necesitan ayuda● Equipo APTEquipo APT● Adaptaciones GNU/LinuxAdaptaciones GNU/Linux● GNU/HurdGNU/Hurd● BSDBSD● Configuraciones EspecialesConfiguraciones Especiales

●PublicidadPublicidad●Apoyo e InfraestructuraApoyo e Infraestructura●Custom Debian DistributionCustom Debian Distribution

Page 9: Empaquetar un paquete Debian por medio de mercurial

Algunas Algunas estadísticasestadísticas

Más de 230 millones de líneas de códigoMás de 230 millones de líneas de códigoMás de 40 mil paquetesMás de 40 mil paquetesPara que una empresa privada desarrolle Debian tendría que invertirPara que una empresa privada desarrolle Debian tendría que invertir8 millones de dolares!8 millones de dolares!

Page 10: Empaquetar un paquete Debian por medio de mercurial

¿Cómo contribuir?¿Cómo contribuir?●Escribir documentaciónEscribir documentación

●Traducir documentaciónTraducir documentación

●Ayudar en la traducción de la página Ayudar en la traducción de la página www.debian.orgwww.debian.org wiki.debian.org wiki.debian.org

●Colaborar en las listasColaborar en las listas

●Administrar las listasAdministrar las listas

●Reportar fallosReportar fallos

●DesarrolladoresDesarrolladores

●MantenedoresMantenedores

●DonacionesDonaciones

● MetálicoMetálico

● Máquinas para desarrollo y conectividadMáquinas para desarrollo y conectividad

● Sitios replicasSitios replicas

● UNESRUNESR

Page 11: Empaquetar un paquete Debian por medio de mercurial

Traducciones en generalTraducciones en general

●Documentación de Debian - Documentación de Debian - http://www.debian.org/doc/http://www.debian.org/doc/

● Cómo'sCómo's

● Preguntas frecuentesPreguntas frecuentes

● Manuales de instalaciónManuales de instalación

● Otros documentosOtros documentos

●Ayuda con las páginas de Debian Ayuda con las páginas de Debian

● http://www.debian.org/devel/website/http://www.debian.org/devel/website/

●Debian se vuelve internacionalDebian se vuelve internacional

● http://www.debian.org/intl/http://www.debian.org/intl/

Page 12: Empaquetar un paquete Debian por medio de mercurial

DonacionesDonaciones●Donaciones a Software en el Donaciones a Software en el InterésInterés Público Público

● http://www.debian.org/donationshttp://www.debian.org/donations● Donaciones de dineroDonaciones de dinero

● http://www.spi-inc.org/donationshttp://www.spi-inc.org/donations● Donaciones de equipos y serviciosDonaciones de equipos y servicios

● http://www.debian.org/misc/equipment_donationshttp://www.debian.org/misc/equipment_donations● Debian Venezuela :-pDebian Venezuela :-p● Lista de Hardware que se necesitaLista de Hardware que se necesita

● http://www.spi-inc.org/donationshttp://www.spi-inc.org/donations●SociosSocios

● http://www.debian.org/partners/http://www.debian.org/partners/●MirrorsMirrors

● http://www.debian.org/mirror/http://www.debian.org/mirror/● Mirrors OficialesMirrors Oficiales

● http://www.debian.org/mirror/official_sponsorshttp://www.debian.org/mirror/official_sponsors

Page 13: Empaquetar un paquete Debian por medio de mercurial

Apoyar en las listas de CorreoApoyar en las listas de Correo●Introducción a la lista de correo, código de conducta y usoIntroducción a la lista de correo, código de conducta y uso

● http://www.debian.org/MailingLists/http://www.debian.org/MailingLists/

●Listas de correo, suscripciónListas de correo, suscripción

● http://www.debian.org/MailingLists/subscribehttp://www.debian.org/MailingLists/subscribe

● debian-user-spanishdebian-user-spanish

● debian-devel-spanishdebian-devel-spanish

● debian-l10n-spanishdebian-l10n-spanish

●Archivo de las listasArchivo de las listas

● http://lists.debian.org/http://lists.debian.org/

Page 14: Empaquetar un paquete Debian por medio de mercurial

¿¿Qué hay que conocer para ser Mantenedor/Desarrollador?Qué hay que conocer para ser Mantenedor/Desarrollador?●Conocer la filosofía y principios de DebianConocer la filosofía y principios de Debian

● Contrato SocialContrato Social

● DirectricesDirectrices

● DFSGDFSG

●Conocer los requisitos que debe cumplir un paqueteConocer los requisitos que debe cumplir un paquete

● Debian Policy Debian Policy http://www.debian.org/doc/debian-policy/http://www.debian.org/doc/debian-policy/

●Familiarizarse con el manual de Referencia del MantenedorFamiliarizarse con el manual de Referencia del Mantenedor

● http://www.debian.org/doc/packaging-manuals/developers-reference/http://www.debian.org/doc/packaging-manuals/developers-reference/

●Tener una llave GPG firmada mínimo por un DDTener una llave GPG firmada mínimo por un DD

Page 15: Empaquetar un paquete Debian por medio de mercurial

Debian PolicyDebian Policy

Page 16: Empaquetar un paquete Debian por medio de mercurial

Guía del nuevo desarrollador de DebianGuía del nuevo desarrollador de Debian

Page 17: Empaquetar un paquete Debian por medio de mercurial

Referencia del Desarrollador DebianReferencia del Desarrollador Debian

Page 18: Empaquetar un paquete Debian por medio de mercurial

Proceso de adopción de un paquete Proceso de adopción de un paquete huérfanohuérfano en Debian en Debian●Es la forma más rápida para adoptar un paquete huérfanoEs la forma más rápida para adoptar un paquete huérfano

● http://www.debian.org/devel/wnpp/http://www.debian.org/devel/wnpp/● Buscar un paquete que sea de su Buscar un paquete que sea de su interésinterés● Que corra en el hardware que uno tieneQue corra en el hardware que uno tiene

●Enviar un correo con la intención de adopción del paquete huérfanoEnviar un correo con la intención de adopción del paquete huérfano●Crear una jaula sid para trabajar con el paqueteCrear una jaula sid para trabajar con el paquete

● debootstrap sid sid-root/ debootstrap sid sid-root/ http://ftp.debian.org/debian/http://ftp.debian.org/debian/● chroot sid-root/chroot sid-root/

●Bajar la fuente del paqueteBajar la fuente del paquete● apt-get source paqueteapt-get source paquete

●Realizar los cambios necesariosRealizar los cambios necesarios● Corrección de bugsCorrección de bugs● Modificar Changelog, Copyright, Control, rulesModificar Changelog, Copyright, Control, rules

●Empaquetar el paqueteEmpaquetar el paquete● fakeroot fakeroot dpkgbuildpackagedpkgbuildpackage ­us ­uc ­us ­uc

●Verificar el paquete con linda, lintian, piuparts,pbuilderVerificar el paquete con linda, lintian, piuparts,pbuilder●Firmar el paquete y enviarlo a su sponsorFirmar el paquete y enviarlo a su sponsor

Page 19: Empaquetar un paquete Debian por medio de mercurial

Proceso de empaquetadoProceso de empaquetado

●Anunciar intención de empaquetar (ITP)Anunciar intención de empaquetar (ITP)

● Comprobar WNPP si existen ITPs previosComprobar WNPP si existen ITPs previos

●Obtener y descomprimir el código fuente originalObtener y descomprimir el código fuente original

● Comprobar la LicenciaComprobar la Licencia

●Añadir cambios específicos para DebianAñadir cambios específicos para Debian

●Construir paquete fuente DebianConstruir paquete fuente Debian

●Construir paquetes binarios para DebianConstruir paquetes binarios para Debian

●Comprobar y arreglar problemas (repetir)Comprobar y arreglar problemas (repetir)

Page 20: Empaquetar un paquete Debian por medio de mercurial

Resumen del proceso de empaquetadoResumen del proceso de empaquetado

Page 21: Empaquetar un paquete Debian por medio de mercurial

BúsquedaBúsqueda de paquetes Huérfanos-WNPP de paquetes Huérfanos-WNPP

Page 22: Empaquetar un paquete Debian por medio de mercurial

Reporte de paquete HuérfanoReporte de paquete Huérfano

Page 23: Empaquetar un paquete Debian por medio de mercurial

RFA: Request for AdoptionRFA: Request for Adoption

Page 24: Empaquetar un paquete Debian por medio de mercurial

Información del paqueteInformación del paquete

Page 25: Empaquetar un paquete Debian por medio de mercurial

Reporte de fallos del paqueteReporte de fallos del paquete

Page 26: Empaquetar un paquete Debian por medio de mercurial

Adoptar un paquete huérfanoAdoptar un paquete huérfano

Page 27: Empaquetar un paquete Debian por medio de mercurial

Procesada la adopciónProcesada la adopción

Page 28: Empaquetar un paquete Debian por medio de mercurial

Intención de subir un paquete nuevo - ITP:Intención de subir un paquete nuevo - ITP:

Page 29: Empaquetar un paquete Debian por medio de mercurial

Procesado el ITPProcesado el ITP

Page 30: Empaquetar un paquete Debian por medio de mercurial

debian/changelogCambios en el empaquetado para Debian

En el caso de adopción de un paquete se debe cerrar el bug que deja huérfano

El “upstream” changelog tiene los cambios de upstream o resumen

Caso upstreamgnusim8085 (1.2.90-1) unstable; urgency=low

* New upstream release.

-- Ernesto Nadir Crespo Avila <[email protected]> Mon, 07 Aug 2006 19:59:53 -0400:Caso adopción de un paquete:

nitpic (0.1-9) unstable; urgency=low

* New maintainer (closes: #227784). * Fixed "FTBFS with gcc-3.4: default arguments are only permitted for function parameters" (closes: #287809, #263265). Patch by Andreas Jochens <[email protected]>

-- Ernesto Nadir Crespo Avila <[email protected]> Sun, 02 Jan 2005 23:28:09 -0400

Page 31: Empaquetar un paquete Debian por medio de mercurial

debian/control

Metadatos de los paquetes fuentes y binarios

Source: nitpicSection: electronicsPriority: extraMaintainer: Ernesto Nadir Crespo Avila <[email protected]>Uploaders: Ana Isabel Delgado Dominguez <[email protected]>Build-Depends: libx11-dev, libxt-dev, libxaw7-dev, xutils, binutils-dev, binutils Standards-Version: 3.6.2

Package: nitpicArchitecture: anyDepends: ${shlibs:Depends}Description: Simulator for the Microchip PIC16C84 microcontroller Nitpic is an X-based simulator for the Microchip PIC family of microcontrollers. It currently supports only the PIC16C84. This is beta software.

Page 32: Empaquetar un paquete Debian por medio de mercurial

debian/rules

Reglas para compilar y construir el paqueteTécnicamente un Makefileconf metas especificas:

build, binary,binary-arch,binary-indep,cleanLa mayoría de las veces se usan herramientas

Algunas veces muy simple otras veces muy complejoLa integración en el sistema puede resultar difícil

build: Compila el programabinary: Crea el paquete binario

Instala el programa bajo debian/tmpPone los metadatos de empaquetado en

debian/tmp/DEBIANclean: Limpia el árbol

Page 33: Empaquetar un paquete Debian por medio de mercurial

Herramientas para facilitar el empaquetadoHerramientas para facilitar el empaquetado●debhelper debhelper

● Conjunto de programas para realizar tareas comunesConjunto de programas para realizar tareas comunes● Crea el archivo debian/rulesCrea el archivo debian/rules● dh_installman: Instala páginas de manualdh_installman: Instala páginas de manual

●cdbscdbs● Sistema de construcción de paquetes basado en la herencia entreSistema de construcción de paquetes basado en la herencia entre

Makefiles Makefiles● Proporciona reglas estándar que pueden ser extendidas o Proporciona reglas estándar que pueden ser extendidas o

reemplazadasreemplazadas

Page 34: Empaquetar un paquete Debian por medio de mercurial

El rincón del desarrollador DebianEl rincón del desarrollador Debian

Page 35: Empaquetar un paquete Debian por medio de mercurial

Wiki de DebianWiki de Debian

Page 36: Empaquetar un paquete Debian por medio de mercurial

¿Cómo informar los fallos?¿Cómo informar los fallos?

Page 37: Empaquetar un paquete Debian por medio de mercurial

Seguimiento de erroresSeguimiento de errores

Page 38: Empaquetar un paquete Debian por medio de mercurial

Proceso para ser nuevo mantenedor de DebianProceso para ser nuevo mantenedor de Debian

●No se preocupen por el proceso hasta que se sientan cómodosNo se preocupen por el proceso hasta que se sientan cómodos

●Es importante tener una clave GPG y buscar firmasEs importante tener una clave GPG y buscar firmas

●Puede llevar meses, sobre todo de esperaPuede llevar meses, sobre todo de espera

●Es temido, pero no debería, es un proceso natural para aprender de Es temido, pero no debería, es un proceso natural para aprender de

la organización de Debian, la filosofía del SL y a desarrollar aplicala organización de Debian, la filosofía del SL y a desarrollar aplica

cionesciones

● Mucho trabajo, mucho que aprender, es necesario para crear Mucho trabajo, mucho que aprender, es necesario para crear

buenos paquetesbuenos paquetes

Page 39: Empaquetar un paquete Debian por medio de mercurial

Proceso de Nuevo MantenedorProceso de Nuevo Mantenedor

●El proceso comienza al llenar el formulario que está en:El proceso comienza al llenar el formulario que está en:http://nm.debian.org/newnm.phphttp://nm.debian.org/newnm.php●Luego de llenar el formulario, la persona queda en la cola NM en la Luego de llenar el formulario, la persona queda en la cola NM en la sección “No Advocate” sección “No Advocate” http://nm.debian.org/nmlist.phphttp://nm.debian.org/nmlist.php●El advocate (abogado) tiene que ser un DD y muchas veces es el El advocate (abogado) tiene que ser un DD y muchas veces es el sponsor, quién se responsabiliza de subir los paquetes del solicitantesponsor, quién se responsabiliza de subir los paquetes del solicitanteal archivo de Debianal archivo de Debian●El advocate recibe un email del Front Desk (FD) pidiéndole que expli-El advocate recibe un email del Front Desk (FD) pidiéndole que expli-●La persona solicitante pasa a la sección Un-assigned Applicants” de laLa persona solicitante pasa a la sección Un-assigned Applicants” de lacola NMcola NM●Cuando un Application Manager (Cuando un Application Manager (http://nm.debian.org/whoisam.phphttp://nm.debian.org/whoisam.php) ) queda con un cupo disponible,FD verifica que la persona solicitante siqueda con un cupo disponible,FD verifica que la persona solicitante sihaya hecho una contribución a Debian y asigna esa persona solicitantehaya hecho una contribución a Debian y asigna esa persona solicitanteal AM, la cual pasa a la sección “Applicants being processed” de la colaal AM, la cual pasa a la sección “Applicants being processed” de la colaNMNM

Page 40: Empaquetar un paquete Debian por medio de mercurial

Mapa Conceptual. Lo necesario para ser DDMapa Conceptual. Lo necesario para ser DD

Page 41: Empaquetar un paquete Debian por medio de mercurial

¿Como funciona Mercurial?¿Como funciona Mercurial?

Mercurial es un sistema de control de versiones distribuido para desarrolladoresde Software. Está implementado haciendo uso del lenguaje de programación Python.

Sus comandos básicos son:●Para ver las opciones del comando se ejecuta hg●Para clonar un repositorio por ejemplo el de bitbucket.org de pyloro se jecuta:hg clone http://bitbucket.org/ecrespo/pyloro/destination directory: pylororequesting all changesadding changesetsadding manifestsadding file changesadded 3 changesets with 26 changes to 20 filesupdating working directory20 files updated, 0 files merged, 0 files removed, 0 files unresolved

Page 42: Empaquetar un paquete Debian por medio de mercurial

¿Como funciona Mercurial?¿Como funciona Mercurial?Dentro del directorio python-loro se tiene lo siguiente:

ConfigurepyLoro.py Festival.py MANIFEST pyloro.desktop pyloro.py setup.py Convert.py .hg PKG-INFO pyloro.glade README TODO audio COPYING images pyloro.conf pyloro.png Reproducir.py verifyconfig.py

Note que existe un directorio .hg, dentro de el se encuentra lo siguiente:00changelog.i branch branch.cache dirstate hgrc requires store undo.branch undo.dirstate

Editar el archivo hgrc y agregar la información del usuario, nombre y correo:[paths]default = http://bitbucket.org/ecrespo/pyloro/[ui]username = Ernesto Nadir Crespo Avila

El primero es la ruta de donde se bajo el repositorio, el segundo es la definición del usuario.

Page 43: Empaquetar un paquete Debian por medio de mercurial

¿Como funciona Mercurial?¿Como funciona Mercurial?Para ver el log del control de versiones se ejecuta hg log dentro del directorio:ecrespo@canaima:~/repositorio/python-loro$ hg logchangeset: 0:8f241da3b2f9tag: tipuser: ernesto@moonlightingdate: Wed Nov 05 23:32:58 2008 -0430summary: Agregado pyloro a mercurial

Page 44: Empaquetar un paquete Debian por medio de mercurial

¿Como funciona Mercurial?¿Como funciona Mercurial?Para una descripción más detallada de log se ejecuta hg -v logecrespo@canaima:~/repositorio/pyloro$ hg -v logchangeset: 2:6d1d0bf8236ctag: tipuser: ecrespo@canaimadate: Wed Apr 08 19:28:08 2009 -0430files: ConfigurepyLoro.py Convert.py Festival.py Reproducir.py verifyconfig.pydescription:Change developer information in all files dot py

changeset: 1:33662d0db317user: ecrespo@canaimadate: Wed Apr 08 18:15:04 2009 -0430files: pyloro.pydescription:Change developer team in pyloro.py

Page 45: Empaquetar un paquete Debian por medio de mercurial

¿Como funciona Mercurial?¿Como funciona Mercurial?Para ver los tip de cada repositorio se ejecuta hg tip en cada repo:ecrespo@canaima:~/repositorio/pyloro-prueba$ hg tipchangeset: 5:0ede87ad831ctag: tipuser: ecrespo@canaimadate: Thu Apr 09 15:17:50 2009 -0430summary: Change TODO file

ecrespo@canaima:~/repositorio/pyloro$ hg tipchangeset: 2:6d1d0bf8236ctag: tipuser: ecrespo@canaimadate: Wed Apr 08 19:28:08 2009 -0430summary: Change developer information in all files dot py

Como se puede ver, los tips son diferentes por que se han hecho cambios en pyloro-prueba.

Page 46: Empaquetar un paquete Debian por medio de mercurial

¿Como funciona Mercurial?¿Como funciona Mercurial?Ahora lo que viene es propagar los cambios a pyloro:ecrespo@canaima:~/repositorio/pyloro$ hg pull ../pyloro-pruebapulling from ../pyloro-pruebasearching for changesadding changesetsadding manifestsadding file changesadded 3 changesets with 3 changes to 2 files(run 'hg update' to get a working copy)

Por defecto no se actualiza el directorio de trabajo, es necesario ejecutar hg update:ecrespo@canaima:~/repositorio/pyloro$ hg update2 files updated, 0 files merged, 0 files removed, 0 files unresolved

Page 47: Empaquetar un paquete Debian por medio de mercurial

¿Como funciona Mercurial?¿Como funciona Mercurial?Para subir la información al servidor de repositorio mercurial se hace el commit luego se hace push.

hg commit

hg push http://bitbucket.org/ecrespo/pyloro/pushing to http://bitbucket.org/ecrespo/pyloro/searching for changeshttp authorization requiredrealm: Bitbucket.org HTTPuser: ecrespopassword:bb/acl: ecrespo is allowed. accepted payload.quota: 185.8 KB in use, 150.0 MB available (0.12% used)

Page 48: Empaquetar un paquete Debian por medio de mercurial

Mantener un paquete Debian con MercurialMantener un paquete Debian con Mercurial

Es necesario tener un repositorio mercurial.

Este se crea con el comando hg init.hg init repositorio

Es necesario también crear 2 directorios:●Un directorio para el paquete fuente de Debian●Un directorio para el paquete fuente del upstream

Cd repositorioHg init sshguardHg init sshguard.upstream

Page 49: Empaquetar un paquete Debian por medio de mercurial

Mantener un paquete Debian con MercurialMantener un paquete Debian con Mercurial

Importar las fuentes de Debian:

hg-importdsc /home/ecrespo/paquetes/sshguard/sshguard_1.3-1.dsc

*** Processing upstream file /home/ecrespo/paquetes/sshguard/sshguard_1.3.orig.tar.gzVCSCMD: hgLOGTEXT Imported sshguard_1.3.orig.tar.gzinto Mercurial repository

adding Changesadding Makefile.amadding Makefile.in.......

Page 50: Empaquetar un paquete Debian por medio de mercurial

Mantener un paquete Debian con MercurialMantener un paquete Debian con Mercurial

Importar las fuentes de upstream:/home/ecrespo/paquetes/sshguard/sshguard_1.3.orig.tar.gz imported into /home/ecrespo/repositorio/repositorio/sshguard.upstreamRemember to run hg fetch /home/ecrespo/repositorio/repositorio/sshguard.upstream*** Done processing upstream file /home/ecrespo/paquetes/sshguard/sshguard_1.3.orig.tar.gz*** Processing Debian source tree for /home/ecrespo/paquetes/sshguard/sshguard_1.3-1.dsc0:b438c8517fe7pulling from /home/ecrespo/repositorio/repositorio/sshguard.upstreamrequesting all changesadding changesetsadding manifestsadding file changesadded 3 changesets with 53 changes to 52 files(run 'hg update' to get a working copy)52 files updated, 0 files merged, 0 files removed, 0 files unresolveddpkg-source: extracting sshguard in sshguard-1.3dpkg-source: info: unpacking sshguard_1.3.orig.tar.gzdpkg-source: info: applying sshguard_1.3-1.diff.gz

Page 51: Empaquetar un paquete Debian por medio de mercurial

Mantener un paquete Debian con MercurialMantener un paquete Debian con Mercurial

Ahora se tienen los directorios sshguard y sshguard.upstream con archivos y directorios.ecrespo@canaima:~/repositorio/repositorio/sshguard$ ls aclocal.m4 config.h.in configure.ac depcomp install-sh Makefile.in missing README src ylwrapChanges configure debian examples Makefile.am man mkinstalldirs scripts stamp-h1

ecrespo@canaima:~/repositorio/repositorio/sshguard.upstream$ lsaclocal.m4 config.h.in configure.ac examples Makefile.am man mkinstalldirs scripts stamp-h1Changes configure depcomp install-sh Makefile.in missing README src ylwrap

Page 52: Empaquetar un paquete Debian por medio de mercurial

Cambios en el paquete fuente de DebianCambios en el paquete fuente de Debian

Archivo debian/rules

./configure $(CROSS) --prefix=/usr --mandir=\$${prefix}/share/man --with-firewall=hosts --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs"

Page 53: Empaquetar un paquete Debian por medio de mercurial

Cambios en el paquete fuente de DebianCambios en el paquete fuente de Debian

Archivo debian/control

Source: sshguardSection: netPriority: optionalMaintainer: Ernesto Nadir Crespo Avila Build-Depends: debhelper (>= 7), autotools-devStandards-Version: 3.8.0Homepage: http://sshguard.sourceforge.net/

Package: sshguardArchitecture: anyDepends: ${shlibs:Depends}, ${misc:Depends}, tcpdDescription: Protects from brute force attacks against sshProtects networked hosts from the today's widespreadbrute force attacks against ssh servers. It detects such attacksand blocks the author's address with a firewall rule.

Page 54: Empaquetar un paquete Debian por medio de mercurial

Cambios en el paquete fuente de DebianCambios en el paquete fuente de Debian

Exportar variables de ambiente relativas al empaquetador:

export DEBFULLNAME="Ernesto Nadir Crespo Avila"export DEBEMAIL="[email protected]".

Page 55: Empaquetar un paquete Debian por medio de mercurial

Cambios en el paquete fuente de DebianCambios en el paquete fuente de Debian

Cambiar el archivo debian/changelog agregando los cambios que se realizaron:dch -i

sshguard (1.3-2) unstable; urgency=low

* Remove iptables depend in build-depends in debian/control file.* Add tcpd depend in depends in debian/control file.* Change configure option in debian/rules to hosts.

-- Ernesto Nadir Crespo Avila Tue, 14 Apr 2009 14:06:01 -0430

Page 56: Empaquetar un paquete Debian por medio de mercurial

Cambios en el paquete fuente de DebianCambios en el paquete fuente de Debian

Cambiar el archivo debian/changelog agregando los cambios que se realizaron:dch -i

sshguard (1.3-2) unstable; urgency=low

* Remove iptables depend in build-depends in debian/control file.* Add tcpd depend in depends in debian/control file.* Change configure option in debian/rules to hosts.

-- Ernesto Nadir Crespo Avila Tue, 14 Apr 2009 14:06:01 -0430

Page 57: Empaquetar un paquete Debian por medio de mercurial

Cambios en el paquete fuente de DebianCambios en el paquete fuente de Debian

Al ejecutar el comando hg status apareceran los cambios realizados a los archivos:ecrespo@canaima:~/repositorio/repositorio/sshguard/debian$ hg statusM debian/changelogM debian/controlM debian/rules

Para agregar los cambios al repositorio se ejecuta un commit:ecrespo@canaima:~/repositorio/repositorio/sshguard$ hg commit -m"Change control and rules files" -u "Ernesto Nadir Crespo Avila "

Page 58: Empaquetar un paquete Debian por medio de mercurial

Cambios en el paquete fuente de DebianCambios en el paquete fuente de Debian

Al ejecutar hg log se muestra los cambios realizados:changeset: 5:7a64e00a1c05tag: tipuser: Ernesto Nadir Crespo Avila date: Tue Apr 14 14:11:19 2009 -0430summary: Change control and rules files

changeset: 4:19b2688f71ecuser: ecrespo@canaimadate: Tue Apr 14 13:57:26 2009 -0430summary: Added tag DEBIAN_sshguard_1.3-1 for changeset a7094766c4e6

changeset: 3:a7094766c4e6tag: DEBIAN_sshguard_1.3-1user: ecrespo@canaimadate: Tue Apr 14 13:57:25 2009 -0430summary: Import Debian sshguard 1.3-1

changeset: 2:85a24e090d85user: ecrespo@canaimadate: Tue Apr 14 13:57:24 2009 -0430summary: Added tag UPSTREAM_sshguard_1.3_TAG for changeset f61bc4db3564

changeset: 1:f61bc4db3564tag: UPSTREAM_sshguard_1.3_TAGuser: ecrespo@canaimadate: Tue Apr 14 13:57:24 2009 -0430summary: Added tag UPSTREAM_sshguard_1.3 for changeset b438c8517fe7

changeset: 0:b438c8517fe7tag: UPSTREAM_sshguard_1.3user: ecrespo@canaimadate: Tue Apr 14 13:57:24 2009 -0430summary: Import upstream sshguard version 1.3

Page 59: Empaquetar un paquete Debian por medio de mercurial

Cambios en el paquete fuente de DebianCambios en el paquete fuente de Debian

Se jalan los cambios al repositorio:ecrespo@canaima:~/repositorio/repositorio$ hg pull sshguardpulling from sshguardrequesting all changesadding changesetsadding manifestsadding file changesadded 7 changesets with 66 changes to 60 files(run 'hg update' to get a working copy)

Se actualiza el repositorio:ecrespo@canaima:~/repositorio/repositorio$ hg update60 files updated, 0 files merged, 0 files removed, 0 files unresolved

Page 60: Empaquetar un paquete Debian por medio de mercurial

Cambios en el paquete fuente de DebianCambios en el paquete fuente de Debian

Ahora se crea el paquete:ecrespo@canaima:~/repositorio/repositorio$ hg-buildpackage -rfakeroot -kBuilding ../sshguard_1.3.orig.tar.gz from Mercurial historydpkg-buildpackage -rfakeroot -D -us -uc -i.hg -I.hgdpkg-buildpackage: set CFLAGS to default value: -g -O2dpkg-buildpackage: set CPPFLAGS to default value: dpkg-buildpackage: set LDFLAGS to default value: dpkg-buildpackage: set FFLAGS to default value: -g -O2dpkg-buildpackage: set CXXFLAGS to default value: -g -O2dpkg-buildpackage: source package sshguarddpkg-buildpackage: source version 1.3-2dpkg-buildpackage: source changed by Ernesto Nadir Crespo Avila dpkg-buildpackage: host architecture i386fakeroot debian/rules cleandh_testdirdh_testrootrm -f build-stamp # Add here commands to clean up after the build process.[ ! -f Makefile ] || /usr/bin/make distcleanrm -f config.sub config.guess config.status config.status.lineno config.logdh_clean

Page 61: Empaquetar un paquete Debian por medio de mercurial

Cambios en el paquete fuente de DebianCambios en el paquete fuente de Debian

dh_testdirdh_testrootdh_installchangelogs Changesdh_installdocsdh_installexamplesdh_installmandh_linkdh_stripdh_compressdh_fixpermsdh_installdebdh_shlibdepsdh_gencontroldpkg-gencontrol: warning: unknown substitution variable ${misc:Depends}dh_md5sumsdh_builddebdpkg-deb: construyendo el paquete `sshguard' en `../sshguard_1.3-2_i386.deb'.dpkg-genchanges >../sshguard_1.3-2_i386.changesdpkg-genchanges: not including original source code in uploaddpkg-buildpackage: binary and diff upload (original source NOT included)Now running lintian...Finished running lintian.Now signing changes and any dsc files...signfile sshguard_1.3-2.dsc C97E7015

Necesita una frase contraseña para desbloquear la clave secretadel usuario: "Ernesto Nadir Crespo Avila (seraph1) "clave DSA de 1024 bits, ID C97E7015, creada el 2005-08-15

signfile sshguard_1.3-2_i386.changes C97E7015

Necesita una frase contraseña para desbloquear la clave secretadel usuario: "Ernesto Nadir Crespo Avila (seraph1) "clave DSA de 1024 bits, ID C97E7015, creada el 2005-08-15

Successfully signed dsc and changes files

Page 62: Empaquetar un paquete Debian por medio de mercurial

Cambios en el paquete fuente de DebianCambios en el paquete fuente de Debian

En este momento se tiene el paquete .deb y los archivos creados en el momento del empaquetado:ecrespo@canaima:~/repositorio$ lssshguard_1.3-2.diff.gz sshguard_1.3-2_i386.build sshguard_1.3-2_i386.debsshguard_1.3-2.dsc sshguard_1.3-2_i386.changes sshguard_1.3.orig.tar.gz

Page 63: Empaquetar un paquete Debian por medio de mercurial

ReferenciasReferencias

●Blog: ernesto-ecrespo.blogspot.com●Mercurial-buildpackage http://packages.debian.org/sid/mercurial-buildpackage●Hg-buildpackage http://packages.debian.org/sid/hg-buildpackagehttp://www.debian.org Para aprender mas

Esquina del desarrollador Paginas el nuevo mantenedorDeveloper s referencehttp://bugs.debian.org/wnpp

Seguir discusiones del proyectoirc.oftc.net #debian-es, #debian-ve