← Back to context

Comment by nostrademons

10 years ago

(Apache2 has a number of explicit clauses that make it preferable for open-sourcing commercial software. For example, it automatically grants a patent license for any patents used by the software, but then terminates that license if a licensee sues over that software only [as opposed to React's original patent clause, which could be construed as terminating the license if you sue Facebook at all and got them into a lot of trouble], so that contributors can include patches covered under their patents without poisoning it for everyone. It also defines that all contributions are licensed under Apache2 as well, so that if you take patches and then incorporate them into your commercial software, the contributor can't turn around and sue you for them. And it's GPL3-compatible, which many other permissive licenses aren't.)

Great explanation. Allowing use of, but limiting effect on, patents is critical to get more OSS out of big, patent-loving companies. Let's them know they still have their power and profit while doing something altruistic. Or that helps them in the long-run (free labor) while accidentally being altruistic. Works for me either way. ;)

GPLv3 is Apache 2 compatible, which GPLv2 isn't. Most other permissive licenses are compatible with any GPL.

  • Most GPLv2 licensed software includes the clause "either version 2 of the License, or (at your option) any later version." Through this mechanism a lot of GPL licensed software becomes compatible with Apache 2.

    Also, replying to something a little higher in this thread, I wouldn't say that Apache 2 defines all contributions as Apache 2. That section of the license starts with the words "5. Submission of Contributions. Unless You explicitly state otherwise, ..."

    And so Apache 2 just becomes the assumed default license on contributions, but it's not at all forced or required that contributions come in under Apache 2.