-3

I have no experience in software licensing so far. I am releasing my first application but I am not familiar with any licenses. Most of the the summeries found that I can understand (http://opensource.org/licenses/category) are open source but I want my application to stay closed-source. I am a little lost among all these choices.

My application:

  • uses a DLL created from a project version licensed under GNU LGPL (no code changes made)
  • uses a statically linked class licensed under "GNU GPL v2 or any later" (modified by adding a few properties (just getters, a couple of lines))
  • uses 2 small classes found in stackoverflow discussions which code was published under no license, I guess
  • implements a possibility to donate funds

I need a license that states:

  • It is free to use for everyone
  • Everyone can redistribute it on their repositories. I guess I want basic information about the author and my website included.
  • It is forbidden to modify and sell it in any way
  • The license does not obligate me to distribute the source code
  • The author gives no warranty
  • The author can change the license to one of a non-commercial license any time in the future (not required)

My questions:

  1. What license matches the above statements? (provide a link to the body and the summery, please)
  2. I am going to include information about third-party licensed code and its authors. Should I also mention authors of classes found at stackoverflow?
  3. Have I modified the GNU GPL class enough to be obligated to release this modified class?
  4. The project I use a DLL from changed the license from GNU LGPL to MIT in the newer version. Can I update this library used in my project with no influence on the license I choose?
  5. Is it possible in the future to license this project under a non-commercial license combined with an implemented donating feature as well? Is it acceptable in the community or is it a bad manner? I've been just wondering if I can receive donations and ask non-commercial users at the same time to consider buying a commercial license, that's all. It is my thinking in case it gets attention from commercial users in the future very unlikely.
  6. If a non-commercial license using LGPL, GPL or MIT components is possible, what would it be? (provide a link to the body and the summery, please).

EDIT (annotation to the users' replies) 2015-10-27 19:20

greyfade: Let's say I get permissions from stackoverflow users to use their classes freely following BartvanIngenSchenau's advice. I understand the only obstacle left for releasing under a closed-source freeware license would be GPL?

2.1. Do LGPL and MIT licensed components included in my app permit using closed-source freeware license too?

2.2. I cannot get rid of GPL licensed part in my project. Let's say I release my project under GPLv3 (obtained permissions for CC-BY-SA 3.0 licensed classes at stackoverflow, using the DLL under LGPL or MIT - whatever) and I distribute the source code beside the binaries. Did I understand correctly? GPL permits any form of collecting voluntary donations? I am not about to require a donation to download, install nor use my application, it is user's good will. Still no?

2.3. Am I obligated under GPLv3 to distribute the source code at the server or only at user X's individual request by sending it to him/her?

2.4. Let's imagine I get a permission from the author and GPL is converted to LGPL. My application's got third-party components under LGPL (MIT), LGPL, 2xLGPL. Is it all right then to license my app under a closed-source freeware license letting donations? If yes, what'd be this license? If no, what license would the components need to be released under to match my wishes?

closed as too broad by Robert Harvey, user22815, GlenH7, gnat, Kilian Foth Oct 28 '15 at 11:34

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    I would encourage you to do searches on LGPL and MIT and the commercial options for it. Many of these followup questions are searchable and editing this question to include them isn't the best practice for the site (it becomes too broad of a question because there are now too many questions in the post). – user40980 Oct 27 '15 at 18:48
  • It doesn't sound to me like there is an existing license that meets all of your terms. The GPL is close, but there's nothing in the GPL that prevents someone from modifying or selling your code; that sort of freedom is kinda the whole point of the GPL. Any license you write yourself with more restrictive terms than the GPL would prevent you from using GPL'd code in your project. – Robert Harvey Oct 27 '15 at 18:49
  • 2
    Also, I agree with @MichaelT: this isn't a support forum; we don't provide "unlimited" support or discussions here. – Robert Harvey Oct 27 '15 at 18:50
  • Fair enough. I have asked too many questions making it unreadable for others but me. I'll make sure to keep it simple next time. The reason I have so many questions is I use third-party code under different licenses and insist on finding a way to do impossible with it having little knowledge how to achieve it. – kagetoki Oct 27 '15 at 22:49
7

I am not a lawyer and this is not legal advice. Consult your copyright attorney if you want clarification on any of these issues.

uses a statically linked class licensed under "GNU GPL v2 or any later" (modified by adding a few properties (just getters, a couple of lines))

The GPL requires that you re-release the source code for any changes you've made in some usable form, including the rest of your project.

If you do not release all of the source code for your entire project, you are in violation of the GPL.

uses 2 small classes found in stackoverflow discussions which code was published under no license, I guess

The legal status of these code snippets is unclear, but based on the licensing of the content of StackExchange as a whole, it's probably licensed under Creative Commons Attribution-Sharealike license, which has terms similar to the GPL and requires attribution of the source.

What license matches the above statements? (provide a link to the body and the summery, please)

The GPL. Due to your use of GPL-licensed code, you must license your source code under the same or less restrictive terms. This means, further, that you are not permitted to distribute your program as closed-source freeware.

I am going to include information about third-party licensed code and its authors. Should I also mention authors of classes found at stackoverflow?

Yes. This is required by the Creative Commons Attribution license.

Have I modified the GNU GPL class enough to be obligated to release this modified class?

You are obligated to release it, no matter how much or how little you've changed. You are also obligated to release any code that links with it.

The project I use a DLL from changed the license from GNU LGPL to MIT in the newer version. Can I update this library used in my project with no influence on the license I choose?

Yes, so long as its license is not more restrictive (i.e., incompatible) with the GPL.

Is it possible in the future to license this project under a non-commercial license combined with an implemented donating feature as well? Is it acceptable in the community or is it a bad manner? I've been just wondering if I can receive donations and ask non-commercial users at the same time to consider buying a commercial license, that's all. It is my thinking in case it gets attention from commercial users in the future very unlikely.

Donations are irrelevant, so long as you are not charging for the software itself. The terms of the GPL apply, and they permit donations and charging for "conveyance."

If a non-commercial license using LGPL, GPL or MIT components is possible, what would it be? (provide a link to the body and the summery, please).

Only GPL and GPL-compatible licenses are permitted for such software, due to the use specifically of the GPL.


2.1. Do LGPL and MIT licensed components included in my app permit using closed-source freeware license too?

MIT permits relicensing, provided you include the Copyright notice and a copy of the license in your code.

LGPL permits linking to a closed-source application, but only in a form that allows end-users to replace the LGPL-licensed portions of your program. In general, that means that dynamically-linking is permitted.

Read the FSF's GPL FAQ, which explains this and related issues.

2.2. I cannot get rid of GPL licensed part in my project. Let's say I release my project under GPLv3 (obtained permissions for CC-BY-SA 3.0 licensed classes at stackoverflow, using the DLL under LGPL or MIT - whatever) and I distribute the source code beside the binaries. Did I understand correctly? GPL permits any form of collecting voluntary donations? I am not about to require a donation to download, install nor use my application, it is user's good will. Still no?

If the code you're using under the GPL is licensed "GPLv2 or later" or "GPLv3" or "GPLv3 or later," then yes, you can release your project under the GPLv3. If the project is licensed under GPLv2, but not "GPLv2 or later," then you can't license your code under GPLv3, because the two licenses are mutually-incompatible unless the v2 license has the "or later" clause.

You should also be aware that CC-BY-SA 3.0 is not compatible with the GPL. However, CC-BY-SA 4.0 is compatible with GPLv3.

Donations are irrelevant.

2.3. Am I obligated under GPLv3 to distribute the source code at the server or only at user X's individual request by sending it to him/her?

You are required to provide the source on request, but the most convenient and simplest way to comply with this requirement is to publish the modified source alongside the binary distribution.

2.4. Let's imagine I get a permission from the author and GPL is converted to LGPL. My application's got third-party components under LGPL (MIT), LGPL, 2xLGPL. Is it all right then to license my app under a closed-source freeware license letting donations? If yes, what'd be this license? If no, what license would the components need to be released under to match my wishes?

You may distribute your code under any license you wish as long as you are in compliance with the LGPL terms.

To comply with the LGPL, end-users must be able to modify and replace all LGPL-licensed components without violating your license and without needing special tools to do so.

In principle, this means that your code must either be licensed under the LGPL, or some other GPL-compatible license, or the LGPL-licensed portions must be dynamically linked.

Again, you should read the FSF's GPL FAQ, as it explains these issues in detail.

  • Can I ask for further support (new questions appeared in the first post in EDIT section mentioning @BartvanIngenSchenau post). Thx. – kagetoki Oct 27 '15 at 18:35
  • @kagetoki: This format doesn't handle conversational edits like this, and your questions are answered by a number of other questions on this site under the [licensing] tag. I'll amend my answer anyway, but be aware that this is a bad format for such a long question. – greyfade Oct 27 '15 at 20:57
  • Thank You for this complex answer. I got a little frustrated after reading all the replies shown up here today though. – kagetoki Oct 27 '15 at 22:54
4

You are out of luck.

The GPL license is written in such a way that if even the tiniest part of your code was provided to you under the GPL license, then you are required to use the GPL license as well when distributing your code.

Content posted on Stack Overflow is licensed under the CC-BY-SA 3.0 license (as stated in the Terms of Service). Unfortunately, that license is not particularly suited for code and has similar requirements as the GPL that work derived from content under the CC-BY-SA license must also be distributed under the CC-BY-SA license.
From a purely legal standpoint, this makes it impossible to distribute your software, because two parts require that the entire project is released under different terms.
In practical terms, contributers to Stack Overflow often don't know about the effects of the license that StackExchange uses for the user-content and are probably likely willing to grant you a license to those classes under different terms.

This leaves the matter of using GPL code in your project, which means that you must use version 2 or later of the GPL license for your code as well.

  • @greyfade says CC-BY-SA 4.0 is compatible with GPLv3 where CC-BY-SA 3.0 is not. Is it really that bad stackoverflow content is licensed under v3.0? Does it mean anyone who copies a couple of lines from there to their code (everyone does it) and licenses under different terms violates a kind of stackoverflow license? – kagetoki Oct 27 '15 at 23:01
  • This has been discussed on Meta Stack Exchange, see meta.stackexchange.com/questions/12527/…. It might not be as clear-cut as I stated it, because copyright law has some exceptions for using small portions of a copyrighted work. – Bart van Ingen Schenau Oct 28 '15 at 7:17
1

uses a statically linked class licensed under "GNU GPL v2 or any later" (modified by adding a few properties (just getters, a couple of lines))

By using a GPL licensed class/library your code must also be published under the GPL license.

See also: https://stackoverflow.com/questions/10130143/gpl-lgpl-and-static-linking#10179181

A note on your 2.:

In my opinion if there isn't a explicit license stated you must ask the original author for permission so you can use the code.

  • 1
    You must ask the copyright holder. Which may or may not be the original author. – gnasher729 Oct 27 '15 at 21:19
-2

First, get rid of the statically-linked class licensed under GPL, since it will conflict with your goal of releasing it as closed-source freeware. If you know how that class works, you can easily write your own implementation. Or find an MIT/BSD licensed version of it.

Then, give credit to the places where you got the code snippets from. According to Jeff Atwood it should be okay to use the StackOverflow code snippets under the doctrine of fair use, but it's better to just give credit to those who written your code...just in case.

Finally, release the program under a Creative Commons license (as this answer suggest). While it is not encouraged to use them for software licenses, it would still be valid. In this case, you are not really licensing the code, but the program that you are releasing to the general public.

This specific license meets all the criteria you desire (http://creativecommons.org/licenses/by-nc-nd/4.0/).

  • 1
    Code should not be released under a creative commons license. Please see Can I apply a Creative Commons license to software? which starts out with "We recommend against using Creative Commons licenses for software." – user40980 Oct 27 '15 at 17:01
  • It's not encouraged, but it can still be done. And besides...the developer's not releasing any code to begin with. His program is going to be closed-source, so I think a CC license would be fine (only applying to the executable). – Tariq Ali Oct 27 '15 at 17:23
  • Actually, I might be willing to avoid supporting the CC if there is a EULA template that could be used instead (and is lawyer-tested, etc.). But it's not good practice to draft your own 'license' and instead use one already lawyer-tested, etc. Sadly, since all open-source licenses assume the source code will be released, the CC really is the best option he got. – Tariq Ali Oct 27 '15 at 17:40
  • "Not commercial" hasn't been lawyer tested either. There is also nothing about the warranty of the software in a CC license. Nor patent grants. Nor is CC compatible with other open software licenses such as BSD or MIT (you can include CC resources in a BSD project, you can't sublicense the source licensed under CC as BSD or MIT or many others). There are too many issues with a CC license for it to be a good choice if you are interested in free (libre) software or properly protecting yourself and your code (the lack of the warranty disclaimer for example). – user40980 Oct 27 '15 at 19:04
  • 1
    The answers here aren't only for the OP, but for other people who find the question later. Thus the importance of making sure that the information is correct and useful to them (and has the appropriate warnings when going down a path of untested licensing). – user40980 Oct 27 '15 at 19:23

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