martes, octubre 10, 2006

Nicotine+



No, no, no... no tiene nada que ver con el tabaco, ni con algún complot de la industria del tabaco para que fumemos más (agregados de amoniaco), no es nada de eso. Se trata de un cliente para SoulSeek (si, ese, el pajarito azul) escrito en Python (PyGTK) (ese caótico lenguaje, dicen parecido al lenguaje del ser humano). Está basado en Nicotine, pero en ésta nueva versión han añadido un montón de mejoras (la principal es que conecta :) ) sobre la versión 1.0.8 que me instalé en su día desde los repositorios de Ubuntu y que funcionaba realmente mal. Lo había dejado abandonado y el otro día me dio por mirar a ver si habían hecho algo nuevo, me encontré con una nueva página y una versión muy avanzada, 1.2.5.1 disponible para descargar. Pues nada, como soy un valiente....

Desinstalé la versión que me instalé desde el repositorio,
yo@hell:~$ sudo apt-get remove nicotine

y una vez descargado el fichero con la nueva versión me dispuse a instalar todo

yo@hell:~$ cd Desktop/nicotine/
yo@hell:~/Desktop/nicotine$ tar xvf nicotine+-1.2.5.1.tar.bz2
nicotine+-1.2.5.1/
nicotine+-1.2.5.1/pynicotine/
nicotine+-1.2.5.1/pynicotine/__init__.py
nicotine+-1.2.5.1/pynicotine/mp3.py
nicotine+-1.2.5.1/pynicotine/slskproto.py
nicotine+-1.2.5.1/pynicotine/utils.py
nicotine+-1.2.5.1/pynicotine/pynicotine.py
nicotine+-1.2.5.1/pynicotine/ConfigParser.py
nicotine+-1.2.5.1/pynicotine/gtkgui/
....

Todo esto lo hacemos con nuestro usuario, de momento no nos hacen falta permisos de supervaca. Después de haber descomprimido tendríamos todo listo para ejecutar nicotine de la forma

yo@hell:~/Desktop/nicotine$ cd nicotine+-1.2.5.1
yo@hell:~/Desktop/nicotine/nicotine+-1.2.5.1$ ./nicotine

peeero, es una cochinada, y además, nos falta una cosilla, el trayicon :), os pongo la forma de la que yo lo hice

yo@hell:~/Desktop/nicotine/nicotine+-1.2.5.1$ cd trayicon
yo@hell:~/Desktop/nicotine/nicotine+-1.2.5.1$ sudo apt-get install build-essential python-dev python-gtk2-dev libgtk2.0-dev

Con esto tenemos todos los paquetes necesarios para poder compilar y construir la librería del trayicon, el paso siguiente es preparar el Makefile con nuestra versión de python

yo@hell:~/Desktop/nicotine/nicotine+-1.2.5.1/trayicon$ ./autogen.py
Generating Makefile for python 2.4
Done.. Now run 'make install' as root
yo@hell:~/Desktop/nicotine/nicotine+-1.2.5.1/trayicon$

Hacemos el make

yo@hell:~/Desktop/nicotine/nicotine+-1.2.5.1/trayicon$ make
pygtk-codegen-2.0 --prefix trayicon --register `pkg-config --variable=defsdir pygtk-2.0`/gdk-types.defs --register `pkg-config --variable=defsdir pygtk-2.0`/gtk-types.defs --override trayicon.override trayicon.defs > trayicon.c
Warning: generating old-style constructor for egg_tray_icon_new
Warning: Constructor for EggTrayIcon needs to be updated to new API
See http://live.gnome.org/PyGTK_2fWhatsNew28#update-constructors
***INFO*** There are no declared global functions.
***INFO*** The coverage of methods is 100.00% (2/2)
***INFO*** There are no declared virtual proxies.
***INFO*** There are no declared virtual accessors.
***INFO*** There are no declared interface proxies.
cc `pkg-config --cflags gtk+-2.0 pygtk-2.0` -I/usr/include/python2.4/ -I. -fPIC -c -o trayicon.o trayicon.c
cc `pkg-config --cflags gtk+-2.0 pygtk-2.0` -I/usr/include/python2.4/ -I. -fPIC -c -o eggtrayicon.o eggtrayicon.c
cc `pkg-config --cflags gtk+-2.0 pygtk-2.0` -I/usr/include/python2.4/ -I. -fPIC -c -o trayiconmodule.o trayiconmodule.c
cc `pkg-config --libs gtk+-2.0 pygtk-2.0` -shared trayicon.o eggtrayicon.o trayi conmodule.o -o trayicon.so
yo@hell:~/Desktop/nicotine/nicotine+-1.2.5.1/trayicon$

Instalamos... aquí si que nos hacen falta permisos de superusuario ya que se copiará la librería en el directorio de librerías (o paquetes) de tu python.

yo@hell:~/Desktop/nicotine/nicotine+-1.2.5.1/trayicon$ sudo make install

Y por último, solo nos queda copiar la librería al directorio donde se encuentran todos los scripts de nicotine, si no lo hacemos nos aparecerá un error parecido a "trayicon module was not found..." o algo así y obviamente, no nos aparecerá el icono del tray.

yo@hell:~/Desktop/nicotine/nicotine+-1.2.5.1/trayicon$ cd ..
yo@hell:~/Desktop/nicotine/nicotine+-1.2.5.1$ cp trayicon/trayicon.so pynicotine/

Acto seguido movemos el directorio de nicotine a /usr/lib y damos los permisos pertinentes

yo@hell:~/usr/lib$ sudo chmod -R 755 nicotine+-1.2.5.1
yo@hell:~/usr/lib$ sudo chown -R root:root nicotine+-1.2.5.1

Ahora vamos a hacer que esto nos quede chulo... nos descargamos el icono de Nicotine y lo guardamos en /usr/share/pixmaps como nicotine.png. En /usr/bin creamos un script para arrancar nicotine

yo@hell:~/Desktop/nicotine/nicotine+-1.2.5.1$ cd /usr/bin/
yo@hell:/usr/bin$ sudo gedit nicotine

y añadimos lo siguiente

#!/bin/sh
cd /usr/lib/nicotine+-1.2.5.1
./nicotine

guardamos y damos permisos de ejecución y lecura pertinentes al script

yo@hell:/usr/bin$ sudo chmod 755 nicotine
yo@hell:/usr/bin$ ls -la nicotine
-rwxr-xr-x 1 root root 51 2006-10-09 23:43 nicotine

y ahora creamos la entrada en el menú, podemos hacerlo con Alacarte, pero prefiero añadir la entrada en /usr/share/applications para que esté disponible para todos los usuarios, entonces, editamos un nuevo archivo texto

yo@hell:/usr/share/applications$ sudo gedit nicotine.desktop

y escribimos lo siguiente

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Nicotine
GenericName=Nicotine
Comment=SoulSeek Linux Interface
Icon=nicotine.png
Exec=nicotine
Terminal=false
Categories=Application;Network;

guardamos y ya está, ya tenemos nuestra entrada en el menú Internet, ahora solo nos queda ejecutarlo... y ¡¡tachaaaaan!! ahí tenemos a nuestro Nicotine+ con su trayicon y todo funcionando a las mil y una maravillas.



Voy a seguir descargando algunos temas de Trentemøller, que me mola...

Ale, valientes, a descargar :)

ACTUALIZACIÓN

Si no os aparece el icono del tray probar a arrancar nicotine con el sufijo --enable-trayicon (-t), si no queréis que os aparezca el icono del tray arrancadlo con el sufijo --disable-trayicon (-d).

7 Comentarios:

Blogger Lek ha dicho...

Un cliente SoulSeek para Linux... interesante. Ahora ya puedo migrar xDDDDDD

9:25 a. m.  
Blogger El Demonio ha dicho...

Jajajajaja... no migrarás a Linux en tu vida, cabrrón...

Con lo fácil que es, ahora más que nunca.

Yo estoy por probar otras distros, me aburro de ubuntu, y en el aspecto multimedia es una kaka, igual echo un vistazo a Mandriva, Slax... no sé, hay tantas que me gustaría probar.

9:31 a. m.  
Anonymous Anónimo ha dicho...

La verdad que sí, que Linux está tirado. No hay más que ver que con cuatro o cuarenta líneas (no las he contado) tienes lo mismo que en Windows tendrías con un par de Next Next :D

2:55 p. m.  
Blogger Lek ha dicho...

Pero lo que mola tirar esas 40 líneas, ¿qué? ¿eh? xDDD

3:43 p. m.  
Blogger El Demonio ha dicho...

Ya sabes, troxer, es para gustos, los usaurios de Linux nos lo pasamos bien y aprendemos, es divertido :)

1:57 a. m.  
Blogger Lek ha dicho...

Eso es lo que sois, "usaurios" condenados a la extinción xDDDDDD

9:18 a. m.  
Blogger El Demonio ha dicho...

Jajajaja, usaurios...

9:28 a. m.  

Publicar un comentario

<< Principal