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.