Matthew Garrett ([personal profile] mjg59) wrote2013-06-19 11:39 am
Entry tags:

Mir, the Canonical CLA and skewing the playing field

Mir is Canonical's equivalent to Wayland - a display server, responsible for getting application pixmaps onto a screen. It's intended to scale from mobile devices to the desktop, and as such is expected to turn up in Ubuntu Phone before too long[1]. There's already plenty of discussion about whether the technical differences between Wayland and Mir are sufficient to justify Canonical going their own way, so I'm not planning on talking about that.

Like many Canonical-led projects, Mir is under GPLv3 - a strong copyleft license. There's a couple of aspects of GPLv3 that are intended to protect users from being unable to make use of the rights that the license grants them. The first is that if GPLv3 code is shipped as part of a user product, it must be possible for the user to replace that GPLv3 code. That's a problem if your device is intended to be locked down enough that it can only run vendor code. The second is that it grants an explicit patent license to downstream recipients, permitting them to make use of those patents in derivative works.

One of the consequences of these obligations is that companies whose business models depend on either selling locked-down devices or licensing patents tend to be fairly reluctant to ship GPLv3 software. In effect, this is GPLv3 acting entirely as intended - unless you're willing to guarantee that a user can exercise the freedoms defined by the free software definition, you don't get to ship GPLv3 material. Some companies have decided that shipping GPLv3 code would be more expensive than either improving existing code under a more liberal license or writing new code from scratch. Android's a pretty great example of this - it contains no GPLv3 code, and even GPLv2 code (outside the kernel) is kept to a minimum.

Which, given Canonical's focus on pushing Ubuntu into GPLv3-hostile markets, makes the choice of GPLv3 an odd one. This isn't a problem as long as they're the sole copyright holder, because the copyright holder is obviously free to ship their code under as many licenses as they want. But Canonical still aim to foster community involvement, and ideally that includes accepting external contributions to their code. If Canonical simply accepted those contributions under GPLv3 then they'd no longer have the right to relicense the entire codebase, so any contributions are only accepted if the contributor has signed a Contributor License Agreement.

Canonical's CLA is pretty simple. In essence, it grants Canonical the right to use, modify and distribute your code, and it grants Canonical a patent license under any patents you own that may cover the code in question. But, most importantly, it grants Canonical the right to relicense your contribution under their choice of license. This means that, despite not being the sole copyright holder, Canonical are free to relicense your code under a proprietary license.

Given Canonical's market goals, this makes sense. They can relicense Mir (and any other GPLv3 projects they own) under licenses that keep their hardware partners happy, and they can ship in the phone market. Everyone's a winner.

Except, if Canonical want to ship proprietary versions, why not just license Mir under a license that permits that in the first place? This is where the asymmetry comes in. The Android userland is released under a permissive license that allows anyone to take Google's code, modify it as they wish and ship it on whatever hardware they want. I could legally start a company that provided customised versions of Android to phone vendors without them having any GPLv3 concerns. I won't be able to do that with Ubuntu Phone.

I'm a fan of GPLv3. I think the provisions it contains to support user freedom are important. I hate the growing trend of using free software to build devices that are, effectively, impossible for the end user to modify. If Canonical were releasing software under GPLv3 because of a commitment to free software then that would be an amazing thing. But it's pretty much impossible to square the CLA's requirement that contributors grant Canonical the right to ship under a proprietary license with a commitment to free software. Instead you end up with a situation that looks awfully like Canonical wanting to squash competition by making it impossible for anyone else to sell modified versions of Canonical's software in the same market.

Canonical aren't doing anything illegal or immoral here. They're free to run their projects in any way they choose. But retaining the right to produce proprietary versions of external contributions without granting equivalent reciprocal rights isn't consistent with caring about free software or contributing to the wider Linux community, especially if it means you get to exclude those external contributors from the market you're selling their code into.

(Edit to add: a friend in the contracting industry points out that it also prevents vendors who won't ship GPLv3 from using external contractors to work on Mir - they have to go to Canonical, because only Canonical can relicense contributions under a proprietary license.)

[1] Right now Ubuntu Phone is using Surfaceflinger, the Android display server, but that's apparently just an interim solution.
ext_772067: (Default)

Re: CLA will probably doom Mir

[identity profile] mirsolutions.de 2013-06-20 02:18 pm (UTC)(link)
This isn’t an Open Source project.

It’s a company project that’s also, conveniently, published as Open Source.

That means that the majority of coding comes from the author, although contributions will be welcome, and the author certainly does have a moral right to do as they want.

Sure, it’ll diminish external contributions, but not doom the Canonical Display Server (they should just use CDS as codename).

Re: CLA will probably doom Mir

(Anonymous) 2013-06-20 03:12 pm (UTC)(link)
I think we're in agreement, then: My point was that it might turn out to be largely irrelevant as an OSS project.
ext_1592914: (Default)

Re: CLA will probably doom Mir

[identity profile] doctormo [launchpad.net] 2013-06-20 03:58 pm (UTC)(link)
Actually it's a quaisi-Open Source project that's published as 'Free Software'. If you think about open source as the process of project organisation and free software as the user freedom and license.

I do tend to agree with the previous comment. Projects with assignments and CLAs tend to be weaker. But I don't quite believe the original article's moot that this arrangement was a deliberate political strategy to squash competition.

Re: CLA will probably doom Mir

(Anonymous) 2013-06-20 05:12 pm (UTC)(link)
RMS says it's fine to sell GPL exceptions:

http://www.fsf.org/blogs/rms/selling-exceptions

Why are you saying it's not open source?

Re: CLA will probably doom Mir

(Anonymous) 2013-06-21 09:37 am (UTC)(link)
RMS is not the be-all, end-all of opinions on free software matters. Just for the record :)

Anyway, majority of free or open source software projects are exactly what is said above Mir will end up being: driven by a small (most commonly one or two people large) group of core people. When they lose interest, project usually rots until someone shows up with enough energy to pick it up from there.

This sometimes holds true for popular (not necessarily successful, these are different things), depending on the welcoming attitude towards external contributions of that core group.

Also, let's not forget that FSF requires copyright assignment for any project under the GNU umbrella (with GNOME being a notable exception).

The one thing I hope Mir will bring, and why I applaud it, is ability to easily install a free-er operating system on a big number of existing systems (phones, tablets) that would otherwise remain locked in. Remember how Linux fared on PCs in the early days? I remember buying hardware modems in late 90s to make sure that I can put GNU/Linux on it and use it daily.

- Danilo
reddragdiva: (Default)

Re: CLA will probably doom Mir

[personal profile] reddragdiva 2013-06-26 05:27 pm (UTC)(link)
>Also, let's not forget that FSF requires copyright assignment for any project under the GNU umbrella (with GNOME being a notable exception).

This is false.