4 ms·
> -- 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 th
by bluejekyll 10y ago
> -- 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.
- kyrias 10y agoYou really shouldn't call it “Apache <anything>” without the express approval of the Apache foundation. If you want to call it something other than “Modified Apache 2.0”, you'll have to come up with a new name. Though what's interesting is that since the license text itself is not explicitly under any license, it's technically just under regular copyright.
- DannyBee 10y agoLLVM explicitly chose not to create a new license (this was one of the goals of doing this). The issues we faced were simply those of license compatibility and attribution for runtime libraries, and we chose what we saw as the simplest set of additional permissions to make those work. (For example, if we didn't care about the usage of LLVM in GPL software, we could have avoided all of the exception related wording here. Instead, we tried to come up with something that would let them still be able to use LLVM without worrying about various compatibility boogeymen)
- carussell 10y agoWhy not MPL2? Are there enough people (i.e., Apple) making file-level changes they don't want to publish that MPL2 was too unattractive here?
- jcranmer 10y agoMPL2 requires that you make available the source of any changed files. Apple builds its version of LLVM off of a patched tree, and given that they're not particularly open about even the base revision of the public LLVM repositories their stuff is on, I can't imagine they would be happy having to publish those files publicly.
- DannyBee 10y agoYes. We want folks to be able to keep their private chips private. Past that, Mpl has some interesting baggage and requirements, and in the end, folks wanted something they all understood well, felt others would understand well, etc. It's not a bad license, mind you. This was just the best path in terms of resistance, complexity, etc
- DannyBee 10y ago"The question is, isn't this a new license? Should this be considered the Apache 2.1 or Apache 2.c for compatible? " No. It's literally not. It's the apache license, it's just saying "you can do these things even though you normally can't". It's essentially "a set of additional permissions and guarantees". This is the same way adding an explicit separate rights grant does not make a new license, it is just an explicit separate set of rights. I could release software under the GPL, and put alongside it a file that says "Though all of this software is licensed under the GPL, you are allowed to do whatever you want with it, including violate the GPL". That is not a new license, it's a covenant not to enforce :)
- jordigh 10y agoCareful, though. The GPL has a no-added-restrictions clause which says that if you receive the work covered under the GPL and additional text that has additional restrictions, you may disregard the additional text. It's like a failsafe against homebrew license writers who might want to distribute the work under the GPL plus some other shenanigans. Removing restrictions is always ok, though. That's like the linking exception GNU Classpath: https://en.wikipedia.org/wiki/GPL_linking_exception https://en.wikipedia.org/wiki/GPL_linking_exception
- dragonwriter 10y ago> The GPL has a no-added-restrictions clause Correct. > says that if you receive the work covered under the GPL and additional text that has additional restrictions, you may disregard the additional text. No, it doesn't (EDIT: as below, the GPLv3 actually does, I had forgotten this element of its changes from the GPLv2 in the additional terms area; there's good downthread discussion of this and its effects, I'm not going to revise the rest of this piece to address it.) It says that it is illegal to add additional restrictions to GPL covered work. It does not say that if you receive a work with the GPL and other restrictive text you may ignore the other restrictive text, nor is that its effect (its effect that if the author was legally obligated to release a work under the GPL because it was derivative of an upstream GPL-licensed work, then the author releasing it with additional restrictive text is in violation of the GPL and can be subject to whatever the legal system decides to assign as a sanction for that violation. Absent a decision by the legal system to do so, or compelling the author to do so, that doesn't give anyone else downstream permission to use that author's work other than under the conditions -- the GPL with the additional restrictions -- which they released it with.) And there are certainly situations where the legal system would not compel the distributor of the work distributed with the GPL + additional restrictions to allow it to be used GPL only (such as where the work was a derivative of both GPL work and work under a different licenses requiring some other restrictions.) And if the GPL + additional restrictions was the decision of the original author, it doesn't even have that effect (and what downstream effect it has is less clear.)
- valarauca1 10y agoThis 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 10y agoGPLv3 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.
- valarauca1 10y agoGPLv3 has a framework for exceptions built-in Yes Section 7. But GPLv2 (Linux Kernel) doesn't. My core point is adding exceptions to FOSS compiler licenses is slightly required to avoid technical legal ambiguity with their output.
- DannyBee 10y agoThe 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 10y ago
- ashitlerferad 10y agoThat exception would not make me confident in using your software.