Blackhold

Arreglar el widget del tiempo de mate

Posted on agost 31st, 2016 by admin

Los usuarios del sistema de escritorio mate os habréis encontrado que ya hace unos días que el widget del tiempo no devuelve datos, el motivo de ello es que la página web de dónde se recolectaban los datos (weather.noaa.gov) ha dejado de funcionar. Para ello la solución es modificar la librería.

El código que hay en github puede requerir versiones de dependencias mas nuevas que las que hay en nuestro sistema, así que una de las soluciones es descargarnos el código de la versión que tenemos instalada en nuestro sistema.
Para no guarrear mucho mi sistema voy a descargarme el código en una maquina virtual (con la misma versión de sistema operativo que en mi portátil), instalar las dependencias necesarias para compilar la librería, descargar el código y modificar la librería, compilar la librería y finalmente copiar el fichero resultante a mi sistema.

Dependencias
Principalmente vamos a necesitar mate-common que son un conjunto de scripts para desarrollar con MATE.

root@cacadelavaca:~# apt-get install mate-common

Descargar y modificar el código de la librería
Pues en lugar de install le vamos a decir source (previamente nos colocamos en el directorio donde vayamos a trabajar)

root@cacadelavaca:~# cd
root@cacadelavaca:~# apt-get source libmateweather1

Ahora en el directorio donde nos encontramos se han creado varios ficheros y un directorio, así que dentro del directorio hay otro directorio llamado libmateweather y dentro hay un fichero llamado weather-metar.c, que es el que vamos a modificar según el cambio realizado en github.

root@cacadelavaca:~# cd 
root@cacadelavaca:~# cd libmateweather-1.8.0/libmateweather

Compilación de la librería
Previamente hemos instalado mate-common, que es el que ahora vamos a usar para ejecutar el script autogen.sh, el cual nos va a generar todos los ficheros para poder hacer el configure, make y make install.

root@cacadelavaca:~/libmateweather-1.8.0# ./autogen.sh

Nota: estoy haciendo todo el proceso sobre una máquina virtual sin entorno gráfico y recién instalada, es decir, no tiene mate instalada, para ello será necesario instalar algunos ficheros para poder realizar éste paso, ellas son:

root@cacadelavaca:~# libmateweather libglib2.0-dev libglib2.0-0 libspice-client-gtk-2.0-dev libxml2-dev libsoup2.4-dev 

Ahora hacemos el make para generar las liberías

root@cacadelavaca:~/libmateweather-1.8.0# make

A partir de aquí se queja que hay algo no va bien, pero pasamos olímpicamente de ello porque aquí ya ha creado el fichero que nos interesa dentro de .libs

root@cacadelavaca:~/libmateweather-1.8.0# ls -l libmateweather/.libs |grep libmateweather.so.1.6.9
lrwxrwxrwx 1 root root     23 Aug 30 23:03 libmateweather.so -> libmateweather.so.1.6.9
lrwxrwxrwx 1 root root     23 Aug 30 23:03 libmateweather.so.1 -> libmateweather.so.1.6.9
-rwxr-xr-x 1 root root 463152 Aug 30 23:03 libmateweather.so.1.6.9

Copiamos el fichero a nuestro sistema
El fichero que nos interesa copiar básicamente es libmateweather.so.1.6.9, para ello lo copiamos a nuestro sistema y listos (recomiendo hacer una copia del fichero original)

root@carboni:/usr/lib/x86_64-linux-gnu# mv libmateweather.so.1.6.9{,.old}
root@carboni:/usr/lib/x86_64-linux-gnu# scp root@cacadelavaca:/root/libmateweather-1.8.0/libmateweather/.libs/libmateweather.so.1.6.9 .

Y para terminar, matamos el widget y lo volvemos a recargar

root@carboni:~# ps aux |grep mateweather
laura 2696 0.0 1.4 651116 111760 ? Sl ago28 0:30 /usr/lib/mate-applets/mateweather-applet-2
root 20143 0.0 0.0 12752 2108 pts/5 S+ 01:47 0:00 grep mateweather
root@carboni:~# kill -9 2696

Si aún así no funciona, reiniciamos el entorno gráfico o directamente todo el equipo.

Y listos! :D

Para que no tengáis que hacer todo el proceso, os dejo aquí la librería modificada para que la guardéis en vuestro sistema :)

root@carboni:~# cat /etc/debian_version 
8.5

Nota: Si por algún motivo te sale el error de que no puede cargar las localizaciones prueba lo siguiente

root@carboni:/usr/local/share/libmateweather# cp /usr/share/libmateweather/Locations.ca.xml.gz .
root@carboni:/usr/local/share/libmateweather# gunzip Locations.ca.xml.gz 
root@carboni:/usr/local/share/libmateweather# mv Locations.ca.xml Locations.xml

Escogiendo en cada caso el idioma que te corresponde.

« »

guy fawkes