MJ Ray wrote:
Subject to the terms and conditions of this License, Google hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this License) patent license for patents necessarily infringed by implementation (in whole or in part) of this specification. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the implementation of the specification constitutes direct or contributory patent infringement, then any patent licenses for the specification granted to You under this License shall terminate as of the date such litigation is filed.
This patent license is a reciprocal license, but is fairly limited in scope.
Would that be acceptable to free software projects?
No, I think - to call it free software, I would want to be able to use the patent-covered software "for any purpose" and not just "implementation of this specification" like in the above.
I think you might be misreading that slightly. The "patents necessarily infringed" bit is identifying those patents the license grant applies to - by being non-specific, you're covered by those patents they haven't yet gained. I don't see how that is saying "you can only get this license if the software you are using is implementing the specification", though I have seen licenses like that, such as Microsoft's Open Specification Promise:
"Microsoft irrevocably promises not to assert any Microsoft Necessary Claims against you for making, using, selling, offering for sale, importing or distributing any implementation to the extent it conforms to a Covered Specification (“Covered Implementation”)"
That, to me, is a totally different clause. Whether or not it is a restriction on use, I'm not sure - I don't think I agree with that - but I think that's the kind of clause you were talking about?
Generally, a catch-all clause like the above is preferable to enumerating the actual patents involved if the license is royalty free and worldwide, because it covers you completely. Patent enumeration is only better when you want to/have to avoid implementing the method.
Cheers,
Alex.