Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases now! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon

LLVM will be relicensing under Apache 2.0 start of next year

Save for later
  • 3 min read
  • 18 Oct 2018

article-image

After efforts since last year, LLVM, the set of compiler building tools is closer towards an Apache 2.0 license. Currently, the project has its own open source licence created by the LLVM team. This is a move to go forward with Apache 2.0 based on the mailing list discussions.

Why the shift to Apache 2.0?


The current licence is a bit vague and was not very welcoming to contributors and had some patent issues. Hence, they decided to shift to the industry standard Apache 2.0. The new licence was drafted by Heather Meeker, the same lawyer who worked on the Commons Clause. The goals of the relicensing as listed on their website are:

  • 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.

Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at $19.99/month. Cancel anytime

The plan to shift LLVM to Apache 2.0


The relicence is not just Apache 2.0, the license header reads “Apache License v2.0 with LLVM Exceptions”. The exceptions are related to compiling source code. To know more about the exceptions follow the mailing list. The team plans to install the new license and the developer policy that references the new and old licenses. At this point, all subsequent contributions will be under both these licenses. They have a two-fold plan to ensure the contributors are aware.

  1. They’re going to ask many active contributors (both enterprises and individuals) to explicitly sign an agreement to relicense their contributions. Signing will make the change clear and known while also covering historical contributions.
  2. For any other contributors, their commit access will be revoked until the LLVM organization can confirm that they are covered by one of the agreements.

The agreements


For the plan to work, both individuals and companies need to sign an agreement to relicense. They have built a process for both companies and individuals.

Individuals


Individuals will have to fill out a form with the necessary information like email addresses, potential employers, etc. to effectively relicense your contributions. The form contains a link to a DocuSign agreement to relicense any of your individual contributions under the new license.

Signing the document will make things easier as it will avoid confusion in contributions and if it is covered by some company. The form and agreement is available on Google forms.

Companies


There is a DocuSign agreement for companies too. Some companies like Argonne National Laboratory and Google have already signed the agreement.

There will be no explicit copyright notice as they don’t feel it is worthwhile. The current planned timeline is to install the new developer policy and the new license after LLVM 8.0 release in January 2019. For more details, you can read the mail.

A libre GPU effort based on RISC-V, Rust, LLVM and Vulkan by the developer of an earth-friendly computer

LLVM 7.0.0 released with improved optimization and new tools for monitoring

OpenMP, libc++, and libc++abi, are now part of llvm-toolchain package