The MIT License, Line by Line
writing.kemitchell.com
writing.kemitchell.com
That isn't quite what I mean by "inbound=outbound". Rather, inbound=outbound is a contribution governance rule under which inbound contributions, say a pull request for a GitHub-hosted project, are deemed to be licensed under the applicable outbound license of the project. This is, in fact, the rule under which most open source projects have operated since time immemorial. The DCO is one way of making inbound=outbound more explicit, and I increasingly think one that should be encouraged (if only to combat the practice of using CLAs and the like). But under the right circumstances it works even where the contribution is not explicitly licensed (I think this is what Kyle may be questioning). There are other ways besides the DCO of creating greater certainty, or the appearance of greater certainty, around the inbound licensing act, such as PieterH's suggestion of using a copyleft license like the MPL, or the suggestion of using the Apache License 2.0 (whose section 5 states an inbound=outbound rule as a kind of condition of the outbound license grant).
It's a problem with the sentence, which I'll correct shortly. I wanted to mention inbound=outbound, and tried to do so in passing, in the middle of a sentence performing other work. It ends up reading like inbound=outbound is the assumption about GitHub and fora like it, rather than the governance idea of same terms in and out. I definitely don't want to dilute the term or the idea as you've developed it!
I _do_ question whether US courts will reliably imply inbound=outbound when the contributor is silent on license. There will be circumstantial and perhaps specific conduct evidence for abandonment, estoppel, or both. But that's the same line of thinking that applies to unlicensed projects. Not good enough.
For what it's worth, I support the idea of the DCO, but never recommend it. I'd like to think my criticisms are best summed up in the alternative I've been working on:
https://github.com/berneout/berneout-pledge
The last paragraphs in that README are the most important. "CLA or not to CLA" is primarily a culture issue. It needs to be solved as one.
In particular, I don't think there's been enough discussion on what this means in the case where the copyright owner decides that they no longer wish to have their code distributed under the original license.
If I distribute my code under a license using the direct model, and subsequently announce that I'm no longer granting licenses, and you (who obtained my code before I made that announcement) distribute a copy, I think there is little question you are OK. You've got your direct license from me. But what about the person you distribute to? I think they would be OK to use it, but I'm not sure they could redistribute.
Maybe someone could make an argument involving third party beneficiaries that could force me to license your recipients under the original license, but that's going to be an ugly fight.
If I had originally used a license that allowed sublicensing, wouldn't things be a lot cleaner? People you distribute to after I stop issuing new licenses would simply get their license from you via you exercising the sublicensing right I gave you.
Some free/open licenses now say in the license text that they are irrevocable, which would seem to address this problem, but thinking about it more I'm not so sure. If my original license using the direct model said it was irrevocable, does that really mean I have to keep granting new direct licenses to anyone who obtains the software from a prior licensee, or does it just mean that I cannot cancel the license of someone once they obtain a license from me?
A better example would be emailed patch sets, which are still popular in some projects.
http://developercertificate.org/
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux....
I particularly recommend the presentations and writings of James Bottomley on the DCO, e.g.: http://www.hansenpartnership.com/FOSDEM-DCO-2016/#/begin
"Despite the assumption of some newer open-source developers that sending a pull request on GitHub “automatically” licenses the contribution for distribution on the terms of the project’s existing license—what Richard Fontana of Red Hat calls “inbound=outbound”—United States law doesn’t recognize any such rule. Strong copyright protection, not permissive licensing, is the default."
In other words the fork + pull request + merge flow does not work on a project unless you have an explicit step like a CLA, or an alternative solution.
We faced this problem early on in ZeroMQ, that asking contributors to take this extra step increased the work for maintainers (to check, is this the first time person X contributes, and have they made a CLA?) It also scared off contributors from businesses, where this often took approval (which took time and was often denied).
Our first solution in ZeroMQ was to ask contributors to explicitly state, "I hereby license this patch under MIT," which let us safely merge it into our LGPL codebase. Yet, again, another extra step and again, needs corporate approval.
Our current solution is I think more elegant and is one of the arguments I've used in favor of a share-alike license (xGPL originally and MPLv2 more these days) in our projects.
That works as follows:
* When you fork a project ABC that uses, say, MPLv2, the fork is also licensed under MPLv2.
* When you modify the fork, with your patch, your derived work is now also always licensed under MPLv2. This is due to the share-alike aspect. If you use MIT, at this stage the derived work is (or rather, can be) standard copyright. Admittedly if you leave the license header in the source file, it remains MIT. Yet how many maintainers check the header of the inbound source file? Not many IMO.
* When you then send a patch from that inbound project, the patch is also licensed under MPLv2.
* Ergo there is no need for an explicit grant or transfer of copyright.
I wonder if other people have come to the same conclusion, or if there are flaws in my reasoning.
It also seems to have some kind of threshold for code size, because for small contributions, it says that CLA was not required.
You can see it in action from users' perspective in pretty much any repo under https://github.com/Microsoft/, if you search for "MSBOT" in pull requests. E.g.:
https://github.com/Microsoft/PTVS/pulls?page=1&q=is%3Apr+MSB...
(note the labels)
When it comes to patents, MIT is a closed source proprietary license, while Apache 2.0 and GPL are open source and free software. All these companies spewing bs about how open MIT is bugs me to no end.
" If that implication is valid, it would also apply to releasing the same program under a noncopyleft free software license, such as the X11 license. That also permits such embedding. So either we have to conclude that it's wrong to release anything under the X11 license -- a conclusion I find unacceptably extreme -- or reject this implication. Using a noncopyleft license is weak, and usually an inferior choice, but it's not wrong.
In other words, selling exceptions permits some embedding in proprietary software, and the X11 license permits even more embedding. If this doesn't make the X11 license unacceptable, it doesn't make selling exceptions unacceptable "
It seems everyone except you, including the father of copyleft, agrees that the MIT license is a free and open source license.
Seems pretty close source friendly to me.
PTVS is licensed under Apache 2.0.
And it actually makes my point about the MIT license, it's inadequate for patents.
According to these links, they will probably work in an actual case. They can be revoked at any time, making them inapplicable to future patent use which was not already going on for some period of time.
http://en.swpat.org/wiki/Equitable_defence, http://en.swpat.org/wiki/Patent_promises
Definitely not anywhere near as binding as the MIT license, but it's not a good comparison anyways, MIT addresses only covers only copyright and patent law is a very different and separate area of law.
That's because all this copyright stuff is needed only for things that can be protected by copyright in the first place. One of the elements required is creativity of the work and if you only make a trivial change, e.g. Adding an obvious make file rule or adding a file to a project, that's not creative (there's just one obvious way to do it), so not protected, so not needing a CLA.
FWIW, the Apache license contains a section dedicated to that (5. Submission of Contributions): http://www.apache.org/licenses/LICENSE-2.0
Unfortunately, it doesn't work the way you've hoped. Although there are some licenses (e.g., Apache) that purport to apply automatically to new code submitted to the licensed codebase, the MPL doesn't make that claim, and such clauses are legally dubious anyway.
So just because I write some code that can be applied as a patch to your MPL-licensed codebase, my code is not automatically subject to the MPL. By default, I hold the copyright, with all rights reserved, and the MPL license on your code does nothing to change that. You still need explicit agreeement from me to place my code under a compatible license.
Github, Gitlab, et al., should really put a checkbox on pull requests that says, "I hereby license this code under $REPO_LICENSE."
And it's fairly clear that new files are new works. So, really, in all cases, unless you're getting an explicit statement from contributors that they have placed their contributions under the relevant license, there will be a a lot of uncertainty about whether they really have been—particularly if the contributor (or his or her employer) later challenges your claim.
That's why Github and other platforms for projects on the pull-request model should really build explicit consent to licensing into the process.
For a project using the MPLv2, new files added to the project would include the following header at the top:
> This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
Wouldn't that cover this?
The case law on what constitutes a new, derived work is not at all well developed in the context of software. But looking at analogues from other media—and that's what the law does—it is easy to imagine that a very substantial refactor, touching basically every line, or a less substantial refactor with substantial additions, might qualify as a new, separately copyrightable work.
The claims of copyleft are almost entirely untested in court, and it's very likely that many of them will prove empty if they're ever challenged. Indeed, many of copyleft's claims, those which place obligations on users and contributors, are more TOS-style claims than claims that look like ordinary "reserved rights" under copyright law, and therefore presumably have a legal basis of enforcement in contract law, not in copyright law.
Explicit agreement by contributors to be bound by a license, however, covers most bases, whether the license is interpreted as a license per se, pursuant to copyright law, or whether it's ibstead interpreted as a contract under contract law (or both).
It's not much of an obstacle really, just whenever someone submits a PR for the first time, say "I'll look at your code and comment anything that may need improvements. Also, you have to agree to these conditions [link]."
Is this a suboptimal solution?
This is one of my biggest reasons for not working at Google/Facebook/etc. I really don't want to have to get management approval for every random PR I submit in my free time.
For people working at big companies, how do you handle this? Do you just stop contributing to open source?
Unless you signed a contract that specifically forbids you from contributing to open source / other software projects (why would you do that? what is the exact wording? is such clause even legal?), your free time is your own, to freelance or work for other employers.
Working on open source on your employer's time and money is a different thing, and asking for permission makes perfect sense there.
Employment contracts for developers in the US, particularly at big companies, are very broad and try to lay claim to any development work you do (regardless of whether it's in your "free time" or not). They often expressly forbid freelancing or open source work unless it is approved by the company.
In most European countries those type of clauses are anyway invalid, even if written in the contract, as the company doesn't have a say on how you are supposed to live your private life.
Doing freelancing is another matter.
https://github.com/berneout/berneout-pledge
It's still very much experimental, and very much open to feedback.
(And then we could collectively negotiate salary and equity stakes too hint hint)
Indeed. I'm trying to imagine a court saying "Well... there were damages, but they arose out of the software and not from the software, so therefore- oh, wait! The license actually includes arising "out of" the software as well as "from" the software, so I guess the limitation of liability stands. Case dismissed!"
...
> power and authority
Should that really be on the list? Power is the capability to do something, authority is the permission to do it. Sometimes power and authority are near synonyms, such as in frontier areas with little government, but generally in a functioning, civilized society they are quite distinct.
But even without getting into political debates which could get really nuanced, can't authority mean capability in this context? I'm not a native English speaker so I'm not sure, but I don't find it odd. It is also possible that these two words have different (Anglo-Saxon vs French) origin, as most of the examples listed, and that their original meaning was synonymous (of course, I'm far too lazy and tired to check that now).
At least we hope and pray that is the case.
"Arising from/out of X" implies that the claim was caused by X (here, the from/out of is redundant as you point out)
But "in connection with X" implies something more broader, merely that it has a nexus to X.
By joining the two, the drafter sends the signal that the intended scope is as broad as it can reasonably be. If it only said "arising from," some claims that only have a tenuous relationship to X do not fall within the scope. Parties may decide that they want the scope to be narrow, or they want to be be broad, and the language matters.
See also http://www.adamsdrafting.com/arising-out-of-or-related-to-no...
As the article points out, copies of MIT licensed code must include not only the copyright line but the whole damn license.
You'd still have to include the notice in any source distribution, but that's not really as onerous in my opinion, since you're already having to distribute all your source files, so what's just one more notice.
Of course, my projects normally use a language with a compiler that produces binaries. I'm not sure how this would apply to a language that keeps things in source form like javascript. Maybe webasm will become the new binary form? asm.js? minified javascript?
But neither MIT nor zlib require you to distribute any source files. With zlib it's pretty clear what's expected, but with MIT, I'm actually not sure what attribution if any is required in a binary-only distribution.
The way I've seen MIT interpreted most often is that you have to distribute the license and attribution even for binary only distribution, or distribution in binary form as part of a larger work.
But you're right the language does seem kind of vague on what "The Program" actually means.
http://webcache.googleusercontent.com/search?q=cache:https:/...
I've always wondered about the nuances around the different licenses, it's nice to get a non-lawyer guide to the MIT one.
Recently moved from GitHub pages to a VPS, for strict transport security and other goodies. Instant karma.
I also feel like it might be easier to explain a more legalese license like GPLv3, MPLv2 or Apachev2. Like the article explains, the MIT license doesn't use the "language of the law" and uses more common language and language familiar to academics and programmers. A license written with more lawyer-oriented langauge, actually using the same wording as the original laws use, might be much easier for a lawyer like Mr. Mitchell to explain. I'm thinking it's an explicit vs implicit type situation, where even though some licenses are longer they define more things explicity, which means the explanation doesn't have to fill in as many gaps.
There are also plenty of simpler licenses that would be great for an explanation. And as part of a series, the author could assume that you are familiar with his MIT license explanation so as to not repeat the same things. Other good candidates I'm thinking would be the BSD licenses, the ISC license, the zlib license, maybe even Apache v2.
If you're interested in this kind of thing, I _highly_ recommend Meeker's, Rosen's, and St. Laurent's books.
St. Laurent's, from O'Reilly, might be my least favorite of those three, but it's the closest to the line-by-line style.
Meeker's coverage of GPL issues is second to none.
Rosen's the best general introduction. Very approachable. Hits some fundamental concepts.
The OS software I write is for the good of everybody, not just its own popularity or the OS community. I'm fine with all uses of it, in whole or in part, whether or not I'm credited. The license reproduction requirement therefore feels like unnecessary noise, and I'd like to think that courts are sane enough that the warranty disclaimer is unnecessary too - is there any real court case where somebody has been sued for a defect in free, OS software, without an explicit warranty, and lost?
There's also provisions (or implications thereof) that can protect the community around your project, like how the Apache license includes a clause that specifies that contributions back to the project are assumed to be under the Apache license by default.
Or something like that.
A second issue would be one the author of the article seems worried about, which is that without a warranty-free clause people might sue you for bugs in the code. If you're distributing your code, with a line like "free for everybody to use," there may or may not be implicit quality guarantees, according to the article.
1. Use a proper license (drafted by lawyers).
2. Include the license information in every source file.
3. Reference the license in the documentation / metadata.
Now, is this overly cautious? Maybe. But I think that following what an actual legal team's recommendation is is much more preferable to doing anything else.Not to mention that company lawyers will be very worried about code under a license as brief as the one you wrote (especially since it was not written by a lawyer). So just use CC-0 or something and call it a day if you really don't care -- it is never a good idea to write your own license and it will actually result in less people using your code because they cannot be sure it would be interpreted as a free software license.
See the explanation for CC0: https://creativecommons.org/share-your-work/public-domain/cc...
One obvious example is that your one-liner doesn't specify that your code has no warranty so someone can sue you if it doesn't work as advertised.
http://www.kylheku.com/cgit/txr/tree/METALICENSE
http://www.kylheku.com/cgit/txr/tree/LICENSE
The main problem is that the original says that both the use and redistribution of the software are permitted provided that the "following conditions are met", which is followed by two numbered conditions, 1 and 2. But the two conditions do not govern use at all; they are purely about redistribution! Rather, the intended legal situation is that use of the software means that the user agrees to the liability and warranty disclaimer (which is not a condition). But the BSD license neglects to say that at all; it says use is subject to the conditions (just that 1 and 2), not to the disclaimer.
I'm no lawyer either, but I believe that clauses such as "use of this software constitutes agreement to" change its nature from a license grant to a contract.
I have no idea what the practical difference could be, but I don't want to find out, either.
Additionally, making changes in licenses makes it harder to reuse code. The license may be incompatible or it may just run afoul of procedures in larger organizations who sometimes have whitelists of approved licenses.
I have thought about this potential issue, and concluded that it is quite obvious that the text effectively says "Use of this software constitutes agreement with the fact that it is not a contract, as spelled out in the disclaimer, which clearly asserts the non-existence of anything resembling contractual obligations."
(Agreement with the fact that it's not a contract is not itself a contractual obligation.)
[EDIT]
Ah, okay, wait. Here is another way of looking at it. We have a certain piece of text (the disclaimer) which we hope is somehow in legal force.
Either it is in force when someone in a given jurisdiction uses the software, or else it isn't. Or maybe some of it is in force. Whatever.
Whether or not it is in force or to what extent doesn't depend on whether the user agrees with it; it depends rather on the laws of that land.
Therefore, use doesn't have to be conditional on it; the license doesn't have to assert "if you don't agree with the disclaimer the license grant is off the table".
If the user doesn't agree with the disclaimers and goes ahead and uses, we would like the license grant to still be on the table (which is, in fact, neither here nor there, this being free software) but we would like the disclaimers to be in force anyway.
In that case, I might as well just go back to the original BSD license then.
The difference is that I'm covered, liability wise, better than someone just using the original BSD license, which has a possible interpretation that it allows the use of the software without the user agreeing to the disclaimers, since the license doesn't appear to require acceptance of the disclaimer.
From the developer's POV, that's the only part of a BSD-like license that actually matters. You've already given away the code, and allowed it to be used in proprietary code, so you're not going to be harmed by anyone stealing anything from you. At best, your code could be plagiarized: copied in source code form without you being credited, which isn't very significant. The one way you can be harmed, as in financially, is that someone wants to sue you because of some alleged bug in your code having caused some alleged loss.
By the way, here is how we can be certain that in the BSD license, the disclaimer is not one of the conditions which require agreement. It's because the second condition says: ".. must reproduce the above copyright notice, this list of conditions and the following disclaimer ...". I.e. the following disclaimer is clearly distinct from the conditions, and not one of them. Since it is not one of the conditions, it is not a condition! The license might effectively not be conditional on the disclaimer.
In contrast, in the GPL v2, the two disclaimers are one of the numbered conditions (11 and 12). There is nevertheless a slight flaw in the GPL v2 I just noticed. It introduces the conditions like this: "The precise terms and conditions for copying, distribution and modification follow." But unless "copying" is construed as use, conditions clauses 11 and 12 are not related to copying, distribution and modification. These disclaimers apply purely to use. A bug in the program isn't going cause harm while you're copying, modifying or redistributing it.
In the past I've seen misinformation disseminated about the GPL like "you don't have to agree with it to use the software", which is complete nonsense; you agree with the disclaimers when you use the software.
It also, for some reason, reminds me of what Peter Thiel once said about physics PhDs: “Because they know fundamental things, they think they know everything.”
It's true, according to a recounting [1] by Oskar Morgenstern, one of two friends who were present at Gödel's citizenship examination to vouch for his good character (the other was Albert Einstein).
[1] https://robert.accettura.com/wp-content/uploads/2010/10/Morg...
But whatever... Good luck. It's not like these things are the result of decades of lawyers scrutinizing every word.
Oh, regarding your other objection, i. e. the two requirements actually not applying to use but only redistribution, that is just a bit of convoluted logic to make the text shorter. Logically, it's:
if (USING || REDISTRIBUTING || REDISTRIBUTING_BINARY) {
ALLOWED = GO_AHEAD
if(REDISTRIBUTING && !CONDITION_1) {
ALLOWED = NOPE
}
if(REDISTRIBUTING_BINARY && !CONDITION_1) {
ALLOWED = NOPE
}
}
1: http://lwn.net/Articles/61292/I don't see why anybody should take seriously the claim that doing something so simple that it can be done accidentally and without reading/listening/or communicating anything at all should constitute an agreement to anything whatsoever.
I wish people would stop telling me what I agree to and start telling me what they're willing to do if I violate their expectations, because that's what's actually intended by an EULA.
However, the validity of click-through agreements or implied agreement when you use something does seem valid. It's applied all over the place, so lawyers must have come up with it and have a rationale.
Would you extend your reasoning to a signature? You can sign something without reading it. Perhaps not accidentally, though.
I do now agree with you that simply using a program doesn't constitute agreement with its liability disclaimers, even if the license appears to require it as a grant condition. Or rather, that is probably irrelevant.
> start telling me what they're willing to do if I violate their expectations
This is not easy in the case of disclaimers. Ok, you're violating my expectations because you ran into some bug that cost you money and are suing me (whereas my expectations were that you would understand that the program is offered "as is"). Poor silly me! What do I do? Lose and pay up, I guess, if that disclaimer doesn't hold up.
So basically, why bother. There isn't anything you can add to a license to increase the strength of any liability or warranty disclaiming text. Adding text like "using the program constitutes agreement with the disclaimer" serves no purpose.
I made other changes, such as that for instance the license boxes in the Windows installer only have an "Acknowledge" button rather than "Agree". No mention is made anywhere that anyone has to agree to anything to use the software. A misleading diagnostic was also fixed in the program: if "txr --license" cannot find the LICENSE file it no longer falsely insinuates that the installation might be "unlicensed" (since there is no such licensing requirement that any copyright or license notice be present in executable images).
You've hit the nail right on the head there.
Anyway, I only made these changes July 2014. I saw only a slight concern from the Fedora people, then haven't heard anything about it. (Actually they were more concerned with the sub-licensed MPI library whose README says that it is in the public domain, yet there are some stray copyright notices with "all rights reserved" text in the files.)
"Here I am, using this program five years from now when, due to the licensing, <bad thing> happens."
What is <bad thing>?
For example, is it something you would suddenly like to do with the program, but are not permitted (yet would be if it used the original BSD license verbatim?)
I remember people mentioning another possible bug in BSD licenses: if you try to split hairs, and depending on the way you do it, it's questionable if the sentence before the enumerated conditions is part of those conditions or not. If not, that sentence needs not be distributed in copies, so it makes the whole thing meaningless.
But licensing isn't purely about copyright! (In the area of proprietary software, it's not even important; the vendor has all the rights and that is clear from the beginning.)
A license is not simply a copyright notice, even if it is on free software. (Though of course it includes one.)
When you give stuff away for free, you can still be liable for harm arising from it. This applies in ordinary situations, like giving your neighbor an old toaster you don't want, and it causing a fire.
So the use aspect of the license with the disclaimer is equally necessary to the rights-granting part.
> If you try to split hairs, and depending on the way you do it, it's questionable if the sentence before the enumerated conditions is part of those conditions or not.
You raise and excellent point, and I'm going to fix it. I can't see any reason why it should not say "... the above copyright notice, all the introductory text which follows, this list of conditions ...". Really, why isn't it simplified to "this entire license". The GPLv2 cheerfully does this, with the wording "... give any other recipients of the Program a copy of this License along with the Program." That puts an end to any hair splitting about possibly omitted parts.
But anyway, my point, in the above and in my other reply with the anecdotes, is that while you may be perfectly right from the stand point of common sense and logic, it may not translate to being legally right. Of course, I think you modifications are reasonable, but I have to agree with matt4077 – it creates problems and uncertainty for others, you're (I guess?) not a lawyer, and even if you were, they would still need to consult lawyers about it. It adds friction.
I also think there could be room for something similar about code (but I haven't had time to read aosabook.org yet, so maybe that is wheree I'll find it.)
A note on the Crockford joke:
I think it is on IBM, not the lawyers: I think he describes somewhere the fun of getting a payment from IBM followed by sending an additional license entitling IBM to use the software for evil.
Would love to see the author do one for the GPL. I realize the result would be quite a bit longer.
This article brought up a point I find very interesting. The MIT license (and a bunch of other licenses as well) are very US-oriented when it came to their writing, provisions, etc. I'd love to read a similar article exploring licenses like these from a, say, European point of view. Would the same constructs hold up in a German court, for example. What language is missing or superfluous?
They claim compatibility with GPL, BSD and LGPL and also that CeCILL was necessary for valid open source licenses in France. That made me raise eyebrows on many levels:
- Does it mean the GPL/BSD/LGPL is unenforceable in France?
- Does it mean the CeCILL is unenforceable in other countries?
- The CeCILL allows to relicense a work under a future revision of the license. I know some GPL projects do that, I personally am extremely suspicious of this possibility.
I raised these points but never got good answers from law specialists. The guys I could reach were specialized in "intellectual property valorization" and actually did not know anything about open source. They also made me realize in the french version of the law, the notion that copyright protects a source code is extremely disputable:
In France you can't patent or copyright an idea, and numbers and mathematical formulas are recognized as ideas. It is accepted that a computer algorithm is equivalent to a mathematical formula. Ergo, in a source code, you can't protect an algorithm but an implementation. That is, as I understood when pushing a bit more, variable names and whitespace structure are the only copyrightable things in a program.
My understanding is that an obfuscater or a code formatter would likely remove any copyright claim from a source code when it comes to french laws.
I wish we had an actually active Pirate Party or EFF to try push the limits over that nonsense.
- CC0 exists because in German (and other countries') laws the only way for something to become public domain is expiry of copyright. CC0 puts it in clearer legal terms that you wish to give up all rights you can give up and not make use of all others.
- German law added a "Linux-paragraph" that made it clear that if you grant usage rights to everyone, you can relinquish the right for "appropriate" payment, which added legal security. (Otherwise, if I perform work for you and you don't pay me, I could attempt to force you to pay a fair rate for my work, after the fact)
- other licenses might not be as well-tested, and I've seen code offered under "MIT license translated and adapted to German legal concepts" or things like that. Which of course doesn't exactly make it easier to use in other contexts...
b) Who defines what Evil is? What if the author sues you on the grounds that you're using their software for a perfectly legal activity, the morality of which is widely accepted by the general public, but which they personally disagree with? For example, many authors who have written these types of licences are pacifists who disagree with the actions of Western military forces. Are said military applications "Evil"?
Thanks!
Thanks!
I'm fairly certain the GPL is still more popular.
Lets suggest following criteria for a survey:
1#, no duplicates. A survey with duplicate has no meaning. Github data in the blog post do not exclude dubplicates.
2#, no empty projects. A project with no data in it is not actually a project. The Github data do not exclude such projects.
3#, only project with code in them. A lot of github projects is text collaboration, like party planning, discussion around the latests online drama, and so on. Github data do not exclude those.
4#, only project with running code that is useful for at least 1 person. Random data, incomplete or abandon attempts is not actually "a software project". Github data do not attempt to run projects, and very much do not limit its data storage to only code that works.
To my knowledge, only one license survey exist that passes those criteria, and that one was based on the curated repository of Debian. The study showed GPL to be heavily favored (80%), but the study concluded that more such studies (and discussion on research methodology) is highly needed.
% rpm -qai | awk '$1 == "License" { print $3 }' | sort | uniq -c | sort -nr | head -n10
1248 LPPL-1.0
558 GPL-2.0+
301 MIT
293 LGPL-2.1+
221 BSD-3-Clause
138 GPL-2.0
131 GPL-3.0+
115 SUSE-Public-Domain
79 Artistic-1.0
41 Apache-2.0
And actually I haven't counted dual-licensing. Here's an even better script: % rpm -qai | awk '$1 == "License" { print $3 }' | grep GPL | wc -l
1316
% rpm -qai | awk '$1 == "License" { print $3 }' | grep MIT | wc -l
302MIT is loved by business, that can take the code from others, packaged it with a new shinny face, sell it and don't return anything back.
But one discovers who they are when their customers have problems.
Incidentally, there are at least three GPL licenses, plus hackneyed variations. Not all permit "upgrading" to the latest GPL from FSF.
No dig on GPL. Important license. Keeps plenty of lawyers busy ;-P