4 ms·
Note that this release (9.x) marks the first to be no longer available under the original permissive NCSA (BSD-like) LLVM license, going forward the LLVM projec
by brynet 7y ago
Note that this release (9.x) marks the first to be no longer available under the original permissive NCSA (BSD-like) LLVM license, going forward the LLVM project has moved to an "Apache 2.0 with LLVM Exceptions" for everything. And not just the compiler itself, but also sub-projects like the supporting libc++/libc++abi standard libraries. This change only happened due to corporate pressure, and was done without considering the larger impact towards the open source community.
This will undoubtedly effect many projects and companies alike going forward, but notably the OpenBSD project can no longer merge in new changes, which will ship with 8.0.1 later this year in 6.6. The Apache 2.0 license is not considered permissive enough to be included in the base system of OpenBSD, it muddies the line between Copyright law and US Contract law; adding additional restrictions related to patents that may terminate rights.
https://lists.llvm.org/pipermail/llvm-dev/2017-April/112300.html https://lists.llvm.org/pipermail/llvm-dev/2017-April/112300....
https://www.openbsd.org/policy.html https://www.openbsd.org/policy.html
It is very unfortunate that the LLVM project has ignored the concerns expressed by developers of an open source operating system project that have been eagerly adopting a clang based toolchain, across many platforms (arm64/armv7/i386/amd64/octeon/..) by default, and has been working on new innovative security mitigations (RETGUARD, ROPGadgetFixup framework, register allocator rearranging) along the way.
I will take this opportunity to ask, if you're a current LLVM developer/contributor, please consider making your changes also available under the terms of the original permissive license. For example, explicitly stating publically as such when mailing patchsets or pull requests. This would save having to privately ask permission to backport changes on case-by-case basis.
https://github.com/llvm/llvm-project/blob/release/8.x/clang/LICENSE.TXT https://github.com/llvm/llvm-project/blob/release/8.x/clang/...
- jcranmer 7y ago> This change only happened due to corporate pressure, and was done without considering the impact towards the open source community. FWIW, it's worth noting that only OpenBSD has this stance, and it was brought up a few times on the mailing list. The general summary is that "every lawyer we've had look into this issue has said that OpenBSD's fears about the patent licensing clauses are FUD, and OpenBSD has provided no legal opinions to back its claims up."
- mlindner 7y agoThanks, can you give some links to that discussion?
- favorited 7y agoIt was, as you might guess, a series of very long discussions over several years: Initial RFC: https://lists.llvm.org/pipermail/llvm-dev/2015-October/091536.html https://lists.llvm.org/pipermail/llvm-dev/2015-October/09153... RFC 2: http://lists.llvm.org/pipermail/llvm-dev/2016-September/104778.html http://lists.llvm.org/pipermail/llvm-dev/2016-September/1047... RFC 3: http://lists.llvm.org/pipermail/llvm-dev/2017-April/112142.html http://lists.llvm.org/pipermail/llvm-dev/2017-April/112142.h... Update: http://lists.llvm.org/pipermail/llvm-dev/2018-October/126991.html http://lists.llvm.org/pipermail/llvm-dev/2018-October/126991... OpenBSD objection subthread: http://lists.llvm.org/pipermail/llvm-dev/2017-April/112300.html http://lists.llvm.org/pipermail/llvm-dev/2017-April/112300.h...
- riscy 7y agoDoesn't the "LLVM Exceptions" part of the license take care of the patent issue you mention? "[...] if a court of competent jurisdiction determines that the patent provision (Section 3), [...] conflicts with the conditions of the GPLv2, you may retroactively and prospectively choose to deem waived or otherwise exclude such Section(s) of the License [...]" Source: https://github.com/llvm/llvm-project/blob/master/llvm/LICENSE.TXT#L208 https://github.com/llvm/llvm-project/blob/master/llvm/LICENS...
- simcop2387 7y agoIt wouldn't cover anything from OpenBSD, if as excerpted by you, it only covers exceptions related to GPLv2 as I don't believe OpenBSD considers GPLv2 to be acceptable either.
- brynet 7y ago> I don't believe OpenBSD considers GPLv2 to be acceptable either. The GPLv3 is not acceptable in base at all, GPLv2 is unacceptable for new code, but we still have a few examples in base, very few.
- simcop2387 7y agoAh that'd probably be why I was thinking it was any code, small difference that's easy to forget about.
- riscy 7y agoMy reading of the LLVM Exceptions statement is that if a judge understands the the Apache 2.0 patent provision section (and others) to not be the same as GPLv2, then the section is waived. The preamble of the GPLv2 summarizes its stance on patents in lay terms that seem to be compatible with what OpenBSD wants: "We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all." Source: https://opensource.org/licenses/gpl-2.0.php https://opensource.org/licenses/gpl-2.0.php (I'm not a lawyer)
- wodenokoto 7y agoAs someone completely out of the loop: Are openBSD switching compiler? Are they doing a fork from the 8 version? How was code relicensed in the first place?
- pnako 7y agoFor them to switch (which is a lot of work), there would have to be an alternative to switch to. So it looks like they'll keep using 8 in the base system, i.e. maintain a de-facto fork (and probably provide 9 through ports).
- yjftsjthsd-h 7y agoThis would particularly make sense since it's effectively what they did with GCC for years.
- hwj 7y agoWhat does that mean for compilers that use LLVM underneath? (I'm not a lawyer).