beuno: [16:59] javier_galicia: jajajaj, shhhh :D
javier_galicia: [16:59] :)
marga: [17:00] Bueno, ya es casi la hora. En seguida empiezo. Les pido que traten de sólo hablar on-topic, y sólo si tienen una pregunta para hacer, si?
Maximiliano: [17:00] hola gente!. Soy de santa fé y hace 3 años que uso Debian GNU/Linux :)
radhios: [17:00] Hay mucho olor a Ubuntu!!!!
Maximiliano: [17:00] por suerte
juanpe: [17:00] si
pablo_: [17:00] comprendido marga :)
juanpe: [17:00] yo no, soy debian!
marga: [17:00] Este tutorial está dirigido a todo aquél que nunca haya hecho un paquete de Debian, o a quienes ya hayan hecho alguno, pero quieran practicar un poco más, reforzando algunos conceptos que son importantes a la hora de generar un paquete limpio y estable.
gringo: [17:00] oki marga.. cuando quieras
Maximiliano: [17:01] me parece que deberíamos esperar unos 5 min más, porque sigue entrando gente
marga: [17:01] Por favor, si les van surgiendo preguntas para hacer, háganlas en el momento, y por este mismo canal. Me interesa que me vayan siguiendo, y me vayan diciendo si hay algo que no se entiende. Si voy muy rápido o muy lento, también avísenme. El tutorial es bastante largo, así que traten de seguirlo mientras lo voy dando. También me pueden hacer comentarios por privado, para no hacer tanto "ruido".
LightKnight: [17:01] Buenas tarde a vosotros hispanohablantes! :-)
marga: [17:02] Lo primero que tienen que hacer es instalarse los paquetes que van a hacer falta para la compilación del programa que vamos a empaquetar. Les paso la línea de apt:
marga: [17:02] apt-get install build-essential devscripts dh-make fakeroot valgrind libqt3-mt-dev
marga: [17:02] Los primeros 4 son estándar y sirven para cualquier paquete que tengan que empaquetar. Los otros 2 son las dependencias de compilación del paquete que vamos a armar. Mientras se van bajando los paquetes (es probable que lleve un rato), vamos avanzando con la charla.
marga: [17:03] Antes que nada, una aclaración con respecto a Debian/Ubuntu: los paquetes para Debian y Ubuntu se arman de la misma manera, con las mismas herramientas. Es posible que un paquete armado para Debian funcione en Ubuntu y viceversa. Si no sucede así, es por un problema de versiones de las dependencias, y no por una falencia en el paquete.
Juanjo-sfe: [17:03] hola
Juanjo-sfe: [17:03] llego tarde?
marga: [17:03] Ya empezamos.
marga: [17:04] La diferencia entre Debian y Ubuntu es el procedimiento para agregar paquetes al archivo oficial de la distribución. Yo me voy a nombrar los procedimientos para Debian, pero esto no quiere decir que el resto del tutorial no les sirva a quienes vayan a querer mantener paquetes en Ubuntu.
Darni: [17:04] marga: estamos siguiendo un tutorial online/ compilando algun paquete en particular? (digo por las dependencias especificas que indicaste)
marga: [17:04] Darni: si.
Darni: [17:04] marga: se podra poner un link en el topic?
beuno: [17:04] (y aparentemente, para kde dadas las librerias qt)
marga: [17:04] Darni: ya va a venir.
redondos: [17:04] moin.
De[V]oN: [17:05] marga: esta bien que me traiga como 46 paquetes?
marga: [17:05] Si, son muchas dependencias. Por eso se los dije con anticipación
marga: [17:05] Es posible, y hasta yo diría que deseable, mantener un paquete tanto en Debian como en Ubuntu, no son trabajos excluyentes. A partir de ahora, siempre que diga "un paquete de Debian" me refiero a un paquete de Debian o de Ubuntu según su preferencia.
pablo_: [17:05] solo 46?? en mi gutsy son 71 :(
marga: [17:05] Hay básicamente dos situaciones en las cuales uno se pone armar un paquete de Debian. La primera es cuando uno está aburrido y dice "hoy tengo ganas de empaquetar algo", la segunda es cuando uno encuentra un programa que está bueno y no está empaquetado.
Maximiliano: [17:06] pablo_: eso depende también de hace cuanto que no actualizas
marga: [17:06] En el primer caso, si uno no sabe qué empaquetar, se pueden buscar ideas en el listado de paquetes en adopción: http://www.debian.org/devel/wnpp/work_needing o bien en el listado de paquetes solicitados: http://www.debian.org/devel/wnpp/requested. Y en Ubuntu: https://launchpad.net/ubuntu/+bugs?field.tag=needs-packaging
marga: [17:06] En Debian: SIEMPRE antes de subir un paquete hay que hacer un "ITP" que quiere decir "Intend To Package" o un "ITA" (Intend to Adopt) en el caso en que estuvieran adoptando un paquete existente. Cuando se deciden a hacerse cargo de un paquete , deben cambiarle el título a la solicitud, para que quede claro que ustedes van a empaquetarlo.
Macarse: [17:06] marga: entonces podría usar los repositorios de ubuntu para mi debian no?
marga: [17:06] Macarse: si, pero podés llegar a tener problemas de dependencias.
marga: [17:07] Es decir, deben reemplazar "RFP" (Request For Package) por "ITP", o "O" (Orphaned) o "RFA" (Request for Adoption) por "ITA". Para ello deben usar el comando "retitle", según se explica en http://www.debian.org/devel/wnpp y en http://www.debian.org/Bugs/server-control
Juanjo-sfe: [17:07] marga: como es la modalidad de la charla? no hay problemas en que los lectores vayamos interrumpiendo?
marga: [17:07] Juanjo-sfe: sólo si tienen algo importante para interrumpir. Somos muchos, así que sino va a ser un caos
RompeRatones: [17:07] generalmente se tiende a empaquetar usando los paquetes de una rama en particular? stable, testing, sid?
Juanjo-sfe: [17:07] sino, sacanos la voz para evitar la tentación
marga: [17:08] RompeRatones: generalmente unstable. En el caso de ubuntu, la distro más nueva (gutsy ahora)
marga: [17:08] En Ubuntu: empezar un paquete nuevo, oficial, es un poquito más complicado, pero básicamente hay que seguir las instrucciones de https://wiki.ubuntu.com/MOTU/Packages/REVU
la_rayis: [17:08] marga: las otras no necesitan o es de mala onda nomás?
des: [17:08] ok, para los que llegan tarde http://charon.damianv.com.ar/tutorial_marga.log
javier_galicia: [17:09] :o eso es cool des
beuno: [17:09] (vale aclarar que en Gutsy cierra en 4 dias la fecha para que entren paquetes nuevos, y se reabrira para la siguiente version a finales de Octubre)
marga: [17:09] la_rayis: es por cómo funciona el traslado de un paquete de una distribución a otra. Primero se suben a unstable y de ahí pasan a testing. En Ubuntu, subís a gutsy, para cuando se haga el release
marga: [17:09] Si se trata, en cambio, del segundo caso, es decir que encontraron un programa interesante que no está empaquetado, es importante que se fijen si ya hay otra persona trabajando en armar el paquete, o si hubo alguien que lo solicitara.
marga: [17:10] En Debian: para ello utilizan la lista de "Futuros Paquetes" (http://www.debian.org/devel/wnpp/prospective) y revisan que el paquete no se encuentre en el listado como "ITP", o, si se encuentra como "RFP" le cambian el nombre como antes.
marga: [17:10] En Ubuntu: primero deben fijarse si ya está para Debian, porque en muchos casos simplemente se hace un "sync" con Debian. Y en caso en que no esté, generar un nuevo bug, como se explica en: https://wiki.ubuntu.com/MOTU/Packages/New
marga: [17:11] En particular, hoy vamos a empaquetar una herramienta llamada Valkyrie, que es una interfaz gráfica para Valgrind. El pedido de paquete para Debian está en: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=372268
marga: [17:11] Ahora vamos a empezar con el empaquetamiento. Lo ideal sería que para trabajar con los paquetes tengan un directorio "debian/" o "src/debian" o "sources/debian" en su home, y el archivo con el código fuente del paquete lo guarden en ese directorio. (O ubuntu, según corresponda)
marga: [17:11] El programa lo bajan de: http://www.open-works.co.uk/projects/valkyrie.html
marga: [17:12] Para ver el contenido del archivo pueden hacer: tar -tjvf archivo.tar.bz2 y para descomprimirlo, tar -xjvf archivo.tar.bz2
De[V]oN: [17:12] marga: le damos al svn?
marga: [17:13] De[V]oN: no, no, el de descargar. El .bz2
marga: [17:13] Mientras bajan el archivo y lo descomprimen, vamos a configurar unas variables de entorno, que nos hacen falta ahora y nos van a servir en el futuro.
marga: [17:13] Esto lo pueden hacer ahora desde la línea de comandos, pero es una buena idea dejar estas variables de entorno en los archivos .bashrc, .zshenv, etc, de modo que esten seteadas la proxima vez que vayan a armar un .deb
marga: [17:13] Lo que tienen que configurar es: "export DEBEMAIL=tu@email.com" y "export DEBFULLNAME='Tu nombre'". Una vez que tengan esas variables seteadas, ya podemos proceder a crear el paquete. También sería posible pasar estos valores por parámetro, pero es preferible tener las variables seteadas, ya que en general el mail y el nombre propio no cambian
Macarse: [17:14] marga: un sec
marga: [17:15] Ok. Espero unos segundos. A que estén todos
la_rayis: [17:15] marga: el email tambien va entre comillas simples?
pablo_: [17:15] justo que paraste, alguien me dice como hacer lo de export?
marga: [17:15] la_rayis: no hace falta, porque no tiene espacio.
marga: [17:16] pablo_: desde línea de comandos: export VARIABLE=valor
pablo_: [17:16] gracias
pablo_: [17:16] :)
Macarse: [17:16] marga: en slack para ver la lista de variables typeo set.
Macarse: [17:16] acá en debian etch parece no funcionar
marga: [17:17] En todos los unix, para ver la lista de variables lo ves con set.
marga: [17:17] Pero pueden ser muchas
marga: [17:17] Si querés ver una en particular, hacelo con echo $VARIABLE.
Darni: [17:17] marga: pregunta de algo un poco atrás: es comun el caso que los paquetes los hagan los desarrolladores mismos?
marga: [17:17] Bueno, seguimos?
pablo_: [17:17] listo
plinko: [17:17] por mi si
garaguas: [17:17] si
Macarse: [17:17] joya, estoy.
marga: [17:17] Darni: los desarrolladores del programa? pasa pero no es muy común.
marga: [17:18] Lo primero que hay que hacer es renombrar el archivo tar.bz2 al nombre requerido por las herramientas. El nombre debe ser paquete_version.orig.tar.gz, en este caso, el paquete se llama "valkyrie" y la versión es "1.2.0". Pero hay un problema: es un bz2 y no un gz. Actualmente las herramientas soportan el formato bz2, pero aún no se aceptan paquetes cuyo código fuente esté en bz2
marga: [17:18] De modo que hay que desempaquetarlo, y luego generar el tar.gz correspondiente. Así: "tar -xjf valkyrie-1.2.0.tar.bz2" (si no lo habían hecho ya) y luego: "tar -czf valkyrie_1.2.0.orig.tar.gz valkyrie-1.2.0". Así ya tenemos el archivo correcto.
c0dex: [17:19] ok un seg...
Macarse: [17:19] sabiendo eso, para qué lo ponen para descarga en bz2? más compresión?
marga: [17:19] Macarse: si.
marga: [17:19] Macarse: en el futuro se va a poder usar bz2
marga: [17:19] Para armar el paquete vamos a usar una herramienta especialmente creada para ese propósito, llamada dh_make. Esta herramienta prepara un "template" de paquete que después tendremos que modificar. Para que dh_make funcione, es necesario que el directorio donde se encuentra el código fuente tenga el nombre estándar "paquete-version". En este caso, valkyrie-1.2.0
plinko: [17:20] en 'orig', que iria?
marga: [17:20] plinko: orig es literal
plinko: [17:20] ok gracias
marga: [17:20] Así que hagan: "cd valkyrie-1.2.0" y luego "dh_make"
marga: [17:20] Al ejecutarlo, les va a preguntar el tipo de paquete que desean crear. En este caso, el tipo de paquete es "single binary", ya que nuestro paquete generará un solo .deb. Luego pide confirmar los datos y crea el paquete. Termina haciendo una advertencia con respecto a los archivos de Makefile, que vamos tener en cuenta un poco más adelante.
marga: [17:21] ¿Ok?
radhios: [17:21] wait
pablo_: [17:21] ahi estamos
Darni: [17:21] ok
garaguas: [17:21] ok
De[V]oN: [17:21] marga: y la licencia dice blank. Esta bien?
marga: [17:22] De[V]oN: si, si.
marga: [17:22] Luego de ejecutar "dh_make", al hacer un ls del directorio actual (valkyrie-1.2.0) van a ver que aparece un directorio "debian/" que antes no estaba.
marga: [17:22] dh_make es un comando genérico que lo que hace es generar un directorio lleno de archivos, no todos esos archivos nos van a servir, una gran mayoría los vamos a borrar. Están ahí porque de esa manera, cualquiera sea el tipo de paquete que vayamos a armar, ya tenemos cubierto el espectro de archivos que vamos a necesitar.
Macarse: [17:22] puede ser que el dh_make cree el tar.gz?
marga: [17:22] Macarse: te tendría que decir "Skipping creating ../valkyrie_1.2.0.orig.tar.gz". Si te dice que lo creó, es que el nombre del tar.gz que hiciste no estaba del todo bien.
x-ip: [17:22] que se entiende por espectro de archivo ?
marga: [17:23] x-ip: variedad de archivos.
marga: [17:23] Macarse: no es muy grave si te lo crea el dh_make.
Macarse: [17:23] nah, me tiró el skip
Macarse: [17:23] pero ya para la prox sé que lo hace el dh_make y no lo tengo que hacer yo.
marga: [17:23] Macarse: ah, ok.
marga: [17:24] Macarse: lo que pasa que no siempre lo hace bien. Es preferible hacerlo uno y saber que está ok.
marga: [17:24] Entren en el directorio /debian y fíjense un poco los archivos que están ahí. Yo les voy a ir diciendo qué archivos borrar.
marga: [17:24] *) cron.d.ex es un ejemplo para un paquete que tenga que agregar una tarea al cron, el nuestro no tiene así que se va.
la_rayis: [17:24] ls
marga: [17:25] *) emacsen-* son archivos relacionados con emacs, tampoco nos interesan.
marga: [17:25] *) init.d.ex es un ejemplo para un paquete que tenga que tener un script de inicio, el nuestro no tiene, así que se va.
marga: [17:25] *) valkyrie-default.ex es un ejemplo de un archivo de defaults, está relacionado con los scripts de inicio, tampoco nos hace falta, así que se va.
lisandropm: [17:25] marga: *.es son examples, calculo
marga: [17:25] lisandropm: si, todos los .ex son de "example"
marga: [17:25] *) valkyrie-doc-base.EX es otro ejemplo, que nos permitiría añadir la documentación a la base de datos general de documentos, pero no tenemos una documentacion importante, así que se va.
la_rayis: [17:26] marga: cómo sabemos si la documentacion es importante o no?
marga: [17:26] Con respecto a la página man, todo paquete de Debian debe tener su página man, el sistema nos permite que "el fuente" esté en uno de tres formatos posibles: groff (es el 1.ex), sgml y xml. Groff es el formato original de las páginas man, mientras que sgml y xml son lenguajes para los cuales existen conversores (que los transforman a groff).
marga: [17:27] la_rayis: bueno, hay que analizar qué es lo que trae el paquete. Ese paso lo saltée, para que no se haga eterno el tutorial. Este paquete trae, en el directorio doc/, unos htmls con un manual, pero son bastante básicos, por lo que no ameritan ser agregados a la base de datos de documentación.
la_rayis: [17:27] oki
marga: [17:27] *) Escribir una página man lleva tiempo, así que para este tutorial simplemente renombramos la manpage.1.ex a valkyrie.1 (valkyrie porque es el nombre del ejecutable generado y 1 porque es una aplicación que se encuentra en la seccion 1 de las páginas man). Copiamos el mismo archivo a vk_logmerge.1 (otro ejecutable que también genera el paquete) y borramos los otros dos ejemplos (manpage.sgml.ex, manpage.xml.ex).
marga: [17:28] *) postinst.ex, prerm.ex, preinst.ex y postrm.ex son los "maintainer scripts" que se ejecutan cuando el paquete se instala o se desinstala. En nuestro caso, nuestro paquete no va a hacer nada loco, con lo cual no nos hace falta ningún maintainer script adicional.
radhios: [17:29] los borramos???
maxyz: [17:29] radhios: si
marga: [17:29] *) README.Debian es para colocar mensajes específicos de Debian que uno le quiera dar a los usuarios. En este caso, se trata de un paquete bastante sencillo, por lo que no hay ningún mensaje importante para dar. Se borra.
marga: [17:29] *) menu.ex es un ejemplo que _si_ vamos a usar. Lo renombramos a "menu". De la misma manera con watch.ex, lo renombramos a "watch".
Macarse: [17:29] un sec un sec
marga: [17:30] Haciendo un ls, los archivos que quedaron son: changelog compat control copyright dirs docs menu rules valkyrie.1 vk_logmerge.1 watch
marga: [17:30] Verifiquen.
Darni: [17:30] tengo un conffiles.ex
marga: [17:30] Estos son, para nuestro paquete, los archivos importantes. Vamos a ver en detalle de qué se trata cada uno. Cada vez que nombre un archivo, por favor ábranlo y mírenlo.
marga: [17:31] Darni: que raro, yo no. Pero igual, no tenemos conffiles, se borra.
Darni: [17:31] y no tengo watch, sino watch.es
Darni: [17:31] .ex
marga: [17:31] Los conffiles son archivos de configuración generales del sistema.
marga: [17:31] Darni: si, lo tenés que renombrar.
Darni: [17:31] ok
garaguas: [17:32] ok
marga: [17:32] Abrimos: debian/changelog
marga: [17:32] El changelog es un archivo cortito (por ahora), pero tiene bastante información. En la primera línea dice: "valkyrie (1.2.0-1) unstable; urgency=low". En el caso de que estén usando Ubuntu, puede ser que diga el nombre de la distro... me lo confirman?
Darni: [17:33] estoy usando dapper, y dice unstable, tambien
plinko: [17:33] en mi caso no
pablo_: [17:33] no dice nada
marga: [17:33] Ok. En ese caso, deberían cambiarlo a mano.
marga: [17:33] Lo primero es el nombre del paquete. Lo segundo es la version, donde 1.2.0 es la versión del programa, y -1 es la revisión de Debian. Ustedes pueden tener varias revisiones de Debian para una misma versión del programa. Se irán numerando -2, -3, etc.
radhios: [17:33] en feisty dice unestable
plinko: [17:33] Estoy en feisty y tengo esto "valkyrie (1.2.0-1) unstable; urgency=low"
marga: [17:33] "unstable" indica que estamos preparando este paquete para subirlo a "unstable" que es el camino normal de los paquetes en Debian. En Ubuntu va directamente el nombre de la distribución para la que se esté preparando el paquete. O sea, deberían borrar "unstable" y poner "feisty", "gutsy" o similar.
beuno: [17:34] (para meter el paquete en Ubuntu, ahi debera decir la version, ej. gutsy)
javier_galicia: [17:34] ok
marga: [17:34] "urgency=low" indica que es un paquete con baja urgencia, es decir que una vez subido a unstable, no pasará a testing hasta después de 10 días, si es que no se le reporta ningún bug crítico. (No sé qué efecto tiene el urgency en Ubuntu)
beuno: [17:34] marga: ningun :D
marga: [17:35] beuno: ok :)
marga: [17:35] En la otra línea nos dice:
marga: [17:35] * Initial release (Closes: #nnnn)
garaguas: [17:35] si
marga: [17:35] sto se refiere a lo que habíamos hablado antes. Lo que hay que hacer es reemplazar el número "nnnn" por el número de bug asignado al ITP del paquete. En este caso, el ITP que tiene el paquete es #372268.
marga: [17:35] beuno: en Ubuntu iría el número de bug de Ubuntu?
beuno: [17:35] marga: si, va LP #NNNN
pablo_: [17:36] y cual sería ese número en ubuntu?
marga: [17:36] Imaginé. Donde LP #NNN es el bug en Launchpad que corresponde al paquete.
marga: [17:36] pablo_: el pedido de empaquetamiento del que hablamos al principio de la charla.
pablo_: [17:36] ahhhh, gracias, me había perdido eso
radhios: [17:36] beuno: va Closes: LP #nnnn
marga: [17:36] Lo del final es un comentario, que hay que borrar. De manera que la línea del changelog nos queda: * Initial release. (Closes: #372268)
la_rayis: [17:37] marga: lod e arriba tb se borra?
beuno: [17:37] radhios: tengo entendido que parsea directamente LP #NNNN
marga: [17:37] la_rayis: no, no. Lo de arriba y lo de abajo queda. Yo decía la línea del centro.
marga: [17:38] Abrimos: debian/control
garaguas: [17:38] oki
marga: [17:38] "control" es otro de los archivos importantes del directorio debian/, ya que contiene la descripción del archivo, las dependencias, el nombre del responsable del paquete y otra información relevante.
marga: [17:38] La primera línea: "Source: valkyrie" indica cómo se llama el paquete "fuente". En nuestro caso, como le pusimos "single binary" el fuente se llama igual que el binario, pero para los paquetes que generan más de un binario, esto no es así. No vamos a ver multi-binarios en este tutorial, cualquier cosa me preguntan.
marga: [17:38] (después)
marga: [17:38] La siguiente línea: "Section: unknown" indica en qué sección de los repositorios de Debian se encuentra el paquete. Como se trata de un aplicación de desarrollo, va en la sección "devel". La lista completa de secciones la pueden ver en: http://www.nl.debian.org/doc/debian-policy/ch-archive.html#s-subsections
beuno: [17:39] (algunas cosas en debian/control son distintas en Ubuntu ya que se mantienen los paquetes en equipos, y no individualmente)
marga: [17:39] En este caso, para saber en qué sección ponerlo, me fije en qué sección iba el valgrind, ya que esto es una interfaz gráfica para Valgrind).
marga: [17:39] beuno: ok, las cosas que sean distintas, por favor, explicalas.
marga: [17:39] A continuación viene la prioridad, que indica qué tan importante es el paquete. Como es una herramienta de debugging, no muy importante, lo dejamos en "extra". Luego viene el maintainer, y están los datos que le pusimos en las variables de entorno.
Macarse: [17:41] hay gente que verifica que los que crean paquetes no hagan cagadas?
marga: [17:41] Macarse: si.
marga: [17:41] Macarse: antes de entrar al archivo tienen que pasar por un control (en el caso de debian es por parte del ftp-master), y además hay equipos de QA que revisan todos los paquetes, una vez que ya estan en el archivo.
marga: [17:41] A continuación, el campo "Build-depends". Hay que modificarlo, y es importante, ya que si no lo hacemos así, el paquete no se va a poder compilar automáticamente. Hay que indicar qué paquetes tienen que estar instalados para poder compilar.
marga: [17:42] Valkyrie es un programa que usa las bibliotecas QT, es necesario indicar, entonces "libqt3-mt-dev", que es el paquete que incluye a todas las dependencias de qt. Por otro lado, no nos van a hacer falta los autotools, así que pueden borrar lo de "autotools-dev".
beuno: [17:42] en Ubuntu el maintainer es el equipo de LP, y se agrega un item adicional que es XSBC-Original: )
maxyz: [17:42] Macarse: Además solo del Debian Developers puede subir los paquetes, el resto tiene que pedirle a un Debian Developer que se lo suba.
maxyz: [17:42] s/del/los/
marga: [17:43] Podemos ponerlo a partir de una versión en particular (como está ya puesto para debhelper) o simplemente el nombre del paquete. En este caso dejamos solamente el nombre del paquete.
marga: = 5), libqt3-mt-dev
marga: [17:44] El "Standards-Version" es la versión del Debian Policy bajo la cual está armado el paquete. Esta variable hay que ir manteniéndola actualizada, a medida que se actualiza el Policy, fijándose que el paquete cumpla con los nuevos requisitos. En este caso no hay que hacer nada.
marga: [17:44] beuno: ubuntu?
beuno: [17:44] marga: exactamente igual
marga: [17:44] gracias
marga: [17:44] Ya pasamos al paquete binario. La siguiente línea que nos interesa dice "Architecture: any", esta línea nos indica que nuestro paquete se puede compilar para todas las arquitecturas. En general lo vamos a dejar así, aunque solamente lo compilemos en i386 (o amd64), para el resto de las arquitecturas va a ser compilado a través del sistema de buildds de Debian/Ubuntu.
la_rayis: [17:45] marga: las policies están en el sitio de debian, supongo
marga: [17:45] la_rayis: si, y también están disponibles como paquetes que uno puede consultar, sin estar conectado.
marga: [17:45] Otra opción es Architecture: all, es el caso de las aplicaciones que no hace falta compilar. Por ejemplo: scripts (python, perl, php), paquetes que contienen documentación, o imágenes, etc. En ese caso el paquete no es compilado por los buildds, sino que el paquete que subamos es el que todos van a instalar.
des: [17:45] la_rayis: http://www.debian.org/doc/debian-policy/
la_rayis: [17:45] gracias des
Eisenheim: [17:46] cuando se decide que no es compilable en alguna arquitectura?
beuno: [17:46] Eisenheim: cuando no compila :D
javier_galicia: [17:46] XD
la_rayis: [17:46] beuno: y una cómo sabe eso? :)
marga: [17:46] Eisenheim: puede suceder que requiera ciertas características específicas de algunos procesadores
lisandropm: [17:46] debian-policy es el paquete si lo quieren instalar
marga: [17:46] Eisenheim: o que tenga disponibles bibliotecas / entornos que en esa arquitectura no están.
marga: [17:46] la_rayis: prueba y error
Macarse: [17:47] marga: podés contar algo de sistema de buildds de Debian/Ubuntu? cómo funciona?
beuno: [17:47] cuando suben un paquete pueden ver como compilo: http://people.debian.org/~igloo/status.php?packages=exifprobe
marga: [17:47] Macarse: es medio mágico. Subís el paquete y automáticamente se compila para todas las arquitecturas disponibles.
marga: [17:47] En nuestro caso lo dejamos en Any.
Macarse: [17:47] pero teoricamente el paquete no está ya compilado?
marga: [17:48] Macarse: si, pero solo para tu arquitectura.
marga: [17:48] Macarse: no es lo mismo i386, que amd64, que powerpc, que sparc
Macarse: [17:48] por eso, subo algo compilado y ese "server" compila para el resto de las arquitecturas? no me cierra.
marga: [17:48] Macarse: no es un server, es una red de servers. Quisiera seguir con el paquete.
beuno: [17:48] Macarse: subis el codigo fuente tambien
garaguas: [17:49] si, sigamos
Macarse: [17:49] marga: k perdón, después me fijo
marga: [17:49] A continuación vienen las dependencias. En esa línea hay unas variables "mágicas" que van a ser completadas automáticamente cuando generemos el paquete. Estas variables se completan haciendo un "ldd" del archivo compilado. En este caso el ldd no es suficiente, ya que este programa requiere del valgrind para funcionar, tenemos que agregar "valgrind" en esa línea.
marga: [17:49] Quedaría: Depends: valgrind, ${shlibs:Depends}, ${misc:Depends}
marga: [17:49] Y finalmente viene la descripción. La descripción debe estar en inglés y se compone de dos partes. La primera es únicamente una línea, que, en general, no debe empezar con mayúscula ni nombrar al paquete, y no debe terminar con ".", debe ser una pequeña explicación acerca del programa.
garaguas: [17:50] mm, me aparecen caritas en tu linea :)
maxyz: [17:50] Macarse: Lo subis, codigo fuente y lo compilaste (ponele para i386), la gente que tiene i386 va a poder usar tu paquete que compilaste en tu maquina. Para las otras arquitecturas se compila en un servidor de esa arquitectura (por ejemplo powerpc).
marga: [17:50] garaguas: bueno, simplemente agregale un valgrind, adelante.
garaguas: [17:50] si,si
marga: [17:50] Por ejemplo "Description: graphical user interface for valgrind 3.X"
la_rayis: ni nada, no?
marga: [17:51] la_rayis: si.
marga: [17:51] Y luego viene la descripción larga, que debe empezar dónde está marcado, dejando un espacio. Esta descripción puede tener varias líneas, y la idea es que dé una idea más amplia del contenido del paquete. En general, comienza con el nombre del paquete.
marga: [17:51] Si se quiere dejar líneas en blanco, se pone una línea que contiene un " ." (espacio punto). Para escribir la descripción, cuando uno no está muy inspirado, se suele mirar el README o la web. En particular, yo lo rellené con el texto que está en: http://www.open-works.co.uk/projects/valkyrie.html, abajo del nombre.
marga: [17:52] Recuerden poner " ." en las líneas en blanco.
pablo_: [17:52] comillas punto comillas ???
marga: [17:53] pablo_: no. espacio punto
pablo_: [17:53] o con un espacio?
beuno: [17:53] pablo_: no, espacio punto
radhios: [17:53] borramos la long description??
pablo_: [17:53] ahhhhh
pablo_: [17:53] perdón las metidas de pata.. :)
marga: [17:53] radhios: si, y pega la que está en la web (o poné lo que quieras)
marga: [17:53] Al final de todo, se agrega una línea que diga " Homepage: " y la URL correspondiente.
martin_: [17:53] no te dejan subir paquetes sin description y url no?
marga: [17:53] Bueno, terminamos con "control", ¿alguna duda hasta acá?
lisandropm: [17:54] marga: al final de la descripción o como otro campo?
marga: [17:54] martin_: no.
De[V]oN: [17:54] marga: todo perfecto :)
marga: [17:54] lisandropm: es parte de la descripción.
marga: [17:54] lisandropm: algún día será un campo aparte, pero por ahora no.
jpmaiden: [17:54] tengo una pregunta.........con descomprimo rar
la_rayis: [17:54] marga: el homepage también con espacio adelante, no?
marga: [17:55] la_rayis: si.
marga: [17:55] la_rayis: toda la descripción larga lleva un espacio adelante.
martin_: [17:55] jpmaiden: unrar
maxyz: [17:55] La homepage en estos dias estan discutiendo de agregarlo como un campo adicional.
jpmaiden: [17:55] y como lo instalo
jpmaiden: [17:55] ???
marga: [17:55] Abrimos: copyright
garaguas: [17:56] ok
marga: [17:56] En este archivo hay varias cosas para completar, que creo que son bastante claras. Donde dice "It was downloaded from" va la URL de donde lo bajamos.
Macarse: [17:56] perdón, con respecto a lo anterior
Macarse: [17:56] qué es el debhelper?
Darni: [17:56] marga: pregunta sobre la descripcion: va cortado a 80 columnas? menos? todo en un renglon con un \n al final?
marga: [17:56] Donde dice "Upstream Author(s):" va el nombre del autor o autores del programa (hay que sacar los paréntesis y dejar Author o Authors según corresponda). En general esta información se encuentra en el archivo AUTHORS. En este caso son: Donna Robinson y Cerion Armour-Brown.
marga: [17:57] Macarse: debhelper es la herramienta que vamos a usar para hacer el paquete. Lo vamos a ver en más detalle cuando veamos debian/rules
De[V]oN: [17:57] marga: va el link directo?
jpmaiden: [17:57] como hago para instalar unrar???
marga: [17:57] Darni: va cortado a 80 columnas, si. Lo importante es que empiece con espacio. El \n al final no importa
des: [17:57] /kick jpmaiden
javier_galicia: [17:57] XD
marga: [17:57] De[V]oN: si
marga: "
gringo: [17:58] jpmaiden, te equivocaste de lugar
marga: [17:58] Finalmente, hay que especificar la licencia. Obviamente, antes de ponerse a empaquetar, uno se tiene que fijar la licencia y ver que sea una licencia válida, que se va a poder distribuir, y en lo posible que sea libre, de manera que pueda ir en la sección "main" de Debian/Ubuntu.
la_rayis: [17:58] marga: si no estan los emails de los autores no hay drama?
marga: [17:59] la_rayis: no. Es medio simbólico lo de los autores. Es más importante la línea del copyright.
marga: [17:59] Este programa indica en sus encabezados que es un programa GPL v2. Por lo cual ponemos una línea como la siguiente: "This program is released under the terms of the GNU GPL v.2". Y en la línea de abajo: "In Debian Systems, you can find a copy of the GNU GPL v2 at: /usr/share/common-licenses/GPL-2".
Darni: [17:59] marga: puede ser que me aparezca "License:" en vez de "Copyright:"?
marga: [18:00] Darni: puede ser, evidentemente tenemos versiones distintas de dh_make
la_rayis: [18:00] marga: tan simbolico que en mi archivo copyright no sale :)
marga: [18:00] Darni: pero License no es lo mismo que Copyright.
marga: [18:00] Tiene que haber una línea de "Authors" una de "Copyright" y una de "License"
la_rayis: [18:00] yo tengo donwloaded from, copyright holder y license
martin_: [18:00] Darni: primero tenes la linea de copyright, y abajo la de license
Darni: [18:00] marga: dh_make 0.40, en un ubuntu dapper
Darni: [18:01] martin_: tengo copyright holder, y debajo license
marga: [18:01] Los autores son los que escribieron el software, los copyright holders son los que tienen los derechos sobre el software, y la licencia son los términos bajo los cuales se distribuye el software.
Macarse: [18:01] suponiendo que quiero hacer un paquete de algo que no tiene licencia, ni autores, ni nada. no debería hacerlo?
marga: [18:01] Ok, si no está alguno de los campos, lo agregan.
Macarse: [18:01] o hay casos especiales?
beuno: [18:01] Macarse: si un paquete no tiene licencia, definitivamente no podes distribuirlo
marga: [18:01] Macarse: podés hacerlo, pero no lo vas poder poner en Debian ni Ubuntu. Lo podés tener en un repositorio personal, tuyo.
Macarse: [18:02] ejemplo sería el rar que está en un dep distinto?
marga: [18:02] Pero no porque no tenga licencia, me parece.
beuno: [18:02] Macarse: eso es porque no es libre el formato de compresion
beuno: [18:03] igual que mp3 y esos codecs
marga: [18:03] Macarse: pero si, todo lo que no tenga licencia, o su licencia no permita redistribución no se puede poner en los repositorios oficiales. Vos, en tu vida privada, podés hacer lo que quieras.
marga: [18:03] En el caso en el que la licencia no estuviera incluida en /usr/share/common-licenses/ (Artistic, BSD, GPL, GPL-2, LGPL, LGPL-2, LGPL-2.1), hay que incluirla completa, no alcanza con poner el nombre.
De[V]oN: [18:04] marga: por las dudas, en "Upstream Author" no vamos nosotros, no?
marga: [18:04] Si tienen una de las versiones nuevas de dh_make, después de la licencia viene la licencia del empaquetamiento, esto es algo que es relativamente nuevo, hasta hace poco dh_make no lo sugería y casi nadie lo ponía. En general, vamos a seguir la sugerencia de dh_make y licenciarlo GPL.
marga: and is licensed under the GPL, see `/usr/share/common-licenses/GPL'."
la_rayis: [18:05] marga: en license, entonces, se pone sólo el nombre de la licencia?
marga: [18:05] De[V]oN: no. "upstream" son los autores originales del software. Los que lo escribieron. Vos sólo serías el maintainer.
marga: [18:05] la_rayis: si es una de las "common-licences" si. Si es una licencia rara, hay que ponerla completa.
la_rayis: [18:05] ok
marga: [18:06] erminamos con copyright.... ¿Todavia me siguen?
Macarse: [18:06] qué sentido tiene licenciar mi "empaquetamiento"?
javier_galicia: [18:06] :S
pablo_: [18:06] sip marga
lisandropm: [18:06] ok
la_rayis: [18:06] marga: dame un minuto please
garaguas: [18:06] si, si
marga: [18:06] Macarse: depende de cuántro trabajo hayas hecho en el paquete. Hay veces en que es bastante laburo, y en ese caso es importante licenciarlo para que otros puedan modificarlo y redistribuirlo, legalmente.
la_rayis: [18:07] toy
Macarse: [18:07] tenía pensado que funcionaba como la wiki
Macarse: [18:07] todo lo que hagas para debian queda en una licencia libre para que puedas modificar
marga: [18:07] Macarse: digamos que se asume que todos los empaquetadores para Debian/Ubuntu están empaquetando con una licencia libre, pero es mejor dejarlo dicho explícitamente.
marga: [18:08] Macarse: y en general conviene que la licencia sea la misma que la del paquete, para evitar problemas.
marga: [18:08] Abrimos: debian/rules
garaguas: [18:08] ok
des: [18:08] Macarse: eso desde ya, si el empaquetado no es libre (de acuerdo con las guias de debian) no vas a poder incluirlo en debian, so...
marga: [18:08] Este archivo viene a ser una suerte de Makefile, pero especial de Debian. Si lo abren van a ver que adentro hay montones de líneas que dice "dh_..." estas son las instrucciones de Debhelper para hacer una u otra cosa.
marga: [18:08] Debhelper es un conjunto de comandos (todos los dh_*), que ayudan a generar un paquete de Debian. No es obligatorio utilizarlo, pero en general es una ayuda importante.
LikeVinyl: [18:09] yo sigo, pero instalar todas esas librerías demoró demasiado tiempo así que tendré que leer el log. de todos modos, es evidente que me faltaban unos cuantos conceptos ya que solo empaquetaba para mí :)
marga: [18:09] Otro comando que se puede utilizar para hacer paquetes de Debian es "cdbs", hay gente que lo adora y gente que lo odia. En este tutorial no lo vamos a ver.
marga: [18:10] LikeVinyl: :-\
marga: [18:10] Algunas de las líneas en debian/rules están comentadas y otras no. Algunas las vamos a descomentar, y las que no usemos las vamos a terminar borrando.
marga: [18:10] Al igual que lo que dije antes de los archivos que genera dh_make, acá hay muchas reglas, para que sea lo más flexible posible, después uno se queda con lo que necesita.
marga: [18:10] Ahora vamos a hacerle un par de cambios al debian/rules. Muchas veces esto es lo que más tiempo lleva, porque uno se tiene que fijar cómo compila el programa, qué problemas tiene, y demás. Yo ese trabajo lo hice anticipadamente, pero si lo estuvieran haciendo ustedes, seguramente les llevaría un rato.
martin_: [18:11] si no modifico nada, deberia andar bien no?
marga: [18:11] martin_: depende del paquete. En este caso, no.
martin_: [18:11] marga: k
marga: [18:11] martin_: si tenés suerte y te toca un programa que está bien hecho, si.
marga: [18:11] En la línea que dice ./configure hay que agregar "--with-Qt-dir=/usr/share/qt3" (en la misma línea, sin que se corte). Para que el programa encuentre donde están los datos de Qt.
pablo_: [18:11] número de línea??
marga: [18:11] pablo_: 36
pablo_: [18:11] gracias
marga: [18:12] Yo lo agregué justo antes de LDFLAGS, pero lo pueden agregar en cualquier lado.
marga: [18:12] Además, vamos a borrar todo lo que está entre el ifneq "$(wildcard /usr/share/misc/config.sub)", hasta antes del configure, ya que no hace falta. (son 6 líneas en total)
Macarse: [18:12] seh, línea 30 para mí
De[V]oN: [18:12] marga: yo tengo esto en la linea 36: "dh_testdir"
marga: [18:12] Ah, bueno, puede variar según la versión de dh_make.
marga: [18:13] Fíjese la línea que dice ./configure dentro del target "config.status"
marga: [18:13] ¿están?
pablo_: [18:13] un segundo
dangra: [18:13] sep
radhios: [18:13] sip
javier_galicia: [18:13] si
la_rayis: [18:13] marga: lo ue hay que borrar es desde ifneq hasta en el endif?
pablo_: [18:14] listo
martin_: [18:14] los dos ifneq
marga: [18:14] la_rayis: si, pero ojo que hay más de un ifneq. Los que dicen lo de config.sub y config.guess
lisandropm: [18:14] marga: si podés hacer un pastebin del archivo, por ahí mejor
marga: [18:14] lisandropm: si, en 5 minutos les paso una url con todo el paquete.
lisandropm: [18:14] ok
marga: [18:15] Más abajo, casi al final, encontramos la regla que genera el paquete (binary-arch). En esa regla hay muchas líneas comentadas. La única que tenemos que descomentar es dh_installmenu, las otras que están comentadas las podemos sacar. Son todas reglas optativas que no vamos a usar.
marga: [18:15] También podemos borrar: dh_installexamples y dh_link, que tampoco vamos a usar.
garaguas: [18:16] listo
marga: [18:16] Bien, lo que nos falta ahora antes de poder compilar es hacerle unos arreglitos al código fuente.
marga: [18:16] La mayoría de los paquetes que uno vaya a hacer van a tener sus "cosas" que hay que arreglar. No es para espantarse, esto se debe a que el autor del programa lo compiló en su sistema, con su entorno, que no necesariamente es el mismo que el nuestro.
marga: [18:16] Este programa tiene unos pequeños bugs en sus Makefiles, que tenemos que corregir. En los 3 casos que vamos a ver corregiremos tanto el Makefile.am como el Makefile.in. En realidad con el .in sería suficiente, pero por una cuestión de prolijidad, corregimos los dos.
beuno: [18:17] (generalmente sabes que algo esta mal porque al compilar, explota todo, :D)
De[V]oN: [18:17] marga: pero borramos la dependencia al autotools
marga: [18:17] Vayan para atrás, al directorio padre: valkyrie-1.2.0
De[V]oN: [18:17] marga: como puede seguir usando el .in?
marga: [18:17] De[V]oN: si, porque no vamos a regenerar.
marga: [18:17] De[V]oN: al revés, el .in es el que usa el ./configure, el .am es el que usan los autotools.
De[V]oN: [18:18] marga: ah oks, gracias
marga: [18:18] De[V]oN: o sea, el .am no hace falta arreglarlo, lo arreglamos sólo por si en algún momento tenemos que regenerar.
marga: [18:18] *) valkyrie/Makefile.am: en la línea 145 dice QTDIR, debería decir QT_DIR
marga: [18:18] *) valkyrie/Makefile.in: misma corrección línea 346
marga: [18:19] *) doc/Makefile.am: en la línea 3 dice "docdir = $(prefix)/doc/", debería decir "docdir = $(prefix)/share/doc/valkyrie/manual/"
pablo_: [18:19] marga, mi archivo es mucho más corto
pablo_: [18:19] tiene 20 lineas
marga: [18:19] pablo_: no estás mirando el que corresponde.
Darni: [18:19] pablo_: el que esta en el subdirectorio valkyrie debajo de la raiz del proyecto
marga: [18:19] pablo_: fijate que es el Makefile.am/in del directorio valkyrie, no el del directorio en el que estás parado.
Darni: [18:19] pablo_: a mi me paso lo mismo :)
pablo_: [18:20] eso mismo, perdón
pablo_: [18:20] me faltó cambiar de directorio
marga: [18:20] *) doc/Makefile.in: misma corrección, línea 161
marga: [18:20] doc/images/Makefile.am: en la línea 3 dice "docdir = $(prefix)/doc/images", debería decir "docdir = $(prefix)/share/doc/valkyrie/manual/images"
marga: [18:21] *) doc/images/Makefile.in: misma corrección línea 152
locomal1: [18:21] un segundo porfa
marga: [18:21] Si, si.
pablo_: [18:22] dame un segundo también
marga: [18:22] En este caso los arreglos los estamos haciendo directamente sobre el código fuente. Una manera más limpia sería hacerlos con "dpatch" y guardarlos como parches separados del código, pero eso ya escapa al nivel de este tutorial.
marga: [18:22] ¿están?
Macarse: [18:22] esto pasa porque el autor usa otra distro para codear no?
plinko_: [18:22] yo si
pablo_: [18:22] otro segundito please
la_rayis: [18:23] marga: estoy
javier_galicia: [18:23] sip
marga: [18:23] Macarse: el primero de los arreglos, la verdad, no sé cómo es que al autor le anda. Me imagino que debe tener la variable QTDIR en su entorno.
garaguas: [18:23] si
marga: [18:24] Macarse: los otros arreglos es porque al autor no se le ocurrió que alguien pudiera querer instalar la documentación en otro lugar que no sea ahí donde él la puso.
Darni: [18:24] marga: el primero de los arreglos no es el tipo de cosas que uno querría mandar upstream?
marga: [18:24] En la mayoría de los programas, uno le pasa una variable "--docdir" o similar, para indicar donde van los docs, pero este no la recibe.
marga: [18:24] Darni: si.
marga: [18:24] Darni: el segundo no, porque es muy quick&dirty, pero habría que hacer un arreglo para que el makefile reciba el docdir por parámetro.
De[V]oN: [18:25] marga: y estos errores los arregla el developer o se siguen "parcheando"?
marga: [18:25] De[V]oN: la idea es mandarlos a Upstream, para no tener que parchearlos cada vez.
marga: [18:25] Ya estamos listos para hacer la prueba de la primera compilación. Para generar un paquete .deb, sencillo, sin generar el paquete fuente, desde el directorio "valkyrie-1.2.0" y escribimos: "fakeroot debian/rules binary".
marga: [18:26] fakeroot es un comando que sirve para "simular" que el paquete está armado como root, ya que los archivos tienen que grabarse con el uid de root y demás. Pero no está siendo realmente root. debian/rules es el archivo que editamos hace un ratito. binary es la regla de para armar el paquete binario (es decir el .deb).
Macarse: [18:26] ups estalló
Macarse: [18:26] make: *** [config.status] Error 77
des: [18:27] Macarse: pega la salida en http://paste.debian.net y pasá el link acá
redondos: [18:27] macarse: tenes libqt3-mt-dev?
ignaciojsb: [18:28] ya tengo el .deb :)
garaguas: [18:28] fertig!!
plinko_: [18:28] yo tambien
pablo_: [18:28] yo todavía sigo esperando....
marga: [18:28] Ejecuten el comando que puse y vean la salida... Si todo sale bien, va a compilar, y luego va a "instalar" (pero en un directorio interno del paquete) y luego va a generar el .deb. Esto (dependiendo de la compu) va a llevar un rato. Así que pueden aprovechar para hacer una pausa mientras compila, o preguntar lo que no les haya quedado claro hasta ahora.
garaguas: [18:28] lo tengo
De[V]oN: [18:28] marga: dpkg-gencontrol: warning: unknown substitution variable ${misc:Depends} ?
martin_: [18:28] estalla: /usr/bin/fakeroot: 152: debian/rules: not found
Macarse: [18:28] http://paste.debian.net/35469
radhios: [18:29] waiting....
marga: [18:29] De[V]oN: si, es un warning común. No tiene importancia.
marga: [18:29] De[V]oN: lo que te está diciendo es que esa variable mágica no la va a usar. Pero no pasa nada.
radhios: [18:29] opps!!!
radhios: [18:29] dpkg-gencontrol: error: syntax error in control file debian/control at line 12: line with unknown format (not field-colon-value)
radhios: [18:29] dh_gencontrol: command returned error code 2304
radhios: [18:29] make: *** [binary-arch] Error 1
radhios: [18:29] roberto@morpheus:~/src/debian/valkyrie-1.2.0$
Macarse: [18:29] redondos: seh
Darni: [18:30] radhios: mismo error
Darni: [18:30] radhios: seremos los ubuntus?
marga: [18:30] Macarse: instalaste build-essential?
plinko_: [18:30] yo soy ubuntu y me ha salido
pablo_: [18:30] yo todavía no termino, ya les digo
martin_: [18:30] salta este cartel, /usr/bin/fakeroot: 152: debian/rules: not found
marga: [18:30] Darni: no creo, lo que te dice es que hay un error en el archivo control.
Macarse: [18:30] marga: pastee la línea de apt-get install que pasaste vos
marga: [18:30] martin_: lo estás ejecutando en el directorio incorrecto.
radhios: [18:30] beuno: y???
Macarse: [18:30] me fijo igual
Darni: [18:30] marga: si, justo en la linea donde empieza la descripcion
marga: [18:31] Darni: pegá tu archivo debian/control en http://paste.debian.net/
Macarse: [18:31] nop también tengo el build-essential
beuno: [18:31] radhios: que?
marga: [18:31] radhios: vos también.
radhios: [18:31] okis
lisandropm: [18:31] Macarse: me dá la impresión que no tenés el g++
ntovar: [18:31] marga: se genero el .deb pero mostro esta advertencia dpkg-gencontrol: advertencia: variable ${misc:Depends} de sustitución desconocida
Darni: [18:32] marga: http://paste.debian.net/35470
blackwasp: [18:32] vale lo tengo
marga: [18:32] ntovar: si, ya lo aclaré antes. Fijate lo que le dije a De[V]oN
ntovar: [18:32] marga: ok
la_rayis: [18:32] Darni: no te faltó el espacio al comienzo?
des: [18:32] Macarse: tu problema es un poco más complicado
des: [18:32] lisandropm: si tiene b-e tiene g++
marga: [18:32] Darni: tenés una línea vacía, y te faltan los espacios al principio de cada línea.
martin_: [18:32] marga: lo ejecuto parado en el directorio valkyrie-1.2.0
Macarse: [18:32] :(
marga: [18:33] martin_: hacé un "ls -l debian/rules"
Darni: [18:33] marga: ah, se me paso esa parte
martin_: [18:33] marga: lo encuentra
makemyday: [18:33] todo ok por acá en feisty
radhios: [18:33] http://paste.debian.net/35471
marga: [18:33] martin_: entonces fijate cómo lo estás ejecutando.
marga: [18:34] Ah, acá me dice Maxy que en ubuntu build-essential no depende de g++
marga: [18:34] Macarse: probá apt-get install g++
marga: [18:34] radhios: te faltan los espacios
Macarse: [18:34] g++ is already the newest version.
Darni: [18:34] marga: si lo hice mal, despues lo arreglo, esta todo bien con que corra el comando de nuevo, o tengo que hacer algo antes?
marga: [18:34] radhios: cada línea de la descripción larga debe comenzar con un espacio.
pablo_: [18:34] el .deb generado queda en el directorio desde donde estamos haciendo todo?
des: [18:34] Darni: está todo bien
radhios: [18:34] okis marga
Dev\Zer0: [18:35] llegue tarde T_T
marga: [18:35] Darni: está bien, pero también podés hacer un fakeroot debian/rules clean
lisandropm: [18:35] Dev\Zer0: http://charon.damianv.com.ar/tutorial_marga.log
marga: [18:35] pablo_: en el anterior.
radhios: [18:35] marga: el del . tambien???
Dev\Zer0: [18:35] thanks
marga: [18:35] radhios: si, aunque no hace falta empezar con una línea vacía.
pablo_: [18:35] ok, gracias, todavía sigo esperando que termine de compilar...
marga: [18:35] pablo_: ok.
martin_: [18:36] marga: puse exactamente la linea q pasaste, y lo ejecuto como usuario normal
marga: [18:36] Macarse: probá apt-get install libc6-dev
la_rayis: [18:36] ufa, mi changelog está mal :(
martin_: [18:36] marga: necesito sudo?
marga: [18:36] martin_: no.
javier_galicia: [18:36] cuantos ubunteros
marga: [18:36] martin_: pegame la línea que estás ejecutando (con el path completo) y la salida que te da, por privado.
des: [18:36] la_rayis: pastebin :)
Macarse: [18:36] marga: libc6-dev is already the newest version.
marga: [18:36] martin_: o bien en pastebin
marga: [18:37] Macarse: apt-get install libstdc++6-dev ?
Macarse: [18:37] ese no lo tenía
Macarse: [18:37] installing
pablo_: [18:37] me pasó lo mismo que a muchos con lo debian/control
pablo_: [18:37] va de vuelta
marga: [18:38] Macarse: ok, crucemos los dedos
Macarse: [18:38] marga: acá uno de los que tengo usando mi pc con un shell me dijo que le anduvo
Macarse: [18:38] así que la cagué en algún paso
Darni: [18:39] ahita!
marga: [18:39] Macarse: ah!
marga: [18:39] Macarse: puede ser que hayas descomprimido el paquete como root?
pablo_: [18:39] una pregunta, si quiero hacerlo de vuelta, tengo que limpiar algo???
Guest1893: [18:39] el que quiera el tutorial resumido http://www.ubuntu-es.org/node/11143
marga: [18:39] Si, para compilar de vuelta, conviene: fakeroot debian/rules clean y luego fakeroot debian/rules binary
Macarse: [18:40] marga: mmm nop
marga: [18:40] Aunque no es obligatorio.
radhios: [18:40] marga: dpkg-gencontrol: error: source package name `single binary' contains illegal character ` '
radhios: [18:40] dh_gencontrol: command returned error code 65280
radhios: [18:40] make: *** [binary-arch] Error 1
pablo_: [18:40] oks, otra cosa, me marca un error en debian/control en la línea de la homepage
marga: [18:40] Macarse: si a los demás les anduvo, debería ser un tema de permisos.
pablo_: [18:40] dejé el espacio al principio y todo
Macarse: [18:40] a ver
Macarse: [18:40] marga: nop, tengo permiso para todos los files.
marga: [18:40] radhios: el "Source" debería decir "valkyrie"... Porqué dice "single binary" ?
Macarse: [18:41] quizá al tocar los makefiles toqué algo de maś
radhios: [18:41] marga: ooopsss
marga: [18:41] Macarse: lo dudo. No te daría ese error.
javier_galicia: [18:41] XD
javier_galicia: [18:41] cuantos oops
marga: [18:41] pablo_: pega tu control en http://paste.debian.net/
Macarse: [18:41] marga: mmm voy a compara los files
pablo_: [18:41] oks
marga: [18:41] la_rayis: te falta la línea de abajo.
radhios: [18:41] marga: works!!!!
martin_: [18:42] marga: paste.debian.net/35473
pablo_: [18:43] marga: http://paste.debian.net/35475
la_rayis: [18:43] marga: si, entendí que habia que borrarla
des: [18:43] martin_: ls -l debian/rules ?
marga: [18:43] la_rayis: perdón
marga: [18:43] la_rayis: ahora pongo la url del mío.
la_rayis: [18:43] marga: ah, dale :-D
martin_: [18:44] des: lo encuentra
marga: [18:44] pablo_: tiene que tener 80 o menos columnas
radhios: [18:44] Funciona!!!!
radhios: [18:44] great!!!
marga: [18:44] pablo_: y TODAS las líneas tienen que empezar con espacio.
marga: [18:44] (TODAS == todas las de la descripción larga)
pablo_: [18:44] y como cuento las columnas??
marga: [18:45] pablo_: no sé, cortalo a ojo.
Darni: [18:45] pablo_: que editor estas usando?
pablo_: [18:45] gedit
des: [18:45] martin_: pegá la salida del ls en el pastebin
martin_: [18:45] des: k
pablo_: [18:45] columnas=caracteres por línea?
la_rayis: [18:45] pablo_: pedile a gedit que te las muestre
Darni: [18:45] pablo_: fijate en las preferencias, tenes una opcion de mostrar margen derecho
la_rayis: [18:45] got it! dpkg-deb: building package `valkyrie' in `../valkyrie_1.2.0-1_i386.deb'.
Darni: [18:45] pablo_: con eso te va a poner una linea gris vertical. Asegurate de que tu texto no se pase de la linea
pablo_: [18:45] impecable, estoy en eso
marga: [18:46] En http://www.marga.com.ar/~marga/debian/packages/valkyrie-1.2.0/ está mi paquete
marga: [18:46] la_rayis: copiate la línea que te falta, de http://www.marga.com.ar/~marga/debian/packages/valkyrie-1.2.0/debian/changelog
martin_: [18:46] des: done. paste.debian.net/35478
marga: [18:46] Ah, veo que ya lo habías arreglado.
la_rayis: [18:47] marga: des me ayudó :)
radhios: [18:47] en feisty instalo sin problemas aunque lo configure como debian!!
Macarse: [18:47] marga: encontré el error
des: [18:47] martin_: probá hacer un 'fakeroot ls'
marga: [18:47] Bueno... Por si hay alguno que todavía no pudo... Ahora se genero el paquete .deb, pueden instalarlo y ejecutar el programa "valkyrie". Para poder usarlo van a necesitar correr valgrind sobre algún programa binario. Por ejemplo el "ls". Apreten el botón de "Run valgrind", escriban "ls" (o lo que quieran) en la caja de "Binary", "Ok" y luego "Run valgrind" otra vez.
marga: [18:47] Macarse: cuál era?
martin_: [18:48] des: misma salida q el ls pero sin color
Macarse: [18:48] marga: en rules: /configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)" --with-Qt-dir=/usr/share/qt3 LDFLAGS="-Wl,-z,defs"
pablo_: [18:48] arranqué de nuevo, copiando y pegando el tuyo, veamos que pasa :)
Macarse: [18:48] había puesto
Macarse: [18:48] marga: en rules: /configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs --with-Qt-dir=/usr/share/qt3"
marga: [18:48] Macarse: ok.
martin_: [18:48] des: primera vez con bitchx, no tengo el skill del private :s
De[V]oN: [18:49] marga: ja no tengo X en la pc que lo estaba probando, es una maquina de freir churros mal del DC pero ahora lo pruebo en mi notebook :P
marga: [18:49] Bueno, podemos seguir un cachito más? Ya casi terminamos con lo que tengo preparado....
Macarse: [18:49] marga: esto está ok?
Macarse: [18:49] dpkg-gencontrol: error: syntax error in control file debian/control at line 12: line with unknown format (not field-colon-value)
Macarse: [18:49] dh_gencontrol: command returned error code 2304
Macarse: [18:49] make: *** [binary-arch] Error 1
pablo_: [18:49] dale marga, me lo guardo para verlo después de que se genere el .deb :)
garaguas: [18:49] adelante marga!
lisandropm: [18:49] marga: dale marga!
marga: [18:49] Macarse: no, es que tenés mal tu archivo control. Les pasó a casi todos. Pegalo en pastebin y te decimos como arreglarlo.
marga: [18:49] Nos quedan por editar un par de archivos más. Ninguno muy importante
marga: [18:50] *) debian/menu es un archivo para los menúes de Debian. Es bastante fácil de editar. Si lo abren, donde dice "needs" tiene que quedar "X11" y donde dice "section" tiene que quedar "Applications/Programming". Si quieren saber en qué sección va un paquete, hay que buscarlas en /usr/share/doc/menu/menu.txt.gz
marga: [18:50] El archivo menu lleva \ al final de las líneas, porque va todo en una sola línea.
marga: es lo mismo que que no haya fin de línea)
marga: [18:51] *) debian/watch es un archivo que sirve para verificar si hay nuevas versiones de un paquete. El que viene ya trae varios ejemplos que pueden servir. En nuestro caso nos quedamos con el primer ejemplo, y reemplazamos de la siguiente manera: "http://www.valgrind.org/downloads/ valkyrie-(.*)\.tar\.bz2". Todos los comentarios se pueden borrar.
marga: [18:52] *) debian/manpages es un archivo que indica qué manpages se deben instalar. En este caso nuestras manpages son ficticias, porque son las del ejemplo, sin editar, pero de todas maneras las incluimos en este archivo, de a una por línea: "debian/valkyrie.1" y "debian/vk_mergelog.1".
marga: [18:52] Este archivo manpages nos permite indicar donde está la man page. Nosotros le ponemos el nombre y la regla "dh_installman" del debian/rules se encarga de instalarla donde corresponde.
pablo_: [18:53] una pregunta de ignorante, esto que estás diciendo ahora es para hacerlo antes de la configuración y compilación o se puede hacer después?
marga: [18:53] *) Esto sucede con muchas reglas de debhelper. Por ejemplo, dh_installdocs, instala los archivos que se encuentren en el archivo "docs" dentro de /usr/share/doc/paquete. En "docs" vamos a dejar: AUTHORS NEWS README
la_rayis: [18:53] marga: no tengo un debian/manpages, lo agrego?
marga: [18:53] pablo_: se puede hacer en cualquier momento.
marga: [18:54] pablo_: uno en general trata de compilar rápido, para ver que ande, y después le empieza a hacer retoques
marga: [18:54] la_rayis: si.
locomal1: [18:54] Macarse: yo también tenía tu mismo error!
la_rayis: [18:54] marga: las manpages van una por linea y sin nada alrededor? comillas, etc?
pablo_: [18:54] ahhhhh, yo decía para subir el .deb ya con todo
pablo_: [18:54] :)
marga: [18:54] la_rayis: sin nada alrededor.
carlitos: [18:54] Apenas instale Debian y estoy perdido. No se como hacer para que mi otro disco duro con mi información importante la reconozca el sistema y a pesar de que en el gestor de paquetes synaptic descargue los archivos para ver flash o shockwave las paginas con estos no me corren y cuando intento bajar de adobe el flash installer el sistema dice que no es compatible, me pueden ayudar
maxyz: [18:55] pablo_: El deb es lo de menos
marga: [18:55] pablo_: claro, pero esto es muy de prueba y error. Lo compilás, ves cómo anda, lo probás, lo modificás, etc.
javier_galicia: [18:55] XD
plinko_: [18:55] mal momento carlitos
pablo_: [18:55] claro, voy entendiendo de a poquito pero voy entendiendo :)
marga: [18:55] carlitos: justo estamos al final de un tutorial. Te recomiendo que preguntes en #debian-es
carlitos: [18:55] gracias
Nomius: [18:55] carlitos, instalate ubuntu y listo :-) (acá me pueden linchar por esto :-P)
javier_galicia: [18:55] :S
marga: [18:55] Una vez que el paquete haga todo bien, ya se puede generar el paquete fuente, que es el que van a necesitar para poder subirlo a Debian o Ubuntu. Ese paquete se genera haciendo "dpkg-buildpackage -rfakeroot".
marga: [18:56] Cuando ejecutan ese comando, no sólo se compila el binario como hacíamos hasta ahora, sino que también se genera el paquete fuente.
plinko_: [18:56] hala Nomius, haciendo amigos..
pablo_: [18:56] ahora caigo marga, me estaba adelantando, cuestiones de novato :)
marga: [18:56] El paquete fuente consiste de tres archivos. Uno es el .orig.tar.gz que nosotros generamos al principio. Otro es un archivo de texto con extensión .dsc, que incluye la descripción del paquete generado y el otro es un archivo .diff.gz que incluye todos los cambios que ustedes hayan realizado al paquete.
la_rayis: [18:56] marga: eso es dp que comprobamos que el deb salio sin problemas?
Nomius: [18:56] plinko_, no uso ni debian ni ubuntu yo, así que no me jode :-D
plinko_: [18:56] xD
marga: [18:56] Esos tres archivos son los que van a subir a Ubuntu. En el caso de Debian, se suben esos tres archivo + el .deb compilado.
marga: [18:56] la_rayis: si.
marga: [18:57] la_rayis: antes de subirlo el paquete tiene que estar 10 puntos.
Macarse: [18:57] en ubuntu no se sube el .deb porque compilan ellos?
marga: [18:57] Por ejemplo, habría que escribir las páginas man, que por ahora están las del ejemplo.
la_rayis: [18:57] marga: uh, eso no lo hace el developer? qué embole :)
marga: [18:57] Macarse: si. Compilan para todas las arquitecturas. En Debian se compila para todas menos para la que uno subió.
marga: [18:57] la_rayis: :)
maxyz: [18:58] /kicks Nomius
Nomius: [18:58] ¿Disculpá?
javier_galicia: [18:58] XD
plinko_: [18:58] xD
marga: [18:58] bueno, bueno, no peleen.
plinko_: [18:58] yo ya estoy
plinko_: [18:58] me salio bien
la_rayis: [18:58] marga: por ejemplo, si hay un cambio en la funcionalidad del paquete, lo ves en algun lado y actualizas la manpage? eso lo hace el mantainer?
beuno: [18:58] (en Ubuntu solo se compila para x86, a64 y sparc)
marga: [18:58] Vale decir que Debian compila para MUCHAS arquitecturas (del orden de 12) y Ubuntu solo 3.
javier_galicia: [18:58] (que chafa)
pablo_: [18:58] lo he logrado, ya está mi primer .deb :)
plinko_: [18:59] yuju!
plinko_: [18:59] :D
marga: [18:59] la_rayis: si. Si la página man la mantenés vos, vos tenés que fijarte que esté actualizada.
pablo_: [18:59] :D
marga: [18:59] la_rayis: pero algo copado para hacer es mandarle la página man a "upstream" (o sea a los autores originales) y que sean ellos los que la mantengan de acá en adelante.
marga: [18:59] pablo_: congrats :)
pablo_: [18:59] marga, puedo hacer una pregunta de algo que ya pasó, o sea, ahora que tengo el paquete?
pablo_: [18:59] graciassssss
radhios: [19:00] marga: genere el source... pero me dice que no puede firmarlo, donde pongo mi key???
pablo_: [19:00] de una advertencia que me tiró al final
pablo_: [19:00] dpkg-gencontrol: advertencia: variable ${misc:Depends} de sustitución desconocida
beuno: [19:00] radhios: tenes tu key generada en .gnupg?
marga: [19:00] radhios: tendrías que generar tu llava con gnupg.
la_rayis: [19:00] marga: ah, oki
marga: [19:00] radhios: pero si no, podés generar el paquete con: dpkg-buildpackage -rfakeroot -us -uc, y no te pide firmar.
radhios: [19:01] con que estes en .gnupg es sufi???
maxyz: [19:01] radhios: No
marga: [19:01] pablo_: si, ya lo expliqué antes, fijate lo que le contesté a De[V]oN (hace como media hora)
pablo_: [19:01] perdón
pablo_: [19:01] gracias
marga: [19:01] radhios: no, no. Tenés que tener la llave generada.
pablo_: [19:01] :)
marga: [19:01] pablo_: todo bien :)
marga: [19:01] Bueno, eso es todo. Les dejo un par de links por si quieren leer más
marga: [19:01] http://www.debian.org/doc/maint-guide/
marga: [19:01] http://doc.ubuntu.com/ubuntu/packagingguide/C/index.html
marga: [19:01] Yo me quedo. Todos aquellos que tengan dudas, no se contengan :)
radhios: [19:02] si entiendo, marga, digo que si la key esta ahi es sufi???
marga: [19:02] radhios: ah, si.
javier_galicia: [19:02] Muchas Gracias marga
radhios: [19:02] okis
radhios: [19:02] Gracias marga !!!!
pablo_: [19:02] marga, muchas gracias y la verdad que así da gusto aprender, felicitaciones !!!
LikeVinyl: [19:02] jeje
radhios: [19:02] clap!!! clap!!! clap!!! clap!!! clap!!! clap!!! clap!!! clap!!! clap!!!
plinko_: [19:02] Gracias Marga
LikeVinyl: [19:02] vengan las cervezas
LikeVinyl: [19:02] :)
plinko_: [19:02] plas plas plas plas plas!!
eternal: [19:02] gracias
marga: [19:02] Gracias a des por la atención a los usuarios, a maxyz por contestar por privado, a beuno por los aportes de Ubuntu. Y todos ustedes por venir.
LikeVinyl: [19:02] gracias marga
dangra: [19:02] marga: alguna recomandacion para mantener paquetes desde subversion / cvs ?
la_rayis: [19:02] aplauso! :)
LightKnight: [19:02] marga: muchas gracias for esto buen tutorial, yo espero qué estaran algos(?) :-)
SadMarvin: [19:02] Sos grossa Marga!!
blackwasp: [19:02] muchas gracias marga ;)
sur3857: [19:02] clap! clap! clap!
dangra: [19:02] gracias!
SadMarvin: [19:03] clap! clap! clap!
migatxu: [19:03] alguien puede decir a que hora comenzo?
locomal1: [19:03] Gracias!
migatxu: [19:03] xD
dangra: [19:03] 17h
pablo_: [19:03] a las 17
lux_thepolice: [19:03] Gracias Marga no pude seguirlo a todo pero luego lo veo
beuno: [19:03] :D
v4vlad: [19:03] clap,clap,clap congrats!
migatxu: [19:03] hora... argentina?
plinko_: [19:03] las 22 en España xD
Darni: [19:03] marga: gracias! (llegando tarde al backlog)
migatxu: [19:03] ah eso mejor plinko_
pablo_: [19:03] argentina, uruguaya
migatxu: [19:03] xD
lisandropm: [19:03] migatxu: sep
marga: [19:03] dangra: existen comandos especificos: svn-buildpackage y cvs-buildpackage (creo), pero nunca los usé.
migatxu: [19:03] es para echar un ojo al log y no morir
ntovar: [19:03] clap! clap! clap!
Macarse: [19:04] para los usuarios que siguieron, qué les pareció? más jodido más fácil que lo que esperaban?
LikeVinyl: [19:04] eso sí, para la próxima si es que hay próxima, es posible notificar previamente los paquetes que serán necesarios? :)
LikeVinyl: [19:04] hasta que trompee a la gente de fibertel...
plinko_: [19:04] lo esperaba mas complicado la verdad.....
marga: [19:04] LikeVinyl: perdón. Traté de avisarlo bien temprano para que no tuvieran problema.
SadMarvin: [19:04] Mas facil, si lo explico RE BIEN!
makemyday: [19:04] Macarse: mas simple de lo que esperaba
pablo_: [19:04] yo la verdad que no tenía idea de nada y ahora por lo menos ya algo de nociones tengo, ya les diré con próximos empaquetamientos, pero para empezar estuvo muy bueno
LikeVinyl: [19:04] no pasa nada, se entendió perfecto igual loguee todo :)
SadMarvin: [19:04] Macarse: Mas facil, si lo explico RE BIEN!
plinko_: [19:04] pero con lo bien que ha hecho el tutorial y eso ha salido bastante facil
Darni: [19:04] Macarse: es un poco más complicado que con los rpms... lo que es una pena porque uso mucho más distros debianosas
radhios: [19:04] Macarse: Lo mas complicado es conocer bien el fuente de lo que vas a instalar y sus dependencias
LikeVinyl: [19:05] después lo veré en detalle
marga: [19:05] Gente, si se largan a hacer su propio paquete y tienen dudas, no tengan miedo de preguntar por acá.
la_rayis: [19:05] Darni: danos un curso para hacer rpms
la_rayis: [19:05] total después alinenizamos ;-)
Macarse: [19:05] no dudo de la buena explicación, pero eso de tocar el código del author me dio un poco de miedo :)
Darni: [19:05] marga: en algun momento habia leido la new mantainer guide
Darni: [19:05] marga: parecido a lo que contaste ahora...
Darni: [19:05] marga: el tema es que no encontre mucho de como hacer paquetes un poco mas complicados
marga: [19:06] Darni: ni idea de cómo es hacer rpms, pero cuando uno le agarra la mano, es bastante fácil hacer .debs
ignaciojsb: [19:06] marga: muy buen tutoria, muchas gracias
marga: [19:06] Lo que pasa es que hay muchas cosas para tener en cuenta.
LikeVinyl: [19:06] ojalá se llene de mantenedores... hehe
la_rayis: [19:06] marga: trabajo para detallistas :)
Darni: [19:06] marga: en mi caso particular me interesa para empaquetar las cosas que yo desarrollo, así le es más facil a los usuarios instalarlos
marga: [19:06] Darni: cuánto más complicados?
marga: [19:06] Darni: si tenés dudas específicas de un paquete, siempre estamos acá para contestarlas
Darni: [19:06] marga: tengo un mismo codebase, que podes compilar de varias formas y obtener varios binarios
Darni: [19:07] marga: que estaria bueno que fueran paquetes separados
LikeVinyl: [19:07] ASCIIGirl, vive?
blackwasp: [19:07] creeia que seria mas complicado, ahora supongo que sera coger experiencia, por lo menos partire de una buena base
marga: [19:07] Darni: ah, claro. Eso sería un paquete multi-binario.
Darni: [19:07] marga: documentacion generada a partir de fuentes... distintas cosas, segun el proyecto
Darni: [19:07] marga: hay un tutorial sobre eso?
marga: [19:07] Darni: uhm. Dejame ver
Darni: [19:08] marga: el maint-guide dice "multibinario es complicado, empeza con uno facil"
Darni: [19:08] marga: y ahi me quedo
marga: [19:08] Darni: si, claro. Siempre se empieza por lo sencillo
pablo_: [19:09] Bueno, marga nuevamente muchas gracias por tan estupenda clase, y ya creo que me voy a dar una vuelta más seguido por aquí. Saludos para todos y todas!!!
marga: [19:10] Darni: la verdad que no encuentro ningún tutorial al respecto.
marga: [19:10] pablo_: saludos.
De[V]oN: [19:10] marga: tengo una duda, tenia en mente que a partir de tu tutorial voy a empaquetar el soft que desarrollo en el laburo
marga: [19:10] De[V]oN: aha.
De[V]oN: [19:11] marga: pero me estas surgiendo dudas de la licencia original
De[V]oN: [19:11] *estan
marga: [19:11] De[V]oN: qué licencia tiene?
Darni: [19:11] marga: y por donde se sigue? el tema es que todo el proceso evidentemente es muy poderoso, pero hay como muchos pasos magicos y no encontre mucho que describa esa magia, mas que practicar y hacer un monton de paquetes
plinko_: [19:11] bueno yo tambien me despido, un saludo a todos y gracias a marga por el fantastico tutorial :D
De[V]oN: [19:11] marga: es que no estoy 100% es una cosa rara tipo BSD
marga: [19:11] plinko_: saludos.
Darni: [19:11] marga: lo que es un poco incomodo para la gente como yo, que desarrolla y le inmteresa empaquetar solo lo suyo, egoistamente =P
dererk: [19:11] De[V]oN, o/
beuno: [19:11] De[V]oN: las licencias BSD suelen ser las mas "libres"
De[V]oN: [19:11] marga: pero ahora despues de tu tutorial me dieron ganas de meterle mas pilas y tratar de empaquetarla para debian
Darni: [19:12] marga: igual el tutorial estuvo muy bueno y me aclaro algunas cosas, muchas gracias
marga: [19:12] Darni: supongo que lo siguiente a leer es el developers reference: http://www.debian.org/doc/manuals/developers-reference/ No es un tutorial, pero va a tener info más avanzada.
De[V]oN: [19:12] beuno: dije tipo BSD, porque no son las que hacen miles de referencias a los autores / universidades?
marga: [19:12] De[V]oN: si es BSD, está todo bien.
SadMarvin: [19:12] Mil gracias Marga, chau
De[V]oN: [19:13] les puedo pasar el texto a ver que opinan?
marga: [19:13] Darni: no hace falta hacer tantos paquetes. Porque no hace falta saber sobre TODO lo que se puede hacer. Uno siempre conoce sobre las cosas que usa.
la_rayis: [19:13] Juanjo-sfe: ya está, se terminó :)
blackwasp: [19:13] bueno me despido, muchas gracias por el tutorial marga y un saludo a todos
marga: [19:13] De[V]oN: pegalo en paste.debian.net
Juanjo-sfe: [19:13] me mandas el log por mail?
marga: [19:14] Saludos a todos.
marga: [19:14] Juanjo-sfe: el log está ahí en el topic.