libtdsodbc.so misnamed

Bug #675758 reported by mycae
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
freetds (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

User reports:

I seem to recall libtdsodbc.so.0 was once part of this package... I need it to connect to a MSSQL database with python. There is an old bug mentioning that it was missing in an earlier version, too. As it is, there is no sign of this driver anywhere after installing freetds-dev.

I believe this is a bug in this package. I think the .so should be marked with the soversion, and the .so file should be symlinked. This seems to be the case for all the contents of /usr/lib/odbc

Revision history for this message
Steve Langasek (vorlon) wrote :

Sorry, no. This is not a shared library, it's a DSO, and sonames are a feature of shared libraries. There's no reason to ship this file with a .0 on the end of it.

Changed in freetds (Ubuntu):
status: New → Invalid
Revision history for this message
mycae (mycae) wrote : Re: [Bug 675758] Re: libtdsodbc.so misnamed

Hello,

Thankyou for the info, I don't suppose you could point me to the difference between a DSO and a normal SO, I was of the opinion that these were different names for the same thing, a'la

http://httpd.apache.org/docs/2.2/dso.html ,

and the debian policy manual recommended soversioning in filenames by the suffix method:

http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-shlibs

This would be consistent with output from file, which reports this DSO to be the same as a soversioned SO

----
user@user-desktop:/usr/lib/odbc$ file libtdsodbc.so
libtdsodbc.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
user@user-desktop:/usr/lib/odbc$ file /usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6: symbolic link to `libstdc++.so.6.0.13'
user@user-desktop:/usr/lib/odbc$ file /usr/lib/libstdc++.so.6.0.13
/usr/lib/libstdc++.so.6.0.13: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
user@user-desktop:/usr/lib/odbc$
----

Thanks.

--- On Tue, 11/16/10, Steve Langasek <email address hidden> wrote:

> From: Steve Langasek <email address hidden>
> Subject: [Bug 675758] Re: libtdsodbc.so misnamed
> To: <email address hidden>
> Date: Tuesday, November 16, 2010, 11:35 AM
> Sorry, no.  This is not a shared
> library, it's a DSO, and sonames are a
> feature of shared libraries.  There's no reason to
> ship this file with a
> .0 on the end of it.
>
> ** Changed in: freetds (Ubuntu)
>        Status: New => Invalid
>
> --
> libtdsodbc.so misnamed
> https://bugs.launchpad.net/bugs/675758
> You received this bug notification because you are a direct
> subscriber
> of the bug.
>
> Status in “freetds” package in Ubuntu: Invalid
>
> Bug description:
> User reports:
>
> I seem to recall libtdsodbc.so.0 was once part of this
> package... I need it to connect to a MSSQL database with
> python.  There is an old bug mentioning that it was
> missing in an earlier version, too.  As it is, there is
> no sign of this driver anywhere after installing
> freetds-dev.
>
> I believe this is a bug in this package. I think the .so
> should be marked with the soversion, and the .so file should
> be symlinked. This seems to be the case for all the contents
> of /usr/lib/odbc
>
> To unsubscribe from this bug, go to:
> https://bugs.launchpad.net/ubuntu/+source/freetds/+bug/675758/+subscribe
>

Revision history for this message
mycae (mycae) wrote :
Download full text (4.4 KiB)

Sorry for the repeated postings,

The only thing I can think of that might be a reason to not soversion (and one that I guess I am not keen about), is if the module was to be optionally loaded from the program and never by any external tool.
I guess the bit I am not keen on if this was to only be loaded by the package, or some parent program thereof, is that if I were to (for example) write a hook based upon this API, the absence of so-versioning would make this more difficult than it might otherwise be.
I guess the bit I am not keen on if this was to only be loaded by the package, or some parent program thereof, is that if I were to (for example) write a hook based upon this API, the absence of so-versioning would make this more difficult than it might otherwise be.

I could be missing something large here, but I am unsure what.

--- On Tue, 11/16/10, mycae <email address hidden> wrote:

> From: mycae <email address hidden>
> Subject: Re: [Bug 675758] Re: libtdsodbc.so misnamed
> To: <email address hidden>
> Date: Tuesday, November 16, 2010, 1:38 PM
> Hello,
>
> Thankyou for the info, I don't suppose you could point me
> to the
> difference between a DSO and a normal SO, I was of the
> opinion that
> these were different names for the same thing, a'la
>
> http://httpd.apache.org/docs/2.2/dso.html
> ,
>
> and the debian policy manual recommended soversioning in
> filenames by
> the suffix method:
>
> http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-shlibs
>
> This would be consistent with output from file, which
> reports this DSO
> to be the same as a soversioned SO
>
> ----
> user@user-desktop:/usr/lib/odbc$ file libtdsodbc.so
> libtdsodbc.so: ELF 64-bit LSB shared object, x86-64,
> version 1 (SYSV), dynamically linked, stripped
> user@user-desktop:/usr/lib/odbc$ file
> /usr/lib/libstdc++.so.6
> /usr/lib/libstdc++.so.6: symbolic link to
> `libstdc++.so.6.0.13'
> user@user-desktop:/usr/lib/odbc$ file
> /usr/lib/libstdc++.so.6.0.13
> /usr/lib/libstdc++.so.6.0.13: ELF 64-bit LSB shared object,
> x86-64, version 1 (SYSV), dynamically linked, stripped
> user@user-desktop:/usr/lib/odbc$
> ----
>
>
>
> Thanks.
>
> --- On Tue, 11/16/10, Steve Langasek <email address hidden>
> wrote:
>
> > From: Steve Langasek <email address hidden>
> > Subject: [Bug 675758] Re: libtdsodbc.so misnamed
> > To: <email address hidden>
> > Date: Tuesday, November 16, 2010, 11:35 AM
> > Sorry, no.  This is not a shared
> > library, it's a DSO, and sonames are a
> > feature of shared libraries.  There's no reason to
> > ship this file with a
> > .0 on the end of it.
> >
> > ** Changed in: freetds (Ubuntu)
> >        Status: New => Invalid
> >
> > --
> > libtdsodbc.so misnamed
> > https://bugs.launchpad.net/bugs/675758
> > You received this bug notification because you are a
> direct
> > subscriber
> > of the bug.
> >
> > Status in “freetds” package in Ubuntu: Invalid
> >
> > Bug description:
> > User reports:
> >
> > I seem to recall libtdsodbc.so.0 was once part of
> this
> > package... I need it to connect to a MSSQL database
> with
> > python.  There is an old bug mentioning that it was
> > missing in an earlier version, to...

Read more...

Revision history for this message
Steve Langasek (vorlon) wrote :

On Tue, Nov 16, 2010 at 12:38:15AM -0000, mycae wrote:
> Thankyou for the info, I don't suppose you could point me to the
> difference between a DSO and a normal SO, I was of the opinion that
> these were different names for the same thing, a'la

> http://httpd.apache.org/docs/2.2/dso.html ,

> and the debian policy manual recommended soversioning in filenames by
> the suffix method:

> http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-shlibs

> This would be consistent with output from file, which reports this DSO
> to be the same as a soversioned SO

A DSO is a "Dynamic shared object"; the term is used to describe objects
that are dynamically loaded at runtime by the application, *not* those that
the application links to and are loaded by the runtime linker at startup.
In other words, a DSO is something you would load with dlopen().

> ----
> user@user-desktop:/usr/lib/odbc$ file libtdsodbc.so
> libtdsodbc.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
> user@user-desktop:/usr/lib/odbc$ file /usr/lib/libstdc++.so.6
> /usr/lib/libstdc++.so.6: symbolic link to `libstdc++.so.6.0.13'
> user@user-desktop:/usr/lib/odbc$ file /usr/lib/libstdc++.so.6.0.13
> /usr/lib/libstdc++.so.6.0.13: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
> user@user-desktop:/usr/lib/odbc$
> ----

The difference between them is not what 'file' reports as output; the
difference is how they're intended to be used. ODBC drivers are not shared
libraries, and should not carry sonames because ODBC implements a backwards-
and forwards-compatible interface that *never* needs to support multiple,
binary-incompatible versions of this driver.

Cheers,
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer http://www.debian.org/
<email address hidden> <email address hidden>

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related questions

Remote bug watches

Bug watches keep track of this bug in other bug trackers.