Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
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'
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: unixODBC
Version: 6.5
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: ---
Assignee: Jan Staněk
QA Contact: qe-baseos-daemons
Depends On:
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:
Last Closed: 2014-07-10 07:51:37 UTC
Target Upstream Version:

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

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

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.


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.

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