I’ll agree that the push to Apache seems to be coming from a few unnamed corporates rather than “the LLVM community” as a whole. But Theo is being quite unfair with the assertion that proper signoff won’t be sought from contributors. As Chris Lattner says “Here we are discussing what the best end game is – not the logistics of how to get from here to there.”
Step 1: decide to investigate changing license
Step 2: decide what license to change to <– we are here
Step 3: decide a plan for getting sign-off from contributors on the licensing change, and dealing with missing contributors or those who do not want to support the license move (e.g. rewrite or revert the change)
Step 4: enact the plan
From the outside, it does seem a bit odd to only talk about “where you want to get” (apparently in a years time it seems like the answer to this just ended up being “apache 2.0”) without considering how you would get there (or if you even can).
Overall it seems like kind of a bummer though. I would think using a license to cover copyright, and a patent grant to cover patents, would be the clearest solution – apache 2.0 mixing the two always struck me (non-laywer) as a bit dubious. Further, a CLA seems like it would result in the least change (no new license), and would put the burden on corporate contributors – who are the ones raising the issue in the first place.
For example, doesn’t react (someone in the office who is familiar with it mentioned it as an example) use a BSD license with an explicit patent grant / CLA process?
: I assume it would mean that clang would never be included as the default copiler in openbsd if it were apache-2.0?
Yeah, I’d honestly be very surprised if they do manage to switch. There are ~700 contributors to llvm alone, and I’d be surprised if they could get them all to respond, let alone agree to a license change.
That said, it’d be quite a shame if it did happen. I’m super excited to see llvm + clang in OpenBSD.
This reminds me of the syncthing licence change - changing to more restrictive licence didn’t go well…
I must have missed something. Why exactly does switching an important infrastructure project like LLVM to Apache 2 supposedly amount to “copyright theft”?
Changing the license on a piece of code must be agreed to by all copyright holders of that code. Since LLVM has many contributors that have probably not all agreed to any licensing change on their individual pieces of code (and LLVM does not require copyright assignment, which some open source projects do), it should not be legal to change the license. It’s the same reason why the Linux kernel will probably never change to a different version of the GPL - it’s got way too many contributors that would have to sign off on it.
Well, with the linux kernel specifically would be a need for signoff because there is no ‘or later’ clause in the version of the gpl2 the kernel used. If it had that clause it could have been moved to a later version of the gpl. Linus specifically didn’t like that clause so he didn’t use it.
I think you can indeed include apache-2.0 code along with MIT code (MIT under an umbrella of apache-2.0) – so I assume it would just be a license change on new contributions moving forward (eg. some files would have two license headers). I don’t know that they would have to get signoff from anyone who previously contributed – there would just be mixed licensing in many files with apache-2.0 being the more restrictive one.