Can You LGPL an Application? 15
Tim writes "Can you really use the LGPL for an application--that is, code that isn't part of a library? I've been reading over the LGPL again in preparation for licensing an application of my own, and I feel that the LGPL would best fit my needs/wants. However, section 2a of the LGPL makes it very clear that a work 'based on the Library' must 'itself be a software library.' Section 0 also makes it clear that a 'library' means 'a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.' So, given all this, why is it taken for granted that you can release an application/executable under the LGPL?" It must be stated that applications link to libraries and are not based on them. I may be splitting a few hairs here, however. What do you think?
Well, it's been done before (Score:1)
IANAL, and hell, I haven't read the LGPL. I've read the GPL, but the LGPL seems a lot more confusing for some reason.
Re:Maybe I need to be more clear... (Score:1)
>version of the covered work must be a software
>library--in the technical sense that we all know
Maybe I'm missing something here, but why don't you just take the license, and change library to application? (Obviously you'd probably have to change some other sections.) If you like the core of the license, use it, and just adapt it as required.
Is there reason you can't / don't want to do that...?
Re:Maybe I need to be more clear... (Score:1)
Wow, that bites.
Re:Modules/Plugins (Score:1)
If you're more concerned with the notion of "how do i communicate to others what I would like to let you do with this source code I've written", then perhaps this will make some sense.
First, a program an a library are trivially convertible between each other, at least in C/C++.
Consider a program, which has a function main(). Perform the following steps:
1. rename the function main() to main2().
2. link all of the
3. create a function main(), which calls main2(), possibly passing argc/argv, and possibly returning the return value from main2() .
Practically, this is a very different beast than a real library, which implements a hopefully thoughtful API. However, there is no obvious technical difference between all the
You could also try a dual license under GPL/MPL or LGPL/MPL. Both of these would allow users to do things like linking in non-GPL code, while allowing GPL code to be linked in, although this may still not be possible (since it is the third-party's GPL code that is causing the problem, code you have written).
You could license under a BSD license. Again, you would not be able to link w/ third parties' GPL code and proprietary code at the same time, since that would violate the third parties' GPL (unless they explicitly allowed this).
Finally, you could offer your code under a GPL w/ a "module exception". Linux is licesnsed this way (it explicitly indicates that it does not view third-party closed-source modules to be in violation of the GPL). Again, if someone didn't like this interpretation of the GPL, no one would be able to link in their GPL'ed code w/ a proprietary plugin or module.
I hope that that makes sense.
Re:Modules/Plugins (Score:1)
IANAL, but the language does seem to be a problem (Score:1)
Anything about the MPL that bothers you?
Maybe I need to be more clear... (Score:2)
The reason I even thought about this was due to the fact that licensed code is always referred to as a "Library" in the LGPL. Not surprising, given that LGPL originally meant Library GPL, but still confusing, if you're wanting to license an application under the LGPL, rather than just a plain old software library.
When I read more into the text of the LGPL, I found what I noted above, and that really bothered me. If a modified version of the licensed code is required to be a "library" (which is defined in section 0 in the intuitive way), then how can you create an application, and license it under the LGPL in such a way that anyone can modify and redistribute it in application form without violating the license?
In other words, section 2a says that a modified version of the covered work must be a software library--in the technical sense that we all know and love. This works great for software libraries licensed with the LGPL, but it doesn't seem so hot for applications that want to do the same. In fact, it seems like a pretty big discrepancy (unless I'm really missing something
I hope this helps. I'm very interested to see if anyone else has thought about the same thing.
Modules/Plugins (Score:2)
If you implement plugins with dynamic linking, you can't have closed-source plugins unless you use the LGPL (or something LGPL-like).
So sometimes, it does make sense to want to LGPL an application. But I don't see how it can be done. And using some non-GPL license will pretty much make my code incompatible with the GPL, which is also bad.
What would it mean? (Score:2)
It doesn't make any sense to LGPL an app. If it's an app, you won't be linking to it, and it's the same as if it were licensed under the GPL. You still need to distribute source, you still can call the app (as a whole) from non-free programs, etc.
Am I missing something here?
Re:Maybe I need to be more clear... (Score:2)
As DeadSea wrote in response to another article [slashdot.org], it's generally better to implement libraries as libraries than nonmodular applications. Implement the functionality of your application as a library, or a set of libraries, and a stubby little main routine, and then you won't really need to care about whether the LGPL can be applied to things that aren't libraries.
You can always make your own license (Score:2)
Re:Well, it's been done before (Score:2)
YES you can, but you might want to think twice. (Score:2)
http://www.gnu.org/copyleft/lesser.html& lt;/a> [gnu.org]
This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below.
Why you shouldn't use the Library GPL for your next library
http://www.gnu.org/philosophy/wh y-n ot-lgpl.html [gnu.org]
Useful resources: http://www.gnu.org/philosophy/li cen se-list.html [gnu.org]
The MPL (Score:2)
The MPL 1.1 IS GPL-compatible (Score:2)
http://www.mozilla.org/MPL/MPL-1.1.html, section "13. MULTIPLE-LICENSED CODE".