[llvm-dev] RFC: Improving license & patent issues in the LLVM community

Daniel Berlin via llvm-dev llvm-dev at lists.llvm.org
Wed Oct 21 08:01:30 PDT 2015

> - Contributor A submits something that infringes a patent owned by A.  Even if this is not covered by estoppel, in the US at least, you can’t claim damages that occurred between being aware of the infringement and sending the C&D notice.

I'm not sure why you believe this :-)

In fact, the company i work for  has been sued, and lost, in the past,
for many millions of dollars for patents owned by people who
contributed them, in code, to us, and then later claimed exactly this.
This is one of the things that forced us to move to a strict CLA policy.

>  for has been sued in the past  It’s hard to argue that you weren’t aware that code that you contributed infringed a patent that you owned convincingly,

Except i have empirical evidence that it happens all the time .... ;-)

> so this case would be handled by reverting the patch on receiving the C&D and kicking contributor > A out of the project.

With no real offense meant: Whatever lawyer told you this is what
would happen is having some serious delusions :)

> - Contributor A submits something that infringes a patent owned by NPE B.  In this case, no license or CLA will help.  Anyone who has distributed LLVM is a target for a lawsuit and it’s very messy and annoying, but not addressed by ASL2 or a CLA.

Sure, yes.

> - Contributor A submits something that infringes a patent owned by contributor B.  The terms of the ASL2 are a bit interesting there. To take a hypothetical example, if IBM has some code in LLVM (I think that have quite a bit in the PowerPC back end now) and I decide to implement RCU with all of the go-faster stripes that are still patented in libSupport, then they can sue me, but in doing so they would immediately lose the rights to any other patents that entities own in LLVM, so now I have neatly sidestepped their [L]GPL-only patent grant for these.  This isn’t totally hypothetical, by the way: there are some folks in your employer’s CoreOS team who would be very happy to see this happen...
> It seems as if the proposed change only protects us from the last case, by providing an explicit termination clause.  A separate patent license that contained a similar termination clause would have a similar outcome.  It would also be easier to deploy, as the only people who would need to agree to it retroactively are those that own any patents, which I believe is a fairly small subset of LLVM contributors.  Even then, the choice between allowing third parties to contribute code that infringes your patents, or losing the rights to distribute an important piece of software for your product

This is mostly right, with one important caveat:On termination you
only lose patent rights, not copyright rights. If there are no patent
rights that interest you, you can still distribute it willy-nilly
without fear.  Given the larger cross-licensing schemes that often
exist between large companies, this may, in fact, be the case.

(FWIW: i'm personally in favor of terminating all rights, but such a
license is not GPLv2 or v3 compatible, sadly)

>  is what made a lot of companies unwilling to adopt GPLv3, so I’d imagine some push-back.
Flat out:
Companies who want to retain the right to sue people over LLVM
probably are not companies you want in the community.

More information about the llvm-dev mailing list