|
|
|
|
|
by fotcorn
967 days ago
|
|
The Apache 2 license is incompatible with GPL2, you cannot have code under those two licenses in the same project. So they dual licenses it under MIT, which is compatible with GPL2. The Rust project has the same problem, it's also dual-licensed under Apache2 + MIT. You want Apache 2 because of the explicit patent grant, but at the same time you also want to allow GPL2 projects to use your code. |
|
In practice, the fact that MPL2 is not as permissive as Apache 2 or MIT and has copyleft-like reciprocal terms is not a problem, because it's a file-based license, and few (if any) developers tend to be interested in changing the source files for the upstream project, and those who are are usually people doing so because they're in the process of trying to submit a fix upstream, anyway. For the fraction of a fraction of a minority of folks for whom it still would be a problem, it's as simple as the upstream project either declaring Apache 2 as a compatible Secondary License or just saying that they won't enforce MPL2's reciprocal clauses against downstream folks who are using the project in a way that is permitted by Apache 2.
MPL2 is an extremely underused and underappreciated license.