Search this Site
LLVM Relicensing Effort
The LLVM relicensing effort aims to modernize the LLVM Licensing structure and developer policy. The high level goals of the relicensing effort are to:
This project involves sensitive legal issues and has been a multi-year effort. The primary public discussions have included these mailing list threads:
Beyond that, these topics have also been discussed by, and include contributions from, over a dozen lawyers and key LLVM contributors, and have been discussed informally with hundreds of people in the LLVM Developer Meeting BoFs. The effort has been overseen by Heather Meeker, who is the LLVM Foundation’s legal counsel. If you have questions or concerns about the content of this document, please email the llvm-dev mailing list or the LLVM Foundation Board depending on the sensitivity of your email.
- Encourage ongoing contributions to LLVM by preserving a low barrier to entry for contributors.
- Protect users of LLVM code by providing explicit patent protection in the license.
- Protect contributors to the LLVM project by explicitly scoping their patent contributions with this license.
- Eliminate the schism between runtime libraries and the rest of the compiler that makes it difficult to move code between them.
- Ensure that LLVM runtime libraries may be used by other open source and proprietary compilers.
Status and Documents
At this point, we have achieved community consensus on:
That said, we still need to:
- Finalize the new top-of-file copyright header block.
- Finalize the process and forms used for corporations and individuals to relicense past contributions under the new license structure. We currently believe that the corporate relicensing form will be a paper form, and that the individual contributor agreement will be a click-through web form.
- Decide a date upon which all new contributions will be under both the new and old license agreements.
- Decide upon and enact a process for getting 100% of existing code relicensed under the new agreement (using the aforementioned forms) or rewrite/remove the code.
- Drop the old license when the entire codebase is covered under the new license.
Next Steps and Schedule Estimate
Our goal is to openly and transparently communicate our process, including the expected next steps and a timeframe that can be used for planning. That said, we are dealing with a lot of unknowns, so while we believe the following schedule is achievable, this is not a guarantee:
When these steps are done, all new contributions will be under the new license structure, and we expect that a significant amount of prior contributions will be relicensed under the new structure. At that point, we will scope and define the process for chasing down the long tail of prior contributions that are not covered and resolve them on a case-by-case basis.
- ~May 2018: We aim to have the corporate agreement (to relicense prior contributions) approved by the LLVM Foundation board and LLVM legal counsel, and will post it on this web page. At this point, we will ask corporate contributors (e.g. through email to llvm-dev) to bring it to their company legal team. We aim to get sign-off from as many companies as possible starting at this point.
- ~June 2018: We aim to have the individual license agreement approved, and have the web interface for it implemented prior to the LLVM 7.0 release. We will add details about that to this web page, release notes, and will solicit individual contributors to relicense their prior contributions (e.g. on llvm-dev).
- ~January 2019: Coincident with the final release branch date for LLVM 8.0, we will install the new developer policy. To ensure that all contributors have agreed to the terms of the new developer policy, we will recind commit access from all contributors who are not covered by a corporate or individual agreement at that point. We will develop a policy for affected contributors to regain commit access.