
Improving license and patent issues in the LLVM	community - protomyth
http://lists.llvm.org/pipermail/llvm-dev/2016-September/104778.html
======
bluejekyll
> \-- Exceptions to the Apache 2.0 License: --

I really like this and wanted this on my own projects rather than downgrading
to MIT. Personally I really like the strong patent guarantees in the Apache
2.0 license.

The question is, isn't this a new license? Should this be considered the
Apache 2.1 or Apache 2.c for compatible?

I'd like to reuse this license provision and drop My use of MIT.

~~~
valarauca1
This is actually isn't uncommon.

The GCC makes the similar exceptions. Libs/Snippets from peephole
optimizations are _technically_ covered by the compiler's license as they're
part of the compiler. So the output program is in a sense a derivative work.
This really hasn't been challenged in court, but you can see how this could
invoke a rather lengthy case if you say pissed off Peter Thiel.

To cover this the GCC's GPL license has exceptions to the GPLv3 for output
programs, or programs that use it's headers. You really can't argue the GCC
isn't licensed by the GPL. It merely has a handful of exceptions that are
specific to the legal oddity of a program who's copyright copyrights derived
works, and its sole purpose is to produce derived works.

The Linux Kernel has similar exceptions as syscall functions are inserted into
your program at load time. And really everything links against it's headers.

Makes sense the LLVM would do the same

~~~
paxcoder
GPLv3 has a framework for exceptions built-in. Apache 2.0 supposes no
exceptions. The question is why FSF/SFLC thought it insufficient to simply
enumerate the exceptions alongside the license.

~~~
DannyBee
The exceptions provide gpl2 compatibility, gplv3 is already compatible with
Apache 2. As for why nobody did this before, i suspect the fsf wanted folks to
move to gplv3, and neither side really wanted to do something like this. There
are disadvantages to doing it like this, but it was felt this was the best we
could really do.

Remember also that both those organizations have very different goals.

~~~
paxcoder
ASLv2 is compatible with GPLv3 (works under ASLv2 can be inorporated into
GPLv3), but not vice versa. This is because GPL has (arguably useful)
restrictions which ASL does not. A common goal of ASLv2 and GPLv3 is the
restriction on patents, which makes them both incompatible with GPLv2. This is
an important difference which makes GPLv3 a superior freedom-preserving
license to v2, and the resulting incompatibility is not a matter of
interpretation - you can't downgrade licenses. It is unfortunate that Linux
was not licensed as GPLv2 _or later_ which is, alongside Linus' support for
TiVoization(DrM) and the corporate lawyers' spreading of FUD, the reason why
we're still forced to discuss GPLv2.

------
ashitlerferad
Some more comments:
[https://lwn.net/Articles/701155/#Comments](https://lwn.net/Articles/701155/#Comments)

------
oscarteg
eli5 me please

~~~
jcranmer
The current license is effectively the MIT license, which lets downstream
developers repackage the code for development works to do what they want, with
the most important boilerplate being the part that says "we're not legally
liable if this software causes problems."

The biggest flaw of MIT-like licenses is their silence on patent issues,
compilers unfortunately being one of the cases where patents are indeed an
issue (SEH and Steensgards being two major things well-known as being under
patent). Legal opinions differ on what the effect is, and some companies with
more aggressive legal departments are twitchy about the matter.

The Apache license covers patents in a satisfactory way while still retaining
the permissibility of the MIT license. However, Apache and GPL aren't
necessarily compatible with each other--Apache v2 and GPLv3 work around it by
adding explicit compatibility clauses. The Apache v2/GPLv2 compatibility story
is something that legal opinions differ on [1]. The exceptions being proposed
are designed to explicitly guarantee compatibility between the two licenses.

[1] The consensus seems to be that it would just work. However, it is worth
keeping in mind that Apple is a prominent contributor to LLVM, and Apple does
seem to generally take a more pessimistic legal approach, as well as being
very well-known for their abhorrence of GPLv3 code.

~~~
ndesaulniers
> SEH and Steensgards

What's that?

~~~
starseeker
Google turns up these:

[https://www.google.com/patents/US5628016](https://www.google.com/patents/US5628016)

[https://www.google.com/patents/US6247169](https://www.google.com/patents/US6247169)

[https://patents.google.com/patent/US20070016894A1](https://patents.google.com/patent/US20070016894A1)

I'm not sure about the last one since it's an apparently abandoned application
rather than a granted patent...

Interestingly, US6247169 reports "lapsed" on the google page due to non-
payment of fees...

I'm _really_ not sure what to make of US5628016 - it's filing date is in 1994,
but there's a report of a 2015 "Assignment" legal event.

(edit - fixed links)

