Identi.ca has been buzzing with ‘project Harmony’ discussions lately. Harmony aims to be the ‘Creative Commons’ of Copyright Assignment Agreements (CAAs). A CAA is basically a contract you sign where you give away ownership of your code, and some free software projects already allow or even demand this for contributions. The Free Software Foundation itself, for example, requires a CAA.

Essentially, they want to own the code so they can sue anyone who doesn’t abide by the GPL licence (and upgrade to newer versions of the GPL). Other projects have non-mandatory CAAs for similar reasons. I’m not convinced you really need a CAA, however. Several projects including Linux itself have sued copyright violators successfully without it and you can have a ‘GPLv3+’ licence if you want to move to a newer GPL in the future. But in case of a charitable institution, I guess it probably doesn’t hurt.

There is an entirely different class of CAAs where you give a company full right to your code, however. Sun (and later Oracle) demanded this for contributions to OpenOffice.org. They need this to be able to incorporate the contributions into non-free versions of OpenOffice like StarOffice or IBM’s Lotus Suite. So in essence, you have to give them the right to sell non-free versions of your code or you can’t contribute. As far as I’m concerned, this is clearly not a good use of CAAs!

Some people attempt to legitimate these practices by equating such a CAA with a BSD-style licence. As you might know, the BSD class of operating systems (and other projects like web server Apache) are available under a licence which allows you to ship non-free versions of them. These licences don’t guarantee that the code remains free, like the GPL. But at least they create a fair playing field: anyone can release BSD-style code in a proprietary form. When you assign your copyright to a commercial party, though, only they can make it non-free. Not even those that contributed. Essentially, you are saying, “Oh mighty company, your work is so much more valuable than my fellow contributors and I, please accept our humble work – you own it”. Clearly freedom means little in this scheme – you just do unpaid work for them. Software patents make the situation even more unfair. The only party that has certainty and the ability to defend themselves is the one getting the assignment!

Now surely, not all CAAs are evil. Project Harmony proposes, like the Creative Commons, a number of distinct agreements. They range from ‘please have my code for free’ via ‘release only under a FSF-certified Free License’ to ‘only GPLv2 or newer’. But Harmony seems to fall in the same trap as the Creative Commons did; it may even come off worse. You all might love Creative Commons: its licences are very liberal, right? No, not exactly. You can have a very restrictive CC licence if you want. So ‘CC licensed’ is not necessarily a compliment. And that is a problem, as most people assume CC is naturally good. This inflates the value of ‘CC licensed’ and it’ll do the same for ‘Harmony CAA’.

There are rumours that Project Harmony is actually a ploy by one of the companies involved to legitimise its arguably evil cause. I don’t know if the ploy theory is true, but I’ll be critical of the outcome in any case. I’m not convinced we need CAAs in the free software world. Harmony might bring harmony to the variety of CAAs in the market, but if it includes ‘give it all away’ options it is not a step in the right direction. At least such options should be flagged very clearly as ‘evil’.

Even then, though, developers (who aren’t known for their love of reading legalese) might unknowingly sign the freedom of their code away, trusting in the ‘Harmony CAA’ brand, and that would be bad for free software. So why don’t we just all agree that CAA is not needed and skip it altogether?

Clearly, from an software ethics point of view, the freedom of the code is violated by restrictive CAAs. But what about the freedom of the coder, who wants to give away all rights, for whatever reason? Is it truly “evil” to rule out such extreme positions?
Don’t get me wrong, I’m not arguing for restrictive CAAs here, but for the the freedom of the guy who coded the stuff and lives happily by giving his code away for nada.

Gábor

@Ben:
> But what about the freedom of the coder,
> who wants to give away all rights, for whatever reason

If nothing else, I guess this coder always has the option to release the work into the Public Domain.