(no title)
PieterH | 9 years ago
"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.
int_19h|9 years ago
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)
rando832|9 years ago
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.
vsl|9 years ago
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.
teamhappy|9 years ago
FWIW, the Apache license contains a section dedicated to that (5. Submission of Contributions): http://www.apache.org/licenses/LICENSE-2.0
PieterH|9 years ago
pash|9 years ago
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."
snuxoll|9 years ago
unknown|9 years ago
[deleted]
unknown|9 years ago
[deleted]
ensignavenger|9 years ago
philip1209|9 years ago
https://cla-assistant.io/
semi-extrinsic|9 years ago
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?
PieterH|9 years ago
makomk|9 years ago
morgante|9 years ago
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?
Radim|9 years ago
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.
unknown|9 years ago
[deleted]
tbirdz|9 years ago
johncolanduoni|9 years ago
PieterH|9 years ago
kemitchell|9 years ago
https://github.com/berneout/berneout-pledge
It's still very much experimental, and very much open to feedback.
cloudjacker|9 years ago
(And then we could collectively negotiate salary and equity stakes too hint hint)