Batoví
Distribución de gvSIG personalizada para instalar sobre los OLPC del proyecto Ceibal
Introducción
En este apartado describiremos los componentes que se han desarrollado para poder tener un paquete de instalación de gvSIG en los OLPC del proyecto Ceibal de Uruguay.
Contexto
Los equipos este proyecto tienen las siguientes características:
- Sistema Operativo Sugar:
- Linux basado en Fedora 11
- Escritorio propio, con apariencia sencilla y escritorio pre-configurados.
- Las aplicaciones integradas se llaman Activity y, normalmente, están implementadas sobre python (pyGTK o pyGame).
- Las instalación no tienen acceso a la cuenta del usuario root ni posibilidad de usar el sudo.
- Hardware. Existen dos modelos:
- 1Gb de Ram y 8 Gb de disco
- 256Mb de Ram y 1 Gb de disco
Ante esto hay solventar estos problemas:
- Maquina virtual: Al no tener la posibilidad de instalar el paquete de OpenJDK se requiere tener instalada la Actividad Java 2
- Instalación: Para integrar el sistema se han preparado scripst de Shell que automatizan, a partir de una instalación estándar de gvSIG de linux, la generación de un fichero .xo con gvSIG listo para instalar en los equipos.
- Interface: Las pantallas de los equipos son a 1200x900 pero en un tamaño muy pequeño, eso hace que el interface de gvSIG estándar sea muy incomodo de usar (fuente minúscula, iconos pequeños). Se ha creado un Skin que, junto a unos procesos del empaquetado de la instalación, intenta minimizar este problema.
- Recursos limitados: En el equipo pequeño no ha sido posible arrancar gvSIG, por lo que se ha preparado una aplicación mas pequeña que permite visualizar e instalar mapas temáticos.
- Soporte Raster: Las librerías usadas por el sistema operativo son bastante antiguas y no son compatibles con el soporte básico de raster para linux de gvSIG. Ha sido necesario preparar una versión compatible con Fedora 11.
Este proyecto se ha dividido en las siguientes partes:
- batovi activity: Scripts y recursos necesario para generar un Activity a partir de una instalación de gvSIG
- batovi app: Plugins de gvSIG preparados para su uso en la instalación de los OLPC
- batovi mapViewer: Aplicación visor de mapas temáticos.
Batoví activity
Este proyecto contiene los script y los recursos necesarios para genera un fichero .xo, que son los usados para empaquetar un Activity para el Sistema Operativo Sugar.
En el directorio podemos encontrar documentación sobre como realizar el proceso, así como recomendaciones sobre los paquetes a incluir en el gvSIG que se use como base del Activity.
El directorio base del proyecto se puede encontrar en org.gvsig.educa.batovi/${version}/org.gvsig.educa.batovi/org.gvsig.educa.batovi.activity del repositorio.
Los script de generación están desarrollados usando bash por lo que deben ser ejecutado en un sistema Unix-like.
Los principales scripts son:
- prepare-bundle.sh: crea un directorio target con lo necesario para generar un Activity
- generate-bundle.sh: crea el fichero .xo dentro de target a partir de lo generado por el script prepare-bundle.sh.
El proceso está divido en dos para facilitar la inclusión de otro elementos al paquete.
Para más información consultar el fichero LEEME.txt del directorio.
Acciones post-install
La clase de python preparada para gestionar la Activity dispone de un mecanismo de post-install que se ejecuta únicamente antes del primer arranque de gvSIG dentro del dispositivo. Las funcionalidades que soporta son:
- Copia de archivos al directorio de usuario de gvSIG.
- Copia de archivos al directorio de usuario.
- Ejecución de scripts.
Estas acciones se pueden preparar justo después de la ejecución del script prepare-bundle.sh, añadiendo elementos en los subdirectorios de target/Batovi.activity/post-install. Para más información consultar el archivo README.rst de dicho directorio o el fuente de la actividad skeleton/GvSIGActivity.py.
Copia de archivos al directorio de usuario de gvSIG
Copia, si no existiese previamente, archivos al directorio $HOME/gvSIG del equipo instalado.
Para usar esta característica sólo es necesario copiar los archivos, con la estructura que debe quedar dentro de directorio destino, dentro del directorio target/Batovi.activity/post-install/user-gvsig-home.
Este mecanismo es el usado para instalar los mapas temáticos que se desean incluir en la instalación
Copia de archivos al directorio de usuario
Copia, si no existiese previamente, archivos al directorio $HOME del equipo instalado.
Para usar esta característica sólo es necesario copiar los archivos, con la estructura que debe quedar dentro de directorio destino, dentro del directorio target/Batovi.activity/post-install/user-home.
Ejecución de scripts
Ejecuta script, ya sean .sh o .py antes de la primera ejecución de la aplicación.
Para usar esta característica sólo es necesario copiar los scripts, dentro del directorio target/Batovi.activity/post-install/scripts.
Antes de ejecutar los scripts serán establecidas las siguientes variables de entorno:
- GVSIG_HOME: Ruta al directorio donde se encuentra el directorio base de gvSIG (donde se encuentra el gvSIG.sh)
- GVSIG_ACTIVITY: Ruta al directorio raíz de la actividad
- JAVA_HOME: Ruta el directorio donde se encuentra la máquina virtual
Batoví app
Dentro de este componente se encuentran aquellos plugíns de gvSIG desarrollados específicamente para mejorar la experiencia de usuario en los equipos OLPC.
Ahora mismo, únicamente con tiene un plugin de tipo Skin org.gvsig.educa.batovi.app.skin
El directorio raíz del componente es /org.gvsig.educa.batovi/${version}/org.gvsig.educa.batovi/org.gvsig.educa.batovi.app dentro del repositorio del proyecto.
org.gvsig.educa.batovi.app.skin
Plugin que modifica la ventana principal de gvSIG para eliminar su decoración (aprovechando mejor el espacio de la pantalla) y abrir todas la ventanas de la aplicación con un tamaña maximizado (o casi).
El directorio del proyecto es /org.gvsig.educa.batovi/${version}/org.gvsig.educa.batovi/org.gvsig.educa.batovi.app/org.gvsig.educa.batovi.app.skin dentro del repositorio del proyecto.
Batoví mapViewer
Esta aplicación surge al no poder arrancar la aplicación gvSIG entera en los equipos con menos recursos.
La aplicación, con una estética muy integrada en Sugar, permite instalar y visualizar mapas temáticos generados en un gvSIG estándar.
Dispone de herramientas de:
- Encuadre
- Zoom
- Medición
- Área
- Información
Este componente se divide en dos:
El directorio raíz del componente está en org.gvsig.educa.batovi/${version}/org.gvsig.educa.batovi/org.gvsig.educa.batovi.mapviewer del repositorio del proyecto.
Aplicación
Aplicación de java. Está basada en el módulo main de los mapa temáticos, ajustada a las necesidades del proyecto.
El directorio de la aplicación está en org.gvsig.educa.batovi/${version}/org.gvsig.educa.batovi/org.gvsig.educa.batovi.mapviewer/org.gvsig.educa.batovi.mapviewer del repositorio del proyecto.
Generador de activity
Contiene, al igual que Batobi activity, los scripts y recursos necesario para crear una actividad a partir de la compilación de la aplicación.
Sus características son similares a las de Batobi activity.
Requiere tener compilada previamente la parte de aplicación.
Para más información ver el fichero LEEME.rst del directorio.
El directorio se encuentra en org.gvsig.educa.batovi/${version}/org.gvsig.educa.batovi/org.gvsig.educa.batovi.mapviewer/org.gvsig.educa.batovi.mapviewer.activity dentro del repositorio del proyecto.