mercredi 20 juillet 2011

Pilote postgresql sdbc 64 bits

Dans le billet Connecter openoffice à PostgreSQL, nous avons donné un lien permettant de télécharger le pilote sdbc.
Hélas, le pilote ainsi obtenu ne fonctionne pas si on est en 64 bits.
Certaines distributions fournissent un paquet 64 bits qui délivre le pilote en question. Par exemple chez Ubuntu, il s'agit du paquet libreoffice-sdbc-postgresql. Pour d'autres distributions ce paquet n'existe pas.
Voici comment contourner le problème. Ceci a été testé et fonctionne dans le cas de Fedora 15.
Tout d'abord, rechercher et télécharger, par exemple, le paquet libreoffice-base-drivers-postgresql-3.3.1.2-1.2.3.x86_64.rpm. Il s'agit d'un paquet openSuse.
Ensuite, dans un terminal, se rendre là où le paquet est téléchargé:
$ cd ~/Téléchargement 
$ rpm2cpio libreoffice-base-drivers-postgresql-3.3.1.2-1.2.3.x86_64.rpm | cpio -ivd
./usr/lib64/libreoffice/share/extensions/postgresql-sdbc-0.7.6b
./usr/lib64/libreoffice/share/extensions/postgresql-sdbc-0.7.6b/META-INF
./usr/lib64/libreoffice/share/extensions/postgresql-sdbc-0.7.6b/META-INF/manifest.xml
./usr/lib64/libreoffice/share/extensions/postgresql-sdbc-0.7.6b/description.xml
./usr/lib64/libreoffice/share/extensions/postgresql-sdbc-0.7.6b/postgresql-sdbc-impl.uno.so
./usr/lib64/libreoffice/share/extensions/postgresql-sdbc-0.7.6b/postgresql-sdbc.uno.so
./usr/lib64/libreoffice/share/extensions/postgresql-sdbc-0.7.6b/postgresql-sdbc.unorc
./usr/lib64/libreoffice/share/extensions/postgresql-sdbc-0.7.6b/postgresql.xcu
1779 blocs
$

La commande rpm2cpio convertit le paquet RPM en archive cpio, archive qui est transmise à la commande cpio pour extraction. La commande cpio a créé dans "Téléchargement" toute une série de répertoires. Nous allons en premier ramener le répertoire "postgresql-sdbc-0.7.6b" dans "Téléchargement", puis créer le fichier zip adéquat:
$ mv usr/lib64/libreoffice/share/extensions/postgresql-sdbc-0.7.6b .
$ zip -r postgresql-sdbc-0.7.6b.zip postgresql-sdbc-0.7.6b
adding: postgresql-sdbc-0.7.6b/ (stored 0%)
adding: postgresql-sdbc-0.7.6b/postgresql-sdbc.unorc (stored 0%)
adding: postgresql-sdbc-0.7.6b/description.xml (deflated 52%)
adding: postgresql-sdbc-0.7.6b/META-INF/ (stored 0%)
adding: postgresql-sdbc-0.7.6b/META-INF/manifest.xml (deflated 62%)
adding: postgresql-sdbc-0.7.6b/postgresql-sdbc-impl.uno.so (deflated 68%)
adding: postgresql-sdbc-0.7.6b/postgresql.xcu (deflated 57%)
adding: postgresql-sdbc-0.7.6b/postgresql-sdbc.uno.so (deflated 71%)
$

Pour terminer, il suffit de procéder comme indiqué dans le billet Connecter openoffice à PostgreSQL:
$ cd $(dirname $(which soffice));cd $(ls -l soffice | sed -r 's/^.*>.(.*)soffice$/\1/')
$ unopkg add ~/Téléchargement/postgresql-sdbc-0.7.6b.zip
$
Il nous est bien sûr loisible de plutôt procéder à l'ajout l'extension via le Gestionnaire des extensions (menu Outils) de Libreoffice.