-!- mode/#linuxpreview [+m] by CyBuX <@CyBuX> coardial saludo linuxpreview <@CyBuX> en el dia de hoy tendremos la charla "Creación de paquetes en Debian" por David Moreno Garza <@CyBuX> como parte de nuestro ciclo de texto conferencias en irc de linuxpreview.org <@CyBuX> el proximo sabado 26 de marzo, no tendremos conferencia <@CyBuX> dado que en muchos paises celebramos la semana santa <@CyBuX> recuerden igualmente que el sabado 2 de abril, tendremos el Festival Latino Americano de Instalacion de Software Libre FLISOL <@CyBuX> http://www.installfest.info/ <@CyBuX> ene el cual mas de 100 ciudades de paises de America latina se estara instalando software libre al publico asistente <@CyBuX> en esta fecha, linuxpreview estara participando activamente en este festival, y no tendremos charla tampoco, pero si haremos un cubrimiento de lo que sucede en diferentes ciudades de america latina <@CyBuX> esperamos que todos participen activamente <@CyBuX> ahora, me dispongo a hacer la presentacion de nuestro Invitado, David Moreno Garza <@CyBuX> David Moreno Garza. Tiene actualmente años, originario de la <@CyBuX> pequeñaciudad de Celaya, en México. <@CyBuX> Actualmente vive en la Ciudad de México donde estudia Ing. en Computación y Electrónica en la Universidad Iberoamericana, y trabaja como programador web en Nekotec Tecnología, una transnacional orientada a las telecomunicaciones. <@CyBuX> Ha colaborado en un par de proyectos importantes como el CongresoNacional de Software Libre (http://www.consol.org.mx), Linux México (http://www.linux.org.mx), Debian México (http://www.debianmexico.org) <@CyBuX> y en muchos subproyectos del Debian Project, tal como Debian Desktop, para la creación del Debian Control Center, proyecto que dirije. <@CyBuX> Actualmente se encuentra en el proceso para convertirse en desarrollador oficial de Debian. <@CyBuX> Asimismo, cuenta con doce paquetes oficiales en el archivo de Debian, así como una serie más que están en camino. <@CyBuX> los dejo con nuestro amigo David (aca damog) <@CyBuX> adelante damog <+damog> Hola, qué tal, muchas gracias por la presentación. <+damog> Antes que cualquier cosa quiero decir un par de cosas: <@CyBuX> me idsculpan un momento por favor <+damog> ok <@CyBuX> recuerden que al final se abrirar espacio para preguntas, quien desee preguntar, favor enviarme un privado y le sera asignado el turno <@CyBuX> eso es todo, sigue damog <+damog> 1. Muchas gracias a CyBuX y ederaam por crear estos espacios de conversación sobre software libre, es verdaramente refrescante, un bonito esfuerzo. <+damog> 2. Me encuentro tremendamente nervioso :) No sé por qué, se supone que una charla en vivo debería de ser más presionante, pero no así en mi caso. Entonces creo que al decirlo y hacérselos saber, me sentiré más aliviado :) <+damog> En fin, podemos empezar por ahora. <+damog> En esta charla intuiré que muchas de las personas aquí presentes utilizan el sistema operativo Debian GNU/Linux. <+damog> Así que aquí voy. <+damog> Para crear nuestros propios paquetes listos para usarse en un sistema operativo Debian GNU/Linux es necesario entender antes los interiores de un paquete Debian, tanto binario como fuente. <+damog> Existen, como lo menciono, dos tipos de paquetes en Debian: los binarios y los fuentes. Los binarios son claramente reconocibles por tener la terminación .deb, tal como todos los usuarios de Debian los conocemos. Los paquetes fuente son en realidad tres archivo (el .orig.tar.gz, el .diff.gz y .dsc). <+damog> Cuando nosotros instalamos un nuevo paquete, vía APT por ejemplo (apt-get install bastet), lo que hace APT es leer la lista de paquetes disponibles en /var/lib/dpkg/available, que es un archivo de texto plano tremendamente grande, conectarse a la ubicación donde se encuentra el paquete (previamente referenciado por /etc/apt/sources.list), descargar el binario y sus dependencias en caso de necesitarlas, y ofrecérselos a dpkg con el fin de que los procese <+damog> . Ahí se manejan los paquetes binarios. <+damog> Sin embargo, si han ido un poco más allá en el manejo de "juguetitos" en Debian, se habrán dado cuenta que también podemos indicar líneas deb-src en nuestro archivo sources.list. Ésto indica que la línea que agreguemos también la tendremos disponible para descargar paquetes fuente (source packages). Si ya las tenemos agregadas, podemos correr, por ejemplo, apt-get source bastet, y nos arrojará los tres archivos antes mencionados como parte del paq <+damog> uete fuente (y con suerte, si tenemos dpkg-source instalado, aplicará el diff a nuestro orig). <+damog> O sea, nos desempaquetará los archivos comprimidos. <+damog> ¿Pero qué es exactamente el paquete binario? <+damog> Un paquete binario en Debian es realmente un archivo 'ar', que es un formato de compresión de archivos estructurado en "miembros", que son los que forman parte del paquete como tal. El 'ar' contiene tres archivos (miembros): debian-binary, control.tar.gz y data.tar.gz. <+damog> - debian-binary: <+damog> Es un simple archivo de texto que se utiliza para indicar la versión del paquete procesado por Debian. Ojo: No es la versión del paquete, es la versión del procesamiento que tiene Debian como paquete. Desde hace un par de años, ha sido la versión 2.0. <+damog> - control.tar.gz: <+damog> Una bola tar que incluye varios archivos, como 'control', que es donde se especifica toda la información del paquete, la que sale desplegada cuando hacemos algo como 'apt-cache show bastet'; el archivo 'md5sums' indica las sumas md5 de todos los archivos que incluye el miembro data.tar.gz; y otros archivos como 'postrm', 'postinst' que son scripts añadidos por el empaquetador, para ejecutarse en diversos puntos a la instalación o deinstalación de un <+damog> paquete. <+damog> - data.tar.gz: <+damog> Este archivo contiene todos los archivos que instale el paquete, por ejemplo usr/games/bastet, /usr/share/man/man6/bastet.6.gz, etc. <+damog> Ahora necesito de su especial atención aquí, vamos a hacer un ejercicio :) <+damog> Hagamos un ejemplo práctico, examinemos un binario común. Si alguien tiene alguna duda, puede hacérmela a mí o a ederaam por privado (no importa si utilizan testing o unstable): <+damog> a CyBuX, más bien. <+damog> Manos a la obra: <+damog> $ cd /tmp <+damog> Copiaremos cualquier paquete que tengamos disponible en nuestro sistema, ustedes elijan cual quieren: <+damog> (yo eligiré uno de los míos) <+damog> $ cp /var/cache/apt/archives/libgtk-trayicon-ruby1.8_0.1.0-2_powerpc.deb . <+damog> Recuerden que todos los archivos .deb que descargamos o hemos utilizado alguna vez en Debian, los tenemos bajo /var/cache/apt/archives <+damog> La sintaxis común de cada archivo .deb es _-_.deb <+damog> Por eso no se espanten si ven que utilizo algunos archivos powerpc.deb, eso depende de cada máquina. <+damog> En la mayoría de los casos es i386.deb, con arquitecturas x86. <+damog> Me hacen una pregunta <+damog> que a dónde copiar el archivo.deb <+damog> Debido a que estamos en /tmp <+damog> lo copias ahí mismo (al directorio '.') <+damog> $ cp /var/cache/apt/archives/libgtk-trayicon-ruby1.8_0.1.0-2_powerpc.deb . <+damog> Ya que tenemos el .deb en /tmp <+damog> (usemos /tmp para no hacer un batidillo de archivos) <+damog> $ ar x libgtk-trayicon-ruby1.8_0.1.0-2_powerpc.deb <+damog> $ ar x su_archivo.deb <+damog> :) <@CyBuX> adelante damog <+damog> entonces, ya que tenemos el .deb en /tmp lo desempaquetamos con ar <+damog> $ ar x su_archivo.deb <+damog> los atributos de ar se pasan igual que a tar <+damog> (no son necesarios los guiones) <+damog> Y veremos los tres archivos, debian-binary, control.tar.gz y data.tar.gz. Explórenlos y descubran sus contenidos. ¿Alguna pregunta hasta aquí? <+damog> ok :) <+damog> Ahora que conocemos las tripas de un paquete binario, vayamos a ver algo mucho más complicado, el paquete fuente. <+damog> Como ya lo comentaba, los paquetes fuente de Debian se componen principalmente por tres archivos: <+damog> - orig.tar.gz: <+damog> Es el tarball original del autor original, el que bajas de su sitio web. <+damog> Para efectos del desarrollo de Debian, al autor original de un software empaquetado se le llama 'upstream author' <+damog> Entonces el .orig.tar.gz es el tarball de upstream <+damog> - diff.gz: <+damog> Es en realidad un diff (un parche) que indica los cambios, los archivos modificados, los archivos agregados al orig.tar.gz. <+damog> preguntan: donde esta el orig.tar.gz? <+damog> El orig.tar.gz es uno de los archivos de un paquete fuente, ahora vamos a esa parte, por ahora es la parte teórica :) <+damog> Y el último archivo que conforma nuestro paquete fuente: <+damog> - dsc: <+damog> Es nuestro archivo de control, donde indica la metainformación, como la versión del paquete, el nombre de los binarios que provee el paquete fuente, el nombre del mantenedor, las sumas md5, etc. <+damog> Me pregunta apoka: me podeis decir una definicion de tarball? <+damog> Un tarball es simplemente un archivo tar, comprimido. <+damog> Comúnmente identificado como tar.gz o tar.bz2. <+damog> Para fines de este tutorialito necesitaremos instalar varios paquetes importantes que nos ayudarán, en caso de que no los tengan instalados, es muy importante que lo hagan, justo ahora: <+damog> # apt-get install devscripts debhelper build-essential dh-make lintian <+damog> Mientras instalan éstos paquetes, voy a explicar en qué nos servirá cada uno y a resolver una duda. <+damog> devscripts nos traerá scripts que ayudan a automatizar muchas de las tareas que el empaquetador llegaría a hacer <+damog> (recuerden que para más información puedes usar apt-cache {policy,show,search}) <+damog> debhelper es nuestro principal "ayudante" a la hora de hacer nuestros paquetes <+damog> también automatiza mucha de las tareas que tenemos que hacer <+damog> build-essential es el paquete que nos permitirá construir y enlazar correctamente las bibliotecas, a la hora de la compilación <+damog> dh-make es una utilidad de debhelper que nos ayuda a crear un template inicial, al arrancar el empaquetado de un software <+damog> y lintian es un verificador cuando hemos terminado de hacer nuestro paquete, verifica que el paquete siga fielmente la Debian Policy <+damog> La Debian Policy es el documento que estipula todo lo relacionado a cómo deben estar hechos los paquetes. <+damog> Es un documento muy grande y pesado, pero bastante interesante :) <+damog> Les recomiendo que le den una leída: <+damog> http://www.debian.org/doc/debian-policy/ <+damog> (después, claro) :) <+damog> ¿Continúan instalando los paquetes necesarios? <+damog> Vamos con un par de dudas antes de continuar: <+damog> David, puedes explicar por qué orig.tar.gz en vez de archivo.tar.gz??? <+damog> Ésto es un poco más adelantado, y quizás no haga tanta falta por ahora. <+damog> Pero lo voy a explicar: <+damog> La diferencia es que si nosotros dejamos nuestro archivo de upstream sin 'orig', nuestro constructor de paquetes interpretará que éste es un paquete 'nativo'. <+damog> Un paquete 'nativo' es un paquete hecho completamente para Debian. <+damog> Es decir, que se hizo para que sólo corra en Debian. <+damog> Por ello, no necesita 'revisiones' propias de Debian. <+damog> Por que cada 'revisión' es realmente cada 'versión'. <+damog> preguntan: viendo el archivo control del pakete alien me encuentro que depende de rpm .. me podria explicar eso <+damog> Simple: A la hora en que instales tu paquete, te pedirá también que instales rpm, antes. <+damog> Es una dependencia en tiempo de ejecución, no de compilación. <+damog> bueno, entonces quiero creer que ya instalaron los paquetes necesarios :) <+damog> continuamos, pues... <+damog> Bien, primero que nada exploraremos un paquete que ya se encuentre previamente en el archivo en Debian, lo haremos con un paquete sencillo, httping: <+damog> $ cd /tmp <+damog> $ apt-get source httping <+damog> Es un paquete muy liviano, apenas pesa K :) <+damog> damog@cebollita:/tmp$ apt-get source httping <+damog> Reading Package Lists... Done <+damog> Building Dependency Tree... Done <+damog> Need to get 10.4kB of source archives. <+damog> Get:1 http://http.us.debian.org unstable/main httping 0.0.96-1 (dsc) [579B] <+damog> Get:2 http://http.us.debian.org unstable/main httping 0.0.96-1 (tar) [7161B] <+damog> Get:3 http://http.us.debian.org unstable/main httping 0.0.96-1 (diff) [2669B] <+damog> Fetched 10.4kB in 6s (1700B/s) <+damog> dpkg-source: extracting httping in httping-0.0.96 <+damog> damog@cebollita:/tmp$ <+damog> Sólo para mostrarles mi sources.list: <+damog> damog@cebollita:/tmp$ grep deb-src /etc/apt/sources.list <+damog> deb-src http://http.us.debian.org/debian unstable main <+damog> damog@cebollita:/tmp$ <+damog> Bueno ya tenemos entonces los archivos necesarios de httping <+damog> damog@cebollita:/tmp$ ls httping* <+damog> httping_0.0.96-1.diff.gz httping_0.0.96-1.dsc httping_0.0.96.orig.tar.gz <+damog> httping-0.0.96: <+damog> debian error.h http.c io.c license.OpenSSL main.c Makefile.arm mssl.c readme.txt str.h tcp.h utils.h <+damog> error.c gen.h http.h io.h license.txt Makefile Makefile.nossl mssl.h str.c tcp.c utils.c <+damog> damog@cebollita:/tmp$ <+damog> Y nos arrojará tres archivos y un directorio. <+damog> Los tres archivos que ya explicaba al principio, y el directorio httping-0.96. <+damog> El directorio que nos crea es el tarball desempaquetado, con los cambios que marca el diff inicial. Entremos a ese directorio: <+damog> $ cd httping-0.0.96 <+damog> Y veremos todos los archivos que contiene el paquete, y en particular un directorio llamado debian. <+damog> damog@cebollita:/tmp/httping-0.0.96$ ls debian/ <+damog> changelog compat control copyright httping.1 httping-nossl.1 manpages rules <+damog> damog@cebollita:/tmp/httping-0.0.96$ <+damog> Inspeccionen cada uno de los archivos, verán que cada uno tiene su razón de existir. <+damog> en debian/changelog se enlistan los cambios que vamos haciendo al paquete <+damog> también, relacionado al changelog, verifiquen la página manual de dch <+damog> debian/compat lista la versión compatible del paquete Debian, para mayor información sobre ésto pueden revisar la Debian Policy <+damog> debian/control lista toda nuestra información del paquete, echen un vistazo <+damog> debian/httping.1 debian/httping-nossl.1 son páginas de manual <+damog> debian/manpages lista las páginas de manual que nuestro paquete instalará <+damog> me salé debian/copyright: establece la información legal del paquete <+damog> salté* <+damog> y debian/rules es nuestro makefile principal, el que se seguirá una vez que empecemos a construir nuestro paquete <+damog> como todo makefile, tiene targets específicos para cada paso de la construcción <+damog> Como éste paquete ya está listo, lo vamos a construir directamente. <+damog> Después haremos un paquete propio. <+damog> Si alguien ha leído un poco la guía de referencia de nuevo desarrollador, habrá visto que sugieren utilizar dpkg-buildpackage para construir el paquete, yo recomiendo usar debuild, que es un wrapper. <+damog> entonces, estando en el directorio httping-0.0.96 <+damog> correremos: <+damog> damog@cebollita:/tmp/httping-0.0.96$ debuild -tc -us -uc <+damog> la opción -tc indica que luego de construir el paquete, nos deje limpios todo nuestro árbol de directorios <+damog> y -us -uc indica que no queremos firmar con llave gpg el paquete <+damog> si todo sale bien, verán algo así, al final de la salida de debuild: <+damog> dpkg-buildpackage: full upload (original source is included) <+damog> Now running lintian... <+damog> Finished running lintian. <+damog> damog@cebollita:/tmp/httping-0.0.96$ <+damog> y un directorio abajo, tendremos nuestros resultados: <+damog> . <+damog> damog@cebollita:/tmp/httping-0.0.96$ ls ../httping_0.0.96-1_powerpc.deb <+damog> ../httping_0.0.96-1_powerpc.deb <+damog> damog@cebollita:/tmp/httping-0.0.96$ <+damog> el cual no teníamos previamente :) <+damog> Ahora que ya vimos cómo corre realmente el paquete y hemos revisado rápidamente el paquete, vamos a construir un paquete propio. <+damog> Sugiero que todos practiquemos con un mismo software y lo empaquetemos. <+damog> ¿alguien sugiere algún software para empaquetar en este momento y explicar paso a paso la construcción? <+damog> Sugerencias por privado. <+damog> Me sugieren ktoon, que es un software colombiano., <@CyBuX> :) <+damog> También me sugieren dascybernetz que es hecho por das_netz <+damog> Pero como más gente votó por ktoon, echemos un ojo rápido. <+damog> La URL está por acá: <@CyBuX> http://ktoon.toonka.com <+damog> http://ktoon.toonka.com/modules.php?op=modload&name=Downloads&file=index&req=getit&lid=5 <+damog> Bueno, si lo descargan, vamos a empezar a atacarlo. <+damog> Desempaquetarlo primero, desde luego. <+damog> damog@cebollita:/tmp$ tar xzvf ktoonsrc-0.7.3.tar.gz <+damog> Nos crea el directorio ktoon <+damog> Como la política de Debian nos indica que el nombre de ese directorio debe ser -, lo renombraremos: <+damog> Y aprovecharemos para cambiarle el nombre al tarball, para cumpla la Debian Policy: <+damog> . <+damog> damog@cebollita:/tmp$ mv ktoon ktoon-0.7.3 <+damog> damog@cebollita:/tmp$ tar czvf ktoon-0.7.3.tar.gz ktoon-0.7.3.tar.gz <+damog> ktoon-0.7.3.tar.gz <+damog> damog@cebollita:/tmp$ <+damog> Podemos borrar el tarball inicial: <+damog> damog@cebollita:/tmp$ rm ktoonsrc-0.7.3.tar.gz <+damog> damog@cebollita:/tmp$ <+damog> Ahora, entramos al directorio que cambiamos el nombre y es hora de correr dh_make <+damog> . <+damog> damog@cebollita:/tmp$ cd ktoon-0.7.3 <+damog> damog@cebollita:/tmp/ktoon-0.7.3$ dh_make -e damog@damog.net -f ../ktoon-0.7.3.tar.gz -s <+damog> Maintainer name : David Moreno Garza <+damog> Email-Address : damog@damog.net <+damog> Date : Sat, Mar 2005 14:04:45 -0600 <+damog> Package Name : ktoon <+damog> Version : 0.7.3 <+damog> Type of Package : Single <+damog> Hit to confirm: <+damog> Obviamente, cambien mi mail por el de ustedes <+damog> a dh_make le pasamos los atributos -e, que indica el mail del mantenedor; -f, que indica el archivo upstream; y -s que indica que nuestro paquete sólo generará un binario sencillo <+damog> Entonces apretamos Enter, para confirmar <+damog> Y nos muestra un mensaje muy interesante: <+damog> Currently there is no top level Makefile. This may require additional tuning. <+damog> Done. Please edit the files in the debian/ subdirectory now. You should also <+damog> check that the ktoon Makefiles install into $DESTDIR and not in / . <+damog> damog@cebollita:/tmp/ktoon-0.7.3$ <+damog> ahora, si vemos el contenido del directorio <+damog> veremos que tenemos un nuevo directorio llamado 'debian' <+damog> dentro de él, hay una serie de archivos: <+damog> damog@cebollita:/tmp/ktoon-0.7.3$ ls debian/ <+damog> changelog control dirs emacsen-remove.ex ktoon-default.ex manpage.sgml.ex postinst.ex prerm.ex watch.ex <+damog> compat copyright docs emacsen-startup.ex ktoon.doc-base.EX manpage.xml.ex postrm.ex README.Debian <+damog> conffiles.ex cron.d.ex emacsen-install.ex init.d.ex manpage.1.ex menu.ex preinst.ex rules <+damog> damog@cebollita:/tmp/ktoon-0.7.3$ <+damog> los archivos con terminación .ex, son templates que dh_make nos ha creado como ejemplos <+damog> lo primero que sugiero hacer es editar debian/control <+damog> añadiendo nuestro nombre, y mail, la descripción corta y larga del paquete, etc <+damog> Algo así: <+damog> Source: ktoon <+damog> Section: graphics <+damog> Priority: optional <+damog> Maintainer: David Moreno Garza <+damog> Build-Depends: debhelper (>= 4.0.0) <+damog> Standards-Version: 3.6.1.1 <+damog> Package: ktoon <+damog> Architecture: any <+damog> Depends: ${shlibs:Depends}, ${misc:Depends} <+damog> Description: 2-d animation tool kit <+damog> este es un paquete que blah blah blah <+damog> Por ahora no nos preocuparemos mucho por Build-Depends y Depends <+damog> ahora, cómo le vamos a indicar al paquete cómo construirse? pues en el debian/rules <+damog> pero para eso necesitamos saber cómo construir el paquete <+damog> en nuestro caso, las instrucciones están en el archivo install <+damog> INSTALL* <+damog> Generate a Makefile that has options according to your Qt distribution: <+damog> $ qmake ktoon.pro <+damog> Por obviedad, ese es nuestro paso de configuración, y así lo ponemos en debian/rules. <+damog> abrimos a edición el debian/rules y editamos el target configure <+damog> configure-stamp <+damog> Sería cosa de dejarlo así: <+damog> configure-stamp: <+damog> dh_testdir <+damog> # Add here commands to configure the package. <+damog> qmake ktoon.pro <+damog> touch configure-stamp <+damog> ahí añadimos la línea de qmake <+damog> después nos indica el INSTALL: <+damog> Compile the KToon's source code: <+damog> $ make <+damog> un simple make, que va, nuevamente por obviedaad, en el target build-stamp: <+damog> build-stamp: configure-stamp <+damog> dh_testdir <+damog> # Add here commands to compile the package. <+damog> $(MAKE) <+damog> #docbook-to-man debian/ktoon.sgml > ktoon.1 <+damog> touch build-stamp <+damog> dh_make ya nos había puesto la variable $(MAKE) <+damog> en ese caso, ya no tenemos que hacer nada más en el paso de la construcción <+damog> continuamos con el INSTALL: <+damog> And finally, run the application from the current directory: <+damog> $ ./bin/ktoon <+damog> Eso nos interesa en nuestro target build-arch <+damog> debido a que el Makefile parecerá no tener un target install, necesitaremos copiar manualmente dicho archivo <+damog> Es necesario también, editar otros archivos importantes. <+damog> Por ejemplo, debian/copyright <+damog> con la información fidedigna <+damog> sin embargo,podemos hacer una prueba de construcción rápidamente <+damog> corriendo ya, debuild, justo como lo hemos dejado hasta ahora <+damog> pero antes <+damog> damog como quedo el rules? <+damog> lo único que añadimos por ahora fue el qmake en el target configure-stamp <+damog> más adelante haremos todo el demás trabajo <+damog> ahora haremos una prueba <+damog> damog@cebollita:/tmp/ktoon-0.7.3$ debuild -tc -us -uc <+damog> dpkg-source: internal error: unknown line from diff -u on src/images/ani/credits/credits-image.png: `Files ktoon-0.7.3.orig/src/images/ani/credits/credits-image.png and ktoon-0.7.3/src/images/ani/credits/credits-image.png differ' <+damog> whopa! tenemos un ligero problema <+damog> estaba mal creado nuestro tarball <+damog> lo haremos simplemente como: <+damog> tar cvvf ktoon-0.7.3.tar ktoon-0.7.3 <+damog> y luego lo gzippeamos manualmente <+damog> # Add here commands to configure the package. <+damog> qmake ktoon.pro <+damog> make: qmake: Command not found <+damog> make: *** [configure-stamp] Error 127 <+damog> debuild: fatal error at line 764: <+damog> dpkg-buildpackage failed! <+damog> no tengo qmake, habrá que instalarlo <+damog> Me parece que dicho comando está en qt3-dev-tools <+damog> apt-get install qt3-dev-tools <+damog> es 1.2 MB <+damog> Setting up qt3-dev-tools (3.3.3-8) ... <+damog> Listo, ahora corremos nuevamente debuild <+damog> En mi caso empezó a compilar, pero salió con un error de falta de headers, debe ser por las bibliotecas de QT3. <+damog> g++ -c -pipe -Wall -W -O2 -DQT_NO_DEBUG -I/usr/share/qt3/mkspecs/default -I. -I../src -I/usr/share/qt3/include -I/usr/X11R6/include -I/usr/X11R6/include -Imoc/ -o obj/animation.o store/animation.cpp <+damog> store/animation.cpp:21:21: qobject.h: No such file or directory <+damog> No estoy muy familiarizado usando bibliotecas con QT. <@CyBuX> hacen una sugerencia: debido a las dependencias de este paquete con QT, si es posible compilar otro diferente mas sencillo <@CyBuX> y que no tenga relacion con ktk ni QT <+damog> CyBuX: no, creo que este paquete sirve muy bien de ejemplo <+damog> CyBuX: sólo será cosa de instalar los paquete necesarios <@CyBuX> ok <+damog> además la gente estaba entusiasmada con ktoon <+damog> bueno, me parece que necesitamos el paquete libqt3-dev <+damog> Al menos yo lo necesito :) <+damog> Vamos también a darle velocidad a ésto. <+damog> Depende mucho también de su velocidad de enlace a Internet para bajar los paquetes, o que tengas los discos listos. * damog instalando el paquete y sus dependencias :) <+damog> listo, vuelvo a correr debuild <+damog> gl/glgraphiccomponent.h:29:17: qgl.h: No such file or directory <+damog> vaya, parece que ktoon también necesita gl :) <+damog> Ésto se está haciendo tedioso. <+damog> Sería cosa de encontrar el paquete que satisfaga esa dependencia. <+damog> Me dicen que seguramente es mesa3d <+damog> Uff, ktoon no es nada sencillo :P <@CyBuX> eso parece <+damog> ¿alguna otra sugerencia? <+damog> Creo que ya se nos fue el tiempo hasta las nubes. <@CyBuX> no-ip <+damog> no-ip? <@CyBuX> Ramon_Ramos> es un paquete para un programa en especifico <+damog> tienen la referencia? <@CyBuX> ya me la van a pasar <@CyBuX> http://www.no-ip.com/ <@CyBuX> es para usar un servidor con direccion ip dinamica <+damog> ok bien <+damog> http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz <@CyBuX> http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz <+damog> damog@cebollita:/tmp$ tar xzvf noip-duc-linux.tar.gz <+damog> damog@cebollita:/tmp$ tar cvvf noip-2.1.1.tar noip-2.1.1/ <+damog> damog@cebollita:/tmp$ gzip noip-2.1.1.tar <+damog> damog@cebollita:/tmp$ cd noip-2.1.1 <+damog> damog@cebollita:/tmp/noip-2.1.1$ dh_make -e damog@damog.net -f ../noip-2.1.1.tar.gz -s <+damog> Y a ver qué tal va la compilación directa: <+damog> damog@cebollita:/tmp/noip-2.1.1$ debuild -tc -us -uc <+damog> . <+damog> cp noip2 /usr/local/bin/noip2 <+damog> cp: cannot create regular file `/usr/local/bin/noip2': Permission denied <+damog> make[1]: *** [install] Error 1 <+damog> make[1]: Leaving directory `/tmp/noip-2.1.1' <+damog> make: *** [install] Error 2 <+damog> debuild: fatal error at line 764: <+damog> dpkg-buildpackage failed! <+damog> ¿Por qué pasa eso? Por que necesitamos una variable apuntada <+damog> hacia $(DESTDIR) <+damog> en realidad no lo instalamos en /usr <+damog> eso lo cambiamos en el archivo Makefile <+damog> PREFIX=/usr/local <+damog> lo cambiamos a: <+damog> PREFIX=$(DESTDIR)/usr <+damog> también veo que el Makefile apunta hacia: <+damog> CONFDIR=${PREFIX}/etc <+damog> entonces CONFDIR sería $(DESTDIR)/usr/etc <+damog> lo cual no es del todo correcto <+damog> cambiamos CONFDIR hacia: <+damog> CONFDIR=$(DESTDIR)/etc <+damog> y volvemos a construir <+damog> Y la compilación aparece correcta. <+damog> Les pediría su cuenta de no-ip. <+damog> En caso de que tengan, y listo. <+damog> osea que antes que nada deberiamos morificar el MakeFile? <+damog> preferentemente, pero también lo podemos hacer directo en debian/rules <+damog> depende de ustedes :) <+damog> por ejemplo si lo dejamos como estaba el Makefile <+damog> podriamos mover los archivos directamente en binary-arch, por ejemplo <+damog> recuerden que debian/rules es un makefile <+damog> y le podemos poner comandos <+damog> install -m 0755 origen destino <+damog> por ejemplo <+damog> Ahora voy con más preguntas. <+damog> Ramon_Ramos> a mi me sale este error <+damog> dpkg-source: cannot represent change to .Makefile.swp: binary file contents changed <+damog> Eso pasa por que vi te crea un temporal. <+damog> Ciérralo :) <+damog> CyBuX: creo que ya puedes abrir la moderación <@CyBuX> ok <+damog> Por cierto, pondré un tutorial más detallado en mi sitio <@CyBuX> ok <+damog> Explicando la compilación de ktoon. <+damog> Me dejó picado el paquete :) * damog http://www.damog.net <@CyBuX> mon_Ramos> en el caso que quiera crear paquetes para distintas versiones de debian (woody sarge y sid) que se debe hacer? <@CyBuX> :) <@CyBuX> suele suceder muchas veces, <+damog> CyBuX: los puedes crear normalmente sólo indicando las versiones que necesitas en el campo Depends: <+damog> era para Ramon_Ramos, perdona <+damog> por ejemplo <+damog> Depends: paquete (>= 4.0) <+damog> alguna otra pregunta? <@CyBuX> alguna inquietud? < MiviX> yo < Ramon_Ramos> el paquete pbuilder lo ha usado? <@CyBuX> adelante MiviX < MiviX> en el control de versiones, observo por ejemplo en el paquete gaim que viene como 1:1.x.x <+damog> pbuilder es muy bueno para construir paquetes en un entorno limpio, que pedirá las dependencias tal como las necesiten <@CyBuX> entrare a modo moderado nuevamente para controlar las perguntas <+damog> CyBuX: ok <+damog> CyBuX: puedes darle voice a MiviX? <@CyBuX> adelante <+damog> MiviX: ajá? <+MiviX> en el control de versiones, observo por ejemplo en el paquete gaim que viene como 1:1.x.x <+MiviX> por que el 1:??? <+MiviX> cual es el motivo de cambiar la version? <+damog> Esa es una epoched version. <+damog> Eso sirve para "corregir" el número de versión, por ejemplo cuando algo ha salido mal en una versión. <+damog> es como una versión preliminar <+damog> por ejemploe <+damog> 1.2 es mayor que 1.1 <+damog> pero 1:1.2 es mayor que 1.3 <+damog> me explico? <+damog> sirve para indicar una versión mayor <@CyBuX> ok <+damog> en caso de errores a la hora de poner versiones <+damog> ok <@CyBuX> adelante dacoc <+dacoc> damog: que pasa con el archivo rules si para mi instalacion requiero correr un script en perl o e otro lenguaje? que pasa con los tags de rules? <+dacoc> CyBuX, gracias <+damog> dacoc: Los corres como comandos. Recuerda que un makefile, el cual es debian/rules, puede correr cualquier tipo de comando de consola. <+damog> por ejemplo en configure-stamp: <+damog> perl mi-script.pl <+damog> y listo, no hay problema <+damog> dacoc: me explico? <+dacoc> damog: sip correcto <+damog> zas <+damog> alguna otra pregunta? <@CyBuX> adelante felipe_ <+damog> :) <+felipe_> como hago para empaquetar documentacion ? el proceso varia mucho? por ejemplo un tutorial sobre kernel en html <+damog> felipe_: no, el proceso en realidad es el mismo... si es documentación que tiene que ser generada, como desde el source de docbook o algo así, la tienes que preparar en configure de debian/rules, compilarla en build, etc <+damog> felipe_: sólamente que el lugar donde pongas los archivos de documentación debe seguir la debian policy <+damog> por ejemplo todo debería ir sobre /usr/share/doc/paquete <+damog> ok? <+damog> en realidad "cualquier byte puede ser empaquetado" <+damog> bonita frase de un amigo <+damog> :p <+felipe_> ok gracias muy amable :) <@CyBuX> :) <@CyBuX> bueno, muchas gracias damog por tu charla <@CyBuX> y gracias por aceptar esta invitacion <@CyBuX> espero que todos se hayan sentido bien en la charla, seguro que todos aprendimos muhco <@CyBuX> recuerden que la proxima semana no habra charla por semana santa en muchos paises -!- gubita [~guba@conm200-116-36-2.epm.net.co] has quit ["Leaving"] <@CyBuX> ademas el 2 de abril tampoco, debido a la realizacion del festival Latino Americano de Instaacion de software Libre < das_netz> damog, cuando estara el tuto en tu sitio? <+damog> das_netz: en esta semana <@CyBuX> pero ese dia estaremos en muchas partes en contacto a traves de nuestro canal de irc <@CyBuX> señortes, quedan en su casa #linuxpreview (www.linuxpreview.org) < das_netz> para los que quieran el paquete de ktoon----> http://dasnetz.sytes.net/ktoon_0.7.3-1_i386.deb <@CyBuX> muchas gracias a todos por su asistencia < das_netz> das_netz> damog, felipe pregunta sobre documentacion... si la documentacion es como dice el... en html, se debe colocar a mano en el lugar adecuado segun la debian-policy? < das_netz> sipo < das_netz> también por ejemplo < das_netz> el comando dh_installdocs < das_netz> es interesante < das_netz> es parte de debhelper < das_netz> man dh_installdocs