Nov
25
2011

Spotify en Gentoo sin Wine

Esta mañana ha empezado a darme problemas Spotify con Wine, intentaba ir a una lista de reproducción almacenada previamente en el programa y se cerraba continuamente. Recordé que existía una versión Linux para cuentas Unlimited y Premium. Una vez introducido mi usuario y clave en la página de Spotify he vuelto a visitar la página de descargas para linux, con la misma decepción que hace unos meses sólo soporte para distribuciones de paquetería .deb Debian/Ubuntu y derivados. Esta vez he decidido dar un paso más allá e intentar hacer funcionar la versión de Linux de Spotify en Gentoo.

La primera acción ha sido entrar en la página de descargas de los paquetes .deb y bajar el fichero spotify-client-qt_0.6.2.291.gcccc1f5.116-1_amd64.deb, ya que en mi caso tengo el sistema compilado para 64 Bits, si tu sistema está compilado para 32 Bits descarga el otro fichero, todas las instrucciones que os voy a comentar a partir de ahora son igual para cualquiera de las dos plataformas, todos los comandos los ejecutaremos desde el usuario root.

A continuación necesitaremos la ayuda de alien, un comando que extraerá el contenido del paquete .deb dentro de un directorio. Si no lo tenemos instalado lo instalamos con emerge app-arch/alien, y una vez hecho esto usamos la orden alien -g spotify-client-qt_0.6.2.291.gcccc1f5.116-1_amd64.deb. Esta orden nos va a generar dos directorios spotify-client-qt-0.6.2.291.gcccc1f5.116spotify-client-qt-0.6.2.291.gcccc1f5.116.orig, nos metemos dentro del directorio que termina en orig y copiamos la carpeta usr en nuestro directorio de sistema usr, a partir de aquí el binario para ejecutar Spotify se encontrará en /usr/bin/spotify. Normalmente si lo intentamos ejecutar no funcionará ya que el binario de spotify depende de las siguientes librerías qt y openssl:  qt-dbus, qt-webkit, qt-core, qt-gui y openssl versión 0.9.8, ejecutamos emerge qt-dbus qt-webkit qt-core qt-gui openssl:0.9.8 para instalarlas, si aún así sigue sin funcionarnos podemos averiguar que otras librerías necesita con la orden ldd /usr/bin/spotify.

Una vez que ya tenemos Spotify funcionando, pienso ¿y si sacan una actualización del programa como me entero? … Aquí os dejo mi aportación personal …

#!/usr/bin/perl

use strict;
use Config;

#Is necesary dev-perl/libwww-perl
use LWP::Simple;

#Is necesary dev-perl/File-HomeDir
use File::HomeDir;

my $version;
my $versionfile;
my $file    = File::HomeDir->my_home . "/.spocheck";
my $url     = "http://repository.spotify.com/pool/non-free/s/spotify/";
my $content = get($url);

die "No puedo traer $url" unless defined $content;

if ( $Config{myarchname} eq 'x86_64-linux' ) {
    ($version) = ( $content =~ /\>spotify-client-qt.*amd64.deb/gi );
}
else { ($version) = ( $content =~ /\>spotify-client-qt.*i386.deb/gi ); }

$version =~ s/>//ig;

if   ( -e $file ) { &readfile; }
else              { &createupdatefile; }

sub createupdatefile {
    open( FILE, ">$file" );
    flock( FILE, 2 );
    printf FILE $version;
    flock( FILE, 8 );
    close(FILE);
}

sub readfile {
    open( FILE, $file );
    $versionfile = ;
    close(FILE);
    if ( $version ne $versionfile ) {
        print "New version available: $version";
        &createupdatefile;
    }
}

exit;

Sólo queda guardar este fichero en cualquier directorio con permisos de ejecución (/bin, /usr/bin …), con el nombre spotify.pl y añadir su ejecución semanalmente en una tarea programada (crontab). Cuando exista una nueva versión en la web el sistema nos avisará con un correo electrónico, siempre y cuando tengamos bien configurados los avisos de correo electrónico en las crontabs.

Entradas relacionadas

Sobre el autor: Juan Carlos Giménez Moncada

Luchando con el Open Source desde 1996...

Comentarios cerrados.