0

I am currently developing a small open source project and would like to make sure I got the licensing right. I am pretty new to the open source model. I have benefited from it on a personal level for years. I can't help but want to make sure that my project is open to users who contribute to the project and not just free loaders. Of course this isn't to restrict usage of people experimenting with the project for personal reasons or students or anything of the like. I am thinking more of companies that might profit from too weak licensing.

Through research I understand that using a strongly protective GPL or an AGPL license distributed freely with the project combined with a more permissive license sold to companies who have different needs might be a good solution. Even though the AGPL is kind of frowned upon even as far as being banned by Google.

In any case I realize that this might be an opinionated subject matter so let me keep this to a specific cadre. I recently stumbled upon a less common solution that is License Zero. However, I can't find a lot of information on it's compatibility with other licenses. My question is now, is License Zero a good fit for an open source project? More specifically is it compatible with current business models or licenses like the MIT open license or GPL license. Would someone be able to integrate my code in their open source project? Inversely can I use open source libraries that operate under commonly found licenses in my project?

Also I understand pretty well, from such posts, that I essentially can't override a clause of a license from a codebase I use in my project. So in the case of dual licensing I can use a GPLv2 codebase in my open source version but can't use the same codebase when I sell a closed source version of my project for instance am I right? More precisely does the GPLv2 forbid such forms of dual licensing? I guess the only work around for me or a company interested in my code for proprietary projects is to get a license agreement or waiver of some kind?

4

You have asked a fairly broad question so I'll discuss a few snippets, and come back to the License Zero at the end.

Restricting users of free software.

I can't help but want to make sure that my project is open to users who contribute to the project and not just free loaders. Of course this isn't to restrict usage of people experimenting with the project for personal reasons or students or anything of the like. I am thinking more of companies that might profit from too weak licensing.

Unfortunately, that would not be a FLOSS license. This goes against freedom zero in the Free Software Definition (“The freedom to run the program as you wish, for any purpose”) and against criterion 6 “No discrimination against fields of endeavor” in the Open Source Definition.

Dual licensing.

using a strongly protective GPL or an AGPL license distributed freely with the project combined with a more permissive license sold to companies who have different needs might be a good solution.

does the GPLv2 forbid such forms of dual licensing?

If you are the sole copyright holder, you can of course issue multiple non-exclusive licenses at the same time. It is not necessary that all licenses are a free software license. The licenses that you sell don't have to be “more permissive”.

However, if you accept outside contributions you are no longer the sole copyright holder. This is typically solved by requesting copyright assignment (which is impossible in some jurisdictions), or by requiring contributions to use a different license than the project license (“inbound != outbound”). In any case it is tricky to pull something like that off correctly, and requires assistance by a professional (i.e. talk with your lawyer).

Goals of licensing.

Even though the AGPL is kind of frowned upon even as far as being banned by Google.

Different licenses have different goals. Different people and organizations have different goals. Not every license fits everyone's goals.

  • Permissive licenses like MIT, Apache 2, BSD try to maximize freedom for immediate users, i.e. other developers. Such software can be used freely in closed-source projects. So this developer freedom comes at a cost of end-user freedom. Using such licenses is typically motivated by “I want as many people as possible to use my software!”

  • Copyleft licenses like the GPL and AGPL try to maximize end-user freedom. This comes at a cost of developer freedom because derived works can only be published under the same license. Using such licenses is typically motivated by a desire to preserve end-user freedom.

  • There are mixed forms such as the LGPL, which is permissive or copyleft depending on how it's used.

  • It is not necessary to publish software under a FLOSS license. The default license is “all rights reserved”. I.e. people can look at it but can't do anything with the software. If you want other people to use your software and build upon it, you must issue some license.

  • Non-free licenses are often part of a contract. A contract as a legal instrument offers much more flexibility than a license that has to fit into the confines of (international) copyright law. If you sell private licenses, you would typically use a contract.

It is important to consider what your motivations are to publish your software. Possibly, offering a FLOSS license is not in your interest.

Someone might license software under the AGPL if they want to maximize the end-user freedoms especially also for SaaS. Google develops SaaS software and would be restricted by such a license. It is understandable that they do not want to use it.

As the AGPL is the most restrictive license in common usage, it is frequently used to discourage commercial use. This is often not well thought out because the AGPL does allow commercial use without restrictions (see freedom zero), and only triggers source disclosure requirements for derived works. There is a goal mismatch between “preserving end user freedom” and “forbid commercial usage”.

License zero.

license zero. However, I can't find a lot of information on it's compatibility with other licenses.

Looking at the license zero project, this seems to be a platform to sell commercial licenses. It also includes a “License Zero Reciprocal Public License 2.0.1”:

  • This is mostly a GPL3-style copyleft license, except for point 5:

    If you run this software to analyze, change, or generate software, you must release source code for that software

    This extremely problematic both from a FLOSS perspective (it violates freedom zero) and from a legal perspective (copyright doesn't work that way).

  • There's also a potential loophole:

    Releasing source code means publicly licensing it under either this license or a license approved by the Open Source Initiative

    If taken literally, this could be used to publish modified versions under the MIT, thus stripping the copyleft nature from this license. Even if that's not the case, the license is dangerously unclear.

I take these problems as indications that the license was not written by a lawyer. It should not be used, regardless of your goals. As it is likely non-free it is probably incompatible with most copyleft FLOSS licenses. Permissive licenses are generally compatible with this license, similar to how permissive licenses are generally compatible with GPL and proprietary projects. This still means that no MIT-licensed project can use License-Zero licensed code.

There's also the problem of license proliferation: There are already hundreds of open source licenses. It should not be necessary to create yet another license. Software with “non-standard” licenses is less likely to be used because of the increased legal risks. The license list by the Open Source Initiative is a good place to start looking for well-respected, commonly used licenses.

  • What a great answer: thoughtful, well-argued, referenced. +1 from me, and I hope the OP is satisfied and accepts it! – MadHatter Jun 24 '18 at 20:12
  • Wow great answer thank you very much for the input I'll take my time to digest all of this. I was particularly surprised by the fact that license zero might not be free and thus incompatible with most licenses. I figured it was just possibly the best of both worlds further thought is perhaps needed. Mostly that I stumbled upon it on one of the most thorough articles I've read on open source licensing until today. It seems like making an open source project really profitable even to give back to the community proves challenging and requires further research on my part with legal advice. Thanks – Xoeseko Yao Nyomi Jun 24 '18 at 22:36
  • 1
    Superb answer. I just wanted to note that Kyle Mitchell of License Zero actually is a lawyer, though I strongly agree with you that the reciprocal license here was not drafted with a high degree of rigor. (Being a lawyer doesn't make you an expert in drafting, I guess.) In addition to point 5 having questionable enforceability, I see that using the licensed software at a single instant in time to "analyze, change, or generate software" requires you to to release the affected software for... how long? The duration of your obligation is completely unspecified. (cc: @XoesekoYaoNyomi) – apsillers Jun 25 '18 at 14:16
  • 1
    @XoesekoYaoNyomi How to develop FLOSS software sustainably is still an unsolved problem in most cases. Some companies finance their work through extra services (like hosting or support), some people through related consulting, others through donations. Much is financed through academia. But most projects are just hobbies. Projects like License Zero are well-intentioned attempts to solve this, but I doubt they will work: you still have to convince someone to pay. I don't think the world was waiting for a NodeJS command line tool to make payment easier, this is fundamentally a social problem. – amon Jun 25 '18 at 15:30
1

On licence zero

I just had a look for the first time. It does not appear to be an Open Source / Free Software Licence.

They have several licences.

  • The Reciprocal License, has a compulsion to release changes to the software.
  • The Noncommercial License, has a non-commercial clause.

They all fall outside of the Open Source definition / Free Software definition.

On Dual licencing

This is allowed with any licence (As you are the licenser, not the licensee (therefore you cannot be bound by a contract between you and your self). The Free Software Foundation encourages it.

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.