Providing a mysql connector extension on Linux that works independently of system mysql library versions - a pipe dream ?
alex.thurgood at gmail.com
Thu Mar 29 05:42:11 PDT 2012
As some of you may (or may not) know, I have been attempting to provide
the native mysql connector extension via the Extensions website.
For Mac OS, things still seem to be working (as far as I can tell, no
one seems to have complained).
However, I've hit a bit of a dilemma with providing a mysql connector
for LO on Linux :
- first, there's the now frequent 32bit/64bit supply request, which
means building for 2 separate architectures - doable, although a PITA on
my ageing Linux hardware, but that's not the major problem as such ;
- second, the connector code is, from what I understand, currently
designed to use system provided mysql libs which is fine for building
one's own connector, since everything gets pulled (well the
libmysqlcppconn/libmysqlclient16 essentially) in at component load time
- this also makes for a much smaller extension because those libraries
are not included in the extension, but linked to (or at least that is
what it appears to be like to me when I compare the Oracle connector, 4
Mb, and the one I build myself 997kb).
Now, the killer is that such an extension is not portable, i.e. it will
only run on an identical OS that already has identical revision numbers
of libmysqlcppconn and libmysqlclient16 libraries. This means that it is
virtually pointless providing the extension I build for Linux at
present, since it can only be used by someone have the same setup
(Ubuntu Oneiric 11.10 FWIW). Other users with different Linux systems
have tried doing so and reported back that they get a component loading
error. Indeed, I have managed to confirm that the extension I built on
Oneiric can not be installed on say, Bodhi Linux 1.4 or Linux Mint 12.
I would like, if that is at all possible, to have a way to build the
connector so that I can just stick it up there and have any Linux OS
user install it and have it work (notwithstanding the arch requirement
of course). Of course, as I put it in the subject line, this may well be
a pipe dream, in which case I'm just going to stop providing them,
there's no way I'm gonna spend my life building a connector for each and
every conceivable platform.
The distribs do provide their own connectors, but these are linked to
the "stable" version of LO which they provide at any given time, i.e. at
least 2 points behind the main version release on the whole. For
example, I tried the following with Bodhi Linux, none of which worked :
- the Bodhi Linux distrib provided mysql connector (valid for 3.3.2 only
!!) - this did not install/work with the Deb download of LO 188.8.131.52)
- the Oracle 32bit Mysql Connector 1.0.1 available from the AOOo
Extensions site - failed installation, i.e. not registered, therefore
- my own Ubuntu Oneiric built 32bit mysql connector - failed installation
- Bodhi Linux OpenOffice.org mysql connector - failed installation
Perhaps there is some switch I can use that will force the mysql client
libraries to be packaged inside the extension, like the AOOo one did ?
Hints and practical tips welcome.
More information about the LibreOffice