dalboris / vpaint

Experimental vector graphics and 2D animation editor
http://www.vpaint.org
Apache License 2.0
737 stars 54 forks source link

Switching to the Apache License v2.0 #88

Closed dalboris closed 4 years ago

dalboris commented 7 years ago

I finally have a little more free time, and I hope to get some work done soon. In the meantime, I've been reading more about software licenses, and I realised that it would probably be a better idea to use the Apache License v2.0 instead of the MIT.

https://www.apache.org/licenses/LICENSE-2.0

These are essentially the same license, but the Apache is more modern and "fixes" a few issues of the MIT. Notably:

  1. It grants users the right to use the software even if when covered by one contributor's patent. For instance, if Google contributes to VPaint some code covered by one of their patents, then users can still use VPaint without paying royalties to Google. This is Clause 3 of the license. Note that I'm strongly against software patents myself, but they are unfortunately a part of life and it's nice to be protected from these potential legal troubles.

  2. Perhaps more importantly, it explicitly expresses that unless otherwise stated, contributions to the project are assumed to be licensed under License v2.0. This is Clause 5 of the license. This is a better worded equivalent to the following text that is currently in the COPYRIGHT file: « By inserting your copyright notice under this category, you acknowledge that you have read the terms and conditions in the LICENSE.MIT file, and accept to license your source code contributions under these terms. »

I found a nice book chapter, freely available, explaining these into details:

http://www.oreilly.com/openbook/osfreesoft/book/ch02.pdf

Does this make sense to you? Any comments?

@scribblemaniac In particular, would you agree on this change of license? I must legally ask you before doing this change, since you contributed some copyright-able code.

I hope this is the last change of license, sorry for all the trouble! Hopefully I'll get to real work soon. :)

scribblemaniac commented 7 years ago

The Apache License isn't one I've worked with in a while. I will go go over it later this week before stating my opinion on the change. At any rate, if you do decide to change it, you have my consent to re-license all of my code in this repository to the Apache License v2.0.

dalboris commented 7 years ago

Thank you @scribblemaniac for the consent. I'll still wait until you review it before actually doing the change, there is no rush and it is not critical.

Interestingly, even though I'm not in general in agreement with the Free Software Foundation (re: permissive vs. copyleft), it happens that among all permissive licenses (BSD/MIT/Apache), the one the FSF recommends is actually Apache 2.0.

http://www.gnu.org/licenses/license-list.html#apache2 http://www.gnu.org/licenses/license-list.html#ModifiedBSD http://www.gnu.org/licenses/license-list.html#X11License

Here is a quote from the link above:

This [ndlr: the MIT/X11 license] is a fine license for a small program. A larger program usually ought to be copyleft; but if you are set on a lax permissive license for one, we recommend the Apache 2.0 license since it protects users from patent treachery.

scribblemaniac commented 7 years ago

I can understand your reasons for wanting to change it, but I feel like you're probably overthinking this a bit. After all, what are the realistic chances of encountering any issue with either of these points? If you feel like that is a high enough chance to justify the effort of changing the license, then I say go for it.

Emasoft commented 7 years ago

I reccomend the ECL open source licence. It is the best for this kind of projects. https://en.wikipedia.org/wiki/Educational_Community_License

dalboris commented 7 years ago

Thx for the recommendation! The text of the license seems to make sense. Though, I'm not sure the very subtle difference between Apache 2.0 and ECL 2.0 is worth using a much less known license. Also, I wouldn't want to send to wrong message: VPaint will not be developed in an "educational" setting as soon as I'm not a student anymore.

Basically, what I care about, in order of importance, are:

  1. permissive (= no copyleft)
  2. automatic assignment of contributions under the same license
  3. some kind of patent protection

Apache 2.0 is the most well-known license providing this, well tested, and is the choice made by several companies which I trust. Any thoughts?

Emasoft commented 7 years ago

@dalboris It is essentially the same licence, but with some additional elements that make it workable for colleges and universities, where it can be used by students and even get cited in papers, gaining popularity. Not using this version of the Apache licence is a show stopper for many unversities courses and college labs that would love to use it and experiment with it (and eventually contribute to its code..).

dalboris commented 7 years ago

Not using this version of the Apache licence is a show stopper for many unversities courses and college labs that would love to use it and experiment with it.

@Emasoft Just curious, what makes you think so? Personal experience, data, etc.?

I'm asking because my own experience and intuition tells me it isn't true. First, legally, everyone can still experiment with Apache 2.0, use the software, cite it, etc. The only thing a University IP lawyer may be afraid of is that contributing back might inadvertently grant licenses to more of their patents that they wish.

I expect this to be very rare, and in these cases, they could still potentially contribute under the ECL, even if the rest of the software is under Apache 2.0. Though, the more I think about it, the less I think it is a good idea: if a piece of code contributed to VPaint is covered by a patent hold by the University (whoever is the inventor), then I do want anyone using VPaint to be granted permission to use this patent. I prefer to give stronger protections to all VPaint users and contributors, than a weaker version, even if this hurts a little who can contribute. Note that it doesn't change who can use it: the license differences are only about what patent permissions are granted by the contributor alongside a contribution.

boubouh commented 7 years ago

I recommend the GNU GPL licence

dalboris commented 7 years ago

@boubouh Thanks for the input! However, the GPL is a copyleft license, while I desire to release VPaint under a permissive license. I've written this wiki page a few years ago to clarify this rationale (the arguments apply both to MIT and Apache 2.0).

For your information, you can now consider the decision for Apache 2.0 to be final. I'm leaving this issue open until I actually make the switch, but there is no need to discuss it anymore. Thank you all for your input!