ODBC component licenses

Steve Teale steve.teale at britseyeview.com
Thu Nov 10 20:25:38 PST 2011


On Thu, 10 Nov 2011 13:54:04 -0500, Steven Schveighoffer wrote:

> On Thu, 10 Nov 2011 13:36:38 -0500, Jonathan M Davis
> <jmdavisProg at gmx.com> wrote:
> 
>> On Thursday, November 10, 2011 10:29 Steven Schveighoffer wrote:
>>> On Thu, 10 Nov 2011 13:10:26 -0500, Jonathan M Davis
>>> <jmdavisProg at gmx.com>
>>>
>>> wrote:
>>> > On Thursday, November 10, 2011 05:23 Steven Schveighoffer wrote:
>>> >> On Thu, 10 Nov 2011 00:55:01 -0500, Steve Teale
>>> >>
>>> >> <steve.teale at britseyeview.com> wrote:
>>> >> > The libraries for unixODBC and for FreeTDS (communication with
>>> >> > SQL Server) are LGPL.
>>> >> >
>>> >> > Would a D ODBC driver that used these be compatible with Phobos?
>>> >>
>>> >> glibc, which dmd (and all Linux binaries) rely on is LGPL. So if
>>> >> you
>>> are
>>> >> saying what I think you are saying, yes. As long as the LGPL code
>>> >> is kept
>>> >> in a *separate* shared object, it is perfectly legal to link with
>>> >> it without infecting phobos' license.
>>> >
>>> > Though the fact that it needs to be in a separate shared object does
>>> > make it
>>> > problematic to stick in Phobos, since Phobos is just one shared
>>> object.
>>> > So, if
>>> > he's looking to put it _in_ Phobos, then I don't think that we can
>>> > do that
>>> > with the current setup.
>>>
>>> My understanding is that the FreeTDS is its *own* shared object
>>> (installed
>>> separately). We cannot include LGPL code in phobos.lib.
>>
>> I'm afraid that I've never even heard of TDS, so I'm not quite sure how
>> that
>> relates. We theoretically _could_ provide LGPL code in a separate
>> library, but
>> we don't do anything like that now.
> 
> I wasn't sure so I looked it up:
> 
> http://www.freetds.org/faq.html#where.is.libtds.so
> 
> Apparently, you can still have LGPL code that is statically linked?  I'm
> not sure now how that works, my understanding was always that LGPL works
> because of shared objects.
> 
> -Steve

I've just done my first thing in the morning thing again with Pan and 
deleted one of your postings in the thread.

So lots of things can't be included in Phobos because it is one big 
static library, right?

If you don't include some Phobos module in your app, the linker still 
wants to pull in the unsatisfied externals for that module even though 
they will not be used?

I thought that a library was an archive, and that linkers just pulled in 
the object files that were required by the app.

If that's not the case, then having D able to easily generate DLLs and 
shared libraries would seem to be priority number one.

Clearly we don't have any philosophical objection to using external 
libraries from Phobos - std.socket points out that you have to link with 
the Windows sockets library. Or is that one of the old libraries that 
Microsoft lets Walter use?

Steve


More information about the Digitalmars-d mailing list