Bug 232361

Summary: libodbc.so is not "provided" by the unixODBC package
Product: Red Hat Enterprise Linux 3 Reporter: Samuel Kielek <samuel.kielek>
Component: unixODBCAssignee: Tom Lane <tgl>
Status: CLOSED NOTABUG QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.8CC: hhorak
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-03-16 01:42:56 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Samuel Kielek 2007-03-14 23:41:23 UTC
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):

unixODBC-2.2.8-2.3.0.2

How reproducible:
Always

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

# rpm -qf /usr/lib/libodbc.so
unixODBC-2.2.8-2.3.0.2

# 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:

None

Comment 1 Samuel Kielek 2007-03-14 23:44:43 UTC
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 06:19:45 UTC
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 15:08:33 UTC
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-16 01:42:56 UTC
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.