OPSN / MVP-discuss

A place to design a proof of concept implementation of Overlaid Personal Semantic Networks.
Apache License 2.0
1 stars 0 forks source link

code license should be gpl or mpl #6

Open jmichelz opened 7 years ago

jmichelz commented 7 years ago

http://hintjens.com/blog:68

To prevent capture of an open source software project you need:

A GPL-family license (or MPLv2, which works the same) that enforces two-way remixing; Distributed copyrights, which makes it impossible to buy them all, given enough contributors.

oresmus commented 7 years ago

I'm not sure I agree. When we get closer to writing code (or when I am less lazy about setting down my reasons for being not sure about this) we'll need to discuss this more. (And we might decide differently for different related coding projects. Certainly some other people writing OPSN-related code will decide differently than any one license we use, and we want all that code to be able to use compatible protocols and work together, so it can share data which forms a unified graph.)

(Note that this repo itself is not intended to contain any code, only discussion, so this issue is not related to this repo's license. As an aside, about this repo's license: for this discussion (or any discussion about future technical projects), the main issue is to let people copy the text, and to let them practice the ideas proposed in the text. The Apache license (though it's written for code) seems to me to require contributors to let people practice the ideas proposed in the text (due to its implied patent license provisions, which give people a license to practice any patented inventions necessary to run the code it applies to; I count text about ideas for code as "pseudocode" and interpret that part of the license the same way as if it was real code). The GPLv3 also has a similar provision, but that license is even more clearly code-specific. I don't know if there is a license intended for text which has this property.)

oresmus commented 7 years ago

I agree with the "remixing" issue referenced above.

For a reference library for using a communication and data storage protocol which we hope becomes widely used, I believe we want it to be usable in proprietary software (or in software running under proprietary OSes like iOS which require centralized signing and approval of their apps), so the protocol retains a single reference implementation and needn't fragment into multiple implementations. My only concern about a GPL-family license is that it might be too burdensome for use in that context. (I don't agree with the sentiment that making our software impossible to use in such contexts would be a good thing, as a way of fighting the existence of such contexts.)

I note that many projects in this general area (protocols, libraries, or frameworks for web apps) use non-GPL-family licenses (if this point is controversial as a fact, I'll give examples).

But perhaps the LGPL (if further weakened by removing its requirement to be able to link a modified library into any application that uses that library -- I think ZeroMQ weakens it in this way, but I didn't check in detail) or the MPLv2 (if it already leaves out that requirement -- I haven't studied it) would be ok in this regard. If they succeed in requiring remix-allowing within the library itself, without preventing its use in any kind of application software, that seems ideal to me.

(I also want a code license to have the same sort of patent provisions as Apache or GPLv3, which prevents someone from using patents to restrict the use of their own contributions to the code.)

(I am guessing that we agree on the overall goals and are only arguing about the means.)

oresmus commented 7 years ago

I looked into the MPL (version 2) and, at least to start with, I'm fine with it, as a license for a generic coding project. (Not for this repo -- for a new repo made for a coding project.)

I was not able to find out for sure that it's compatible with iOS, but (unlike for LGPL) I didn't find any definite evidence that it's not, and for an initial demo that's not crucial anyway.

oresmus commented 7 years ago

(If you (JM) take it as agreed that we'll just default to MPL v2 for new coding projects, subject to further discussion as needed for specific projects, you can close this issue.)

jmichelz commented 7 years ago

This one might be more applicable, it stops the application service provider loophole: https://en.wikipedia.org/wiki/Affero_General_Public_License

oresmus commented 7 years ago

That one is (IMHO) completely out of the question for a protocol library -- for that matter, so is the plain GPL (a subset of it). They would force the library to be usable only in GPL applications.

oresmus commented 7 years ago

I should add that (IMHO) different licenses make sense for different kinds of code we might make. For example: