SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Downloaden Sie, um offline zu lesen
Empaquetado con Mercurial




                                           Ernesto Crespo
                                           ecrespo@debianvenezuela.org




    Debian Venezuela www.debian.org.ve
    Velug              www.velug.org.ve
    Blog             ernesto-ecrespo.blogspot.com
    Twitter:         @ernestocrespo
                                                    Día Debian
                                                    Barquisimeto 21 de
Presentación liberada bajo Licencia GDFL            Agosto de 2010
Agenda

 ●¿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
¿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
●
Feliz Cumpleaños al Proyecto Debian!!!
Contrato Social de Debian

Debian permanecerá 100% Libre
●




Contribuir a la comunidad del Software Libre
●




No ocultaremos los problemas
●




Nuestra prioridad son los usuarios y el Software Libre
●




Trabajos que no reúnan nuestros estándares irán a contrib y/o non-free
●
Directrices de Debian
De libre distribución
●




Incluir código fuente
●




Debe permitir trabajos derivados
●




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




Ninguna discriminación contra personas o grupos
●




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




Distribución de la Licencia
●




La Licencia no debe ser específica para Debian
●




La Licencia no debe contaminar otros programas
●




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

Mejor sistema operativo libre posible
●




Facilitar la instalación de Software
●




    ●   Precompilado,configurado, legal y libre

    ●   Dependencias, actualizaciones, seguridad

Facilitar la desinstalación de Software
●




    ●   Que paquete es el responsable de cada archivo

Asegurar que todo el Software funciona
●
Organigrama
●Directores
  ● DPL – Líder del Proyecto Stefano Zacchiroli

  ● Comité Técnico. 1 Presidente y 7 miembros

  ● Secretario

●Distribución

  ● Proyectos de Desarrollo

  ● Paquetes Individuales

  ● Documentación

  ● Lista de paquetes que necesitan ayuda

  ● Equipo APT

  ● Adaptaciones GNU/Linux

  ● GNU/Hurd

  ● BSD

  ● Configuraciones Especiales

●Publicidad

●Apoyo e Infraestructura

●Custom Debian Distribution
Algunas estadísticas




Más de 230 millones de líneas de código
Más de 40 mil paquetes
Para que una empresa privada desarrolle Debian tendría que invertir
8 millones de dolares!
¿Cómo contribuir?
Escribir documentación
●



Traducir documentación
●



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



Colaborar en las listas
●



Administrar las listas
●



Reportar fallos
●



Desarrolladores
●



Mantenedores
●



Donaciones
●


    ●   Metálico
    ●   Máquinas para desarrollo y conectividad
    ●   Sitios replicas
        ●   UNESR
Traducciones en general
 Documentación de Debian - http://www.debian.org/doc/
 ●




     ●   Cómo's

     ●   Preguntas frecuentes

     ●   Manuales de instalación

     ●   Otros documentos

 Ayuda con las páginas de Debian
 ●




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

 Debian se vuelve internacional
 ●




     ●   http://www.debian.org/intl/
Donaciones
●Donaciones a Software en el Interés Público
  ● http://www.debian.org/donations

  ● Donaciones de dinero

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

  ● Donaciones de equipos y servicios

    ● http://www.debian.org/misc/equipment_donations

    ● Debian Venezuela :-p

    ● Lista de Hardware que se necesita

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

●Socios

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

●Mirrors

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

  ● Mirrors Oficiales

    ● http://www.debian.org/mirror/official_sponsors
Apoyar en las listas de Correo
 Introducción a la lista de correo, código de conducta y uso
 ●




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

 Listas de correo, suscripción
 ●




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

     ●   debian-user-spanish

     ●   debian-devel-spanish

     ●   debian-l10n-spanish

 Archivo de las listas
 ●




     ●   http://lists.debian.org/
¿Qué hay que conocer para ser Mantenedor/Desarrollador?
●Conocer la filosofía y principios de Debian




    ●   Contrato Social

    ●   Directrices

    ●   DFSG

Conocer los requisitos que debe cumplir un paquete
●




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

Familiarizarse 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 DD
●
Debian Policy
Guía del nuevo desarrollador de Debian
Referencia del Desarrollador Debian
Proceso de adopción de un paquete huérfano en Debian
●Es la forma más rápida para adoptar un paquete huérfano
  ● http://www.debian.org/devel/wnpp/

  ● Buscar un paquete que sea de su interés

  ● Que corra en el hardware que uno tiene

●Enviar un correo con la intención de adopción del paquete huérfano

●Crear una jaula sid para trabajar con el paquete

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

  ● chroot sid-root/

●Bajar la fuente del paquete

  ● apt-get source paquete

●Realizar los cambios necesarios

  ● Corrección de bugs

  ● Modificar Changelog, Copyright, Control, rules

●Empaquetar el paquete

  ●  fakeroot dpkgbuildpackage ­us ­uc
●Verificar el paquete con linda, lintian, piuparts,pbuilder

●Firmar el paquete y enviarlo a su sponsor
Proceso de empaquetado
 Anunciar intención de empaquetar (ITP)
 ●




     ●   Comprobar WNPP si existen ITPs previos

 Obtener y descomprimir el código fuente original
 ●




     ●   Comprobar la Licencia

 Añadir cambios específicos para Debian
 ●




 Construir paquete fuente Debian
 ●




 Construir paquetes binarios para Debian
 ●




 Comprobar y arreglar problemas (repetir)
 ●
Resumen del proceso de empaquetado
Búsqueda de paquetes Huérfanos-WNPP
Reporte de paquete Huérfano
RFA: Request for Adoption
Información del paquete
Reporte de fallos del paquete
Adoptar un paquete huérfano
Procesada la adopción
Intención de subir un paquete nuevo - ITP:
Procesado el ITP
debian/changelog
 Cambios 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 upstream
gnusim8085 (1.2.90-1) unstable; urgency=low

 * New upstream release.

 -- Ernesto Nadir Crespo Avila <ecrespo@debianvenezuela.org> 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 <aj@andaco.de>

-- Ernesto Nadir Crespo Avila <ecrespo@debianvenezuela.org> Sun, 02 Jan 2005
23:28:09 -0400
debian/control
 Metadatos de los paquetes fuentes y binarios

  Source: nitpic
  Section: electronics
  Priority: extra
  Maintainer: Ernesto Nadir Crespo Avila <ecrespo@debianvenezuela.org>
  Uploaders: Ana Isabel Delgado Dominguez <anubis@debianvenezuela.org>
  Build-Depends: libx11-dev, libxt-dev, libxaw7-dev, xutils, binutils-dev,
  binutils
  Standards-Version: 3.6.2

  Package: nitpic
  Architecture: any
  Depends: ${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.
debian/rules
 Reglas para compilar y construir el paquete
   Técnicamente un Makefileconf metas especificas:
     build, binary,binary-arch,binary-indep,clean
   La mayoría de las veces se usan herramientas
 Algunas veces muy simple otras veces muy complejo
   La integración en el sistema puede resultar difícil


  build: Compila el programa
  binary: Crea el paquete binario
     Instala el programa bajo debian/tmp
     Pone los metadatos de empaquetado en
   debian/tmp/DEBIAN
  clean: Limpia el árbol
Herramientas para facilitar el empaquetado
●debhelper
  ● Conjunto de programas para realizar tareas comunes

  ● Crea el archivo debian/rules

  ● dh_installman: Instala páginas de manual

●cdbs

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


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


    reemplazadas
El rincón del desarrollador Debian
Wiki de Debian
¿Cómo informar los fallos?
Seguimiento de errores
Proceso para ser nuevo mantenedor de Debian

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



 Es importante tener una clave GPG y buscar firmas
 ●



 Puede llevar meses, sobre todo de espera
 ●



 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 aplica
 ciones
 ●   Mucho trabajo, mucho que aprender, es necesario para crear
 buenos paquetes
Proceso de Nuevo Mantenedor
●El proceso comienza al llenar el formulario que está en:
http://nm.debian.org/newnm.php
●Luego de llenar el formulario, la persona queda en la cola NM en la


sección “No Advocate” http://nm.debian.org/nmlist.php
●El advocate (abogado) tiene que ser un DD y muchas veces es el


sponsor, quién se responsabiliza de subir los paquetes del solicitante
al archivo de Debian
●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 la


cola NM
●Cuando un Application Manager (http://nm.debian.org/whoisam.php)


queda con un cupo disponible,FD verifica que la persona solicitante si
haya hecho una contribución a Debian y asigna esa persona solicitante
al AM, la cual pasa a la sección “Applicants being processed” de la cola
NM
Mapa Conceptual. Lo necesario para ser DD
¿Como funciona Mercurial?
Mercurial es un sistema de control de versiones distribuido para desarrolladores
de 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: pyloro
requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 26 changes to 20 files
updating working directory
20 files updated, 0 files merged, 0 files removed, 0 files unresolved
¿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.
¿Como funciona Mercurial?
Para ver el log del control de versiones se ejecuta hg log dentro del directorio:
ecrespo@canaima:~/repositorio/python-loro$ hg log
changeset: 0:8f241da3b2f9
tag: tip
user: ernesto@moonlighting
date: Wed Nov 05 23:32:58 2008 -0430
summary: Agregado pyloro a mercurial
¿Como funciona Mercurial?
Para una descripción más detallada de log se ejecuta hg -v log
ecrespo@canaima:~/repositorio/pyloro$ hg -v log
changeset: 2:6d1d0bf8236c
tag: tip
user: ecrespo@canaima
date: Wed Apr 08 19:28:08 2009 -0430
files: ConfigurepyLoro.py Convert.py Festival.py Reproducir.py verifyconfig.py
description:
Change developer information in all files dot py


changeset: 1:33662d0db317
user: ecrespo@canaima
date: Wed Apr 08 18:15:04 2009 -0430
files: pyloro.py
description:
Change developer team in pyloro.py
¿Como funciona Mercurial?
Para ver los tip de cada repositorio se ejecuta hg tip en cada repo:
ecrespo@canaima:~/repositorio/pyloro-prueba$ hg tip
changeset: 5:0ede87ad831c
tag: tip
user: ecrespo@canaima
date: Thu Apr 09 15:17:50 2009 -0430
summary: Change TODO file

ecrespo@canaima:~/repositorio/pyloro$ hg tip
changeset: 2:6d1d0bf8236c
tag: tip
user: ecrespo@canaima
date: Wed Apr 08 19:28:08 2009 -0430
summary: 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.
¿Como funciona Mercurial?
Ahora lo que viene es propagar los cambios a pyloro:
ecrespo@canaima:~/repositorio/pyloro$ hg pull ../pyloro-prueba
pulling from ../pyloro-prueba
searching for changes
adding changesets
adding manifests
adding file changes
added 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 update
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
¿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 changes
http authorization required
realm: Bitbucket.org HTTP
user: ecrespo
password:
bb/acl: ecrespo is allowed. accepted payload.
quota: 185.8 KB in use, 150.0 MB available (0.12% used)
Mantener 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 repositorio
Hg init sshguard
Hg init sshguard.upstream
Mantener 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.gz
VCSCMD: hg
LOGTEXT Imported sshguard_1.3.orig.tar.gz
into Mercurial repository



adding Changes
adding Makefile.am
adding Makefile.in
.......
Mantener 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.upstream
Remember 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.dsc
0:b438c8517fe7
pulling from /home/ecrespo/repositorio/repositorio/sshguard.upstream
requesting all changes
adding changesets
adding manifests
adding file changes
added 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 unresolved
dpkg-source: extracting sshguard in sshguard-1.3
dpkg-source: info: unpacking sshguard_1.3.orig.tar.gz
dpkg-source: info: applying sshguard_1.3-1.diff.gz
Mantener 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 ylwrap
Changes configure debian examples Makefile.am man mkinstalldirs scripts stamp-
h1

ecrespo@canaima:~/repositorio/repositorio/sshguard.upstream$ ls
aclocal.m4 config.h.in configure.ac examples Makefile.am man mkinstalldirs
scripts stamp-h1
Changes configure depcomp install-sh Makefile.in missing README src ylwrap
Cambios 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"
Cambios en el paquete fuente de Debian

Archivo debian/control


Source: sshguard
Section: net
Priority: optional
Maintainer: Ernesto Nadir Crespo Avila
Build-Depends: debhelper (>= 7), autotools-dev
Standards-Version: 3.8.0
Homepage: http://sshguard.sourceforge.net/

Package: sshguard
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, tcpd
Description: Protects from brute force attacks against ssh
Protects networked hosts from the today's widespread
brute force attacks against ssh servers. It detects such attacks
and blocks the author's address with a firewall rule.
Cambios en el paquete fuente de Debian

Exportar variables de ambiente relativas al empaquetador:



export DEBFULLNAME="Ernesto Nadir Crespo Avila"
export DEBEMAIL="ecrespo@debianvenezuela.org".
Cambios 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
Cambios 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
Cambios 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 status
M debian/changelog
M debian/control
M 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 "
Cambios en el paquete fuente de Debian

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

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

changeset: 3:a7094766c4e6
tag: DEBIAN_sshguard_1.3-1
user: ecrespo@canaima
date: Tue Apr 14 13:57:25 2009 -0430
summary: Import Debian sshguard 1.3-1

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

changeset: 1:f61bc4db3564
tag: UPSTREAM_sshguard_1.3_TAG
user: ecrespo@canaima
date: Tue Apr 14 13:57:24 2009 -0430
summary: Added tag UPSTREAM_sshguard_1.3 for changeset b438c8517fe7

changeset: 0:b438c8517fe7
tag: UPSTREAM_sshguard_1.3
user: ecrespo@canaima
date: Tue Apr 14 13:57:24 2009 -0430
summary: Import upstream sshguard version 1.3
Cambios en el paquete fuente de Debian

Se jalan los cambios al repositorio:
ecrespo@canaima:~/repositorio/repositorio$ hg pull sshguard
pulling from sshguard
requesting all changes
adding changesets
adding manifests
adding file changes
added 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 update
60 files updated, 0 files merged, 0 files removed, 0 files unresolved
Cambios en el paquete fuente de Debian

Ahora se crea el paquete:
ecrespo@canaima:~/repositorio/repositorio$ hg-buildpackage -rfakeroot -k
Building ../sshguard_1.3.orig.tar.gz from Mercurial history
dpkg-buildpackage -rfakeroot -D -us -uc -i.hg -I.hg
dpkg-buildpackage: set CFLAGS to default value: -g -O2
dpkg-buildpackage: set CPPFLAGS to default value:
dpkg-buildpackage: set LDFLAGS to default value:
dpkg-buildpackage: set FFLAGS to default value: -g -O2
dpkg-buildpackage: set CXXFLAGS to default value: -g -O2
dpkg-buildpackage: source package sshguard
dpkg-buildpackage: source version 1.3-2
dpkg-buildpackage: source changed by Ernesto Nadir Crespo Avila
dpkg-buildpackage: host architecture i386
fakeroot debian/rules clean
dh_testdir
dh_testroot
rm -f build-stamp
# Add here commands to clean up after the build process.
[ ! -f Makefile ] || /usr/bin/make distclean
rm -f config.sub config.guess config.status config.status.lineno config.log
dh_clean
Cambios en el paquete fuente de Debian
dh_testdir
dh_testroot
dh_installchangelogs Changes
dh_installdocs
dh_installexamples
dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps
dh_gencontrol
dpkg-gencontrol: warning: unknown substitution variable ${misc:Depends}
dh_md5sums
dh_builddeb
dpkg-deb: construyendo el paquete `sshguard' en `../sshguard_1.3-2_i386.deb'.
dpkg-genchanges >../sshguard_1.3-2_i386.changes
dpkg-genchanges: not including original source code in upload
dpkg-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 secreta
del 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 secreta
del usuario: "Ernesto Nadir Crespo Avila (seraph1) "
clave DSA de 1024 bits, ID C97E7015, creada el 2005-08-15


Successfully signed dsc and changes files
Cambios 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$ ls
sshguard_1.3-2.diff.gz
sshguard_1.3-2_i386.build
sshguard_1.3-2_i386.deb
sshguard_1.3-2.dsc
sshguard_1.3-2_i386.changes
sshguard_1.3.orig.tar.gz
Referencias
●Blog: ernesto-ecrespo.blogspot.com
●Mercurial-buildpackage http://packages.debian.org/sid/mercurial-buildpackage

●Hg-buildpackage http://packages.debian.org/sid/hg-buildpackage


    http://www.debian.org Para aprender mas
      Esquina del desarrollador
      Paginas el nuevo mantenedor
      Developer s reference
      http://bugs.debian.org/wnpp
    Seguir discusiones del proyecto
      irc.oftc.net #debian-es, #debian-ve

Weitere ähnliche Inhalte

Was ist angesagt?

Introducción a git
Introducción a gitIntroducción a git
Introducción a gitKeopx
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4fyomaira
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasJosé Moreno
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque prácticoPatxi Gortázar
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantesnscoder_mad
 
Montaje de-un-proyecto-de-software-libre-v0114069
Montaje de-un-proyecto-de-software-libre-v0114069Montaje de-un-proyecto-de-software-libre-v0114069
Montaje de-un-proyecto-de-software-libre-v0114069Diego Segada
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a DockerOpen Canarias
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de gitAntonio Ognio
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada diaAlan Descoins
 
Control de versiones con Git y Github
Control de versiones con Git y GithubControl de versiones con Git y Github
Control de versiones con Git y Githubguest638090
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesParadigma Digital
 

Was ist angesagt? (20)

Kde4 Se Libre
Kde4 Se LibreKde4 Se Libre
Kde4 Se Libre
 
¿Qué es Software Libre? - v4.0
¿Qué es Software Libre? - v4.0¿Qué es Software Libre? - v4.0
¿Qué es Software Libre? - v4.0
 
Presentacion
PresentacionPresentacion
Presentacion
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4
 
Introducción a Plone y Zope - v0.1.8
Introducción a Plone y Zope - v0.1.8Introducción a Plone y Zope - v0.1.8
Introducción a Plone y Zope - v0.1.8
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
Open Build Service
Open Build ServiceOpen Build Service
Open Build Service
 
Curso ubuntu-12-13.04
Curso ubuntu-12-13.04Curso ubuntu-12-13.04
Curso ubuntu-12-13.04
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
Montaje de-un-proyecto-de-software-libre-v0114069
Montaje de-un-proyecto-de-software-libre-v0114069Montaje de-un-proyecto-de-software-libre-v0114069
Montaje de-un-proyecto-de-software-libre-v0114069
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de git
 
S.o linux
S.o linuxS.o linux
S.o linux
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada dia
 
Control de versiones con Git y Github
Control de versiones con Git y GithubControl de versiones con Git y Github
Control de versiones con Git y Github
 
Git.manual.usuario
Git.manual.usuarioGit.manual.usuario
Git.manual.usuario
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
 

Ähnlich wie Empaquetar un paquete Debian por medio de mercurial

Mantener Paquetes Debian en Equipo
Mantener Paquetes Debian en EquipoMantener Paquetes Debian en Equipo
Mantener Paquetes Debian en EquipoAlejandro Rios Peña
 
Madrid devops empaquetamientodeb_i
Madrid devops empaquetamientodeb_iMadrid devops empaquetamientodeb_i
Madrid devops empaquetamientodeb_iEduardo Ferro Aldama
 
Introduccion al desarrollo con Launchpad
Introduccion al desarrollo con LaunchpadIntroduccion al desarrollo con Launchpad
Introduccion al desarrollo con LaunchpadDenis Fuenzalida
 
Ventajas de Debian GNU/Linux
Ventajas de Debian GNU/LinuxVentajas de Debian GNU/Linux
Ventajas de Debian GNU/LinuxAndy Messi
 
Debian En Chile Andres Ovalle Gahona (Kill 9) Sede Arica
Debian En Chile   Andres Ovalle Gahona (Kill 9)   Sede AricaDebian En Chile   Andres Ovalle Gahona (Kill 9)   Sede Arica
Debian En Chile Andres Ovalle Gahona (Kill 9) Sede Aricaguest0c65bb
 
Taller de Empaquetado para Debian y Canaima
Taller de Empaquetado para Debian y CanaimaTaller de Empaquetado para Debian y Canaima
Taller de Empaquetado para Debian y CanaimaErnesto Crespo
 
Administracion de-redes-gnu-linux
Administracion de-redes-gnu-linuxAdministracion de-redes-gnu-linux
Administracion de-redes-gnu-linuxchen1
 
Python Madrid empaquetamiento deb aplicaciones Python
Python Madrid empaquetamiento deb aplicaciones PythonPython Madrid empaquetamiento deb aplicaciones Python
Python Madrid empaquetamiento deb aplicaciones PythonEduardo Ferro Aldama
 
Manual de instalacion y configuracion de nagios
Manual de instalacion y configuracion de nagiosManual de instalacion y configuracion de nagios
Manual de instalacion y configuracion de nagiosManuel Pérez Ozorio
 
Carlos Rosales
Carlos RosalesCarlos Rosales
Carlos RosalesCarl Ross
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de gitKeopx
 
Instalación de un sistema operativo linux
Instalación de un sistema operativo linuxInstalación de un sistema operativo linux
Instalación de un sistema operativo linuxLeón Arenas Rivera
 
Guia instalación debian
Guia instalación debianGuia instalación debian
Guia instalación debianmarisolgomez90
 

Ähnlich wie Empaquetar un paquete Debian por medio de mercurial (20)

Colaborar en Debian
Colaborar en DebianColaborar en Debian
Colaborar en Debian
 
Mantener Paquetes Debian en Equipo
Mantener Paquetes Debian en EquipoMantener Paquetes Debian en Equipo
Mantener Paquetes Debian en Equipo
 
Colaborar debian
Colaborar debianColaborar debian
Colaborar debian
 
¿quien es debian?
¿quien es debian?¿quien es debian?
¿quien es debian?
 
Madrid devops empaquetamientodeb_i
Madrid devops empaquetamientodeb_iMadrid devops empaquetamientodeb_i
Madrid devops empaquetamientodeb_i
 
Introduccion al desarrollo con Launchpad
Introduccion al desarrollo con LaunchpadIntroduccion al desarrollo con Launchpad
Introduccion al desarrollo con Launchpad
 
Ventajas de Debian GNU/Linux
Ventajas de Debian GNU/LinuxVentajas de Debian GNU/Linux
Ventajas de Debian GNU/Linux
 
Debian En Chile Andres Ovalle Gahona (Kill 9) Sede Arica
Debian En Chile   Andres Ovalle Gahona (Kill 9)   Sede AricaDebian En Chile   Andres Ovalle Gahona (Kill 9)   Sede Arica
Debian En Chile Andres Ovalle Gahona (Kill 9) Sede Arica
 
Taller de Empaquetado para Debian y Canaima
Taller de Empaquetado para Debian y CanaimaTaller de Empaquetado para Debian y Canaima
Taller de Empaquetado para Debian y Canaima
 
Kitsune documentation
Kitsune documentationKitsune documentation
Kitsune documentation
 
Curso servidor
Curso servidorCurso servidor
Curso servidor
 
Linux debian 6
Linux debian 6 Linux debian 6
Linux debian 6
 
Administracion de-redes-gnu-linux
Administracion de-redes-gnu-linuxAdministracion de-redes-gnu-linux
Administracion de-redes-gnu-linux
 
Python Madrid empaquetamiento deb aplicaciones Python
Python Madrid empaquetamiento deb aplicaciones PythonPython Madrid empaquetamiento deb aplicaciones Python
Python Madrid empaquetamiento deb aplicaciones Python
 
Debian
DebianDebian
Debian
 
Manual de instalacion y configuracion de nagios
Manual de instalacion y configuracion de nagiosManual de instalacion y configuracion de nagios
Manual de instalacion y configuracion de nagios
 
Carlos Rosales
Carlos RosalesCarlos Rosales
Carlos Rosales
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de git
 
Instalación de un sistema operativo linux
Instalación de un sistema operativo linuxInstalación de un sistema operativo linux
Instalación de un sistema operativo linux
 
Guia instalación debian
Guia instalación debianGuia instalación debian
Guia instalación debian
 

Mehr von Ernesto Crespo

Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con DockerErnesto Crespo
 
Desarrollo de aplicaciones multiplataforma con python y Kivy
Desarrollo de aplicaciones multiplataforma con python y KivyDesarrollo de aplicaciones multiplataforma con python y Kivy
Desarrollo de aplicaciones multiplataforma con python y KivyErnesto Crespo
 
Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)Ernesto Crespo
 
"Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
 "Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu... "Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
"Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...Ernesto Crespo
 
Python en Android,Charla del FUDcon Latam 2012
Python en Android,Charla del FUDcon Latam 2012Python en Android,Charla del FUDcon Latam 2012
Python en Android,Charla del FUDcon Latam 2012Ernesto Crespo
 
Sistema de Mensajeria de Colas con ZeroMQ y Python
Sistema de Mensajeria de Colas con ZeroMQ y PythonSistema de Mensajeria de Colas con ZeroMQ y Python
Sistema de Mensajeria de Colas con ZeroMQ y PythonErnesto Crespo
 
Gestión de configuración distribuída para la plataforma de Canaima
Gestión de configuración distribuída para la plataforma de Canaima Gestión de configuración distribuída para la plataforma de Canaima
Gestión de configuración distribuída para la plataforma de Canaima Ernesto Crespo
 
Gestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeperGestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeperErnesto Crespo
 

Mehr von Ernesto Crespo (10)

Internet de las cosas
Internet  de las cosasInternet  de las cosas
Internet de las cosas
 
Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con Docker
 
Desarrollo de aplicaciones multiplataforma con python y Kivy
Desarrollo de aplicaciones multiplataforma con python y KivyDesarrollo de aplicaciones multiplataforma con python y Kivy
Desarrollo de aplicaciones multiplataforma con python y Kivy
 
Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)
 
"Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
 "Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu... "Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
"Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
 
Python en Android,Charla del FUDcon Latam 2012
Python en Android,Charla del FUDcon Latam 2012Python en Android,Charla del FUDcon Latam 2012
Python en Android,Charla del FUDcon Latam 2012
 
Sistema de Mensajeria de Colas con ZeroMQ y Python
Sistema de Mensajeria de Colas con ZeroMQ y PythonSistema de Mensajeria de Colas con ZeroMQ y Python
Sistema de Mensajeria de Colas con ZeroMQ y Python
 
Gestión de configuración distribuída para la plataforma de Canaima
Gestión de configuración distribuída para la plataforma de Canaima Gestión de configuración distribuída para la plataforma de Canaima
Gestión de configuración distribuída para la plataforma de Canaima
 
Gestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeperGestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeper
 
Python en Android
Python en AndroidPython en Android
Python en Android
 

Empaquetar un paquete Debian por medio de mercurial

  • 1. Empaquetado con Mercurial Ernesto Crespo ecrespo@debianvenezuela.org Debian Venezuela www.debian.org.ve Velug www.velug.org.ve Blog ernesto-ecrespo.blogspot.com Twitter: @ernestocrespo Día Debian Barquisimeto 21 de Presentación liberada bajo Licencia GDFL Agosto de 2010
  • 2. Agenda ●¿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
  • 3. ¿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 ●
  • 4. Feliz Cumpleaños al Proyecto Debian!!!
  • 5. Contrato Social de Debian Debian permanecerá 100% Libre ● Contribuir a la comunidad del Software Libre ● No ocultaremos los problemas ● Nuestra prioridad son los usuarios y el Software Libre ● Trabajos que no reúnan nuestros estándares irán a contrib y/o non-free ●
  • 6. Directrices de Debian De libre distribución ● Incluir código fuente ● Debe permitir trabajos derivados ● Integridad del código fuente del autor original del programa ● Ninguna discriminación contra personas o grupos ● No discriminación en función de la finalidad perseguida ● Distribución de la Licencia ● La Licencia no debe ser específica para Debian ● La Licencia no debe contaminar otros programas ● Ejemplos de Licencias: GPLv2, GPLv3,BSD y Artística ●
  • 7. Objetivos Mejor sistema operativo libre posible ● Facilitar la instalación de Software ● ● Precompilado,configurado, legal y libre ● Dependencias, actualizaciones, seguridad Facilitar la desinstalación de Software ● ● Que paquete es el responsable de cada archivo Asegurar que todo el Software funciona ●
  • 8. Organigrama ●Directores ● DPL – Líder del Proyecto Stefano Zacchiroli ● Comité Técnico. 1 Presidente y 7 miembros ● Secretario ●Distribución ● Proyectos de Desarrollo ● Paquetes Individuales ● Documentación ● Lista de paquetes que necesitan ayuda ● Equipo APT ● Adaptaciones GNU/Linux ● GNU/Hurd ● BSD ● Configuraciones Especiales ●Publicidad ●Apoyo e Infraestructura ●Custom Debian Distribution
  • 9. Algunas estadísticas Más de 230 millones de líneas de código Más de 40 mil paquetes Para que una empresa privada desarrolle Debian tendría que invertir 8 millones de dolares!
  • 10. ¿Cómo contribuir? Escribir documentación ● Traducir documentación ● Ayudar en la traducción de la página www.debian.org wiki.debian.org ● Colaborar en las listas ● Administrar las listas ● Reportar fallos ● Desarrolladores ● Mantenedores ● Donaciones ● ● Metálico ● Máquinas para desarrollo y conectividad ● Sitios replicas ● UNESR
  • 11. Traducciones en general Documentación de Debian - http://www.debian.org/doc/ ● ● Cómo's ● Preguntas frecuentes ● Manuales de instalación ● Otros documentos Ayuda con las páginas de Debian ● ● http://www.debian.org/devel/website/ Debian se vuelve internacional ● ● http://www.debian.org/intl/
  • 12. Donaciones ●Donaciones a Software en el Interés Público ● http://www.debian.org/donations ● Donaciones de dinero ● http://www.spi-inc.org/donations ● Donaciones de equipos y servicios ● http://www.debian.org/misc/equipment_donations ● Debian Venezuela :-p ● Lista de Hardware que se necesita ● http://www.spi-inc.org/donations ●Socios ● http://www.debian.org/partners/ ●Mirrors ● http://www.debian.org/mirror/ ● Mirrors Oficiales ● http://www.debian.org/mirror/official_sponsors
  • 13. Apoyar en las listas de Correo Introducción a la lista de correo, código de conducta y uso ● ● http://www.debian.org/MailingLists/ Listas de correo, suscripción ● ● http://www.debian.org/MailingLists/subscribe ● debian-user-spanish ● debian-devel-spanish ● debian-l10n-spanish Archivo de las listas ● ● http://lists.debian.org/
  • 14. ¿Qué hay que conocer para ser Mantenedor/Desarrollador? ●Conocer la filosofía y principios de Debian ● Contrato Social ● Directrices ● DFSG Conocer los requisitos que debe cumplir un paquete ● ● Debian Policy http://www.debian.org/doc/debian-policy/ Familiarizarse 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 DD ●
  • 16. Guía del nuevo desarrollador de Debian
  • 18. Proceso de adopción de un paquete huérfano en Debian ●Es la forma más rápida para adoptar un paquete huérfano ● http://www.debian.org/devel/wnpp/ ● Buscar un paquete que sea de su interés ● Que corra en el hardware que uno tiene ●Enviar un correo con la intención de adopción del paquete huérfano ●Crear una jaula sid para trabajar con el paquete ● debootstrap sid sid-root/ http://ftp.debian.org/debian/ ● chroot sid-root/ ●Bajar la fuente del paquete ● apt-get source paquete ●Realizar los cambios necesarios ● Corrección de bugs ● Modificar Changelog, Copyright, Control, rules ●Empaquetar el paquete ● fakeroot dpkgbuildpackage ­us ­uc ●Verificar el paquete con linda, lintian, piuparts,pbuilder ●Firmar el paquete y enviarlo a su sponsor
  • 19. Proceso de empaquetado Anunciar intención de empaquetar (ITP) ● ● Comprobar WNPP si existen ITPs previos Obtener y descomprimir el código fuente original ● ● Comprobar la Licencia Añadir cambios específicos para Debian ● Construir paquete fuente Debian ● Construir paquetes binarios para Debian ● Comprobar y arreglar problemas (repetir) ●
  • 20. Resumen del proceso de empaquetado
  • 21. Búsqueda de paquetes Huérfanos-WNPP
  • 22. Reporte de paquete Huérfano
  • 23. RFA: Request for Adoption
  • 25. Reporte de fallos del paquete
  • 26. Adoptar un paquete huérfano
  • 28. Intención de subir un paquete nuevo - ITP:
  • 30. debian/changelog Cambios 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 upstream gnusim8085 (1.2.90-1) unstable; urgency=low * New upstream release. -- Ernesto Nadir Crespo Avila <ecrespo@debianvenezuela.org> 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 <aj@andaco.de> -- Ernesto Nadir Crespo Avila <ecrespo@debianvenezuela.org> Sun, 02 Jan 2005 23:28:09 -0400
  • 31. debian/control Metadatos de los paquetes fuentes y binarios Source: nitpic Section: electronics Priority: extra Maintainer: Ernesto Nadir Crespo Avila <ecrespo@debianvenezuela.org> Uploaders: Ana Isabel Delgado Dominguez <anubis@debianvenezuela.org> Build-Depends: libx11-dev, libxt-dev, libxaw7-dev, xutils, binutils-dev, binutils Standards-Version: 3.6.2 Package: nitpic Architecture: any Depends: ${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.
  • 32. debian/rules Reglas para compilar y construir el paquete Técnicamente un Makefileconf metas especificas: build, binary,binary-arch,binary-indep,clean La mayoría de las veces se usan herramientas Algunas veces muy simple otras veces muy complejo La integración en el sistema puede resultar difícil build: Compila el programa binary: Crea el paquete binario Instala el programa bajo debian/tmp Pone los metadatos de empaquetado en debian/tmp/DEBIAN clean: Limpia el árbol
  • 33. Herramientas para facilitar el empaquetado ●debhelper ● Conjunto de programas para realizar tareas comunes ● Crea el archivo debian/rules ● dh_installman: Instala páginas de manual ●cdbs ● Sistema de construcción de paquetes basado en la herencia entre Makefiles ● Proporciona reglas estándar que pueden ser extendidas o reemplazadas
  • 34. El rincón del desarrollador Debian
  • 38. Proceso para ser nuevo mantenedor de Debian No se preocupen por el proceso hasta que se sientan cómodos ● Es importante tener una clave GPG y buscar firmas ● Puede llevar meses, sobre todo de espera ● 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 aplica ciones ● Mucho trabajo, mucho que aprender, es necesario para crear buenos paquetes
  • 39. Proceso de Nuevo Mantenedor ●El proceso comienza al llenar el formulario que está en: http://nm.debian.org/newnm.php ●Luego de llenar el formulario, la persona queda en la cola NM en la sección “No Advocate” http://nm.debian.org/nmlist.php ●El advocate (abogado) tiene que ser un DD y muchas veces es el sponsor, quién se responsabiliza de subir los paquetes del solicitante al archivo de Debian ●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 la cola NM ●Cuando un Application Manager (http://nm.debian.org/whoisam.php) queda con un cupo disponible,FD verifica que la persona solicitante si haya hecho una contribución a Debian y asigna esa persona solicitante al AM, la cual pasa a la sección “Applicants being processed” de la cola NM
  • 40. Mapa Conceptual. Lo necesario para ser DD
  • 41. ¿Como funciona Mercurial? Mercurial es un sistema de control de versiones distribuido para desarrolladores de 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: pyloro requesting all changes adding changesets adding manifests adding file changes added 3 changesets with 26 changes to 20 files updating working directory 20 files updated, 0 files merged, 0 files removed, 0 files unresolved
  • 42. ¿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.
  • 43. ¿Como funciona Mercurial? Para ver el log del control de versiones se ejecuta hg log dentro del directorio: ecrespo@canaima:~/repositorio/python-loro$ hg log changeset: 0:8f241da3b2f9 tag: tip user: ernesto@moonlighting date: Wed Nov 05 23:32:58 2008 -0430 summary: Agregado pyloro a mercurial
  • 44. ¿Como funciona Mercurial? Para una descripción más detallada de log se ejecuta hg -v log ecrespo@canaima:~/repositorio/pyloro$ hg -v log changeset: 2:6d1d0bf8236c tag: tip user: ecrespo@canaima date: Wed Apr 08 19:28:08 2009 -0430 files: ConfigurepyLoro.py Convert.py Festival.py Reproducir.py verifyconfig.py description: Change developer information in all files dot py changeset: 1:33662d0db317 user: ecrespo@canaima date: Wed Apr 08 18:15:04 2009 -0430 files: pyloro.py description: Change developer team in pyloro.py
  • 45. ¿Como funciona Mercurial? Para ver los tip de cada repositorio se ejecuta hg tip en cada repo: ecrespo@canaima:~/repositorio/pyloro-prueba$ hg tip changeset: 5:0ede87ad831c tag: tip user: ecrespo@canaima date: Thu Apr 09 15:17:50 2009 -0430 summary: Change TODO file ecrespo@canaima:~/repositorio/pyloro$ hg tip changeset: 2:6d1d0bf8236c tag: tip user: ecrespo@canaima date: Wed Apr 08 19:28:08 2009 -0430 summary: 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.
  • 46. ¿Como funciona Mercurial? Ahora lo que viene es propagar los cambios a pyloro: ecrespo@canaima:~/repositorio/pyloro$ hg pull ../pyloro-prueba pulling from ../pyloro-prueba searching for changes adding changesets adding manifests adding file changes added 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 update 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
  • 47. ¿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 changes http authorization required realm: Bitbucket.org HTTP user: ecrespo password: bb/acl: ecrespo is allowed. accepted payload. quota: 185.8 KB in use, 150.0 MB available (0.12% used)
  • 48. Mantener 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 repositorio Hg init sshguard Hg init sshguard.upstream
  • 49. Mantener 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.gz VCSCMD: hg LOGTEXT Imported sshguard_1.3.orig.tar.gz into Mercurial repository adding Changes adding Makefile.am adding Makefile.in .......
  • 50. Mantener 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.upstream Remember 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.dsc 0:b438c8517fe7 pulling from /home/ecrespo/repositorio/repositorio/sshguard.upstream requesting all changes adding changesets adding manifests adding file changes added 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 unresolved dpkg-source: extracting sshguard in sshguard-1.3 dpkg-source: info: unpacking sshguard_1.3.orig.tar.gz dpkg-source: info: applying sshguard_1.3-1.diff.gz
  • 51. Mantener 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 ylwrap Changes configure debian examples Makefile.am man mkinstalldirs scripts stamp- h1 ecrespo@canaima:~/repositorio/repositorio/sshguard.upstream$ ls aclocal.m4 config.h.in configure.ac examples Makefile.am man mkinstalldirs scripts stamp-h1 Changes configure depcomp install-sh Makefile.in missing README src ylwrap
  • 52. Cambios 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"
  • 53. Cambios en el paquete fuente de Debian Archivo debian/control Source: sshguard Section: net Priority: optional Maintainer: Ernesto Nadir Crespo Avila Build-Depends: debhelper (>= 7), autotools-dev Standards-Version: 3.8.0 Homepage: http://sshguard.sourceforge.net/ Package: sshguard Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, tcpd Description: Protects from brute force attacks against ssh Protects networked hosts from the today's widespread brute force attacks against ssh servers. It detects such attacks and blocks the author's address with a firewall rule.
  • 54. Cambios en el paquete fuente de Debian Exportar variables de ambiente relativas al empaquetador: export DEBFULLNAME="Ernesto Nadir Crespo Avila" export DEBEMAIL="ecrespo@debianvenezuela.org".
  • 55. Cambios 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
  • 56. Cambios 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
  • 57. Cambios 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 status M debian/changelog M debian/control M 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 "
  • 58. Cambios en el paquete fuente de Debian Al ejecutar hg log se muestra los cambios realizados: changeset: 5:7a64e00a1c05 tag: tip user: Ernesto Nadir Crespo Avila date: Tue Apr 14 14:11:19 2009 -0430 summary: Change control and rules files changeset: 4:19b2688f71ec user: ecrespo@canaima date: Tue Apr 14 13:57:26 2009 -0430 summary: Added tag DEBIAN_sshguard_1.3-1 for changeset a7094766c4e6 changeset: 3:a7094766c4e6 tag: DEBIAN_sshguard_1.3-1 user: ecrespo@canaima date: Tue Apr 14 13:57:25 2009 -0430 summary: Import Debian sshguard 1.3-1 changeset: 2:85a24e090d85 user: ecrespo@canaima date: Tue Apr 14 13:57:24 2009 -0430 summary: Added tag UPSTREAM_sshguard_1.3_TAG for changeset f61bc4db3564 changeset: 1:f61bc4db3564 tag: UPSTREAM_sshguard_1.3_TAG user: ecrespo@canaima date: Tue Apr 14 13:57:24 2009 -0430 summary: Added tag UPSTREAM_sshguard_1.3 for changeset b438c8517fe7 changeset: 0:b438c8517fe7 tag: UPSTREAM_sshguard_1.3 user: ecrespo@canaima date: Tue Apr 14 13:57:24 2009 -0430 summary: Import upstream sshguard version 1.3
  • 59. Cambios en el paquete fuente de Debian Se jalan los cambios al repositorio: ecrespo@canaima:~/repositorio/repositorio$ hg pull sshguard pulling from sshguard requesting all changes adding changesets adding manifests adding file changes added 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 update 60 files updated, 0 files merged, 0 files removed, 0 files unresolved
  • 60. Cambios en el paquete fuente de Debian Ahora se crea el paquete: ecrespo@canaima:~/repositorio/repositorio$ hg-buildpackage -rfakeroot -k Building ../sshguard_1.3.orig.tar.gz from Mercurial history dpkg-buildpackage -rfakeroot -D -us -uc -i.hg -I.hg dpkg-buildpackage: set CFLAGS to default value: -g -O2 dpkg-buildpackage: set CPPFLAGS to default value: dpkg-buildpackage: set LDFLAGS to default value: dpkg-buildpackage: set FFLAGS to default value: -g -O2 dpkg-buildpackage: set CXXFLAGS to default value: -g -O2 dpkg-buildpackage: source package sshguard dpkg-buildpackage: source version 1.3-2 dpkg-buildpackage: source changed by Ernesto Nadir Crespo Avila dpkg-buildpackage: host architecture i386 fakeroot debian/rules clean dh_testdir dh_testroot rm -f build-stamp # Add here commands to clean up after the build process. [ ! -f Makefile ] || /usr/bin/make distclean rm -f config.sub config.guess config.status config.status.lineno config.log dh_clean
  • 61. Cambios en el paquete fuente de Debian dh_testdir dh_testroot dh_installchangelogs Changes dh_installdocs dh_installexamples dh_installman dh_link dh_strip dh_compress dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol dpkg-gencontrol: warning: unknown substitution variable ${misc:Depends} dh_md5sums dh_builddeb dpkg-deb: construyendo el paquete `sshguard' en `../sshguard_1.3-2_i386.deb'. dpkg-genchanges >../sshguard_1.3-2_i386.changes dpkg-genchanges: not including original source code in upload dpkg-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 secreta del 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 secreta del usuario: "Ernesto Nadir Crespo Avila (seraph1) " clave DSA de 1024 bits, ID C97E7015, creada el 2005-08-15 Successfully signed dsc and changes files
  • 62. Cambios 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$ ls sshguard_1.3-2.diff.gz sshguard_1.3-2_i386.build sshguard_1.3-2_i386.deb sshguard_1.3-2.dsc sshguard_1.3-2_i386.changes sshguard_1.3.orig.tar.gz
  • 63. Referencias ●Blog: ernesto-ecrespo.blogspot.com ●Mercurial-buildpackage http://packages.debian.org/sid/mercurial-buildpackage ●Hg-buildpackage http://packages.debian.org/sid/hg-buildpackage http://www.debian.org Para aprender mas Esquina del desarrollador Paginas el nuevo mantenedor Developer s reference http://bugs.debian.org/wnpp Seguir discusiones del proyecto irc.oftc.net #debian-es, #debian-ve