TipsEmpaquetamiento
Semana del desarrollador
Martes 31 de Enero del 2012 - Lo que se tiene y no se debe hacer al empaquetar software -- SpamapS
1 01:06 < chilicuil> la proxima platica 'Lo que se tiene y no se debe hacer al empaquetar software' sera
2 impartida por SpamapS
3 01:06 < chilicuil> durara media hr y promete mucho
4 01:06 < chilicuil> comenzare la interpretacion ahora
5 01:07 < chilicuil> hola y bienvenidos, aspirantes, y potenciales desarrolladores!
6 01:08 < chilicuil> la razon por la cual decidi hacer esta corta presentacion es diseminar algunos puntos
7 importantes sobre el empaquetado cuando se trabaja en Ubuntu
8 01:08 < chilicuil> y cuando se reportan hacia Debian
9 01:09 < chilicuil> algunos de estos puntos, se basan en mi opinion personal, otros son formas generalizadas
10 de trabajar en Ubuntu y pueden no ser del todo compatibles
11 01:09 < chilicuil> con las politicas establecidas para cada paquete en Debian/Ubuntu
12 01:09 < chilicuil> tengan en cuenta esto cuando apliquen los tips
13 01:10 < chilicuil> antes de comenzar, tendran que haber leido http://wiki.debian.org/IntroDebianPackaging ,
14 es una lectura necesaria si pretenden empaquetar software para Ubuntu/Debian
15 01:11 < chilicuil> tambien recomiendo la lectura de http://wiki.debian.org/mk-sbuild
16 01:11 < chilicuil> una vez teniendo esto, pasemos a las cosas que NO deben hacerse:
17 01:11 < chilicuil> - entrar en panico
18 01:12 < chilicuil> - usar CDBS en paquetes que no tienen sistema de parches predefinido
19 01:12 < chilicuil> - usar dpatch (o cualquier otro diferente a quilt)
20 01:13 < chilicuil> - crear reglas en debian/rules demasiado complicadas
21 01:14 < chilicuil> CDBS es una forma antigua de crear paquetes, en esta se incluyen reglas
22 hyper-generalizadas del Makefile y despues se crean variables para cambiar la manera de crearlo, estaras
23 mejor si usas debhelper
24 01:15 < chilicuil> pronto te daras cuenta que usar 'dh_make' para crear un paquete, independientemente de
25 la manera que se construya, es una forma segura y practica
26 01:17 < chilicuil> dpatch es un sistema de paquetes que ha pasado a sido reemplazado por quilt, un sistema
27 de parches se supone que sirve para mantener en orden la lista de parches, y para mantenerlo separado
28 del codigo de upstream facilmente
29 01:17 < chilicuil> se esta trabajando para que bzr soporte 'looms', de tal forma que quilt tampoco
30 seria necesario, pero no se hasta que punto se pueda usar
31 01:18 < chilicuil> no usen svn, ni mucho menos cvs para llevar el control de sus cambios, utilicen git,
32 hg o bzr para ello
33 01:19 < chilicuil> ahora, una pequeña lista de cosas que DEBERIAN hacer:
34 01:19 < chilicuil> - utilizar dh_make
35 01:19 < chilicuil> - usar quilt
36 01:19 < chilicuil> - utilizar git, bzr o hg para mantener la lista de cambios
37 01:20 < chilicuil> - utilizar udd (bzr + launchpad) para paquetes especificos de Ubuntu
38 01:21 < chilicuil> la escencia del empaquetamiento es traer el software de upstream mientras se mantienen las
39 politicas de la distribucion, no traten de imponer sus condiciones sobre otros desarrolladores o usuarios
40 01:21 < chilicuil> usen las herramientas que sean apropiadas dependiendo el caso
41 01:22 < chilicuil> usen configuraciones por defecto que sean funcionales para la mayoria de las peronas
42 01:23 < chilicuil> un buen paquete, tendera a hacerse mas pequeño conforme sus cambios se incorporen en
43 upstream
44 01:23 < chilicuil> hay varias formas de mantener el codigo de un paquete
45 01:23 < chilicuil> en Ubuntu, todos los paquetes estan disponibles a traves de $ bzr
46 01:24 < chilicuil> por ejemplo: $ bzr branch ubuntu:paquete
47 01:24 < chilicuil> en debian, algunos equipos prefieren unicamente mantener en control de versiones el
48 directorio debian/, ya sea en git, svn o bzr
49 01:25 < chilicuil> verifica con el mantenedor del paquete para descubrir como lo hace
50 01:30 < chilicuil> dnewkirk pregunta la politica para nombrar paquetes, sabe que debera contener al menos
51 parcialmente la version del programa y tal vez informacion del directorio .git
52 01:31 < chilicuil> SpamapS responde que el nombre de los paquetes se componen de una version upstream y otra
53 de debian
54 01:33 < chilicuil> la version original debera mantenerse tan bien como sea posible, en el nombre de un
55 paquete lo que va despues de '-' es la version en Debian
56 01:33 < chilicuil> para debian, se limita a sumarse 1 por cada nuevo cambio
57 01:33 < chilicuil> para ubuntu, se le agrega 'ubuntu#' para anunciar que nuestra version contiene cambios
58 adicionales a los de debian
59 01:34 < chilicuil> asi que si tienes un paquete llamado foo con la version 1.2.3, en Debian sera 1.2.3-1
60 01:35 < chilicuil> si el paquete no esta en Debian, sino unicamente en Ubuntu se convertira en 1.2.3-0ubuntu1
61 01:35 < chilicuil> una nueva revision en debian puede contener muchisimos cambios, siempre y cuando se
62 especifiquen en debian/changelog
63 01:36 < chilicuil> ceno pregunto que significan las iniciales VCS y UDD
64 01:37 < chilicuil> el ponente responde que Version Control System o Sistema de control de versiones, y
65 Ubuntu Distributed Development, o Desarrollo Distribuido de Ubuntu
66 01:38 < chilicuil> TiMiDo ha preguntado si es necesario tener tu llave GPG firmada por algun desarrollador
67 (mientras se ven a la cara) para verificar nuestra identidad
68 01:39 < chilicuil> SpamapS responde que en el caso de Ubuntu no es necesario, ya que todo se hace a traves
69 de Lauchpad, en cuyo caso, Ubuntu cree en la identidad de tu cuenta
70 01:40 < chilicuil> para Debian, tendras que tener firmada tu llave por algun desarrollador de Debian, y la
71 mayoria insistira en un encuentro cara a cara
72 01:41 < chilicuil> aunque si solo haces empaquetamiento casualmente, sera suficiente que tengas un 'sponsor',
73 que patrocinara tus cambios, subiendolos en tu nombre
74 01:42 < chilicuil> TiMiDo ha preguntado si el hecho de ser un miembro de Ubuntu, esto es, si se le ha dado
75 un @ubuntu.com puede enviar sus cambios a launchpad y hacer cambios
76 01:44 < chilicuil> SpamapS responde que el hecho de que sea un miembro de Ubuntu, no le faculta para hacer
77 cambios a los paquetes, para tener acceso tendran que pedir permisos a la mesa de desarrolladores, Developer
78 Membership Board
79 01:44 < chilicuil> me gustaria compartir otro par de tips
80 01:45 < chilicuil> sbuild y mk-sbuild
81 01:45 < chilicuil> estas herramientas crean un chroot en su sistema que podran usar para crear paquetes
82 01:46 < chilicuil> mk-sbuild desde precise tendra una nueva opcion, --eatmydata que hara que sea aun mas
83 rapido de usar, desabilita la molesta funcion de llamar 'fsync' despues de cada operacion con archivos
84 01:48 < chilicuil> recomiendo que editen $purge_session="successful" en el archivo /etc/sbuild/sbuild.conf
85 para que las compilaciones que fallen se mantengan en el sistema y se puedan reiniciar con 'schroot -c
86 sessionid'
87 01:48 < chilicuil> pueden listar las sesiones actuales con 'schroot --all-sessions -l'
88 01:49 < chilicuil> otro programa interesante es 'licensecheck2dep5'
89 01:49 < chilicuil> cuando se crea un nuevo paquete, necesitan asegurarse que la licencia del codigo fuente
90 este bien documentada
91 01:50 < chilicuil> puede correr $ licensecheck --copyright -r .
92 01:50 < chilicuil> y el programa les dira las licencias que ha encontrado en el paquete
93 01:51 < chilicuil> para los paquetes que utilicen cdbs, existe un script licensecheck2dep5 que tomara la
94 salida de ese comando y lo convertira en un archivo debian/copyright por ti
95 01:52 < chilicuil> jincreator pregunto cual es la diferencia entre pbuilder y sbuild
96 01:52 < chilicuil> SpamapS contesta que aunque ambos tienen la misma premisa, crear un entorno para
97 compilar paquetes
98 01:53 < chilicuil> sbuild tiene algunas ventajas, la mas grande es que ese es el programa que las maquinas
99 de Ubuntu usan para crear los programas que despues estaran en los repositorios
100 01:54 < chilicuil> tambien esta el hecho de que sbuild puede usar las caracteristicas de snapshotting de
101 btrfs y de lvm para hacer el proceso mas rapido
102 01:56 < chilicuil> es todo lo que tengo por hoy, si quieren comenzar a empaquetar software, les recomiendo
103 entrar a #ubuntu-devel para trabajar juntos, gracias a todos por las excelentes preguntas!!!!
104 01:56 < chilicuil> con eso finaliza la charla de SpamapS
SemanaDesarrollador/OneiricLogs/TipsEmpaquetamiento (last edited 2012-02-01 08:08:05 by javier-lopez)