In the early days of the GPLv3 revision process, compatibility with the Apache License 2.0 was given as one of many motivations for the update. At the 5th GPLv3 conference, Richard Stallman was recorded saying:
GPL version 3 is designed to be compatible with two important licenses: the Apache license and the Eclipse license. It will be possible to merge code under those licenses into GPL3 covered software once the GPL version 3 is really out.
I was suprised and disappointed to find that goal abandoned in the rationale document for the third draft (page 33):
We regret that we will not achieve compatibility of the Apache License, Version 2.0, with GPLv3, despite what we had previously promised.
Before version 3 of the GPL, the contentious point was the patent termination terms in the Apache License. That is no longer the case. The GPLv3 includes patent termination terms that are differently worded, but similar enough to be compatible. The contentious point now is an obscure detail of the “offer of warranty”.
Here’s the relevant text from the Apache License in section 9:
While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
Boiling it down, it says:
a) a company can offer legal protection (warranty/indemnity/liability) for Apache licensed software
b) they can charge for the legal protection
c) but, when they take on the burden of legal protection they can’t also put that burden on the developers
That last point is a restatement of the standard “Disclaimer of Warranty” that appears in pretty much every open source/free software license, in various different forms. Again, from the Apache License:
Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
The corresponding terms from the latest draft of the GPLv3 in section 4, are:
…you may offer support or warranty protection for a fee.
Like the Apache License, a company can offer legal protection for GPLv3 licensed software, and they can charge for the legal protection. And then in section 15:
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND… IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES…
Like the Apache License, the developers will not take the burden of offering legal protection (warranty/liability) for the software. The terms between the two are differently worded, but basically the same. And yet, this is the point of contention. The rationale document explains:
However, we overlooked another provision in the current Apache
license that, on its face, is incompatible with the GPL. Under section 9
of the Apache license, downstream redistributors must agree to indemnify
upstream licensors under certain conditions.
Is the FSF saying that when a downstream company takes on the legal burden to indemnify a piece of GPL software, they expect the developers to also take on that legal burden? Or, in the case where the FSF is the copyright holder, that they intend to take the legal burden of indemnification themselves? Somehow that seems unlikely, but they claim that the GPLv3 differs from the Apache License on exactly this point.
I give them the benefit of the doubt, but it sounds to me like the FSF really had to stretch to find some terms that might make the Apache License incompatible. I hope they’ll forget the past and reconsider.