[llvm-dev] Relicensing: Revised Developer Policy

Tom Stellard via llvm-dev llvm-dev at lists.llvm.org
Mon Aug 7 09:24:12 PDT 2017

On 08/07/2017 08:53 AM, Chris Lattner via llvm-dev wrote:
> Hi all,
> Now that we’ve settled on the license legalese to get to, we need to start the process of relicensing.  We’re still sorting through all of the details of what this will take, but the first step is clear: new contributions to LLVM will need to be under both the old license structure and the new one (until the old structure is completely phased out).  From a mechanical perspective, this is pretty simple, but I want to make sure that the community is aware of this and has time to digest and discuss any concerns.
> In order to spell out what this will look like, we’ve gone ahead and revised http://llvm.org/docs/DeveloperPolicy.html to reflect what the new structure will look like.  While the license text is the canonical truth, the DeveloperPolicy serves a few purposes: it explains to non-lawyers what the license means, provides rationale for the design, and deals with relicensing process topics.
> I’ve attached a draft of the revised document below.  Please take a look and let me know if anything should be further clarified or if you have any other questions and comments.  Thanks!
> -Chris
> Copyright, License, and Patents
> ===============================
> .. note::
>    This section deals with legal matters but does not provide legal advice.  We
>    are not lawyers --- please seek legal counsel from a licensed attorney.
> This section addresses the issues of copyright, license and patents for the LLVM
> project.  The copyright for the code is held by the contributors of
> the code.  The code is licensed under permissive `open source licensing terms`_,
> namely the Apache 2 license, which includes a copyright and `patent license`_.
> When you contribute code to the LLVM project, you license it under these terms.
> If you have questions or comments about these topics, please contact the
> `LLVM Developer's Mailing List <mailto:llvm-dev at lists.llvm.org>`_.  However,
> please realize that most compiler developers are not lawyers, and therefore you
> will not be getting official legal advice.
> Copyright
> ---------
> The LLVM project does not collect copyright assignments, which means that the
> copyright for the code in the project is held by the respective contributors.
> Because you (or your company)
> retain ownership of the code you contribute, you know it may only be used under
> the terms of the open source license you contributed it under: the license for
> your contributions cannot be changed in the future without your approval.
> Because the LLVM project does not require copyright assignments, changing the
> LLVM license requires tracking down the
> contributors to LLVM and getting them to agree that a license change is
> acceptable for their contributions.  We feel that a high burden for relicensing
> is good for the project, because contributors do not have to fear that their
> code will be used in a way with which they disagree.
> Relicensing
> -----------
> The last paragraph notwithstanding, the LLVM Project is in the middle of a large
> effort to change licenses, which aims to solve several problems:
> * The old licenses made it difficult to move code from (e.g.) the compiler to
>   runtime libraries, because runtime libraries used a different license from the
>   rest of the compiler.
> * Some contributions were not submitted to LLVM due to concerns that
>   the patent grant required by the project was overly broad.
> * The patent grant was unique to the LLVM Project, not written by a lawyer, and
>   was difficult to determine what was protection was provided (if any).
> The scope of relicensing is all code that is considered part of the LLVM
> project, including the main LLVM repository, runtime libraries (compiler_rt,
> OpenMP, etc), Polly, and all other subprojects.  There are a few exceptions:
> * Code imported from other projects (e.g. Google Test, Autoconf, etc) will
>   remain as it is.  This code isn't *developed* as part of the LLVM project, it
>   is *used* by LLVM.
> * Some subprojects are impractical or uninteresting to relicense (e.g. llvm-gcc
>   and dragonegg). These will be split off from the LLVM project (e.g. to
>   separate Github projects), allowing interested people to continue their
>   development elsewhere.
> To relicense LLVM, we will be seeking approval from all of the copyright holders
> of code in the repository, or potentially remove/rewrite code if we cannot.
> This is a large
> and challenging project which will take a significant amount of time to
> complete.  In the interim, **all contributions to the project will be made under
> the terms of both the new license and the legacy license scheme** (each of which
> is described below).  The exception to this is the legacy patent grant, which
> will not be required for new contributions.
> When all of the code in the project has been converted to the new license or
> removed, we will drop the requirement to contribute under the legacy license.
> This will achieve the goal of having
> a single standardized license for the entire codebase.
> If you are a prior contributor to LLVM and have not done so already, please do
> *TODO* to allow us to use your code. *Add a link to a separate page here, which
> is probably a click through web form or something like that.  Details to be
> determined later*.

I had to read this paragraph a few times before I realized that this was a TODO
message for the author of the policy, and there was nothing for me (a prior
contributor) to do yet.  I would change this to something like:
" In the future we will have a mechanism for prior contributors to re-license
their code ..."


More information about the llvm-dev mailing list