7

Apache License 2.0:

  1. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted.

The way I understand the license, if I contribute code that is using a patent I own, I am practically losing rights to this patent.

Effectively, anyone who wants to infringe my patent just downloads the project, and does not even have to use it. The user can use the patent in any proprietary software that is not using the open source project in any way, just by downloading it and keeping a record of the download.

This means you cannot contribute a patent to such project without losing all practical rights for the patent in the future, irrespective of that project. This comes from:

make, have made, use, offer to sell, sell, import, and otherwise transfer the Work

Effectively contributing patented software to this project, makes the patent open source for everyone, even for users who are not using the project in any way. The patent holder is giving up rights to use that patent in the future.

Is my interpretation correct?

3

The patent license in the Apache License 2 is very limited, so you do not lose all rights – although enforcing these rights gets more difficult. Let's take your quote apart in more detail.

What do you authorize via the patent license?

[…] patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work […]

The license is given for making, using, and transferring the Work in question. This license is bound to the Work, not to the users.

If someone uses your software but creates a separate work that depends on your patents, they would need a separate patent license from you. In practice this is unlikely to happen, because they could just use the Apache-2 licensed software instead – which allows use in proprietary software systems, under comparatively simple requirements like keeping notices intact.

The patent license also extends to derivative works. But whether a port to a different language would be a derivative or separate work is not always clear. A fairly direct translation would probably be derivative, an independent reimplementation likely not. This ultimately depends on your jurisdiction.

Which claims of your patent are you licensing?

[…] where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) […]

You are not licensing all claims of your patent, but only those that would be infringed by your contribution if you had not given this license. The result is that you can never inject a patent infringement for your own patents into an Apache-2 licensed project. This protects the project from malicious contributions or “submarine patents”. If other people make a contribution to the project where their contribution would depend on your patents, they cannot provide a patent license for that.

Let's say you have two patents A and B, or one patent with two claims A and B. You make a contribution that would infringe on A and therefore includes a patent license for A. Later, someone else makes a contribution that infringes on B. Can you enforce this patent infringement of B? Yes, you never issued a license for that, although it would certainly look weird.

What happens if you start patent litigation against a contributor?

You are allowed to enforce your patents, but this will terminate any patent license you received through the Apache-2 licensed software:

If You institute patent litigation against any entity […] alleging that the Work or a Contribution [constitutes] patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

In practice, if you need to use the software that you contributed to, you can't sue for patent violations in that software. So this does effectively weaken your patents. But again: this is about the Work, not about persons.

Let's assume you made a contribution with a license for your patent A, and another person made a contribution with a license for their patent B. A third person makes a contribution to the same software that infringes on any of your patents. If you sue, you lose the license for patent B that you received through the Apache 2 license. If you continue to use, distribute, or create derivative works of that software, you are risking to be sued yourself for violation of the patent B.

But if you contributed you are no worse off than with a software that you didn't contribute to. Let's assume an unrelated Apache-2 licensed software where someone made a contribution that infringes on your patent A, and someone made a contribution with a license for their patent B. Again, if you sue you lose the license through the Apache-2 license for patent B for use with that work. This doesn't affect any other licenses you may have for patent B, such as through an Apache-2 license for a different work.

When does it make sense to issue a patent license as part of an Apache 2 contribution?

If you want to unambiguously keep all rights to the patent you should not issue such a license. The patent grant in the Apache 2 license does make enforcement more difficult.

However, if you are more interested in encouraging use of one standard implementation of the patented technique, then this patent clause can discourage alternative implementations.

What should you consider when issuing a patent license as part of an Apache 2 contribution?

To avoid any confusion make it clear that you are issuing a patent license as part of this contribution, and which patent claim this contribution intends to license. It might make sense to include this information in a NOTICE file which all downstream users of that contribution must preserve.

  • thanks for the getting down to details. About this: "In practice this is unlikely to happen, because they could just use the Apache-2 licensed software instead" Let's assume they cannot use the licensed software for technical reasons, like language support on their system. Example: Apache licensed project in Ruby contains a patent. Someone writes a game in C which reimplements the patent in C. The projects do not share code, but reimplement the patent. Does a case like this (rewriting in another language) fall under "Transfer the work" or "alternative implementation"? – E TSZ Aug 22 '18 at 2:15
  • I prefer your interpretation to apsillers's, because as I read it the s3 patent grant doesn't apply to derivative works. I hope my tiny spelling and grammar fixes are acceptable - please revert them if not! – MadHatter Aug 22 '18 at 6:23
  • @ETSZ I updated the answer to discuss derivative works. Also, a very important section about the retaliation clause, which I forgot. Whether a port is a derivative or separate work mostly depends on the copyright laws in your jurisdiction. A fairly direct translation would probably still be covered by the patent license. A completely separate implementation would not. – amon Aug 22 '18 at 7:15
  • 1
    @MadHatter The Apache 2 unfortunately doesn't spell this out clearly, but the patent licensing status would be nonsensical if the patent license didn't extend to derivative works as well. E.g. consider a project to which I make a contribution with a patent license. Later, someone else makes an unrelated contribution to the same project, which creates a derivative work. Would the resulting project still be covered by my patent license? Hopefully, yes. Otherwise, any Apache-2 licensed project could have at most one patent license active at any time. – amon Aug 22 '18 at 7:20
  • I'm afraid I take the more restrictive reading, at least in my home jurisdiction: e.g. from Lord Bingham MR in Philips Electronique v. BSB [1995] EMLR 472 "for a term to be implied, the following conditions (which may overlap) must be satisfied: (1) it must be reasonable and equitable; (2) it must be necessary to give business efficacy to the contract, so that no term will be implied if the contract is effective without it; (3) it must be so obvious that ‘it goes without saying’; (4) it must be capable of clear expression; (5) it must not contradict any express term of the contract"... – MadHatter Aug 22 '18 at 7:39
1

Preface: I'm no longer sure this answer is correct, since the patent license terms only apply to the specific "Work" you are offering, and do not include the right to "modify" or similar. However, this also has the strange consequence that only one person's patent license could apply to an Apache license at a time, assuming that a derivative loses the patent license issued for use of the original. The answer below assumes that the patent license does apply to derivatives, but I'm not sure that's the correct reading.

I am not a lawyer, but my understanding is the same as yours:

  1. The point of this section is that a patent holder who licenses their copyrighted work under the Apache License 2.0 also grants a corresponding patent license to any patented system of theirs that their copyrighted work employs. (If the author happens to hold patents that are unrelated to the copyrighted work being licensed under the Apache License 2.0, those patents are not licensed.)

  2. Since open source licenses allow use of compatibly-licensed material in unrelated projects, your patented system could end up in a completely unrelated project, and your patent license would similarly apply in this new context.

Insofar as someone makes any copyrighted work derived your Apache-licensed work, you have granted them the right to use your patents expressed in that work. (I suppose it's possible for someone to go through the pain of a clean-room reimplementation of your software to make a copyrighted work that is unambiguously not a derivative, in order to masochistically deny themselves access to your patent grant, but there's no sensible reason to do that!)

Note that only people who receive that work under the Apache 2.0 license receive such a patent license. If you make an Apache 2.0 licensed work for a client, for example, you must grant a patent license (as necessary) to your client, but neither you nor your client need to distribute the software to anyone else.

Finally, since Apache License 2.0 is a permissive (non-copyleft) license, you are never obligated to release code under the Apache License, even if your project makes use of other code under the Apache License. If you do not want you patent(s) licensed in this way, fork the Apache-licensed project and choose a different license for your own contributions. If you do so, ensure you make it very clear which parts are not licensed under the Apache License 2.0, so that recipients do not mistakenly believe that your patented implementation is Apache-licensed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.