Bug 1060225 - [unixODBC][Driver Manager]Can't open cursor lib 'libodbccr' : file not found'
Summary: [unixODBC][Driver Manager]Can't open cursor lib 'libodbccr' : file not found'
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: unixODBC
Version: 6.5
Hardware: Unspecified
OS: Unspecified
low
low
Target Milestone: rc
: ---
Assignee: Jan Staněk
QA Contact: qe-baseos-daemons
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-01-31 13:58 UTC by Remi Collet
Modified: 2014-07-10 07:51 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Previously, file name values were hard-coded in the ODBC Driver Manager. As a consequence, the Driver Manager did not correctly interact with other applications after an update. The current update changes the hard-coded values to dynamically determined ones, and updating no longer causes Driver Manager incompatibilities with other applications.
Clone Of:
Environment:
Last Closed: 2014-07-10 07:51:37 UTC
Target Upstream Version:


Attachments (Terms of Use)
New so-version-bump.patch (11.51 KB, patch)
2014-02-04 11:25 UTC, Jan Staněk
no flags Details | Diff
New so-version-bump.patch (10.90 KB, patch)
2014-02-04 13:10 UTC, Jan Staněk
no flags Details | Diff


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2014:0869 normal SHIPPED_LIVE unixODBC bug fix update 2014-07-10 11:51:24 UTC

Description Remi Collet 2014-01-31 13:58:52 UTC
Trying to use, from PHP (manual build of 5.5) + PDO_odbc driver raises this error.

Studying a little the unixODBC spec.

Upstream use soname .1 which is raised to .2 by the so-version-bump.patch
-LIB_VERSION="1:0:0"
+LIB_VERSION="2:0:0"

Problem : this is harcoded in DriverManager/SQLConnect.c
#define CURSOR_LIB      "libodbccr"
#define CURSOR_LIB_VER  ".1"
...

        sprintf( name, "%s%s%s", CURSOR_LIB, ext, CURSOR_LIB_VER );
        if ( !(connection -> cl_handle = odbc_dlopen( name )))
...

The trivial Fix seems missing.
  sed -e '/CURSOR_LIB_VER/s/1/2/' -i DriverManager/SQLConnect.c

Comment 2 Jan Staněk 2014-02-04 11:25:27 UTC
Created attachment 859089 [details]
New so-version-bump.patch

I re-created the so-version-bump.patch, adding the macro increment into it.

Comment 3 Jan Staněk 2014-02-04 13:10:28 UTC
Created attachment 859134 [details]
New so-version-bump.patch

I redid the patch in less intrusive way, this version only adds the macro increment and do not fiddle with other files.

Comment 4 Jan Staněk 2014-02-04 13:23:48 UTC
Pushed the updated patch to dist-git.

Commit: http://pkgs.devel.redhat.com/cgit/rpms/unixODBC/commit/?h=rhel-6.6&id=88d9503b034927975a8f166fd8a483d7615da4e3

Comment 6 Karel Volný 2014-07-08 12:40:16 UTC
SanityOnly - I'm unable to reproduce the original problem, php pdo works for me with the old version, however, I can confirm the change in the code

Comment 8 errata-xmlrpc 2014-07-10 07:51:37 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2014-0869.html


Note You need to log in before you can comment on or make changes to this bug.