[Bug 675758] [NEW] libtdsodbc.so misnamed

1 view
Skip to first unread message

mycae

unread,
Nov 15, 2010, 4:30:45 PM11/15/10
to ubunt...@lists.ubuntu.com
Public bug reported:

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

** Affects: freetds (Ubuntu)
Importance: Undecided
Status: New

--
libtdsodbc.so misnamed
https://bugs.launchpad.net/bugs/675758
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

--
ubuntu-bugs mailing list
ubunt...@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Steve Langasek

unread,
Nov 15, 2010, 5:35:06 PM11/15/10
to ubunt...@lists.ubuntu.com
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

mycae

unread,
Nov 15, 2010, 7:38:15 PM11/15/10
to ubunt...@lists.ubuntu.com
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 <steve.l...@canonical.com>
wrote:

> From: Steve Langasek <steve.l...@canonical.com>
> Subject: [Bug 675758] Re: libtdsodbc.so misnamed
> To: my...@yahoo.com
> 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

mycae

unread,
Nov 15, 2010, 8:28:27 PM11/15/10
to ubunt...@lists.ubuntu.com
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 <675...@bugs.launchpad.net> wrote:

Steve Langasek

unread,
Dec 3, 2010, 4:58:32 PM12/3/10
to ubunt...@lists.ubuntu.com
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/
slan...@ubuntu.com vor...@debian.org

--

You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

https://bugs.launchpad.net/bugs/675758

Title:
libtdsodbc.so misnamed

Reply all
Reply to author
Forward
0 new messages