11 dic. 2011

Generar una gráfica en python con PyQwt. Parte 1

Continuando con las librerías para generar gráficos en Python ahora explicaré como usar la librerías PyQwt de Qt para crear gráficas.

Este ejemplo se baja en la introducción que tiene la página oficial de PyQwt. En este caso se cambio el rango del arreglo y las funciones a graficar.

En el ejemplo se crea el rango de valores con numpy, luego se crea la instancia de la Clase QApplication para crear las 2 curvas y luego salvarla en un archivo con formato png.

El código se muestra a continuación:


#!/usr/bin/env python
#Importar numpy
import numpy as np
#Importar las librerias Qt
from PyQt4.Qt import *
#Importar las librerias Qwt5
from PyQt4.Qwt5 import *
#De Qwt5 importar qplt
from PyQt4.Qwt5.qplt import *
#Importar sleep
from time import sleep


#Instanciar la clase QApplication
application = QApplication([])


# Crea un arreglo desde -4PI a 4Pi en incrementos de 0.01
x = np.arange(-4*np.pi, 4*np.pi, 0.01)


#Crea 2 curvas con el eje vertical en escala logaritmica.
p = Plot(Curve(x, np.cos(x), Pen(Blue, 2), "cos(x)"),
         Curve(x, np.exp(x)+4+4*np.sin(x), Pen(Magenta,2), "exp(x)+4*sin(x)+4",Y2),
         Axis(Y2, Log),"PyQwt usando Qwt-%s " % QWT_VERSION_STR)


#Hace una captura de pantalla de la imagen y lo guarda en un archivo con formato PNG
QPixmap.grabWidget(p).save('cli-plot-1.png', 'PNG')

La gráfica generada se muestra en la siguiente figura:


8 dic. 2011

Compartir repositorios Mercurial por ssh


En artículo anterior se explica como compartir un repositorio mercurial con mercurial-server, ahora se explicará como hacerlo usando ssh  con claves públicas.


Lo que primero se va a hacer es crear la clave pública para ssh y distribuirlo al equipo o los equipos, luego se verifica el funcionamiento del ssh con la clave pública.

La idea es mantener respaldado la configuración de un equipo que está con control de versiones con mercurial usando etckeeper.

En el servidor es necesario instalar etckeeper, mercurial y ssh.


apt-get install etckeeper mercurial openssh-server 

Configurar etckeeper y mercurial.
vim /etc/etckeeper/etckeeper.conf

Se descomenta y agrega lo siguiente en el archivo:

# The VCS to use.
VCS="hg"
#VCS="git"
#VCS="bzr"
#VCS="darcs"


# Options passed to git commit when run by etckeeper.
#GIT_COMMIT_OPTIONS=""


# Options passed to hg commit when run by etckeeper.
HG_COMMIT_OPTIONS="-u ecrespo@gmail.com"


# Options passed to bzr commit when run by etckeeper.
#BZR_COMMIT_OPTIONS=""


# Options passed to darcs record when run by etckeeper.
#DARCS_COMMIT_OPTIONS="-a"


# Uncomment to avoid etckeeper committing existing changes
# to /etc automatically once per day.
AVOID_DAILY_AUTOCOMMITS=1


# Uncomment to avoid etckeeper committing existing changes to
# /etc before installation. It will cancel the installation,
# so you can commit the changes by hand.
#AVOID_COMMIT_BEFORE_INSTALL=1


# The high-level package manager that's being used.
# (apt, pacman-g2, yum etc)
HIGHLEVEL_PACKAGE_MANAGER=apt


# The low-level package manager that's being used.
# (dpkg, rpm, pacman-g2, etc)
LOWLEVEL_PACKAGE_MANAGER=dpkg


vim /etc/mercurial/hgrc

[ui]
username = "Ernesto Nadir Crespo Avila <ecrespo@gmail.com>"
editor = vim
# pedir indicación de archivos cambiados:
verbose=True




Inicializar etckeeper.

etckeeper init
...
adding ssl/certs/f950ccc2.0
adding ssl/certs/facacbc6.0
adding ssl/certs/ff783690.0
adding ssl/certs/signet_ca1_pem.pem
adding ssl/certs/signet_ca2_pem.pem
adding ssl/certs/signet_ca3_pem.pem
adding ssl/certs/signet_ocspklasa2_pem.pem
adding ssl/certs/signet_ocspklasa3_pem.pem
adding ssl/certs/signet_pca2_pem.pem
adding ssl/certs/signet_pca3_pem.pem
adding ssl/certs/signet_rootca_pem.pem
adding ssl/certs/signet_tsa1_pem.pem
adding ssl/certs/spi-ca-2003.pem
adding ssl/certs/spi-cacert-2008.pem
adding ssl/certs/ssl-cert-snakeoil.pem
adding ssl/certs/thawte_Primary_Root_CA.pem
adding ssl/openssl.cnf
adding ssl/private/ssl-cert-snakeoil.key
adding subversion/config
adding subversion/servers
adding sudoers
adding sudoers.d/README
adding sysctl.conf
adding sysctl.d/README.sysctl
adding sysctl.d/bindv6only.conf
adding terminfo/README
adding timezone
adding ts.conf
adding ucf.conf
adding ufw/applications.d/bind9
adding ufw/applications.d/openssh-server
adding ufw/applications.d/postfix
adding vga/dvorak-us.keymap
adding vga/libvga.config
adding vga/libvga.et4000
adding vga/null.keymap
adding vim/vimrc
adding vim/vimrc.tiny
adding w3m/config
adding w3m/mailcap
adding wgetrc
adding xml/catalog
adding xml/xml-core.xml



Este comando agregará todos los archivos de configuración dentro del directorio /etc a un control de versiones, en este caso mercurial.


Al ejecutar el comando de mercurial para ver el estatus muestra los archivos que fueron agregados:

hg status /etc/
...
A sudoers
A sudoers.d/README
A sysctl.conf
A sysctl.d/README.sysctl
A sysctl.d/bindv6only.conf
A terminfo/README
A timezone
A ts.conf
A ucf.conf
A ufw/applications.d/bind9
A ufw/applications.d/openssh-server
A ufw/applications.d/postfix
A vga/dvorak-us.keymap
A vga/libvga.config
A vga/libvga.et4000
A vga/null.keymap
A vim/vimrc
A vim/vimrc.tiny
A w3m/config
A w3m/mailcap
A wgetrc
A xml/catalog
A xml/xml-core.xml


Ahora se hace el primer commit.
etckeeper commit "Inicializacion del control de versiones"
...
sysctl.conf
sysctl.d/README.sysctl
sysctl.d/bindv6only.conf
terminfo/README
timezone
ts.conf
ucf.conf
ufw/applications.d/bind9
ufw/applications.d/openssh-server
ufw/applications.d/postfix
vga/dvorak-us.keymap
vga/libvga.config
vga/libvga.et4000
vga/null.keymap
vim/vimrc
vim/vimrc.tiny
w3m/config
w3m/mailcap
wgetrc
xml/catalog
xml/xml-core.xml
committed changeset 0:10c12e9f2889



Ahora se creará la clave ssh y se copiará en el servidor.

ssh-keygen -t rsa -C "ecrespo@gmail.com" -f hgernesto-identity
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in hgernesto-identity.
Your public key has been saved in hgernesto-identity.pub.
The key fingerprint is:
ca:7a:09:57:77:85:9c:05:d8:73:ca:d0:b1:41:5c:11 ecrespo@gmail.com
The key's randomart image is:
+--[ RSA 2048]----+
|           B=BEo |
|          o Ooo  |
|           o.=   |
|        . . +    |
|       .S. .     |
|    ....         |
|     oo.         |
|     .o          |
|    ..           |
+-----------------+


Se copia la clave pública al servidor.

scp hgernesto-identity.pub ernesto@www.crespo.org.ve:.ssh/
ernesto@www.crespo.org.ve's password: 
hgernesto-identity.pub           100%  399     0.4KB/s   00:00    

Se accede al servidor:

ssh ernesto@www.crespo.org.ve
ernesto@www.crespo.org.ve's password: 
Linux crespo.org.ve 2.6.26-2-vserver-amd64 #1 SMP Fri Aug 14 09:21:21 UTC 2009 x86_64


The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.


Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Dec  8 18:58:20 2011 from 190.75.37.237


ernesto@crespo:~$ 

Se agrega la llave publica al archivo authorized_keys.
cd .ssh
cat hgernesto-identity.pub &gt;&gt;  authorized_keys

Se regresa al equipo que se conectará al servidor.

Se crea el archivo ~/.ssh/config Se agrega el host, el usuario y la clave privada que se va a usar para la conexión ssh.

Host www.crespo.org.ve
    user ernesto
    IdentityFile ~/.ssh/hgernesto-identity


Se verifica que se conecte al servidor usando la llave pública.

ssh www.crespo.org.ve -i ~/.ssh/hgernesto-identity -l ernesto
Linux crespo.org.ve 2.6.26-2-vserver-amd64 #1 SMP Fri Aug 14 09:21:21 UTC 2009 x86_64


The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.


Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Dec  8 19:20:08 2011 from 190.75.37.237


ernesto@crespo:~$ 

Esta vez el servidor no pidió clave para el usuario.

Ahora se va a clonar el directorio etc para tener la configuración en el home del usuario.

sudo hg clone /etc conf-www.respo.org.ve
...
getting subversion/servers
getting sudoers
getting sudoers.d/README
getting sysctl.conf
getting sysctl.d/README.sysctl
getting sysctl.d/bindv6only.conf
getting terminfo/README
getting timezone
getting ts.conf
getting ucf.conf
getting ufw/applications.d/bind9
getting ufw/applications.d/openssh-server
getting ufw/applications.d/postfix
getting vga/dvorak-us.keymap
getting vga/libvga.config
getting vga/libvga.et4000
getting vga/null.keymap
getting vim/vimrc
getting vim/vimrc.tiny
getting w3m/config
getting w3m/mailcap
getting wgetrc
getting xml/catalog
getting xml/xml-core.xml
1775 files updated, 0 files merged, 0 files removed, 0 files unresolved

Se cambia el dueño y el grupo del repositorio ya que pertenece a root y no se va  a poder clonar con ese dueño.

sudo chown -R ernesto.ecrespo conf-www.respo.org.ve/


Ahora se prueba realizar la clonación del repositorio del servidor en la máquina local.

ernesto@zeath:~$ hg clone ssh://ernesto@www.crespo.org.ve/repo/conf-www.respo.org.ve 
destination directory: conf-www.respo.org.ve
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1775 changes to 1775 files
updating to branch default
1775 files updated, 0 files merged, 0 files removed, 0 files unresolved
remote: 1 changesets found

Se verifica el repositorio local.


ernesto@zeath:~$ hg log conf-www.respo.org.ve/
changeset:   0:10c12e9f2889
tag:         tip
user:        ecrespo@gmail.com
date:        Thu Dec 08 19:11:24 2011 +0000
summary:     Inicializacion del control de versiones



Ya se tiene respaldada la configuración del servidor por medio de control de versiones, si se desea tener automatizado el proceso se puede crear scripts que se coloquen en el cron de manera que diariamente se tenga actualizado el respaldo de la configuración del servidor por medio de control de versiones distribuido (mercurial).


Es recomendable sacar del control de versiones los archivos shadow, passwd y group.

14 nov. 2011

Creación de paquete Debian que contiene un archivo cron con config-package-dev

El paquete config-package-dev facilita la creación de un paquete Debian que contenga un archivo de configuración de cron.

Para este caso se creará un archivo cron para el programa logcheck. Este programa estará como Pre-Depends para que este instalado y configurado antes de instalar el paquete con la configuración de logcheck en el cron.



Instalar logcheck:
apt-get install logcheck

El archivo cron para logcheck contendrá lo siguiente:

# /etc/cron.d/logcheck: crontab entries for the logcheck package

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

@reboot         logcheck    if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck -R; fi
* * * * *       logcheck    if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck; fi

# EOF

Procedimiento para la creación del paquete:

1. Creación del directorio de trabajo y del directorio Debian:
mkdir -p canaima-cron-logcheck-0.1
mkdir -p canaima-cron-logcheck-0.1/debian

2. Se crea el archivo debian/changelog
canaima-cron-logcheck (0.1) unstable; urgency=low

  * Initial release.

 -- Ernesto Nadir Crespo Avila <ecrespo@gmail.com>  Mon, 14 Nov 2011 21:48:20 -0430

3. Se crea el archivo compat con el valor de 7.

4. Se crea el archivo control y control.in con lo siguiente:
Se coloca logcheck como predependencia, se define el standar version con valor 3.9.2.
Source: canaima-cron-logcheck
Section: config
Priority: extra
Maintainer: Ernesto Nadir Crespo Avila <ecrespo@gmail.com>
Build-Depends: cdbs (>= 0.4.23-1.1), debhelper (>= 4.2.0), config-package-dev (>= 4.5~)
Standards-Version: 3.9.2

Package: canaima-cron-logcheck
Architecture: all
Depends: cdbs, ${misc:Depends}
Pre-Depends: logcheck
Provides: ${diverted-files}
Conflicts: ${diverted-files}
Description: Configuracion de cron para logcheck
 Configuracion de cron para logcheck.

5. Se crea el archivo debian/copyright:
Se mantiene el autor del paquete ya que se está usando tal cual el ejemplo de cron para logcheck de config-package-dev.
canaima-cron-logcheck.
Example config-package-dev package.

Author: Tim Abbott <tabbott@mit.edu>

Copyright © 2008 Tim Abbott <tabbott@mit.edu>

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

6. Se crea el archivo debian/canaima-cron-logcheck.cron.d con el contenido del cron para logcheck:
# /etc/cron.d/logcheck: crontab entries for the logcheck package

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

@reboot         logcheck    if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck -R; fi
* * * * *       logcheck    if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck; fi

# EOF

7. Se crea el archivo debian/rules con el siguiente contenido:
#!/usr/bin/make -f

DEB_DIVERT_EXTENSION = .canaima

# This will remove /etc/cron.d/logcheck
DEB_REMOVE_FILES_canaima-cron-logcheck += \
        /etc/cron.d/logcheck

# We will install (using dh_installcron, by placing the new cron job
# at debian/canaima-cron-logcheck.cron.d) a new version that runs
# every minute, rather than every 30 minutes.  This will generate a
# lot of mail.  Note that we cannot install a new file to the path
# /etc/cron.d/logcheck from which a file was removed using
# DEB_REMOVE_FILES.

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/config-package.mk

8. Se le agrega permiso de ejecución al archivo debian/rules:
chmod a+x debian/rules

9. Al final se tienen los siguientes archivos:
ecrespo@jewel:~/canaima/canaima-cron-logcheck-0.1$ ls -l debian/
total 28
-rw-r--r-- 1 ecrespo ecrespo  347 nov 14 22:02 canaima-cron-logcheck.cron.d
-rw-r--r-- 1 ecrespo ecrespo  157 nov 14 21:50 changelog
-rw-r--r-- 1 ecrespo ecrespo    2 nov 14 21:50 compat
-rw-r--r-- 1 ecrespo ecrespo  481 nov 14 21:55 control
-rw-r--r-- 1 ecrespo ecrespo  481 nov 14 21:55 control.in
-rw-r--r-- 1 ecrespo ecrespo 1169 nov 14 22:01 copyright
-rwxr-xr-x 1 ecrespo ecrespo  612 nov 14 22:06 rules

10. Se crea y se firma el paquete canaima-cron-logcheck-0.1:
dpkg-buildpackage -rfakeroot -kC97E7015

11. Al final se creán los siguientes archivos:
ls -l canaima-cron-logcheck*
-rw-r--r-- 1 ecrespo ecrespo 2902 nov 14 22:08 canaima-cron-logcheck_0.1_all.deb
-rw-r--r-- 1 ecrespo ecrespo  876 nov 14 22:08 canaima-cron-logcheck_0.1.dsc
-rw-r--r-- 1 ecrespo ecrespo 1551 nov 14 22:09 canaima-cron-logcheck_0.1_i386.changes
-rw-r--r-- 1 ecrespo ecrespo 1807 nov 14 22:08 canaima-cron-logcheck_0.1.tar.gz

12. Se verifica si el paquete cumple con las políticas de Debian con lintian:
lintian -i canaima-cron-logcheck_0.1.dsc

13. Se instala el paquete:
dpkg -i canaima-cron-logcheck_0.1_all.deb

14. El archivo del cron se encuentra ya instalado:
ls -l /etc/cron.d
total 12
-rw-r--r-- 1 root root 244 nov  1  2009 anacron
-rw-r--r-- 1 root root 347 nov 14 22:08 canaima-cron-logcheck
-rw-r--r-- 1 root root 544 sep 13 05:59 php5


13 nov. 2011

Como crear un metapaquete de configuración con config-package-dev

Anteriormente se explico como crear un metapaquete con equivs, se tiene también el paquete config-package-dev el cual permite crear paquetes de configuración donde se puede cambiar la configuración de otros archivos dentro del directorio /etc/ .

Este artículo se basa en el tutorial del MIT sobre creación de paquetes de configuración para Debian y una guía en el wiki de Debian. El proceso de como adoptar un paquete y empaquetar se explica en una guía que se encuentra en el wiki de Debian.


Como ejemplo se usará el paquete openssh-server que crea un archivo con el nombre  /etc/ssh/sshd_config . Este archivo contiene la configuración necesaria para arrancar un servidor ssh.


Instalando openssh-server:
apt-get install openssh-server config-package-dev

El contenido del archivo es el siguiente:
Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server

Este archivo tiene el siguiente hash md5.
8caefdd9e251b7cc1baa37874149a870  /etc/ssh/sshd_config

La idea es modificar este archivo para que no permita que el usuario root se conecte por ssh y no permitir reenvio de aplicaciones gráficas.

 Procedimiento para crear paquete de configuración sshd-config:
1.Crear el directorio de trabajo
mkdir canaima-sshd-config-0.1
2. Cambiarse a dicho directorio
cd canaima-sshd-config-0.1
3. Crear los directorios debian y files
mkdir -p debian files
4. En files crear el directorio etc, luego dentro de el, el directorio ssh y copiar el archivo sshd_config de /etc/ssh/ al directorio creado.
mkdir -p files/etc
mkdir -p files/etc/ssh
cp /etc/ssh/sshd_config ./files/etc/ssh/sshd_config.canaima

5. Modificar el archivo para que el usuario root no pueda acceder al servidor ssh y que no se pueda reenviar paquetes de X11. Las líneas son:
PermitRootLogin no
X11Forwarding no

6. Dentro del directorio debian se creo el archivo changelog con el siguiente contenido:
canaima-sshd-config (0.1) unstable; urgency=low

  * Initial release.

 -- Ernesto Nadir Crespo Avila <ecrespo@gmail.com>  Sun, 13 Nov 2011 10:22:48 -0430


7. Se crea el archivo debian/compat  con el valor 7.
8. Se crea el archivo debian/control y debian/control.in con la siguiente información:
Source: canaima-sshd-config
Section: config
Priority: extra
Maintainer: Ernesto Nadir Crespo Avila <ecrespo@gmail.com>
Build-Depends: cdbs (>= 0.4.23-1.1), debhelper (>= 4.2.0), config-package-dev (>= 4.5~)
Standards-Version: 3.9.2

Package: canaima-sshd-config
Architecture: all
Pre-Depends: openssh-server
Depends: cdbs, ${misc:Depends}
Provides: ${diverted-files}
Conflicts: ${diverted-files}
Description: Archivo de configuracion de ssh
 Archivo de configuracion del servidor ssh.

En este caso se coloca el párametro Pre-Depends ya que se necesita tener el servidor openssh instalado y bien configurado para poder agregarle cambios al archivo /etc/ssh/sshd_config .

9. Se crea el archivo debian/copyright, en este caso se está usando el mismo copyright de los archivos de ejemplo de config-package-dev:
canaima-ssh-config package.

Author: Ernesto Nadir Crespo Avila <ecrespo@gmail.com>

Copyright © 2011 Ernesto Nadir Crespo Avila <ecrespo@gmail.com>

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

10. Se crea el archivo debian/canaima-sshd-config.install . Este archivo define donde se va a tomar los archivos de configuración y a donde se van a copiar.
files/* /





11. Se crea el archivo debian/rules. En este archivo se define la extensión .canaima, la cual permite diferenciar de los paquetes base de Debian de la meta distribución canaima, además se define el archivo a modificar y luego los include de los cdbs:

#!/usr/bin/make -f

DEB_DIVERT_EXTENSION = .canaima
# Replace some base files with simple replacements.
DEB_DIVERT_FILES_canaima-sshd-config += \
        /etc/ssh/sshd_config.canaima        
# These files are installed via dh_install from the files/ directory
# (see debian/canaima-sshd-config.install)

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/config-package.mk

12. Crear el paquete debian y firmarlo con la llave gpg:
dpkg-buildpackage -rfakeroot -kC97E7015

Al ejectuar un ls  se puede ver los archivos creados:
ls -l canaima-sshd*
-rw-r--r-- 1 ecrespo ecrespo 3948 nov 13 16:09 canaima-sshd-config_0.1_all.deb
-rw-r--r-- 1 ecrespo ecrespo  864 nov 13 16:09 canaima-sshd-config_0.1.dsc
-rw-r--r-- 1 ecrespo ecrespo 1521 nov 13 16:09 canaima-sshd-config_0.1_i386.changes
-rw-r--r-- 1 ecrespo ecrespo 2745 nov 13 16:09 canaima-sshd-config_0.1.tar.gz


13. Se verifica que el paquete Debian cumple con el policy de Debian:
lintian -i canaima-sshd-config_0.1.dsc

14. Verificar la instalación del paquete Debian.
sudo dpkg -i canaima-sshd-config_0.1_all.deb
[sudo] password for ecrespo:
Selecting previously unselected package canaima-sshd-config.
(Leyendo la base de datos ... 418546 ficheros o directorios instalados actualmente.)
Desempaquetando canaima-sshd-config (de canaima-sshd-config_0.1_all.deb) ...
Configurando canaima-sshd-config (0.1) ...
Añadiendo `desviación de /etc/ssh/sshd_config a /etc/ssh/sshd_config.canaima-orig por canaima-sshd-config'

15. Al ejecutar un ls -l en el directorio /etc/ssh/sshd_config* se verá que se crea un enlace al archivo original y se muestra los archivos agregados de la extensión canaima:
root@jewel:/etc/ssh# ls -l sshd_config*
lrwxrwxrwx 1 root root   19 nov 13 16:16 sshd_config -> sshd_config.canaima
-rw-r--r-- 1 root root 2487 nov 13 10:15 sshd_config.canaima
-rw-r--r-- 1 root root 2489 nov 13 13:20 sshd_config.canaima-orig

16. Al revisar el archivo se nota que el campo para permitir a root conectarse al servidor ssh se encuentra en no, igual caso para el párametro de reenvio de X11. Se revisa el hash md5 del archivo y se nota que del archivo original al actual son diferenteste:
a358d423fa6b8bf640a7fd1e06731ea3  sshd_config

Al crear paquetes de configuración de esta forma (una forma limpia de modificar archivos de configuración) y al eliminar el paquete de configuración los archivos originales se vuelven a usar:
 apt-get remove -f canaima-sshd-config

root@jewel:/etc/ssh# md5sum sshd_config
8caefdd9e251b7cc1baa37874149a870  sshd_config


Se tienen varios ejemplos para usar config-package-dev como por ejemplo paquetes binarios, configuración de cron, etc.

23 sept. 2011

Como crear un metapaquete (metapaquete con archivos de configuración)

Continuando con los artículos de empaquetados, ahora se explicará como agregar archivos de configuración al metapaquete.

La idea es agregar los archivos de configuración de orca que se guardan en .orca en el home de los usuarios. Para ello se va a copiar el directorio .orca con los archivos que contenga el directorio a /etc/skell/ .

Se ejecuta el comando equivs-control:

equivs-control canaima-accesibilidad-escritorio

El archivo va a contener lo siguiente:


Section: misc
Priority: optional
Homepage: http://canaima.softwarelibre.gob.ve
Standards-Version: 3.9.1

Package: canaima-accesibilidad-visual-escritorio
Version: 1:0.1
Maintainer: Ernesto Nadir Crespo Avila <ecrespo@centitel.gob.ve>
Depends: at-spi, brltty, brltty-flite, brltty-speechd, brltty-x11, listen, espeak, festival, festvox-sflpc16k, festvox-palpc16k, gnome-orca, gnome-accessibility-themes, gnome-accessibility, libcolorblind0, gnome-mag, libgail-common, mousetweaks, dots, ${misc:Depends}
Architecture: any
Copyright: copyright
Changelog: changelog
Files: ./conf/.orca/user-settings.py /etc/skell/.orca/user-settings.py
       ./conf/.orca/app-settings/__init__.py /etc/skell/.orca/app-settings/__init__.py
       ./conf/.orca/orca-scripts/__init__.py /etc/skell/.orca/orca-scripts/__init__.py
       ./conf/.orca/user-settings.pyc /etc/skell/.orca/user-settings.pyc
       ./conf/.orca/app-settings/__init__.pyc /etc/skell/.orca/app-settings/__init__.pyc
       ./conf/.orca/orca-scripts/__init__.pyc /etc/skell/.orca/orca-scripts/__init__.pyc
Description: Programas de Accesibilidad para Canaima GNU/Linux
 Este metapaquete provee los programas de accesibilidad y configuraciones para que las personas con discapacidad puedan utilizar canaima GNU/Linux.



Ahora se tiene el párametro Files donde el primer archivo es el origen donde se encuentra el archivo y el segundo es la ruta donde se va a copiar. Cada ruta se separa por la siguiente línea.


El archivo changelog contiene lo siguiente:


canaima-accesibilidad-visual-escritorio (1.0:0.1) unstable; urgency=low


  * First release.

 -- Ernesto Nadir Crespo Avila  <ecrespo@cenditel.gob.ve>  Thu, 22 Sep 2011 22:33:15 -0430



El archivo copyright contiene:


Authors:


    Copyright (C) 2011 Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>


License:


   This package is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; version 2 dated June, 1991.


   This package is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.


   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA


On Debian GNU/Linux systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'

Ahora sólo queda  ejecutar el comando equivs-build:
equivs-build -f canaima-accesibilidad-visual-escritorio


Al ejecutar ls -l se tiene los archivos creados y el .deb:

total 40
-rw-r--r-- 1 ernesto ernesto 1275 sep 23 08:40 canaima-accesibilidad-visual-escritorio
-rw-r--r-- 1 ernesto ernesto 1824 sep 23 08:41 canaima-accesibilidad-visual-escritorio_0.1_amd64.changes
-rw-r--r-- 1 ernesto ernesto 6836 sep 23 08:41 canaima-accesibilidad-visual-escritorio_0.1_amd64.deb
-rw-r--r-- 1 ernesto ernesto  909 sep 23 08:41 canaima-accesibilidad-visual-escritorio_0.1.dsc
-rw-r--r-- 1 ernesto ernesto 6378 sep 23 08:41 canaima-accesibilidad-visual-escritorio_0.1.tar.gz
-rw-r--r-- 1 ernesto ernesto  184 sep 23 08:41 changelog
drwxr-xr-x 3 ernesto ernesto 4096 sep 23 08:15 conf
-rw-r--r-- 1 ernesto ernesto  896 sep 23 08:41 copyright

Al ejecutar dpkg -c del archivo .deb se tiene lo que se va a instalar con el metapaquete:

dpkg -c canaima-accesibilidad-visual-escritorio_0.1_amd64.deb
drwxr-xr-x root/root         0 2011-09-23 08:41 ./
drwxr-xr-x root/root         0 2011-09-23 08:41 ./usr/
drwxr-xr-x root/root         0 2011-09-23 08:41 ./usr/share/
drwxr-xr-x root/root         0 2011-09-23 08:41 ./usr/share/doc/
drwxr-xr-x root/root         0 2011-09-23 08:41 ./usr/share/doc/canaima-accesibilidad-visual-escritorio/
-rw-r--r-- root/root      1044 2011-09-23 08:41 ./usr/share/doc/canaima-accesibilidad-visual-escritorio/README.Debian
-rw-r--r-- root/root       171 2011-09-23 08:41 ./usr/share/doc/canaima-accesibilidad-visual-escritorio/changelog.gz
-rw-r--r-- root/root       896 2011-09-23 08:41 ./usr/share/doc/canaima-accesibilidad-visual-escritorio/copyright
drwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/
drwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/skell/
drwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/skell/.orca/
drwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/skell/.orca/app-settings/
-rwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/skell/.orca/app-settings/__init__.py
-rw-r--r-- root/root       111 2011-09-23 08:41 ./etc/skell/.orca/app-settings/__init__.pyc
-rw-r--r-- root/root      7291 2011-09-23 08:41 ./etc/skell/.orca/user-settings.py
-rw-r--r-- root/root      6193 2011-09-23 08:41 ./etc/skell/.orca/user-settings.pyc
drwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/skell/.orca/orca-scripts/
-rwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/skell/.orca/orca-scripts/__init__.py
-rw-r--r-- root/root       111 2011-09-23 08:41 ./etc/skell/.orca/orca-scripts/__init__.pyc


Se nota que se crea el directorio .orca dentro de /etc/skell.

Se ejcuta lintian para verificar que el metapaquete no tenga errores o alertas:
lintian -i canaima-accesibilidad-visual-escritorio_0.1.dsc

22 sept. 2011

Corrigiendo los reportes generados por lintian de un metapaquete

Este artículo explicará como corregir los mensajes generados por lintian, estos mensajes son debido a que el programa empaquetado o metapaquete no cumple con el policy de Debian y para subir dicho programa es necesario que esté sin errores ni warning.

El archivo que se va a verificar es el .dsc del metapaquete creado al empaquetar canaima-caribay-radio.

Al ejecutar lintian con el archivo dsc devuelve el siguiente mensaje:

lintian -i canaima-caribay-radio_1.0.dsc 



W: canaima-caribay-radio source: debhelper-but-no-misc-depends canaima-caribay-radio
N: 
N:    The source package uses debhelper, but it does not include
N:    ${misc:Depends} in the given binary package's debian/control entry. Any
N:    debhelper command may add dependencies to ${misc:Depends} that are
N:    required for the work that it does, so recommended best practice is to
N:    always add ${misc:Depends} to the dependencies of each binary package if
N:    debhelper is in use.
N:    
N:    Refer to the debhelper(7) manual page for details.
N:    
N:    Severity: normal, Certainty: possible
N: 
W: canaima-caribay-radio source: package-uses-deprecated-debhelper-compat-version 4
N: 
N:    The debhelper compatibility version used by this package is marked as
N:    deprecated by the debhelper developer. You should really consider using
N:    a newer compatibility version.
N:    
N:    The compatibility version can be set in (preferred) debian/compat or by
N:    setting and exporting DH_COMPAT in debian/rules. If it is not set in
N:    either place, debhelper defaults to the deprecated compatibility version
N:    1.
N:    
N:    Refer to the debhelper(7) manual page for details.
N:    
N:    Severity: normal, Certainty: certain
N: 
W: canaima-caribay-radio source: binary-arch-rules-but-pkg-is-arch-indep
N: 
N:    It looks like you try to run code in the binary-arch target of
N:    debian/rules, even though your package is architecture- independent.
N:    
N:    Severity: normal, Certainty: certain
N: 

El primer warning es que hace falta agregar ${misc:Depends] en las dependencias.  Adicionalmente se tiene que cambiar el parámetro Standards-Version a la versión 3.9.1.

Section: misc
Priority: optional
Homepage: http://canaima.softwarelibre.gob.ve
Standards-Version: 3.9.1

Package: canaima-caribay-radio
Version: 1.0
Maintainer: Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
Depends: ${misc:Depends},jackd2, libjack-jackd2-0, libjack-jackd2-dev, pulseaudio-module-jack, qjackctl, libjack-jackd2-0, libjack-jackd2-dev, vorbis-tools, libvorbis-dev, libogg-dev, libmad0-dev, libsamplerate0-dev, libflac-dev, libsndfile1-dev, libavcodec-dev, libavformat-dev, libspeex-dev, python-gtk2-dev, python-mutagen, libdbus-1-dev, ffmpeg, libshout3-dev, libtwolame-dev, twolame, idjc, audacity, audacity-data, audacity-dbg, icecast2, easytag
Architecture: all
Copyright: copyright
Changelog: changelog 
Description: Metapaquete para la instalacion de radio streaming
 Metapaquete para la instalacion de radio streaming con icecast2 e idjc.


El segundo warning menciona que el archivo debian/compat tiene dentro el número 4 y es necesario que se actualice a la versión de debhelper que se está usando para empaquetar, en este caso debe cambiar a 8. Esto se tiene que cambiar en la plantilla de equivs.

vim /usr/share/equivs/template/debian/compat 
Cambiar 4 por 8.

El siguiente warning menciona un problema en la definición de la arquitectura, que es necesario quitar binary-arch y nuestro paquete es independiente de la plataforma. Esto se resuelve modificando canaima-caribay-radio cambian el parámetro Architecture: all por any.

Luego de realizar esos cambios se vuelve a crear el metapaquete y  a ejecutar lintian:

 lintian -i canaima-caribay-radio_1.0.dsc 

W: canaima-caribay-radio source: dh-clean-k-is-deprecated
N: 
N:    This package calls dh_clean -k in its debian/rules file and declares a
N:    debhelper compatibility version of at least 7.
N:    
N:    debhelper 7 deprecated dh_clean -k in favour of dh_prep.
N:    
N:    Refer to the dh_clean(1) manual page for details.
N:    
N:    Severity: normal, Certainty: certain
N: 
W: canaima-caribay-radio source: package-lacks-versioned-build-depends-on-debhelper 8
N: 
N:    The package either doesn't declare a versioned build dependency on
N:    debhelper or does not declare a versioned build dependency on a new
N:    enough version of debhelper to satisfy the declared compatibility level.
N:    
N:    Recommended practice is to always declare an explicit versioned
N:    dependency on debhelper equal to or greater than the compatibility level
N:    used by the package, even if the versioned dependency isn't strictly
N:    necessary. Having a versioned dependency also helps with backports to
N:    older releases and correct builds on partially updated systems.
N:    
N:    Refer to the debhelper(7) manual page for details.
N:    
N:    Severity: minor, Certainty: certain
N: 


Luego de cambiar el archivo compat y la versión del standards-version aparece un warning sobre el comando dh_clean -k que se tiene que sustituir por dh_prep en el archivo debian/rules de la plantilla:

vim /usr/share/equivs/template/debian/rules

install: build
        dh_testdir
        dh_testroot
        dh_prep

El otro warning menciona que debhelper tiene un número de versión viejo. Para cambiarlo se busca el archivo control.in en las plantillas y se modifica la dep

vim /usr/share/equivs/template/debian/control.in

Se modifica la siguiente línea:

Build-Depends: debhelper (>= 8)

Se vuelve a empaquetar y a ejecutar lintian:
lintian -i canaima-caribay-radio_1.0.dsc

Listo, no más mensajes de error o warnings.




21 sept. 2011

Como crear un metapaquete (versión 2)


Este artículo es una actualización del artículo sobre como crear un metapaquete que lo pueden leer acá.

En este artículo se agregará el archivo changelog y copyright para el metapaquete canaima-caribay-radio.

Se crea un directorio de trabajo:
mkdir canaima-caribay-radio

Ahora se crea el archivo control con el comando equivs-control:

equivs-control canaima-caribay-radio

Ahora se modificará el archivo para que tenga las dependencias para jackd2, icecast2, audacity, easytag e idjc. Se agrega el mantenedor del paquete, el homepage del mismo y una descripción corta y larga del metapquete.

El archivo modificado:

Section: misc
Priority: optional
Homepage: http://canaima.softwarelibre.gob.ve
Standards-Version: 3.6.2


Package: canaima-caribay-radio
Version: 1.0
Maintainer: Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
Depends: jackd2, libjack-jackd2-0, libjack-jackd2-dev, pulseaudio-module-jack, qjackctl, libjack-jackd2-0, libjack-jackd2-dev, vorbis-tools, libvorbis-dev, libogg-dev, libmad0-dev, libsamplerate0-dev, libflac-dev, libsndfile1-dev, libavcodec-dev, libavformat-dev, libspeex-dev, python-gtk2-dev, python-mutagen, libdbus-1-dev, ffmpeg, libshout3-dev, libtwolame-dev, twolame, idjc, audacity, audacity-data, audacity-dbg, icecast2, easytag
Architecture: all
Copyright: copyright
Changelog: changelog 
Description: Metapaquete para la instalacion de radio streaming
 Metapaquete para la instalacion de radio streaming con icecast2 e idjc.

Del artículo anterior se agrego el campo Copyright y Changelog.

Estos archivos contienen lo siguiente:

Copyright:

Authors:


    Copyright (C) 2011 Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
    Copyright (C) 2011 David Hernández <david.vzla@gmail.com>


License:


   This package is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; version 2 dated June, 1991.


   This package is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.


   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA


On Debian GNU/Linux systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'.

Changelog:

canaima-caribay-radio (1:1.0) unstable; urgency=low


  * First release.


 -- Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>  Tue, 20 Sep 2011 16:12:45 -0430

Ahora para crear y firmar el metapaquete se usa el comando equivs-build con la opción -f que permite ejecutar debuild completo y firmar el metapaquete.

Es importante notar que en la llave gpg debe estar el nombre del mantenedor que aparece en el control y changelog para poder firmar el metapaquete.

A continuación se muestra la llave gpg:
gpg --list-keys | less



--------------------------------
pub   1024D/C97E7015 2005-08-15
uid                  Ernesto Nadir Crespo Avila (seraph1) <ecrespo@debian.org.ve>
uid                  Ernesto Nadir Crespo Avila (seraph1) <ecrespo@debianvenezuela.org>
uid                  Ernesto Nadir Crespo Avila (seraph1) <ecrespo@uc.edu.ve>
uid                  Ernesto Nadir Crespo Avila (seraph1) <ecrespo@cantv.net>
uid                  Ernesto Nadir Crespo Avila (seraph1) <ecrespo@gmail.com>
uid                  Ernesto Crespo (seraph1) <ecrespoa@yahoo.es>
uid                  Ernesto Nadir Crespo Avila (seraph) <ernesto@crespo.info.ve>
uid                  [jpeg image of size 11184]
uid                  Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
uid                  Ernesto Nadir Crespo Avila <ernesto@crespo.org.ve>


Ahora se  creará el metapaquete: El procedimiento pedirá 2 veces escribirla frase de la llave gpg.

equivs-build -f canaima-caribay-radio

dpkg-buildpackage: exportar «CFLAGS» de dpkg-buildflags (origen: «vendor»): «-g -O2»
dpkg-buildpackage: exportar «CPPFLAGS» de dpkg-buildflags (origen: «vendor»): «»
dpkg-buildpackage: exportar «CXXFLAGS» de dpkg-buildflags (origen: «vendor»): «-g -O2»
dpkg-buildpackage: exportar «FFLAGS» de dpkg-buildflags (origen: «vendor»): «-g -O2»
dpkg-buildpackage: exportar «LDFLAGS» de dpkg-buildflags (origen: «vendor»): «»
dpkg-buildpackage: paquete fuente canaima-caribay-radio
dpkg-buildpackage: versión de las fuentes 1:1.0
dpkg-buildpackage: fuentes modificadas por Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
dpkg-buildpackage: arquitectura del sistema amd64
 dpkg-source --before-build equivs.nAXaSZ
 fakeroot debian/rules clean
dh_testdir
dh_testroot
dh_clean
dh_clean: Compatibility levels before 5 are deprecated.
 dpkg-source -b equivs.nAXaSZ
dpkg-source: aviso: no se ha definido un formato de fuentes en «debian/source/format», consulte dpkg-source(1)
dpkg-source: información: usando el formato de fuente «1.0»
dpkg-source: aviso: el directorio de fuentes «equivs.nAXaSZ» no es <paquete-fuente>-<versión-desarrollador-original> «canaima-caribay-radio-1.0»
dpkg-source: información: construyendo canaima-caribay-radio en canaima-caribay-radio_1.0.tar.gz
dpkg-source: información: construyendo canaima-caribay-radio en canaima-caribay-radio_1.0.dsc
 debian/rules build
make: No se hace nada para `build'.
 fakeroot debian/rules binary
dh_testdir
dh_testroot
dh_clean -k
dh_clean: dh_clean -k is deprecated; use dh_prep instead
dh_clean: Compatibility levels before 5 are deprecated.
dh_testdir
dh_testroot
dh_install
dh_install: Compatibility levels before 5 are deprecated.
dh_installdocs
dh_installdocs: Compatibility levels before 5 are deprecated.
dh_installchangelogs
dh_installchangelogs: Compatibility levels before 5 are deprecated.
dh_compress
dh_compress: Compatibility levels before 5 are deprecated.
dh_fixperms
dh_fixperms: Compatibility levels before 5 are deprecated.
dh_installdeb
dh_installdeb: Compatibility levels before 5 are deprecated.
dh_gencontrol
dh_gencontrol: Compatibility levels before 5 are deprecated.
dh_md5sums
dh_md5sums: Compatibility levels before 5 are deprecated.
dh_builddeb
dh_builddeb: Compatibility levels before 5 are deprecated.
dpkg-deb: construyendo el paquete `canaima-caribay-radio' en `../canaima-caribay-radio_1.0_all.deb'.
 signfile canaima-caribay-radio_1.0.dsc

Necesita una frase contraseña para desbloquear la clave secreta
del usuario: "Ernesto Nadir Crespo Avila (seraph1) <ecrespo@debian.org.ve>"
clave DSA de 1024 bits, ID C97E7015, creada el 2005-08-15

                              
 dpkg-genchanges  >../canaima-caribay-radio_1.0_amd64.changes
dpkg-genchanges: incluyendo el código fuente completo en la subida
 signfile canaima-caribay-radio_1.0_amd64.changes

Necesita una frase contraseña para desbloquear la clave secreta
del usuario: "Ernesto Nadir Crespo Avila (seraph1) <ecrespo@debian.org.ve>"
clave DSA de 1024 bits, ID C97E7015, creada el 2005-08-15

                              
 dpkg-source --after-build equivs.nAXaSZ
dpkg-buildpackage: subida completa; paquete nativo de Debian (se incluye la fuente completa)

The package has been created.
Attention, the package has been created in the current directory,
not in ".." as indicated by the message above!


Ahora se ejecuta un ls -l y se tiene lo siguiente:

ernesto@zeath:~/canaima/canaima-caribay-radio$ ls -l
total 28
-rw-r--r-- 1 ernesto ernesto  849 sep 20 17:03 canaima-caribay-radio
-rw-r--r-- 1 ernesto ernesto 2528 sep 21 08:48 canaima-caribay-radio_1.0_all.deb
-rw-r--r-- 1 ernesto ernesto 1583 sep 21 08:49 canaima-caribay-radio_1.0_amd64.changes
-rw-r--r-- 1 ernesto ernesto  819 sep 21 08:49 canaima-caribay-radio_1.0.dsc
-rw-r--r-- 1 ernesto ernesto 2170 sep 21 08:48 canaima-caribay-radio_1.0.tar.gz
-rw-r--r-- 1 ernesto ernesto  164 sep 20 17:03 changelog
-rw-r--r-- 1 ernesto ernesto  957 sep 20 17:03 copyright

El archivo canaima-caribay-radio_1.0_amd64.changes  contiene lo siguiente:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Tue, 20 Sep 2011 16:12:45 -0430
Source: canaima-caribay-radio
Binary: canaima-caribay-radio
Architecture: source all
Version: 1:1.0
Distribution: unstable
Urgency: low
Maintainer: Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
Changed-By: Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
Description: 
 canaima-caribay-radio - Metapaquete para la instalacion de radio streaming
Changes: 
 canaima-caribay-radio (1:1.0) unstable; urgency=low
 .
   * First release.
Checksums-Sha1: 
 2234f6f5d8808e0ae425eb3164632b01bc94251a 819 canaima-caribay-radio_1.0.dsc
 8851015c0174d5126127328776e35174e361cc21 2170 canaima-caribay-radio_1.0.tar.gz
 104312d9eb56eb623ad1f901a2801e096f4021be 2528 canaima-caribay-radio_1.0_all.deb
Checksums-Sha256: 
 3be03f102f6ef9dab2525ac384a265e9761ca2f5f4fb7d48fdbd0b38fee4e22f 819 canaima-caribay-radio_1.0.dsc
 75cb5c5b95d14d995776a035925c2cfe5ee77873d091ef9e238b000fb4b1375b 2170 canaima-caribay-radio_1.0.tar.gz
 74540c21659c774a12d5162886f59b974b155c47d5471fac40ff7fece11cd282 2528 canaima-caribay-radio_1.0_all.deb
Files: 
 3f563e110433652011cf0d32fe96a0f6 819 misc optional canaima-caribay-radio_1.0.dsc
 e53b6a60fd0961a6b161a61b5a107e77 2170 misc optional canaima-caribay-radio_1.0.tar.gz
 4ac58a93d2e4160f378093909d687967 2528 misc optional canaima-caribay-radio_1.0_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAk555EYACgkQh+iQYcl+cBW/kQCeOZzpeHCAYomqczO7kkR6+nvT
fWIAniK+uWLpndvqEJmz2IUA7JNe8Nng
=qVVe
-----END PGP SIGNATURE-----


El archivo canaima-caribay-radio_1.0.dsc contiene lo siguiente:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.0
Source: canaima-caribay-radio
Binary: canaima-caribay-radio
Architecture: all
Version: 1:1.0
Maintainer: Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
Homepage: http://canaima.softwarelibre.gob.ve
Standards-Version: 3.6.2
Build-Depends: debhelper (>= 4)
Checksums-Sha1: 
 8851015c0174d5126127328776e35174e361cc21 2170 canaima-caribay-radio_1.0.tar.gz
Checksums-Sha256: 
 75cb5c5b95d14d995776a035925c2cfe5ee77873d091ef9e238b000fb4b1375b 2170 canaima-caribay-radio_1.0.tar.gz
Files: 
 e53b6a60fd0961a6b161a61b5a107e77 2170 canaima-caribay-radio_1.0.tar.gz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAk555EIACgkQh+iQYcl+cBVLqgCdGA+DXaVjyDrcGNfxcITL9sCP
oY0An1hC/e7UIQiiTZ4DQUysYHs8sTS9
=6NcI
-----END PGP SIGNATURE-----