FS#23772 - [unixodbc][myodbc] Driver Manager can't open lib

Attached to Project: Community Packages
Opened by Marc Rechté (mrechte) - Friday, 15 April 2011, 06:50 GMT
Last edited by Sergej Pupykin (sergej) - Tuesday, 12 July 2011, 14:23 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Sergej Pupykin (sergej)
Architecture i686
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:
Trying to connect produces the following error:

[mrechte@linux2 ~]$ isql geslogweb -v
[01000][unixODBC][Driver Manager]Can't open lib '/usr/lib/libmyodbc5-5.1.8.so' : file not found
[ISQL]ERROR: Could not SQLConnect


Additional info:
* package version(s)
[mrechte@linux2 ~]$ pacman -Q unixodbc myodbc
unixodbc 2.3.0-1
myodbc 5.1.8-1


* config and/or log files etc.
[mrechte@linux2 ~]$ ldd /usr/lib/libmyodbc5-5.1.8.so
linux-gate.so.1 => (0xb76e7000)
libltdl.so.7 => /usr/lib/libltdl.so.7 (0xb6d6a000)
libmysqlclient.so.18 => /usr/lib/libmysqlclient.so.18 (0xb6ab8000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb6a9f000)
libm.so.6 => /lib/libm.so.6 (0xb6a79000)
librt.so.1 => /lib/librt.so.1 (0xb6a6f000)
libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0xb6a1e000)
libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0xb68a4000)
libdl.so.2 => /lib/libdl.so.2 (0xb68a0000)
libz.so.1 => /usr/lib/libz.so.1 (0xb688b000)
libodbcinst.so.1 => /usr/lib/libodbcinst.so.1 (0xb687d000)
libc.so.6 => /lib/libc.so.6 (0xb6730000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb6714000)
/lib/ld-linux.so.2 (0xb76e8000)

[mrechte@linux2 ~]$ file /usr/lib/libmyodbc5-5.1.8.so
/usr/lib/libmyodbc5-5.1.8.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped

[mrechte@linux2 ~]$ file /usr/bin/isql
/usr/bin/isql: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

[mrechte@linux2 ~]$ dltest /usr/lib/libmyodbc5-5.1.8.so
[dltest] ERROR dlopen: file not found

[MySQL]
Description = ODBC Driver for MySQL
Driver = /usr/lib/libmyodbc5-5.1.8.so
Setup = /usr/lib/libodbcmyS.so
FileUsage = 1

[mrechte@linux2 ~]$ cat /etc/odbc.ini
[geslogweb]
Description = MySQL geslog Web
Driver = MySQL
Server = localhost
Database = geslogweb
Port = 3306
Socket = /tmp/mysql.sock
Option =
Stmt =


Steps to reproduce:
This task depends upon

Closed by  Sergej Pupykin (sergej)
Tuesday, 12 July 2011, 14:23 GMT
Reason for closing:  Fixed
Comment by Elisamuel Resto (user00265) - Monday, 30 May 2011, 06:26 GMT
I am having the same issue with the same versions as reported, and I tried a sad attempt at fixing, but no luck.

I tried the PostgreSQL ODBC driver and dltest worked fine with it, I tried rebuilding the myodbc package and it still had the same issues and I tried changing the paths to the library but it had no effect.

It seems as though the issue might be with unixODBC and MyODBC -- perhaps a compatibility issue?
Comment by Reynaldo (skraelings) - Wednesday, 15 June 2011, 05:11 GMT
Not sure the reason libtool fails to load, but after reading this
libtool@gnu.org/msg11839.html"> http://www.mail-archive.com/libtool@gnu.org/msg11839.html, I removed myodbc and downloaded directly from http://dev.mysql.com/downloads/connector/odbc/ which happen to have libtool library files *.la

Using unixodbx's dltest results in successul loading.
Comment by Marc Rechté (mrechte) - Wednesday, 15 June 2011, 07:29 GMT
Thanks a lot Reynaldo, it is now working for I.

I did not uninstall myodbc (just to keep a track), and overwrote with the downloaded files (check pacman -Ql myodbc).

THANKS
Comment by Elisamuel Resto (user00265) - Saturday, 18 June 2011, 00:16 GMT
OK, so I looked at the PKGBUILD in the community repository and I see a few things:
* The following ./configure switches are no longer valid: --disable-qt, --without-samples and --enable-thread-safe
* The CFLAGS and LDFLAGS are being reset, this is the reason why the build is not working with dltest
* The '-lmysqld' flag in LDFLAGS does absolutely nothing. There is no such .so anywhere (though there is a .la)

Overall this PKGBUILD looks like its just being 'kept up to date' but the format doesn't look like any other PKGBUILDs I've seen in the repos. I propose the attached patch to PKGBUILD that compiles a MySQL ODBC connector that loads properly with dltest.
Comment by Sergej Pupykin (sergej) - Tuesday, 12 July 2011, 14:22 GMT
Elisamuel, thanks for patch. myodbc updated, isql works.

Loading...