Openoffice is an i386 package. To use the database connectivity of openoffice MyODBC is required. However, only the x86_64 package is supplied which means that there is incompatibility between the two libraries generating this error when attempting to connect: [unixODBC][Driver Manager]Can't open lib '/usr/lib64/libmyodbc.so' : /usr/lib64/libmyodbc.so: cannot open shared object file: No such file or directory Even though the two libraries exist. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1.Start openoffice 2.Go to Tools/DataSources 3.Connect to a datasource using the ODBC connectivity. Actual results: Expected results: Additional info:
Looks like it's there to me: $ rpm -qlp MyODBC-2.50.39-19.1.x86_64.rpm /usr/lib64/libmyodbc-2.50.39.so /usr/lib64/libmyodbc.so /usr/share/doc/MyODBC-2.50.39 /usr/share/doc/MyODBC-2.50.39/ChangeLog /usr/share/doc/MyODBC-2.50.39/INSTALL /usr/share/doc/MyODBC-2.50.39/odbc.ini What do you get from "ldd /usr/lib64/libmyodbc.so" ? What versions of MyODBC and mysql do you have installed?
The x86_64 version of MyOCBD is installed on my machine, but openoffice is an i386 package. I think the problem is openoffice a 32 bit package calling a 64 bit library. $ ls /usr/lib64/libmy* /usr/lib64/libmyodbc-2.50.39.so /usr/lib64/libmyodbc.so The error message is: Can't open lib '/usr/lib64/libmyodbc.so' : /usr/lib64/libmyodbc.so: cannot open shared object file: No such file or directory. If I am right this could be fixed by making openoffice an x86_64 package or supplying MyODBC as an additional i386 package. I have tried rebuilding the src rpm of MyODBC with --target=i386 without success.
I have MyODBC-2.50.39-19.1, mysql-3.23.58-13 > ldd /usr/lib64/libmyodbc.so libmysqlclient.so.10 => /usr/lib64/mysql/libmysqlclient.so.10 (0x0000002a9568f000) libz.so.1 => /usr/lib64/libz.so.1 (0x0000002a957cd000) libodbcinst.so.1 => /usr/lib64/libodbcinst.so.1 (0x0000002a958e0000) libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a959ee000) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000002a95c1f000) libnsl.so.1 => /lib64/libnsl.so.1 (0x0000002a95d53000) libm.so.6 => /lib64/tls/libm.so.6 (0x0000002a95e6b000) libltdl.so.3 => /usr/lib64/libltdl.so.3 (0x0000002a95ff1000) libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000002a960f8000) /lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000) libdl.so.2 => /lib64/libdl.so.2 (0x0000002a9620e000)
The thing that bothers me is that the error message clearly says "No such file or directory", when the file is there (and so are all the shlibs it depends on, according to ldd). If your theory is correct then I'd have expected some other error, along the lines of "wrong library type". Still, I don't see what else it could be. I'm going to reassign this as a distribution bug. Not shipping the 32-bit library on 64-bit platforms is their bailiwick not mine ...
In my limited experience running an x86_64 distribution (less that one month), this is the error message I have had before when a 32 bit program accesses a 64bit library.
openoffice.org doesn't appear to have requires on odbc libraries. Does it have a fixed list of files it tries to dlopen?
The odbc libraries are required for database connectivity to a mysql server (see the menu Tools/Data Sources). So it probably only tries a dlopen of the odbc libraries when you try to connect.
open office tried to open /usr/lib/libodbc.so (may libodbc.so.1) the issue with this is a 32-bit MyODBC package needs to be included so that openoffice can connect to MySQL servers via the 32-bit unixODBC interface. OR an alternative is to rebuild openoffice as a 64bit application (probably not an easy feat)
FWIW: x86_64 OOo porting looks like it'll be in good shape soon, possibly for fc6
with x86_64 OOo as in rawhide the x86_64 odbc should now be used in this scenario