15

I could really use some help picking the right license for my project. The project is already released on github under the GPLv3 license but I have been made aware that this prevents uses that I want to allow.

My requirements are like this:

  • The project is a native windows library that will, due to it's nature, always be linked dynamically.
  • I want to allow the use of this lib in source or binary form for any not-for-profit use (open-source, closed-source, educational, company-internal is all fine to me) putting as little restrictions on the application license as possible.
  • I want to ensure that if someone makes changes to the lib or forks it they have to release those changes under a "similar" open-source license as mine
  • If someone contributes to my project (say via pull requests in contrast to a fork) I'd like to maintain control over the license of the project.
  • In case there is demand for commercial for-profit use (that is: a company want to sells software that has my library as an integral component), I want to be able to dual-license for that with different conditions, but I'd rather cross that bridge if/when I get there - which is probably never anyway. And I wouldn't then want to have to consult anyone who has ever contributed a 2-line diff.

Can I use Qt (which seems to work similarly) as a model? (LGPL for non-commercial use, contributor agreement to maintain ownership of the whole project, separate commercial license)

  • 1
    LGPL does not prevent commercial use in any way, see e.g. answers.google.com/answers/threadview/id/439136.html Only a few open-source licenses limit by use case, and none of them are considered "free" by organisations like FSF. If you want to use a free license, the kind of split you want to achieve is usually done by having a strong free copyleft license, which does not prevent commercial use, but is off-putting to commercial users. Then your alternative could be worth purchasing for them, to avoid need to open-source their own code. – Neil Slater Dec 25 '16 at 12:36
  • 5
    Please see The Open Source Definition, specifically point 6. Open Source licenses allow for commercial use. If you intend to prevent companies from selling software linking to your library, you need a non-Open Source license. There are Open Source licenses that would require that software to be Open Source as well though. You may want to think about whether that would be acceptable, and if so, edit your question. – hvd Dec 26 '16 at 12:17
  • Don't points two and three conflict with each other? You want to allow nonprofit users to be able to take snippets of your code and embed them in proprietary applications, but also to require that those applications are actually open-source. – Xiong Chiamiov Dec 28 '16 at 1:37
  • I don't see a conflict between points two and three. Point 3 doesn't say applications using the lib are open-source, just that the changes to the lib are. I realize that open source licenses don't forbid commercial use, I guess I was asking for an exception one can make to an OS license or a not-strictly-OS license or a OS license that is so off-putting for commercial use that in practice it wouldn't be used that way. – Tannin Dec 28 '16 at 15:27
7

What you are looking for is, I think, the common practice of selling exceptions.

When an organization or a company is the sole copyright owner of a software, or have a permission to do so from all copyright owners, they may offer simultaneously the software under a free copyleft license (such as GNU GPL) and under a more permissive proprietary license. In your case the proprietary license would allow use in not-for-profit proprietary derivatives. And you could also sell the right to create and distribute for-profit proprietary derivatives.

What this means is that the software will only be used to create and distribute derivatives which are either free or not-for-profit, or for-profit proprietary derivatives by companies which have bought the commercial license. As some will remark, this won't prevent people selling free software derivatives since free software licenses never prevent selling.

The practice of selling exceptions is very common. Examples include Qt (just after TrollTech switched to GNU GPL), OCaml and many others.

To follow this path, you must ensure that you have rights over the complete code: either it was developed by you or your employees, or it was developed by someone who signed a CLA (Contributor License Agreement) which allows you to relicense their contributions under a proprietary license.

Also note that this won't satisfy your third requirement: forks which do not contribute back will be allowed to make their derivative GPL-only.

For a discussion on selling exceptions by RMS see http://www.gnu.org/philosophy/selling-exceptions.en.html

  • This doesn't answer the question: what is the license to use? Is it just GPL with exceptions? – Lance Pollard Jun 29 at 15:04
1

Good question, no matter if is incorrect, is a complex problem.

Point 1 and 4 are not responsibility of the license but technologies or your will.

You could Multi Licensing (https://en.wikipedia.org/wiki/Multi-licensing) - each user chooses a license according to the use.

Point 2 makes no sense since open source and non-profit are not related at all. If you remove the "open source" part of that paragraph then I then it still miss important info. It's not so important what you give to the users, but what the users can do with it, in terms of seeing, modifying and distributing. The later is the most complicated and you need to decide if they must pay, respect / honor author / restrict licenses / etc. Also is not clear if you want to enforce users not to profit with your library or in general like a ONG organization,

for 3 you want a copyleft license like GPL

and since the last point is not important right now you don't even need a multi license, right now :)

Also you could not have a license at all, put some general non formal rules that what's allowed without permission and what is only allowed with your permission and negotiate each situation individually: https://choosealicense.com/no-permission/

  • Licenses are the legal basis on which people other than the author are allowed to use a piece of code or a library. Without a license, only the author of the code is allowed to make changes or incorporate it in a larger program. This also holds for accepting contributions. One of the rights that must be explicitly mentioned in a license (and is mostly something for contributor license agreements) is the right to change the terms under which a piece of software is offered to others (i.e. the license). This puts the way that others contribute to your project firmly within the scope of licensing. – Bart van Ingen Schenau Jul 5 at 6:25
  • The advise in your last paragraph is usually bad for business. Licensing-aware professionals and legal departments try to avoid such crayon licenses as much as possible, because those licenses can easily have unintended legal side-effects that makes using them as part of a larger product tricky at best. For the well-known licenses it is at least known how they interact with each other. – Bart van Ingen Schenau Jul 5 at 6:34
  • My point was just informing that not having a license is in its rights and what the legal situation will be if so. And BTW authors not licenses control changing the terms on which the creation is released (of course your actions in the past could limit what you can do in the future, but was a consequence of author's decision and not a license) . – cancerbero Jul 6 at 8:50
  • I think the example described an open source developer trying to have a bigger picture about the topic and not so on business, but perhaps I'm wrong. I agree with that it's usually bad for business which product can be integrated with third parties. But sometimes the intention is the opposite. Also I would say no-license it's even bad human culture/knowledge itself as Licenses and patents were created because of just that - knowledge being lost when the author died - (although the reason of software patents today seems to be just the opposite). – cancerbero Jul 6 at 9:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.