Bug 232361 - libodbc.so is not "provided" by the unixODBC package
libodbc.so is not "provided" by the unixODBC package
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: unixODBC (Show other bugs)
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Tom Lane
David Lawrence
Depends On:
  Show dependency treegraph
Reported: 2007-03-14 19:41 EDT by Samuel Kielek
Modified: 2013-07-02 23:12 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2007-03-15 21:42:56 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Samuel Kielek 2007-03-14 19:41:23 EDT
Description of problem:

Building packages with binaries linked against libodbc.so fail with unresolvable
dependencies even with unixODBC installed.

Version-Release number of selected component (if applicable):


How reproducible:

Steps to Reproduce:
1. rpm -qf /usr/lib/libodbc.so
2. rpm -q --whatprovides libodbc.so
Actual results:

# rpm -qf /usr/lib/libodbc.so

# rpm -q --whatprovides libodbc.so
no package provides libodbc.so

Expected results:

The unixODBC package should "provide" the solib since it owns the file.

Additional info:

Comment 1 Samuel Kielek 2007-03-14 19:44:43 EDT
I just realized that my description was a little misleading. I should have said
that packages containing binaries linked against libodbc.so fail to install with
unresolvable dependencies.
Comment 2 Tom Lane 2007-03-15 02:19:45 EDT
Hm, afaik it is not possible (or at least not accepted practice) to hardlink a binary against a libfoo.so name; 
the reference should be to a versioned name such as libfoo.so.N or possibly libfoo.so.N.M.  What are you 
doing exactly?
Comment 3 Samuel Kielek 2007-03-15 11:08:33 EDT
I hadn't drilled down into it to see exactly what was causing the issue, so I
just did.. It's a Sun issue, not a RHEL issue. But in case you're interested,
here is what happened..

I have a package that contains java version "1.4.0_04". Included with java is a
library (libJdbcOdbc.so) which is linked against the .so name directly for
libodbc and libodbcinst. So when you attempt to install the rpm package
containing this lib, you get:

error: Failed dependencies:
        libodbc.so is needed by backup-6.0c
        libodbcinst.so is needed by backup-6.0c

# ldd ./java/jre/lib/i386/libJdbcOdbc.so
        libodbcinst.so => /usr/lib/libodbcinst.so (0x00111000)
        libodbc.so => /usr/lib/libodbc.so (0x00a1a000)
        libjava.so => not found
        libjvm.so => not found
        libc.so.6 => /lib/tls/libc.so.6 (0x00122000)
        libdl.so.2 => /lib/libdl.so.2 (0x00fb4000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00284000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x0043f000)

Feel free to change status to NOTABUG..
Comment 4 Tom Lane 2007-03-15 21:42:56 EDT
Yeah, that library has been built improperly: the references to libodbc and libodbcinst should include
a version number, similar to what you see for libc etc.  So it's NOTABUG, or more accurately not
my bug ;-)

If it helps, you should be able to work around this by installing unixODBC-devel to provide the needed 
symlinks, until you can get a fixed copy of libJdbcOdbc.

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