Archivos Mensuales: junio 2010

Debianizar Paquetes Precompilados Con CDBS

Hola, CDBS es la nueva herramienta para debianizar (empaquetar) programas. Desde que la conozco me ha simplificado la vida bastante para debianizar paquetes. Una de las cosas que más me ha costado averiguar es cómo empaquetar programas precompilados o empaquetar temas de iconos, gtk-themes o wallpapers, ya que estos no hay que compilarlos para empaquetarlos. Se hacerlo sin CDBS pero el archivo rules tienes cada vez que crearlo entero o hacer copy-paste de otros ya hechos. Con CDBS, generalmente, no hay que hacer nada o casi nada extra con el archivo rules porque ya te lo hace. No os preocupéis mucho si no me entendéis mucho de lo que digo, en un momento os enteraréis de la peli :-P

Voy a escribir varios artículos sobre debianizar con CDBS, el próximo lo dedicaré a empaquetar temas de iconos, gtk-themes, etc... incluyendo la multipaquetería, así que preparaos para el truño que voy a meter :-P En realidad lo que persigo es que la gente tenga una ayuda actualizada de cómo debianizar. Al que le interese claro :-P

Bueno empecemos con el jaleo ya. Lo primero es instalar todos los paquetes necesarios para poder debianizar con CDBS.

sudo su -

apt-get install build-essential dpkg-dev file libc6-dev patch perl autoconf automake dh-make debhelper devscripts devscripts-el fakeroot gnupg g77 gpc xutils lintian cdbs pbuilder debian-policy developers-reference manpages-es manpages-es-extra debian-reference-es

exit

Bueno con eso vais más que servidos ;-) , si falta alguno no problem, al debianizar se os indicará qué necesitáis instalar.

Bien, para este artículo voy a elegir la versión portable de Geogebra como ejemplo, al ser portable ya viene precompilado. Así que al debianizarlo sólo hay que indicar dónde meter su contenido en nuestro linux debianita.  Se puede descargar de AQUÍ.

Una vez descargado como es un tar descomprimidlo ;-) Al descomprimirlo se nos ha creado una carpeta que desgraciadamente no tiene en su nombre el número de la versión, pero esto se arregla fácil, cambiamos el nombre y lo dejamos así:

geogebra-3.2.42.0

Como igual cuando consultes este artículo la versión ya haya cambiado modifícala ;-)

Una cosa importante es que el nombre del programa de la carpeta siempre debe ir en minúsculas y se antepone un guión al número de la versión; independientemente del paquete a debianizar y su estructura ok ? ;-)

Vale abrimos terminal y nos creamos un directorio en donde debianizaremos todos nuestros paquetes y uno adrede para el de Geogebra, lo haremos desde nuestro home.

mkdir -p Debianizo/GEOGEBRA

Dentro del directorio de GEOGEBRA copiad el de geogebra-3.2.42.0 (el que hemos descomprimido), lo podéis hacer con el ratón, acedemos a dicho directorio:

cd Debianizo/GEOGEBRA/geogebra-3.2.42.0

Aclaro, es buena paractica crearte un directorio donde debianizar tus paquetes y un subdirectorio dedicado a cada programa a debianizar, ya que cuando obtengamos el paquete .deb se nos crearán muchos ficheros, y de esa forma los tendremos todos ordenaditos.

Hago un inciso, antes de seguir dentro de la carpeta geogebra-3.2.42.0 borrad la carpeta jre porque no la necesitamos absolutamente para nada en nuestro paquete a debianizar. Esto sólo es para éste caso.

También vamos a modificar el fichero geogebra.sh para que funcione con el java de Sun de nuestro sistema operativo, es suficiente con que quede así:

#!/bin/sh

/usr/lib/jvm/java-6-sun/jre/bin/java -jar /usr/share/geogebra/geogebra.jar "$@"

Bien, ahora se trata de crear el directorio debian con todos los ficheros necesarios para poder debianizar, lo haremos con el script dh-make y que viene incluido con el paquete devscripts. En realidad podríamos hacerlo a mano, pero así es más rápido. Así que desde el directorio geogebra-3.2.42.0 en la terminal escribid:

dh_make -e <nuestrocorreo> -r -s -b

Poned vuestro correo con los circunflejos inclusive. Con la opción -r nos creará un fichero fuente, con la opción -s le indicamos que sólo vamos a crear un paquete, y con la opción -b le indicamos que queremos debianizar con CDBS, así que no olvidéis ésta última opción.

Al hacer éste comando se os habrá creado un directorio llamado debian y dentro del mismo multitud de ficheros, vamos a quitar unos cuantos de un plumazo porque para nuestro ejemplo nos sobran, en artículos posteriores os iré explicando cosas de ellos.

cd debian

rm -f *.ex *.EX README.* docs

Os deben de haber quedado los siguientes ficheros:

changelog compat control copyright rules

El fichero compat no se toca ;-) . El fichero changelog es donde vamos poniendo nuestros sucesivos empaquetamientos del programa (cuando actualizamos de versión, incluimos parches, etc), y el fichero coyright es donde metemos la licencia del programa y del empaquetador. No os preocupéis os dejo un enlace de descarga de mi directorio debian de Geogebra para que os sirva de guía. Es que si lo pongo aquí esto se hace muy largo, y esto es más fácil viéndolo, no es nada complicado.

El fichero control nos aparecerá así (lo podéis editar con gedit)

Source: geogebra

Section: unknown

Priority: extra

Maintainer: Cristobal Lopez <lopeztobal@gmail.com>

Build-Depends: cdbs, debhelper (>= 7)

Standards-Version: 3.8.3

Homepage: <insert the upstream URL, if relevant>

Package: geogebra

Architecture: any

Depends: ${shlibs:Depends}, ${misc:Depends}

Description: <insert up to 60 chars description>

<insert long description, indented with spaces>

Cosas a tener en cuenta, en la sección Build-Depends especificamos las dependencias para poder compila y empaquetar el programa, como en nuestro caso ya viene compilado sólo debemos poner las de empaquetado. En nuestro caso con las que viene es suficiente.

La sección Depends es donde especificamos las dependencias del programa para que funcione cuando se ejecute o el usuario lo instale, ¡muy importante saber diferenciar esto! Aquí nos pone dos scripts que nos harán la faena por nosotros, ${shlibs:Depends}, ${misc:Depends} pero en éste caso no nos sirven de mucho, así que los borraremos y pondremos la dependencia a mano, que será  sun-java6-jre.

En la sección Architecture pondremos para qué arquitectura se debe debianizar, para Geogebra como es portable cambiamos any por all. Así pues el fichero control nos queda así:

Source: geogebra

Section: math

Priority: optional

Maintainer: Cristobal Lopez <lopeztobal@gmail.com>

Build-Depends: debhelper (>= 7), cdbs

Standards-Version: 3.8.4

Homepage: http://www.geogebra.org

Package: geogebra

Architecture: all

Depends: sun-java6-jre

Description: Dynamic mathematics for schools

GeoGebra is a free and multi-platform dynamic

mathematics software for schools that joins

geometry, algebra and calculus. It received se-

veral international awards including the European

and German educational software awards.

Perfecto, vamos a ver qué nos cuenta el archivo rules, al abrirlo nos aparece así:

#!/usr/bin/make -f

include /usr/share/cdbs/1/rules/debhelper.mk

include /usr/share/cdbs/1/class/makefile.mk

# Add here any variable or target overrides you need.

Como no se va a compilar nada nos sobra la línea que hace referencia a makefile.mk, así que la borramos y nos queda así:

#!/usr/bin/make -f

include /usr/share/cdbs/1/rules/debhelper.mk

Y ya no necesitamos poner nada más, así de sencillo es. Y eso es así porque CDBS en realidad es un conjunto de "macros" que se encargan de hacer gran parte del trabajo que se hacía antes con rules por nosotros, y para que funcione tan sólo hay que llamar la macro que necesitamos con la orden include, en nuestro caso como no vamos a compilar sólo necesitamos que se ejecute la debhelper.mk.

Desgraciadamente muchos de estos programas precompilados no llevan lo necesario para que tengan un lanzador en nuestro escritorio y deberemos crearlos nosotros mismos, se crean como ficheros de extensión .desktop, así que creamos uno que se llame en nuestro caso geogebra.desktop y lo guardamos en el directorio debian. Aquí os pongo el mio:

[Desktop Entry]

Version=1.0

Type=Application

Name=GeoGebra

GenericName=GeoGebra - Dynamic mathematics

Comment=Dynamic mathematics for shools

GenericName[de]=GeoGebra - Dynamisches Mathematikprogramm

Comment[de]=Dynamische Mathematik für Schulen

Name[de]=GeoGebra

GenericName[es_ES]=GeoGebra - Matemáticas Dinámicas

Comment[es_ES]=Matemáticas Dinámicas En La Enseñanza

Name[es_ES]=GeoGebra

Icon=geogebra.png

Exec=geogebra.sh

Categories=Education;Math;

StartupNotify=false

Terminal=false

En éste artículo hecho por mi tenéis cómo crear estos ficheros.

Nos queda crear dos ficheros que son para especificar dónde instalar el contenido del programa. Tienen siempre las extensiones .dirs y .install. En el .dirs especificamos los directorios base en dónde se instala el programa y en el .install dónde se instala el programa en sí. Es muy fácil. Creamos los ficheros geogebra.dirs y geogebra.install. En geogebra.dirs tendremos estas líneas:

usr/share/pixmaps

usr/share/applications

usr/bin

usr/share/geogebra

En el /usr/bin irá el ejecutable del programa, en el /pixmaps el icono del lanzador, en /applications el lanzador geogebra.desktop y en usr/share/geogebra todo el programa.

En el fichero geogebra.install tengo esto:

debian/geogebra.png usr/share/pixmaps

debian/geogebra.desktop usr/share/applications

geogebra.sh usr/bin

unsigned/* usr/share/geogebra/unsigned

geogebra.jar usr/share/geogebra

geogebra_cas.jar usr/share/geogebra

geogebra_export.jar usr/share/geogebra

geogebra_gui.jar usr/share/geogebra

geogebra_main.jar usr/share/geogebra

geogebra_properties.jar usr/share/geogebra

icon.png usr/share/geogebra

Que como veis no hay mucho que explicar, es decir dónde van cada uno de los directorios y ficheros del programa.

Estos ficheros .install y .dirs son muy importantes para debianizar un programa en varios paquetes, ya volveremos a ello. Su nombre debe coincidir siempre con el nombre que hemos puesto en el fichero control !!!!!

Y bien, si queremos rematar la faena de forma elegante vamos a crear un fichero .menu de nuestro programa para conservar las reglas Debian en cuanto a lanzadores. Creamos un fichero llamado geogebra.menu con el siguiente contenido:

?package(geogebra):needs="X11" section="Applications/Education"\

title="geogebra" command="/usr/bin/geogebra.sh"

Como se puede apreciar es muy fácil de hacer.

Una última cosa ha hacer específica para éste paquete, copiad el fichero icon.png sito en el directorio geogebra-3.2.42.0 en el directorio debian y cambiadle el nombre por el de geogebra.png. Esto lo hago para añadir el icono en el directorio del sistema /usr/share/pixmaps, debería de ser un icono en formato .xpm, pero no pasa nada si es .png. Es una buena práctica hacer esto en nuestros paquetes, siempre y cuando no tengan el icono.

Pues nada tan sólo nos queda debianizarlo, desde el directorio debian ejecutamos debuild así:

debuild -i -us -uc -b

O si van firmados para un repositorio oficial mejor así:

debuild -b -sa -tuclavedelrepositorio

Si todo ha salido bien ya tenéis vuestro paquete deb, sólo resta instalarlo ;-)

Os saldrán dos warnings (avisos) de lintian, uno se refiere a que el fichero ejecutable sito en /usr/bin llamado geogebra.sh no tiene página del manual man, no os preocupéis por ello ya que geogebra no tiene man. El otro lo obviamos que no pasa nada ;-)

Os dejo un enlace de descarga del debian de Geogebra mio para que os sirva de guia

Uuuuufffff!!!!! cuesta más explicarlo que hacerlooo!!! :-P Espero que le sirva a mucha gente, aunque no me lee casi nadie ;-)

Saludos :-)

[TIP] Dget Descargar Los Directorios Debian. Debianizar.

Hola, muchas veces cuando he ido a debianizar un programa me he encontrado que me ha resultado difícil hacerlo y necesitaba ayuda. La mejor ayuda que uno puede obtener para debianizar es obtener el directrorio debian junto con todos sus archivos; de esa forma vemos cómo se ha empaquetado cierto programa, si se le han añadido parches y cómo se le han añadido, etc...

Para obtener dicho directorio lo que hago es pasearme por las webs directas de descarga de los paquetes, como Ubuntu-Packages o Debian-Packages. En éstas páginas la mayoría de las veces no tienen el enlace directo de descarga del directorio debian. Para descargarlo debemos acceder al enlace del fichero de descarga con extensión .dsc.  Me explico, si queremos descargar el del paquete llamado ejemplo, el enlace sería: http://directoriodebian/ejemplo.dsc

Pero si hacemos click directamente a dicho enlace desde nuestro navegador sólo accederemos al fichero dsc sin más, debido a que nuestro navegador no soporta el protocolo dget. ¿Cómo solucionarlo? Muy sencillo, desde la terminal utilizaremos el comando dget.

Pongamos un ejemplo práctico que nos ayude a entenderlo. Supongamos que queremos el del programa maxima, pues bien desde terminal escribimos:

dget -xu http://ftp.de.debian.org/debian/pool/main/m/maxima/maxima_5.21.1-2.dsc

Con dicho comando se nos descargará un directorio descomprimido denominado, en nuestro caso, maxima-5.21.1; que si accedemos dentro del mismo encontraremos el directorio debian con todos sus códigos listos para aprender ;-)

Últimamente en Debian están incluyendo un .tar.gz del directorio debian exclusivamente de cada paquete, con lo cual en muchas veces no haría falta usar el comando dget. Pero muchos no los tienen, y además, si quieres obtenerlos de repositorios de terceros, como Launchpad, siempre nos vendrá bien éste comando.

El comando dget viene incorporado en el paquete devscripts, que es el que debes instalar para que funcione. Tienes un manual de dget desde la terminal con man, para conocerlo más a fondo.

Verdaderamente he aprendido muchas cosas de debianizar paquetes bajando y estudiando ejemplos reales de programas debianizados.

Saludos :-)

Bailotea El Pollo Funky

EEeeeyy todavía es domingooo, así que os dejo ahí una joyita del funky auténtico, el funky del todopoderoso Rufus Thomas. En riguroso directo en el 70, ya con unos añitos pero con  una energía vital y un buen rollito que ya quisieran muchos tener, este belcebú reencarnado nos enseña cómo bailar el funky del pollo, con una calidad más que contrastada. Es una gozada ver en el vídeo como miles de personas se ponen a bailotear para disfrutar, de todas las edades.

Así que sin daros más la puñetera vara os dejo con el Sr. Rufus para que bailoteeis con el primero/a que pilleis funky auténtico de los 70.

Ya Hay Fecha Oficial Para Mandriva 2010.1 Spring

Hola, después de todos estos días borrascosos de Mandriva parece ser que ya hay fecha oficial para la publicación de Mandriva 2010.1 Spring (que será Summer)

Vía Skype, el colega nicco, de MIB me informa que Cristina (la colaboradora estilista de MIB) ha publicado en el foro del MIB la noticia de que se ha informado a los MUGS por e-mail  del canal oficial vía Anne Nicolas la ingeniera de publicación de Mandriva (creo que se dice así en castellano :-P  ) de la fecha definitiva de que salga a la luz la nueva Mandriva estable. Copio y pego el texto de la noticia:

Nota:

Hi there
As announced on IRC friday, we will release final isos for 2010 spring in coming week. As a matter of fact we are pushing last packages until tonight.
Official release is planned for 5th of july, I will confirm this tomorrow.
Thanks for your patience and all your hard work
Cheers
--
Anne NICOLAS
Mandriva http://www.mandriva.com
Mandrakesoft becomes Mandriva

Hi there
As announced on IRC friday, we will release final isos for 2010 spring in coming week. As a matter of fact we are pushing last packages until tonight.
Official release is planned for 5th of july, I will confirm this tomorrow.

Thanks for your patience and all your hard work
Cheers
-- Anne NICOLASMandriva http://www.mandriva.comMandrakesoft becomes Mandriva

Así pues la fecha será el próximo 5 de Julio de éste año claro ;-) Ya queda muy poquito para que disfrutemos de la nueva Mandriva :-)

Saludos y a disfrutar :-)

Geany 0.19 En Mandriva

Hola, entre yo y Dago hemos empaquetado y subido a los repositorios del MIB la última versión de Geany, junto con todos sus plug-ins. Si ya tenías instalada la versión 0.18 y activados los repositorios del MIB se te habrán actualizado Geany y los plug-ins de la versión anterior, pero no tendrás instalados los plug-ins nuevos que se han añadido a esta nueva versión. Y si no lo tienes instalado y lo quieres probar ahora cuento para ambos casos que hay que hacer ;-)

Es muy sencillo, en ésta nueva versión he creado un metapaquete para que sea muy sencillo instalar completamente Geany, el paquete se llama task-geany. Para los amantes de la terminal:

su -

urpmi --auto-update

urpmi task-geany

exit

Esta disponible para Mandriva 2010.0 en 32 y 64 bits en MIB, en cuanto salga la última versión de Mandriva, la 2010.1, si es que sale; lo empaquetaremos y su instalación será la misma que la explicada aquí.

Saludos :-)

Page 1 of 212