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

David Chisnall via llvm-dev llvm-dev at lists.llvm.org
Fri Apr 28 03:16:03 PDT 2017

On 27 Apr 2017, at 22:43, Rafael Espíndola via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> Sorry for the delay, I was on vacations.
> Ed, what is the FreeBSD position about the apache version 2 in base? A
> quick search only shows it in contrib/ and crypto/openssl.

It’s not something that we’re enthusiastic about, but something that we tolerate.  I don’t have personal objections to it (and at work we use an Apache 2-derived license for a lot of stuff we release), but a few other FreeBSD contributors have told me that it will decrease their interest in working on LLVM. 

> If I understand the issue, we can achieve the desired results with a
> license change that handles patents or by keeping a minimal license
> for runtime and llvm, but requiring a contributor agreement in the
> project before we accept changes. Am I correct?

(IANAL) I believe that the separate copyright and patent license makes it hard for one to revoke the other, so a company that starts suing others for infringing their patents would lose their patent license, but not their copyright license for LLVM and so would be free distribute LLVM while they sue non-patent-owning LLVM distributors without fear of a countersuit (until they annoy a company that does hold LLVM patents).

> Not requiring a contributor agreement is awesome. It makes it really
> easy for people to join the project or send one time fixes. It also
> saves committers from having to check some database before committing
> a patch by someone else.

Note that other projects have handled this quite easily.  Microsoft, for example, makes it easy to associate a GitHub identity with a CLA signatory and has a bot that tags all pull requests with either ‘CLA required’ or ‘CLA completed’, so committers know not to merge pull requests that don’t have the correct tag.

I believe that the difficulties were more on the other side - getting certain companies to agree to sign a CLA (it’s unidirectional: they agree not to sue, but distributors that don’t contribute don’t agree not to sue them, whereas the proposed license means that if you sue over a patent infringed by LLVM then you are blocked from distributing LLVM - not that I expect this to make a difference as long as it’s easy for NPEs to sue for patent infringement, as it’s easy to sell a patent to a new NPE in exchange for a perpetual license and 95% of the proceeds from any other licenses.  The NPE then sues everyone, but doesn’t distribute LLVM).


More information about the llvm-dev mailing list