jsherfey / dnsim

Dynamic Neural Simulator - a modular modeling tool for large ODE systems.
3 stars 3 forks source link

Choose a license #44

Open asoplata opened 9 years ago

asoplata commented 9 years ago

(Prescript: I highly doubt there will ever be legal issues with DNSIM, but if it does get in trouble we will want to be sure where it stands, and the sooner we pick a license, the better in that regard [specifically for solidifying authorship]).

TL;DR I think we should use the GNU General Public License (v2 or v3). This would just mean making a LICENSE file and, recommendedly, putting a brief blerb at the top of every source code file. I could do this easily.

As per the meeting with BU's Office of Technology Development (OTD) that Jason (Sherfey), Jason Climer, and I attended, there are two key legal components of software: Copyright and License.

The Copyright owner, given that Jason probably built DNSIM on BU's dime (and, from a legal point of view, thereby almost definitely not in his spare time in his garage), is that of the Trustees of Boston University. This isn't really an issue though, since...

We can choose whatever license we want, including as free/open source as we desire, as OTD has informed us BU generally likes open software. BU will support probably any licensing as long as we have the authorship squared away (which is abundantly clear in this case: Jason is the main author). It might be possible that anyone who's ever contributed to the code counts as an author, and theoretically, if we don't license now, someone may contribute (if we accept their changes) code while disagreeing with whichever license we want, which becomes problematic.

GitHub and others have gone a long way to trying to inform the developer public about licensing options, including making http://choosealicense.com/ which tells you how to pick one and lists the most popular options.

As presented on that site, the Apache, MIT, and GNU General Public License v2 (GPL) licenses are probably the most common free and/or open source licenses.

Begin legal gobbledegook

This is just one example, but the MIT one says anyone can do whatever they want with it, but that includes taking it, selling it, and not distributing their further changes back up to us (called "upstream") as long as they attribute the author. The GPL prevents this scenario by stating that anyone who makes a copy or changes to their physical copy of this code, must use the same (or a "compatible") license; this means those people would themselves HAVE to give up their source code including all its changes for free, if anyone else asked them.

"Open Source Software" (OSS) licenses (as opposed to Free and Open Source Software/FOSS) like the MIT license use the definition of "free" that is, the person receiving the software can do WHATEVER they want with it, including making it private, hiding it, making changes, selling it, etc. AFAIK this is equivalent to "free as in beer", and no more than that.

The key difference is the use of the word "Free". BOTH OSS and FOSS "give away their source code for free", but idiomatically speaking "free software" is generally thought of as the GPL-kind discussed below, where it's very closely tied to specific notions of freedom and the future of a source code.

"Free and Open Source Software" (FOSS) licenses like the GNU GPL versions 2 and 3, and the Apache License (Apache is "compatible" with GPLv3 but NOT GPLv2) use a stronger, more philosphical definition of "free" that is as much about, yes, giving away source code for free, as it is about "forcing" the same freedoms on other people who obtain/update your code. The GPL especially uses "copyleft" licensing legalities so anyone who uses code that inherits from your GPL'd code must make that NEW code under the same terms (GPL/compatible) too. That person must be held to account in giving away things for free and basically supporting making it available and allowing local changes to happen. So yes, it's more "restricting" than the "free as in beer" OSS in one definition of freedom, but that's because it's forcing a different type of freedom to propagate (you must make everything with this code available, and not put limitations on other people making changes -- you must let them tinker!!! and their tinkerings must then be made available too...). While as a side effect you CAN download the source code for free, always, under the GPL, it's more about "free as in freedom".

In some ways the copyleft FOSS licenses are as much about making code available as they are about a social movement to try to sway the field against proprietary, hidden code that prevents people from developing the code themselves. I think most modern developers would say that this has been a hugely good thing for software development on the whole. Which the exception of IIRC some few proprietary binary blobs for drivers (which are easy to not use), Linux is GPLv2, and the world would be much worse off if its license was more restrictive. It's really quite incredible, some student's pet project in the 90s utilized open community development to such a degree that it's ubiquitous now.

Not that I'm saying DNSIM is going to be the next Linux.

I'm just saying that the GPL is awesome, and going with it means the software will "always be free", and any direct development on it has to be publicly released, which we can then bring back into the "master original" version of the code -- this component is EXACTLY why things like GitHub are so successful (never mind that Google Code is shutting down...but it wasn't really a business on its own then again). People see GPL and they know exactly what it means, and how open it and its descendants will be.

Note that the GPL doesn't mean you can't make money on the software; there's lots of business models that give away their software for free but offer paid support services (e.g. Red Hat Linux) or maybe? have unreleased private software that works with GPL'd software. Arguably anyone who does private software development and uses Linux does that anyways. There is definitely no limit on making money using the GPL'd software, you just can't prevent people from getting a copy of the code under any circumstances.

I personally would strongly prefer a GPL license (though, if the Apache v2 is "compatibly free" with GPLv3 then it must be good too), but I'm open to the idea of "just" an Open Source license (rather than a "Free" one as well), but I think Jason obviously should have the main say. Thankfully, given that it's already public, it's ineffectual to assign a very limiting license anyways. Hopefully we will never even need to worry about licensing, and I SERIOUSLY doubt we ever will, but GPLing DNSIM would foster collaboration (in part by forcing anyone's changes or forks into the open, so we could add them in ourselves), protect DNSIM in the event someone tries to "steal" it by selling limited access to their own version or passing it off as theirs, and other things I haven't thought about.

What do you all think?