Not all CLAs are equal
Contributor License Agreements ("CLAs") are a mechanism for an upstream software developer to insist that contributors grant the upstream developer some additional set of rights. These range in extent - some CLAs require that the contributor reassign their copyright over the contribution to the upstream developer, some merely provide the upstream developer with a grant of rights that aren't explicit in the software license (such as an explicit patent grant for a contribution licensed under a BSD-style license).
CLAs aren't new. FSF-copyrighted projects have been using copyright assignment since at least 1985 - in return, the FSF promise that the software will always be distributed under a copyleft-style license. For over a decade, Apache Software Foundation projects have required that contributors sign a CLA that allows them to retain copyright, but grants the ASF the right to relicense the work as it wishes. For the most part, this hasn't been terribly controversial.
So why do people object so much when Canonical do it? I've written about this in the context of Mir before, but it's worth expanding on the general case. The FSF's copyright assignment ensures that contributions to GPLed software will only be distributed under GPL-style licenses. The Apache CLA permits the ASF to relicense a contribution under a proprietary license, but the Apache license allows anyone to do that anyway. Going through Wikipedia's list of CLA users, the majority cover projects that are under BSD- or Apache-style licenses, with a couple of cases covering GPLed projects with a promise that any contributions will only be distributed under GPL-like licenses[1]. Either everyone can produce proprietary derivative works, or nobody can.
In contrast, Canonical ship software under the GPLv3 family of licenses (GPL, AGPL and LGPL) but require that contributors sign an agreement that permits Canonical to relicense their contributions under a proprietary license. This is a fundamentally different situation to almost all widely accepted CLAs, and it's disingenuous for Canonical to defend their CLA by pointing out the broad community uptake of, for instance, the Apache CLA.
Canonical could easily replace their CLA with one that removed this asymmetry - Project Harmony, the basis of Canonical's CLA, permits you to specify an "inbound equals outbound" agreement that prevents upstream from relicensing under a proprietary license[2]. Canonical's deliberate choice not to do so just strengthens the argument that the CLA is primarily about wanting to produce proprietary versions of software rather than wanting to strengthen their case in any copyright or patent disputes. It's unsurprising that people feel disinclined to contribute to projects under those circumstances, and it's difficult to understand why Canonical simultaneously insist on this hostile behaviour and bemoan the lack of community contribution to Canonical projects.
[1] The one major exception is the Digia/Qt project CLA, which covers an LGPLed work but makes it entirely clear that Digia will ship your contributions under proprietary licenses as well. At least they're honest.
[2] See the various options in section 2.1(d) here. Canonical chose option five. If they'd chosen option one instead, this wouldn't be a problem.
CLAs aren't new. FSF-copyrighted projects have been using copyright assignment since at least 1985 - in return, the FSF promise that the software will always be distributed under a copyleft-style license. For over a decade, Apache Software Foundation projects have required that contributors sign a CLA that allows them to retain copyright, but grants the ASF the right to relicense the work as it wishes. For the most part, this hasn't been terribly controversial.
So why do people object so much when Canonical do it? I've written about this in the context of Mir before, but it's worth expanding on the general case. The FSF's copyright assignment ensures that contributions to GPLed software will only be distributed under GPL-style licenses. The Apache CLA permits the ASF to relicense a contribution under a proprietary license, but the Apache license allows anyone to do that anyway. Going through Wikipedia's list of CLA users, the majority cover projects that are under BSD- or Apache-style licenses, with a couple of cases covering GPLed projects with a promise that any contributions will only be distributed under GPL-like licenses[1]. Either everyone can produce proprietary derivative works, or nobody can.
In contrast, Canonical ship software under the GPLv3 family of licenses (GPL, AGPL and LGPL) but require that contributors sign an agreement that permits Canonical to relicense their contributions under a proprietary license. This is a fundamentally different situation to almost all widely accepted CLAs, and it's disingenuous for Canonical to defend their CLA by pointing out the broad community uptake of, for instance, the Apache CLA.
Canonical could easily replace their CLA with one that removed this asymmetry - Project Harmony, the basis of Canonical's CLA, permits you to specify an "inbound equals outbound" agreement that prevents upstream from relicensing under a proprietary license[2]. Canonical's deliberate choice not to do so just strengthens the argument that the CLA is primarily about wanting to produce proprietary versions of software rather than wanting to strengthen their case in any copyright or patent disputes. It's unsurprising that people feel disinclined to contribute to projects under those circumstances, and it's difficult to understand why Canonical simultaneously insist on this hostile behaviour and bemoan the lack of community contribution to Canonical projects.
[1] The one major exception is the Digia/Qt project CLA, which covers an LGPLed work but makes it entirely clear that Digia will ship your contributions under proprietary licenses as well. At least they're honest.
[2] See the various options in section 2.1(d) here. Canonical chose option five. If they'd chosen option one instead, this wouldn't be a problem.
Qt
(Anonymous) 2014-01-20 07:14 pm (UTC)(link)Re: Qt
(Anonymous) 2014-01-20 07:40 pm (UTC)(link)Re: Qt
(Anonymous) 2014-01-20 09:29 pm (UTC)(link)Re: Qt
(Anonymous) 2014-01-20 09:33 pm (UTC)(link)yes, because GNOME can be "switched" to Qt, and Red Hat can do that.
> I'm not sure that Gnome is basically a 100% Red Hat project. I think not.
yeah, don't think so too. otherwise I might have missed a memo.
Re: Qt
(Anonymous) 2014-01-20 10:12 pm (UTC)(link)> yes, because GNOME can be "switched" to Qt, and Red Hat can do that.
Obviously you have not read the source code of any GNOME application.
>> I'm not sure that Gnome is basically a 100% Red Hat project. I think not.
> yeah, don't think so too. otherwise I might have missed a memo.
Were are you two be living the last 15 years? Under a rock? GNOME is *not* a Red Hat project. It was started by Miguel de Icaza as the business of his startup Ximian. When that business went bust, the whole package was given to the care of the GNOME Foundation.
Has Red Hat invested a large sum of money and human resources into it in the last ten years? Yes. But they do not own the project. Did I mention the GNOME Foundation?
I'm interested in psychedelics research, care to recommend your preferences?
Re: Qt
(Anonymous) 2014-01-20 11:33 pm (UTC)(link)Re: Qt
(Anonymous) 2014-01-21 01:39 am (UTC)(link)Redhat is a heavy contributor to Gnome. Then again, Redhat is a heavy contributor to many things.
To make this relevant to the discussion, Fedora has no CLA like Ubuntu so if you feel like making patches to a more free OS, try there.
Re: Qt
(Anonymous) 2014-01-21 05:30 pm (UTC)(link)that is a radical reinterpretation of the history of Ximian.
Ximian — nee Helix Code, nee International GNOME Support — was a company that worked on supporting GNOME and providing an integrated GNOME desktop for corporate users. it got acquired by Novell, and kept working on corporate UX, especially when it came to Evolution and OpenOffice and integration of Linux/GNOME in a Windows network. as a side project, the Novell-Ximian team worked on Mono, a reimplementation of the C# runtime and core libraries.
after the Novell buy-out, the team got spun off into its own company, Xamarin.
the Wikipedia page on Xamarin is okay-ish, in terms of references.
Novell, in the meantime, acquired SUSE, which was making a distribution that supported KDE and GNOME. to be fair, SUSE is actually supporting GNOME really well as a first class citizen, so they didn't "switch".
Re: Qt
(Anonymous) 2014-01-21 05:24 pm (UTC)(link)I know this is a case of "on the internet nobody knows you're a dog", but you should not make this kind of assumptions. I am a GNOME maintainer, and I work on the core GNOME platform — and have been doing so for the past 10+ years, without ever being employed by Red Hat. I'm also on the Board of directors of the GNOME Foundation, so I actually know the history of the project I've been contributing to.
not that I should justify myself to ${RANDOM_ANONYMOUS} on Matthew's blog, but still it's probably better to write it down.
> Were are you two be living the last 15 years? Under a rock? GNOME is *not* a Red Hat project.
that was my point, admittedly made within tags.
ciao,
Emmanuele.
Re: Qt
(Anonymous) 2014-01-20 10:17 pm (UTC)(link)Digia can change the license but the code at the moment of the change can be released by KDE under BSD.
http://www.kde.org/community/whatiskde/kdefreeqtfoundation.php
Re: Qt
(Anonymous) 2014-01-23 03:54 am (UTC)(link)google's CLA
(Anonymous) 2014-01-20 07:15 pm (UTC)(link)https://developers.google.com/open-source/cla/individual
Re: google's CLA
Re: google's CLA
(Anonymous) 2014-01-20 08:15 pm (UTC)(link)I have no idea which is more common among for-profit company-backed projects, but there are plenty of examples (Opscode, Puppet Labs, Cyanogen, MongoDB and basically all other for-profit AGPL projects, all the ones that show up in a web search for "Contributor License Agreement"), but like the many nonprofit CLA-using projects that show up online, many are using licenses at least as permissive as Apache, not GPL-style strong copyleft. That said, a fair bunch do use GPL/LGPL/AGPL: in addition to Mongo and Digia/Qt, other prominent ones include SugarCRM, JBoss, Funambol, and of course the Oracle-inherited OpenJDK and MySQL.
I agree it's less common for companies these days to try the strong copyleft and CLA model, but it's also less common for them to use strong copyleft in general.
Re: google's CLA
(Anonymous) 2014-01-21 02:47 am (UTC)(link)One of the reasons I had urged a shift to Apache-style CLAs for JBoss projects was that we were at the beginning of a general license migration of JBoss projects away from the LGPL, towards the Apache License, and the old JBoss agreement was obviously unsuitable, while dispensing with a CLA altogether was considered (at least I assumed at the time) a bit drastic despite the fact that most of the jillions of projects launched by Red Hat developers in scope of employment did not use CLAs and that this was quite clearly the preference of the developers of those projects.
The trend away from LGPL licensing is still going on in JBoss and may take another decade or three but once projects switch away from LGPL I don't see any particular legal benefit to using a CLA. There is some legal benefit to using the Apache-style CLA for present-day LGPL JBoss projects because it eases the relicensing task. But this is a highly unusual case for Red Hat, where it's kind of clear that LGPL is an increasingly dated license for the sort of ecosystem those developers are living in. I went into this issue a bit when I was interviewed for the JBoss Asylum podcast a few months ago.
At Red Hat, the strong copyleft + Apache-style CLA model was basically unheard of, though, the closest thing being Fedora's pre-2010 CLA. Not counting Cygwin (which uses copyright assignment), the model of which was inherited from Cygnus and continued unchanged. Cygwin's continuation of its historical approach incidentally reflects the strong wish of the project leads.
- Richard Fontana
Re: google's CLA
(Anonymous) 2014-01-20 07:35 pm (UTC)(link)The short version: contributing under the Google CLA to a BSD-licensed or Apache-licensed Google project is much more like the Apache Software Foundation case than the Canonical case, despite Google being for-profit.
Full disclosure: I work for Google, but I'm not speaking for my employer and this is not legal advice, nor am I a lawyer. Google's license choices and Apache-style CLA text are not just my opinion as a Googler; feel free to look yourself and come to your own conclusions.
Re: google's CLA
(Anonymous) 2014-01-20 11:35 pm (UTC)(link)Google's terrible at F/OSS, at least when they're running a project. Android is a code-over-the-wall project; no-one else gets to contribute, their bug tracker is a wasteland, and they're engaged in closing as much of it as they feasibly can at present. Chromium is an awful, awful F/OSS project, whatever its merits as browser. Just ask Tom Callaway.
Existing proprietary licensees at Qt
The choice when they took it open source would have been (1) cut off the existing proprietary licensees from new versions by using copyleft for everyone, (2) go with a non-copyleft license and lose at least some of the license revenue (probably most of it) or (3) require outside contributions to use a CLA that allows their work to go proprietary.
So Qt probably did the best it could considering the existing customer base, even if that meant losing some potential contributors. The situation was different from a green field project with no licensees.
solution
(Anonymous) 2014-01-20 07:37 pm (UTC)(link)Re: solution
(Anonymous) 2014-01-20 07:56 pm (UTC)(link)Re: solution
Gossip
(Anonymous) 2014-01-20 08:45 pm (UTC)(link)no subject
(Anonymous) 2014-01-20 09:19 pm (UTC)(link)To be clear I'm not suggesting it is not deliberate and not suggesting it's accidental!
I would just like to read their reasoning if it exists.
I presume they do it for commercial reasons (company worth) as someone else suggested.
no subject
(Anonymous) 2014-01-21 02:53 am (UTC)(link)Qt CLA
(Anonymous) 2014-01-20 09:22 pm (UTC)(link)The agreement between the old Trolltech and KDE e.V. is still active today, and specifies in essence that if Digia stops developing and releasing the Free edition of Qt, that the Foundation can buy out the Qt code and release it under the open-source license they prefer.
It helps to think of the overall package as being one of a quasi-BSD license: Your contributions support proprietary and Free software development, with an added escape clause to ensure the Free part can be forked if needed.
Re: Qt CLA
(Anonymous) 2014-01-20 10:10 pm (UTC)(link)KDE receives(well, it always has it in the archives) the code and has the right to release it under BSD. The foundation doesn't have to "buy" anything.
This agreement is kept even in a buy-out, like the acquisition by Digia from Nokia.
no subject
https://svn.nmap.org/nmap/COPYING
no subject
FSF & Apache vs Cannonical
(Anonymous) 2014-01-21 05:22 am (UTC)(link)Playing devils advocate
(Anonymous) 2014-01-21 08:38 am (UTC)(link)As far as I can see the FSF is required to release their code under a version the GPL, but the FSF is also the author of the GPL. Would it be possible for the FSF to change the GPL into a non-free license and start releasing the GNU-code as non-free code? How does this situation differ from Canonical?
Re: Playing devils advocate
This would not prevent the FSF from relicensing the code to a more permissive license (and it happened sometimes that GPL code was relicensed to LGPL, in fact; for example, GMP used to be under the GPL). But the GPL cannot be "cracked" by the FSF either; it says explicitly that "new versions will be similar in spirit to the present versions, but may differ in detail to address new problems or concerns".
Re: Playing devils advocate
(Anonymous) 2014-01-22 01:42 pm (UTC)(link)Free-Qt fundation
(Anonymous) 2014-01-21 12:05 pm (UTC)(link)http://www.kde.org/community/whatiskde/kdefreeqtfoundation.php
Much ado about nothing
(Anonymous) 2014-02-25 01:26 am (UTC)(link)Why it is worthwhile to write essays and talk endlessly on this 1985-era subject? Because too many people feel better if they can disagree with someone bigger than they are (in this case, Mark Shuttleworth) than they feel for actually getting down to some actual work.
If you do not like CLAs, don't sign them. Nobody is forcing you to contribute to Mir. Now go do something productive.