Mostrando entradas con la etiqueta Salt. Mostrar todas las entradas
Mostrando entradas con la etiqueta Salt. Mostrar todas las entradas

miércoles, 9 de mayo de 2012

Salt, libreoffice y ubuntu 12.04

He comprobado que con windows ya no hay problema para instalar salt4 (hay una nueva versión de marzo del 2012) con libreoffice versión 3.5.3. Simplemente he instalado libreoffice, el paquete de ayuda, después salt y funciona perfectamente.

De modo que vamos a intentar que nos funcione en linux, en concreto en Ubuntu 12.04 con libreoffice 3.5.2 instalado. (Al final del documento tendréis los enlaces a los ficheros modificados por mi directamente para no tener que hacer todos los pasos).
Ojo, solo funciona en sistemas de 32 bits, al final de artículo tenéis más información al respecto.
Ojo2, para desinstalar el paquete salt-ooo-addons hay problemas, te recomiendo que leas el artículo completo antes de hacer nada. Aunque es muy largo, gran parte del texto son las respuestas de los comandos que se "leen" muy rápido. Para facilitar la lectura los comando están en negrita como suelo hacer siempre en los artículos.
Actualización (16/05/2012): Solucionado el problema de la desinstalación, mirar al final del documento.
 
Para descargar el paquete debian con las extensiones: salt-ooo-addons.deb

Resumen de comandos necesarios para hacer la instalación sin más:
# wget http://www.cefe.gva.es/polin/docs/salt4U.zip
# unzip salt4U.zip

# dpkg -i salt-common_4.2.2_all.deb
# dpkg -i salt-data_4.2.0+201200312.1_all.deb 
# dpkg -i salt-server_4.2.2_i386.deb 
# dpkg -i salt-ooo-addons_4.2.3_i386.deb
# dpkg -i salt-help_4.2.2_all.deb 
# dpkg -i salt_4.2.2_all.deb 

Vamos a verlo en detalle...

Descargamos y descomprimimos la nueva versión de Salt:
# wget http://www.cefe.gva.es/polin/docs/salt4U.zip
# unzip salt4U.zip
Archive: salt4U.zip
inflating: nou_salt_20120312/INSTRUCCIONS.txt
inflating: nou_salt_20120312/munta_el_salt.sh
inflating: nou_salt_20120312/salt_4.2.2_all.deb
inflating: nou_salt_20120312/salt-common_4.2.2_all.deb
inflating: nou_salt_20120312/salt-data_4.2.0+201200312.1_all.deb
inflating: nou_salt_20120312/salt-help_4.2.2_all.deb
inflating: nou_salt_20120312/salt-ooo-addons_4.2.3_i386.deb
inflating: nou_salt_20120312/salt-server_4.2.2_i386.deb

Como podéis ver del nombre de la carpeta es de donde he sacado la fecha de la nueva versión de Salt.

Disponemos del lanzador munta_el_salt.sh par instalarlo directamente pero no funciona, nos fallará al instalar salt-ooo-addons, además depende de que utilices el gestor de paquetes de gnome, para los usuarios que preferimos kde también es un problema. Pero si nos proporciona información para saber que tenemos que hacer:
$ cat munta_el_salt.sh
#!/bin/bash

function error {
   zenity --error --title="Salt 4" --text="S'ha produït un error en instal·lar el paquet \n $1"
   exit 1
}

if [ $UID -ne 0 ]; then
        exec $(gksu $0 $@)
else
   gdebi-gtk --non-interactive --auto-close salt-common_4.2.2_all.deb || error "salt-common_4.2.2_all.deb"
   gdebi-gtk --non-interactive --auto-close salt-data_4.2.0+201200312.1_all.deb || error "salt-data_4.2.0+201200312.1_all.deb"                                         
   gdebi-gtk --non-interactive --auto-close salt-server_4.2.2_i386.deb || error "salt-server_4.2.2_i386.deb"                                                           
   gdebi-gtk --non-interactive --auto-close salt-ooo-addons_4.2.3_i386.deb || error "salt-ooo-addons_4.2.3_i386.deb"                                                   
   gdebi-gtk --non-interactive --auto-close salt-help_4.2.2_all.deb || error "salt-help_4.2.2_all.deb"                                                                 
   gdebi-gtk --non-interactive --auto-close salt_4.2.2_all.deb || error "salt_4.2.2_all.deb"
   zenity --info --title="Salt 4" --text="La instal·lació del Salt ha finalitzat correctament."
fi

exit 0

En negrita vemos la secuencia de instalación de los paquetes:

$ cd nou_salt_20120312/$ sudo dpkg -i salt-common_4.2.2_all.deb
[sudo] password for ruben:
Seleccionando paquete salt-common previamente no seleccionado
(Leyendo la base de datos ... 431421 ficheros o directorios instalados actualmente.)
Desempaquetando salt-common (de salt-common_4.2.2_all.deb) ...
Configurando salt-common (4.2.2) ...
$ sudo dpkg -i salt-data_4.2.0+201200312.1_all.deb
Seleccionando paquete salt-data previamente no seleccionado
(Leyendo la base de datos ... 431426 ficheros o directorios instalados actualmente.)
Desempaquetando salt-data (de salt-data_4.2.0+201200312.1_all.deb) ...
Configurando salt-data (4.2.0+201200312.1) ...
$ sudo dpkg -i salt-server_4.2.2_i386.deb
Seleccionando paquete salt-server previamente no seleccionado
(Leyendo la base de datos ... 431480 ficheros o directorios instalados actualmente.)                                                                                   
Desempaquetando salt-server (de salt-server_4.2.2_i386.deb) ...                                                                                                        
Configurando salt-server (4.2.2) ...                                                                                                                                   
update-rc.d: warning: /etc/init.d/salt-server missing LSB information                                                                                                  
update-rc.d: see
 System start/stop links for /etc/init.d/salt-server already exist.
Starting SaltServer: sltsrv.
Procesando disparadores para ureadahead ...
Procesando disparadores para man-db ...
$ sudo dpkg -i salt-ooo-addons_4.2.3_i386.deb
Seleccionando paquete salt-ooo-addons previamente no seleccionado
(Leyendo la base de datos ... 431512 ficheros o directorios instalados actualmente.)
Desempaquetando salt-ooo-addons (de salt-ooo-addons_4.2.3_i386.deb) ...
dpkg: problemas de dependencias impiden la configuración de salt-ooo-addons:
 salt-ooo-addons depende de openoffice.org-writer; sin embargo:
  El paquete `openoffice.org-writer' no está instalado.
dpkg: error al procesar salt-ooo-addons (--install):
 problemas de dependencias - se deja sin configurar
Se encontraron errores al procesar:
 salt-ooo-addons
Como podéis ver tenemos problemas para instalar este paquete. De modo que lo llevamos a una carpeta aparte para poder trabajar con su contenido:
$ mkdir modificados
$ cd modificados
$ mv ../salt-ooo-addons_4.2.3_i386.deb .
$ ar x salt-ooo-addons_4.2.3_i386.deb
$ ll
total 112
-rw-r--r-- 1 ruben ruben 1359 may 8 02:49 control.tar.gz
-rw-r--r-- 1 ruben ruben 50911 may 8 02:49 data.tar.gz
-rw-r--r-- 1 ruben ruben 4 may 8 02:49 debian-binary
-rw-rw-r-- 1 ruben ruben 52464 mar 9 10:25 salt-ooo-addons_4.2.3_i386.deb
$ tar xvzf control.tar.gz
./
./control
./prerm
./md5sums
./postinst
$ ll
total 128
-rw-r--r-- 1 ruben ruben 753 mar 9 10:25 control
-rw-r--r-- 1 ruben ruben 1359 may 8 02:49 control.tar.gz
-rw-r--r-- 1 ruben ruben 50911 may 8 02:49 data.tar.gz
-rw-r--r-- 1 ruben ruben 4 may 8 02:49 debian-binary
-rw-r--r-- 1 ruben ruben 293 mar 9 10:25 md5sums
-rwxr-xr-x 1 ruben ruben 1136 mar 9 10:25 postinst*
-rwxr-xr-x 1 ruben ruben 1009 mar 9 10:25 prerm*
-rw-rw-r-- 1 ruben ruben 52464 mar 9 10:25 salt-ooo-addons_4.2.3_i386.deb

Vamos a editar el fichero control que incluye que las dependencias necesarias para poder instalar este paquete (el error que nos daba más arriba es que no teníamos instalado el paquete openoffice-writer), de modo que cambiamos la línea Depends:
Depends: libreoffice-writer, salt-server
Editamos también los ficheros prerm y postinst, estos ficheros utilizan la utilidad unopkg pero la ruta a la que intentan acceder es de openoffice y no de libreoffice, así que hacemos los siguientes cambios:

En el fichero prerm:
case "$1" in
    remove|upgrade|deconfigure)
        /usr/lib/openoffice/program/unopkg remove -v --shared salt.zip
        /usr/lib/openoffice/program/unopkg remove -v --shared saltutil.zip
Lo cambiamos por:
case "$1" in
    remove|upgrade|deconfigure)
        /usr/lib/libreoffice/program/unopkg remove -v --shared salt.zip
        /usr/lib/libreoffice/program/unopkg remove -v --shared saltutil.zip
En el fichero postinst:
case "$1" in
    configure)
        /usr/lib/openoffice/program/unopkg add -v --shared /usr/share/salt-ooo-addons/salt.zip
        /usr/lib/openoffice/program/unopkg add -v --shared /usr/share/salt-ooo-addons/saltutil.zip
    ;;
Lo cambiamos por:
case "$1" in
    configure)
        /usr/lib/libreoffice/program/unopkg add -v --shared /usr/share/salt-ooo-addons/salt.zip
        /usr/lib/libreoffice/program/unopkg add -v --shared /usr/share/salt-ooo-addons/saltutil.zip
    ;;
 Hemos terminado con la parte referente a control.tar.gz así que "reconstruimos" esta parte:
$ tar cvzf control.tar.gz control prerm md5sums postinst
control
prerm
md5sums
postinst

$ rm control prerm md5sums postinst
$ ar r salt-ooo-addons_4.2.3_i386.deb control.tar.gz
Continuemos con data.tar.gz:
$ tar xvzf data.tar.gz
./
./usr/
./usr/share/
./usr/share/doc/
./usr/share/doc/salt-ooo-addons/
./usr/share/doc/salt-ooo-addons/copyright
./usr/share/doc/salt-ooo-addons/changelog.gz
./usr/share/salt-ooo-addons/
./usr/share/salt-ooo-addons/salt.zip
./usr/share/salt-ooo-addons/saltutil.zip
$ cd usr/share/salt-ooo-addons/
$ ll
total 56
-rw-r--r-- 1 ruben ruben 14415 mar  9 10:25 saltutil.zip
-rw-r--r-- 1 ruben ruben 38815 mar  9 10:25 salt.zip
$ unzip salt.zip
Archive:  salt.zip
  inflating: addon.xcu              
  inflating: ferram_ajuda_16.bmp    
  inflating: ferram_ajuda_26.bmp    
  inflating: ferram_config_16.bmp   
  inflating: ferram_config_26.bmp   
  inflating: ferram_corregir_16.bmp 
  inflating: ferram_corregir_26.bmp 
  inflating: ferram_revisar_16.bmp  
  inflating: ferram_revisar_26.bmp  
  inflating: ferram_stop_16.bmp     
  inflating: ferram_stop_26.bmp     
  inflating: ferram_traduir_16.bmp  
  inflating: ferram_traduir_26.bmp  
  inflating: ferram_traduir_i_16.bmp 
  inflating: ferram_traduir_i_26.bmp 
  inflating: sltooo.py              
Editamos addon.xcu:
$ nano addon.xcu
Cambiamos oor:node por:
oor:component-data
 Además gracias la comentario de Paco de un artículo anterior vamos a cambiar la codificación, de este modo solucionaremos el error: "Cannot convert to UTF-8".
$ iconv -f iso-8859-15 -t utf-8 addon.xcu > addon.xcu.utf8
$ mv addon.xcu.utf8 addon.xcu
$ iconv -f iso-8859-15 -t utf-8 sltooo.py > sltooo.py.utf8
$ mv sltooo.py.utf8 sltooo.py
$ zip -r salt.zip addon.xcu sltooo.py
$ rm addon.xcu ferram_* sltooo.py
Tenemos que repetir el mismo proceso para saltutil.zip y hacer exactamente los mismos cambios, la única diferencia es que el fichero sltooo.py en este caso es sltuooo.py

Tras estos cambios reconstruimos el paquete debian con todos los cambios:
$ cd ../../..
$ rm data.tar.gz
$ tar cvzf data.tar.gz usr/
usr/
usr/share/
usr/share/doc/
usr/share/doc/salt-ooo-addons/
usr/share/doc/salt-ooo-addons/copyright
usr/share/doc/salt-ooo-addons/changelog.gz
usr/share/salt-ooo-addons/
usr/share/salt-ooo-addons/salt.zip
usr/share/salt-ooo-addons/saltutil.zip
$ ll
total 116
-rw-r--r-- 1 ruben ruben  1378 may  8 02:57 control.tar.gz
-rw-rw-r-- 1 ruben ruben 50924 may  8 03:37 data.tar.gz
-rw-r--r-- 1 ruben ruben     4 may  8 02:49 debian-binary
-rw-rw-r-- 1 ruben ruben 52482 may  8 03:01 salt-ooo-addons_4.2.3_i386.deb
drwxr-xr-x 3 ruben ruben  4096 mar  9 10:25 usr/
Ojo3: Mucho cuidado con el siguiente comando, sino estás en el sitio y estás ejecutando estos comandos como root puedes corroper tu sistema:
$ rm -rf usr/
$ ar r salt-ooo-addons_4.2.3_i386.deb data.tar.gz
Terminamos la instalación:
$ sudo dpkg -i salt-ooo-addons_4.2.3_i386.deb
[sudo] password for ruben:
(Leyendo la base de datos ... 431518 ficheros o directorios instalados actualmente.)
Preparando para reemplazar salt-ooo-addons 4.2.3 (usando salt-ooo-addons_4.2.3_i386.deb) ...
Desempaquetando el reemplazo de salt-ooo-addons ...
Configurando salt-ooo-addons (4.2.3) ...
Synchronizing repository for shared extensions

Synchronizing repository for bundled extensions
 
  Enabling: Script provider for Python
   Enabling: components.rdb

unopkg done.
Synchronizing repository for shared extensions

 Synchronizing repository for bundled extensions

  Enabling: salt.zip
   Enabling: addon.xcu

unopkg done.

$ sudo dpkg -i salt-help_4.2.2_all.deb
[sudo] password for ruben:
Seleccionando paquete salt-help previamente no seleccionado
(Leyendo la base de datos ... 431518 ficheros o directorios instalados actualmente.)
Desempaquetando salt-help (de salt-help_4.2.2_all.deb) ...
Configurando salt-help (4.2.2) ...

$ sudo dpkg -i salt_4.2.2_all.deb
Seleccionando paquete salt previamente no seleccionado
(Leyendo la base de datos ... 433239 ficheros o directorios instalados actualmente.)
Desempaquetando salt (de salt_4.2.2_all.deb) ...
Configurando salt (4.2.2) ...
 

Accedemos a libreoffice y comprobamos el administrador de extensiones.


Como podemos comprobar no aparecen las extensiones, así que el modo shared no funciona muy fino, no hay problema las añadimos, pulsamos sobre Añadir y vamos al directorio: /usr/share/salt-ooo-addons:


Repetimos el proceso para salt.zip primero y después para saltultil.zip y veremos que ya nos aparecen en el administrador de extensiones:


Cerramos libreoffice y al volverlo a abrir vemos que disponemos de la funcionalidad completa:



Otros problemas:

1. La eliminación del paquete salt-ooo-addons:

Hay problemas al intentar desinstalar este paquete, nos aparece el siguiente error:
ERROR: Error while adding: vnd.sun.star.expand:$UNO_SHARED_PACKAGES_CACHE/uno_packages/ludpt97i.tmp_/salt.zip
       Cause: (com.sun.star.lang.IllegalArgumentException) { { Message = "Cannot detect media-type: file:///var/spool/libreoffice/uno_packages/cache/uno_packages/ludpt97i.tmp_/salt.zip", Context = (com.sun.star.uno.XInterface) @9db7080 }, ArgumentPosition = (short) -1 }

unopkg failed.
No he conseguido solucionarlo de una forma "elegante".
Lo que he hecho ha sido volver a editar el fichero prerm del control.tar.gz para comentar las líneas que borran las extensiones (así es como lo tenéis para descargar en este artículo):
$ nano prerm
case "$1" in
    remove|upgrade|deconfigure)
#        /usr/lib/libreoffice/program/unopkg remove -v --shared salt.zip
#        /usr/lib/libreoffice/program/unopkg remove -v --shared saltutil.zip
Y los borramos manualmente:
# ll /var/spool/libreoffice/uno_packages/cache/uno_packages/ -R
/var/spool/libreoffice/uno_packages/cache/uno_packages/:
total 8
-rw------- 1 root root    0 may  9 14:25 ludr1mw8.tmp
drwxr-xr-x 3 root root 4096 may  9 14:25 ludr1mw8.tmp_/
-rw------- 1 root root    0 may  9 14:25 ludr1pp4.tmp
drwxr-xr-x 3 root root 4096 may  9 14:25 ludr1pp4.tmp_/

/var/spool/libreoffice/uno_packages/cache/uno_packages/ludr1mw8.tmp_:
total 8
drwxr-xr-x 2 root root 4096 may  9 14:25 salt.zip/
-rw-r--r-- 1 root root   18 may  9 14:25 salt.zipproperties

/var/spool/libreoffice/uno_packages/cache/uno_packages/ludr1pp4.tmp_:
total 8
drwxr-xr-x 2 root root 4096 may  9 14:25 saltutil.zip/
-rw-r--r-- 1 root root   18 may  9 14:25 saltutil.zipproperties
Cuidado porque podrías tener algo más en ese directorio, sino teneís nada más:
# rm -rf /var/spool/libreoffice/uno_packages/cache/uno_packages/*
Sino borrar el fichero .tmp y su directorio asociado que os aparezca a cada uno.

Ya había dicho que no era muy elegante ;-)

2. Solo funciona en sistemas de 32 bits, olvidaros de sistemas de 64 bits sin los fuentes. En sistemas de 64 bits da el siguiente error:
$ sudo dpkg -i salt-common_4.2.2_all.deb
[sudo] password for ruben:
Seleccionando paquete salt-common previamente no seleccionado
(Leyendo la base de datos ... 184992 ficheros o directorios instalados actualmente.)
Desempaquetando salt-common (de salt-common_4.2.2_all.deb) ...
Configurando salt-common (4.2.2) ...
ruben@cpv1174:~/salt/nou_salt_20120312$ sudo dpkg -i salt-data_4.2.0+201200312.1_all.deb
Seleccionando paquete salt-data previamente no seleccionado
(Leyendo la base de datos ... 184999 ficheros o directorios instalados actualmente.)
Desempaquetando salt-data (de salt-data_4.2.0+201200312.1_all.deb) ...
Configurando salt-data (4.2.0+201200312.1) ...
ruben@cpv1174:~/salt/nou_salt_20120312$ sudo dpkg -i salt-server_4.2.2_i386.deb
Seleccionando paquete salt-server:i386 previamente no seleccionado
(Leyendo la base de datos ... 185053 ficheros o directorios instalados actualmente.)
Desempaquetando salt-server:i386 (de salt-server_4.2.2_i386.deb) ...
dpkg: problemas de dependencias impiden la configuración de salt-server:i386:
 salt-server:i386 depende de python (>= 2.5).
 salt-server:i386 depende de salt-common.
 salt-server:i386 depende de salt-data.
dpkg: error al procesar salt-server:i386 (--install):
 problemas de dependencias - se deja sin configurar
Procesando disparadores para ureadahead ...
ureadahead will be reprofiled on next reboot
Procesando disparadores para man-db ...
Se encontraron errores al procesar:
 salt-server:i386
 Eliminando del fichero control las dependencias para probar:
$ sudo dpkg -i salt-server_4.2.2_i386.deb
(Leyendo la base de datos ... 185086 ficheros o directorios instalados actualmente.)
Preparando para reemplazar salt-server:i386 4.2.2 (usando salt-server_4.2.2_i386.deb) ...
Desempaquetando el reemplazo de salt-server:i386 ...
Configurando salt-server:i386 (4.2.2) ...
update-rc.d: warning: /etc/init.d/salt-server missing LSB information
update-rc.d: see
 Adding system startup for /etc/init.d/salt-server ...
   /etc/rc1.d/K00salt-server -> ../init.d/salt-server
   /etc/rc6.d/K00salt-server -> ../init.d/salt-server
   /etc/rc1.d/S20salt-server -> ../init.d/salt-server
   /etc/rc2.d/S20salt-server -> ../init.d/salt-server
   /etc/rc3.d/S20salt-server -> ../init.d/salt-server
   /etc/rc4.d/S20salt-server -> ../init.d/salt-server
   /etc/rc5.d/S20salt-server -> ../init.d/salt-server
Starting SaltServer: sltsrv.
Traceback (most recent call last):
  File "/usr/bin/sltsrv", line 40, in
    import sltgl
  File "/usr/share/salt-server/sltgl.py", line 241, in
    import sltgen
ImportError: /usr/lib/sltgen.so: wrong ELF class: ELFCLASS32
Procesando disparadores para ureadahead ...
Procesando disparadores para man-db ...

Vamos que ocurre lo normal, quizás se pueda hacer algo utilizando la librería ia32-libs, pero sin los fuentes es poco probable que se pueda hacer algo con librerías que ya han sido compiladas ;-)
Algo más de información sobre le soporte multiarch en debian: http://wiki.debian.org/Multiarch/Implementation

3. Problemas que puedes tener si te pones a hacer tus propias pruebas:
No consigues abrir libreoffice. Después de varias pruebas se queda deteriorado y no puedes ni abrirlo, con mensajes como (ejecutando desde terminal para poder verlos):
$ soffice
terminate called after throwing an instance of 'com::sun::star::uno::RuntimeException'
Borramos las configuración específica  del usuario:
$ rm -rf ~/.config/libreoffice
Si aún así no te funciona podemos purgar la instalación de libreoffice y volver a instalar:
$ aptitude purge libreoffice-base-core libreoffice-core
$ aptitude install libreoffice
4. Si el paquete salt-ooo-addons se queda en un estado inestable y no consigues elimiarlo porque dice que necesita una reinstalación:
# dpkg -r --force-remove-reinstreq salt-ooo-addonsdpkg: aviso: sobreseyendo el problema porque está activa la opción --force:

 El paquete está en un estado muy malo e inconsistente - debe reinstalarlo
 antes de intentar desinstalarlo.
(Leyendo la base de datos ... 431516 ficheros o directorios instalados actualmente.)
Desinstalando salt-ooo-addons ...
5. Comandos útiles.
Para las pruebas con las extensiones no vale la pena estar instalando y desinstalando paquetes directamente utilizamos comandos:
# /usr/lib/libreoffice/program/unopkg add -v --shared /usr/share/salt-ooo-addons/salt.zip
# /usr/lib/libreoffice/program/unopkg remove -v --shared /usr/share/salt-ooo-addons/salt.zip
 # /usr/lib/libreoffice/program/unopkg list --shared
All deployed shared extensions:

Identifier: org.openoffice.legacy.salt.zip
  URL: vnd.sun.star.expand:$UNO_SHARED_PACKAGES_CACHE/uno_packages/lucfzww3.tmp_/salt.zip
  is registered: yes
  Media-Type: application/vnd.sun.star.legacy-package-bundle
  Description:
  bundled Packages: {
      URL: vnd.sun.star.expand:$UNO_SHARED_PACKAGES_CACHE/uno_packages/lucfzww3.tmp_/salt.zip/addon.xcu
      is registered: yes
      Media-Type: application/vnd.sun.star.configuration-data
      Description:

      URL: vnd.sun.star.expand:$UNO_SHARED_PACKAGES_CACHE/uno_packages/lucfzww3.tmp_/salt.zip/sltooo.py
      is registered: yes
      Media-Type: application/vnd.sun.star.uno-component;type=Python
      Description:

  }

Identifier: org.openoffice.legacy.saltutil.zip
  URL: vnd.sun.star.expand:$UNO_SHARED_PACKAGES_CACHE/uno_packages/lucfzzp5.tmp_/saltutil.zip
  is registered: yes
  Media-Type: application/vnd.sun.star.legacy-package-bundle
  Description:
  bundled Packages: {
      URL: vnd.sun.star.expand:$UNO_SHARED_PACKAGES_CACHE/uno_packages/lucfzzp5.tmp_/saltutil.zip/sltuooo.py
      is registered: yes
      Media-Type: application/vnd.sun.star.uno-component;type=Python
      Description:

      URL: vnd.sun.star.expand:$UNO_SHARED_PACKAGES_CACHE/uno_packages/lucfzzp5.tmp_/saltutil.zip/addon.xcu
      is registered: yes
      Media-Type: application/vnd.sun.star.configuration-data
      Description:

  }
Y para rematar si queremos ver una traza:
# strace /usr/lib/libreoffice/program/unopkg remove -v --shared -f saltutil.zip


readlink("/usr/lib/libreoffice/ure-link", "../ure", 4095) = 6
lstat64("/usr/lib/ure", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr/lib", {st_mode=S_IFDIR|0755, st_size=122880, ...}) = 0
lstat64("/usr/lib/ure", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr/lib/ure/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr/lib", {st_mode=S_IFDIR|0755, st_size=122880, ...}) = 0
lstat64("/usr/lib/ure", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr/lib/ure/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr/lib/ure/lib/libuno_cppu.so.3", {st_mode=S_IFREG|0644, st_size=227236, ...}) = 0
gettimeofday({1336505315, 837259}, NULL) = 0
write(2, "\nERROR: Error while adding: vnd."..., 115
ERROR: Error while adding: vnd.sun.star.expand:$UNO_SHARED_PACKAGES_CACHE/uno_packages/lucfzzp5.tmp_/saltutil.zip
) = 115
write(2, "       Cause: (com.sun.star.lang"..., 275       Cause: (com.sun.star.lang.IllegalArgumentException) { { Message = "Cannot detect media-type: file:///var/spool/libreoffice/uno_packages/cache/uno_packages/lucfzzp5.tmp_/saltutil.zip", Context = (com.sun.star.uno.XInterface) @9ff38b8 }, ArgumentPosition = (short) -1 }
) = 275
close(10)                               = 0
munmap(0xb11b6000, 192512)              = 0
write(2, "\nunopkg failed.\n", 16
unopkg failed.
)      = 16


¿Por cierto alguien por ahí con lliurex y que me diga si le funciona? ;-)



Actualización (16/05/2012): He estado mirando el estado de salt en lliurex y tienen solucionado el problema del borrado como podemos ver aquí.
De modo que he cambiado los scripts postinst y prerm para que utilicen su solución para el borrado que es lo mismo que hacíamos manualmente en la explicación de este artículo pero de forma automática.
Añadimos esta sección de código a los scripts:

postinst:
clean_old_salts()
{
    FILES_TO_FURGATE="salt.zip saltutil.zip"
    DIRECTORY_IS="/var/spool/libreoffice/uno_packages/cache/uno_packages/"
   
    # Workaround to solve some upgrade problems
    # test if directory exists and contains some files.
   
    if [ -d "$DIRECTORY_IS"    ] ; then

        # If the files and directory exists:
        for f in $FILES_TO_FURGATE ; do
                AUX=$(find $DIRECTORY_IS -xtype d -name "$f")
            if [ -n "$AUX" ] ; then
                    DIRTY_FILE="$(dirname "$AUX" | sed "s%_$%%")"
                    rm -rf "$DIRTY_FILE" "$(dirname "$AUX"/)"
            fi
                echo "$f is cleaning"
        done
    fi
}


case "$1" in
    configure)
    clean_old_salts
    /usr/lib/libreoffice/program/unopkg add -v --shared /usr/share/salt-ooo-addons/salt.zip
    /usr/lib/libreoffice/program/unopkg add -v --shared /usr/share/salt-ooo-addons/saltutil.zip
    ;;
    abort-remove)
    clean_old_salts
    ;;
prerm:
clean_old_salts()
{
    FILES_TO_FURGATE="salt.zip saltutil.zip"
    DIRECTORY_IS="/var/spool/libreoffice/uno_packages/cache/uno_packages/"
   
    # Workaround to solve some upgrade problems
    # test if directory exists and contains some files.
   
    if [ -d "$DIRECTORY_IS"    ] ; then

        # If the files and directory exists:
        for f in $FILES_TO_FURGATE ; do
                AUX=$(find $DIRECTORY_IS -xtype d -name "$f")
            if [ -n "$AUX" ] ; then
                    DIRTY_FILE="$(dirname "$AUX" | sed "s%_$%%")"
                    rm -rf "$DIRTY_FILE" "$(dirname "$AUX"/)"
            fi
                echo "$f is cleaning"
        done
    fi
}

case "$1" in
    remove|upgrade|deconfigure)
    clean_old_salts
#    /usr/lib/libreoffice/program/unopkg remove -v --shared salt.zip
#    /usr/lib/libreoffice/program/unopkg remove -v --shared saltutil.zip
    ;;

Por lo que he visto de lliurex en la próxima versión funcionará con lliurex como podemos ver en el fichero control cambia la dependencia de openoffice a libreoffice:

Depends: salt-server, libreoffice-common

Al desacargar el fichero salt-ooo-addons.deb desde este enlace o el del inicio del artículo ya tenéis actualizados estos cambios.


jueves, 24 de febrero de 2011

Salt en LibreOffice

Salt es un traductor de castellano a valenciano y viceversa creado y mantenido por la Consellería de educación de la Generalitat Valenciana.
Salt, en su versión 4, es una extensión para OpenOffice, en principio no funciona sobre LibreOffice por lo que voy a explicar como conseguir una instalación parcialmente operativa.
Parcialmente porque el menú con las utilidades de Salt no aparece, solo he conseguido que aparezca el menú principal de Salt, que nos permite realizar las traducciones.

  1. Instalamos salt4 descargándolo desde aquí. Es imprescindible que LibreOffice no este instalado todavía. Al instalar primero salt no instala automáticamente las extensiones en LibreOffice ya que no funcionan directamente ni tampoco consigues desinstalarlas, ni desde el gui ni desde línea de comandos.
  2. Instalamos LibreOffice desde aquí, en este momento la versión es la 3.3.1. También instalamos el paquete de ayuda.
  3. Modificamos las extensiones salt.zip y saltutil.zip que encontramos en: c:\archivos de programa\salt\. Tenemos que descomprimirlos, editar los ficheros addon.xcu y sustituir un pequeño texto en la segunda y en la última línea encontramos: oor:node tenemos que cambiarlo por oor:component-data. Guardamos los ficheros y volvemos a comprimir la carpeta manteniendo la misma estructura y guardando como salt.zip y saltutil.zip respectivamente.
  4. Vamos al administrador de extensiones y agregamos las dos extensiones marcando que estén disponibles para todo el mundo.
  5. Reiniciamos LibreOffice y veremos que nos aparece uno de los menús de Salt

Como he comentado no funciona con todas las opciones pero puede servir para determinados usuarios.
Solo funciona para Windows, al intentarlo en Linux no he conseguido instalar los paquetes ya que depende directamente de paquetes openoffice.
No lo he probado pero básicamente los que habría que hacer sería:

  1. Descomprimir el paquete salt-ooo-addons_4.2.0_i386.deb.
  2. Descomprimir control.tar.gz.
  3. Editar el fichero control quitando "openoffice.org-writer," de la línea (se podría añadir como dependencia el paquete de libreoffice):
    • Depends: openoffice.org-writer, salt-server 
  4. Descomprimir data.tar.gz.
  5. En salt-ooo-addons_4.2.0_i386/data/usr/share/salt-ooo-addons encontramos las dos extensiones a las que tendremos que hacerle los mismos cambios en el fichero addon.xcu
  6. Volvemos a comprimir todas las partes e instalamos el paquete.
La teoría debería ser esa... a ver si lo pruebo otro día.

Se hecha en falta un foro o un faq(que existía para Salt3), no estaría mal que los desarrolladores generarán un punto de encuentro para los usuarios de Salt y más documentación.

Podéis descargar las extensiones modificadas por mí desde los siguientes enlaces: saltutil.zip y salt.zip

Saludos.