On 7/9/2011 5:43 AM, Steven Schveighoffer wrote:
On Fri, 08 Jul 2011 16:02:39 -0400, Johannes Pfau <s...@example.com> wrote:

Steven Schveighoffer wrote:
On Fri, 08 Jul 2011 15:39:22 -0400, Johannes Pfau <s...@example.com>
wrote:

Andrej Mitrovic wrote:
What's the license on the bindings?

Have not thought about that yet, but I think I'll use the boost
license. (I'm not sure if that's possible, as
cairo is LGPL, maybe I'll have to release the binding part at least
as LGPL, as that's based on the cairo headers? Stupid licensing
stuff... )


I'm not a lawyer, but I think LGPL just covers the library code, not
the bindings, as long as the link is dynamic. In other words, LGPL
specifically allows dynamically linking with any license, as long as
the library remains LGPL.

For reference, the C standard library (which phobos uses extensively)
is LGPL on Linux (glibc).

-Steve

True, but in this case the bindings were translated from the cairo c
headers. I wasn't sure if the bindings could be considered a derivate
work.

Well, if we look at this logically -- if the C headers contain so much
code that using them would require releasing your software under LGPL,
then why even use LGPL? The only point for using LGPL is to allow other
licensed code to use your library, yet still have your library be under
the GPL. If linking a C application using the C headers doesn't require
GPL'ing your code (or LGPL'ing), then I can't see how a translation of
them would require it.

But almost certainly a translation of the headers is a derived work, so
the bindings themselves should have the same license as the headers
(LGPL). I think this should cause no problems with linking proprietary
code. I don't think it would qualify as a phobos module though.


A few years back I was concerned about this same issue with my SDL bindings in Derelict. SDL was licensed under the LGPL. So I posted a question to the SDL mailing list. The maintainer, Sam Lantinga, answered thus:

"The API is not copyrighted, only the SDL implementation is. I would consider this a work that uses the library, rather than a derivative work. You'll notice that using inline functions in LGPL headers, which technically places code from those headers in your object code, also does not change your work into a derivative work - it remains a work that uses the library."

That reinforced my own understanding. So for years now the license for Derelict's bindings has usually been different from the C libraries. That's especially true for Derelict 2, which is licensed under Boost.

Realistically, I'd like to release Derelict with no license at all. I'm not sure exactly what it is I'm licensing. The lion's share of original code in the project is in the utility package. The bindings themselves generally have very little non-interface code, just what's required to implement the loader. But I've learned that people get nervous when there's no license attached to a library. So Boost it is.

Reply via email to