31

I've done some open source projects, and I plan to do more in the future. So far, I've released all my code under GPL, but I've read a few articles which claim GPL is too restrictive for any code to be used in corporate environment. This, supposedly, reduces contributions.

Here's what I wanted to accomplish:

For full applications:

  • no commercial use with the exception of selling support for the application (i.e. the app cannot be sold, but everything around it can)

For libraries (components, plugins, ...):

  • can be included into commercial projects without modifications
  • any modification the the library/component must be open sourced (contributed back) - the rest of the project, commercial or not, is not affected

For applications, GPL still seems the logical choice. For libraries, my primitive understanding of licences makes me think that LGPL is a good match, but, I'm not sure. I've looked at MIT licence, and that seems too permissive.

Most of the time, I want people to use my code anywhere they want to, as long as any improvements are contributed back.

This brings me to my question(s): is LGPL a logical choice for open source libraries, components, plugins etc? Is there a better alternative? Is GPL a good choice for my applications or is there something better?

Update:

For those who are interested in my final decision, I've decided to release my libraries under multi-license scheme, MPL, LGPL and GPL. This enables virtually everyone to use my code with no obligations, unless they modify it under MPL, in which case it would have to be contributed back.

This means the code can be used by both FSF and proprietary software, but "bad" commercial exploitation is prevented (or so I'd like to think).

Jimmy Hoffa
  • 16,039
  • 3
  • 69
  • 80
dr Hannibal Lecter
  • 3,282
  • 1
  • 26
  • 25
  • 1
    Do you mean no commercial *use* or no commercial *distribution* /reselling? – MIA Oct 16 '10 at 15:40
  • Probably distribution/reselling. I wouldn't mind if people used my stuff commercially, but I guess that would depend on the project. Although I don't see a way to use anything I've written so far for commercial purposes.. – dr Hannibal Lecter Oct 16 '10 at 16:01
  • 1
    My guess is, unless you've come up with something truely and genuinely unique and useful, the chance of "bad commercialization" is so small as to be not worth the time spent to try to prevent it. – Bryan Oakley Dec 06 '11 at 13:59
  • 4
    It's important to note that (contrary to some of the answers) the [Creative Commons FAQ](http://wiki.creativecommons.org/Frequently_Asked_Questions#Can_I_apply_a_Creative_Commons_license_to_software.3F) explicitly states CC licences should *not* be used for software. (The [CC0 Public Domain Dedication](http://creativecommons.org/publicdomain/zero/1.0/) *is* approved for use with software but wouldn't be suitable for the purposes stated in the original question.) Instead CC recommends choosing a licence approved by the Free Software Foundation or the Open Source Initiative. – Peter Briggs Dec 05 '11 at 17:20
  • 1
    In case somebody is interested, there is a proposal for a Q&A site regarding open- source licensing at area51: http://area51.stackexchange.com/proposals/58715/open-source-licensing?referrer=8PFLrZ3ydnhFtbu7jPSDPA2 – Kurt Pattyn Aug 21 '13 at 18:57

7 Answers7

8
  • no commercial use with the exception of selling support for the application (i.e. the app cannot be sold, but everything around it can)

Beware that the GPL doesn’t forbid selling the application, and forbidding this would indeed render your license non-free, as observed by Huperniketes. The only thing the GPL ensures is that the company selling the software would also have to provide the code base for free. But they don’t have to provide the software package as-is for free. That’s quite a big difference, since the source code of a software is not a readily usable product.

Konrad Rudolph
  • 13,059
  • 4
  • 55
  • 75
7

It sounds to me like GPL and LGPL are what you want for your projects.

alternative
  • 1,542
  • 13
  • 14
  • So you would say that LGPL is a good choice for my requirements? I'm not a lawyer so I'm just checking :) – dr Hannibal Lecter Oct 16 '10 at 13:37
  • 1
    I'm not a lawyer either, but I think that LGPL is exactly what you want for a library, and GPL for full applications. – alternative Oct 16 '10 at 13:42
  • It's legal to sell GPL apps. You (essentially) just have include the source code and give your customers the same GPL rights that you have. – bdsl Mar 17 '15 at 19:10
7

If you want to prevent commercial use of your software, GPL won't cut it. GPL tends to be avoided by commercial enterprises in products they sell because of the requirement to redistribute the modified source, but they're free to use GPL software internally. That's not to say businesses aren't set up to sell GPL software, or build hardware around GPL software (LinkSys, for example), but most businesses would prefer not to share their product with competitors.

I don't know if the Creative Commons Attribution Non-Commercial No Derivatives license is what you want (the only restriction you mentioned is commercial use), but if not, you might need to have a license prepared for you by an attorney that contains the language granting rights you wish license holders to have.

Also, once you begin to include such restrictions as non-commercial use and non-modifiability, you may no longer meet the criteria for an open source license as defined by the Open Source Initiative. Their site also lists other approved OSS licenses. Perhaps there's one already that matches your goals.

And adequately defining your goals will be key before selecting the rights and limitations you place on users of your software. Is popularity more important than modifiability or distribution or usage or…? Think of your objectives in releasing the code to begin with, and in what spirit you do that or the terms under which you grant access may have the opposite effect.

Huperniketes
  • 2,205
  • 14
  • 17
  • 1
    Business using GPL software internally isn't commercial use of the software... – alternative Oct 16 '10 at 16:23
  • 3
    @mathepic, do the words "business" and "using" not strike you as being similar to "commercial use"? http://definitions.uslegal.com/c/commercial/ – Huperniketes Oct 16 '10 at 16:34
  • 1
    @Huperniketes No, they don't. A business using software (eg a database browser) is _exactly_ the same as a person using that software. Theres no difference, as long as the project isn't incorporated into the business's final product. – alternative Oct 16 '10 at 16:38
  • 3
    @mathepic, you are incorrect. A business is a commercial concern - existing for profit. Any activity it engages in is commercial. And setting up a webserver running Apache to host user manuals is commercial _use_ of Apache. The operative word, in the legal sense, is _use_, not _distribution_, not _sale_ or _resale_. – Huperniketes Oct 16 '10 at 16:47
  • @Huperniketes: That seems strange. Does that mean that developing a website while freelancing and using apache to test it is a violation? Because, technically, it would be _using_ apache for commercial purposes. – dr Hannibal Lecter Oct 16 '10 at 18:22
  • 2
    @dr, it isn't a violation because the Apache license doesn't prohibit commercial use. http://apache.org/foundation/licence-FAQ.html#WhatDoesItMEAN "It allows you to: freely download and use Apache software, in whole or in part, for personal, company internal, or commercial purposes;" – Huperniketes Oct 16 '10 at 18:31
  • Might I mention that the GPL has nothing to do with commercial, only proprietary? I've been using commercial as a synonym for proprietary because I knew you were misusing the word. – alternative Oct 16 '10 at 18:36
  • @mathepic, and I counter your objection by pointing out I used it properly when I told the OP he couldn't use the GPL to restrict commercial use of such licensed software. So if you're claiming GPL has nothing to do with commercial, you're proving my point. – Huperniketes Oct 16 '10 at 18:56
  • @Huperniketes Then it seems all is good. +1 – alternative Oct 16 '10 at 23:19
  • English is my second language so I wasn't really paying attention when talking about "commercial" and "proprietary". I guess we agree because I wouldn't mind if people made proprietary **and** commercial software with my libraries, as long as any library modifications are contributed back. Which, if I understood correctly, makes LGPL a decent choice(?). – dr Hannibal Lecter Oct 17 '10 at 13:06
  • @dr, LGPL is a decent choice, but I don't recall it _requiring_ modifications to a library deployed to a third-party to be made publicly available. However, Apple's Public Source License (APSL - http://www.opensource.org/licenses/apsl-2.0.php) does, specifically 2.2. (c) You could of course have your own license drawn up per your goals, but resorting to a pre-existing open source license is much simpler, as long as you understand the limitations. – Huperniketes Oct 17 '10 at 14:30
  • Huh, APSL is another one I never hear of! I guess if LGPL doesn't require that, MPL might be a better choice, as Mason Wheeler suggested. – dr Hannibal Lecter Oct 17 '10 at 16:48
  • You can always dual-license if you're selling GPL software. Other companies build on top of GPL-licensed software and while they sometimes need a reminder to comply with the GPL, they aren't generally hostile to it. –  Jul 26 '13 at 21:26
5

If what you care about is making sure your code stays free, getting improvements back, and being sure anyone can use it, then MPL is the right license for you. It's free to use in any product, including commercial software, without weird, arcane linking restrictions like the LGPL imposes. It requires that anyone who uses your code and modifies it release the changes under MPL, but it doesn't touch or restrict any of the rest of the code in the project.

Mason Wheeler
  • 82,151
  • 24
  • 234
  • 309
  • I'm not familiar with MPL at all, but it sounds very interesting. So far, I've only released PHP code so linking restrictions shouldn't be a problem, but I do plan on releasing some Mono code as well, MPL might prove very useful. – dr Hannibal Lecter Oct 16 '10 at 14:23
3

If you wrote all your code (that is, if you own your code) you can also dual license it: publish your code in e.g. GPLv3 and offer to sell it (with another license) to those wanting to use it less restrictively.

(this is in particular relevant for a library, because a GPL-ed library can only be used on GPL software).

Be careful about external contributions or patches that you incorporate into your code (since you don't own them).

Basile Starynkevitch
  • 32,434
  • 6
  • 84
  • 125
1

Whether you can actually apply for MPL or only GPL depends on one critical difference:

The "rights hereunder" include the right granted to recipients to link MPL "Covered Code" with private non-MPL code to form a "Larger Work" (MPL 3.7 Larger Works). GPL does not give recipients any such right. Therefore, the recipient cannot change the licensing terms to apply the GPL instead of MPL.

See this.

What this means for you is that if you are using any component which itself is GPL'ed, you (probably) cannot release code (which is using this) under MPL; MPL will wrongly attempt to allow redistribute GPL'ed code under MPL which is improper. This is fine, if your dependencies are in the order of MIT or Apache license.

In general, if you are not doing any better by choosing MPL over GPL alone unless you are already using MPL stuff. GPL will also ensures that contributions will be made published back as well.

There is only critical change MPL provides is the protection against the unknowingly induced patent infringements. As the license puts it:

It is not OK for someone to create a Modification for which he or she has a patent, make the Modification available free of charge as required under the License, and then come back and try to charge everyone for the patent rights.

MPL and GPL are not quite compatible.

You can see here: MIT vs. BSD vs. Dual License for discussion on implication of dual licenses.

Dipan Mehta
  • 10,542
  • 2
  • 33
  • 67
  • GPL incompatibility should have been resolved with MPL v2.0. (I guess this post was made before the v2.0 was released). See the [GNU's statement on MPLv2.0](http://www.gnu.org/philosophy/license-list.html#MPL-2.0) – mucaho Jul 30 '15 at 15:17
1

Noone seems to talk about them, but you might consider a Creative Commons licence. They have a range of licences (or one that you tailor to your needs, looked at a different way).

Frank Shearar
  • 16,643
  • 7
  • 48
  • 84