Licensing is a big deal in the software and cultural freedom movements; there are a lot of licenses available in both domains (probably too many), and people have strong opinions about what licenses and license components are better or worse. But in the truly libre category of licenses, maybe the most controversial aspect of licensing is that of copyleft, a powerful copyright hack that uses copyright itself in a sort of judo move to force those to make derivatives to give their contributions back to the commons.
There are two primary copyleft licenses, the GNU GPL for software (and some other categories of functional) works (and the related AGPL and LGPL) and CC BY-SA for non-software (generally cultural) works. But I don't intend to go into details on copyleft or the licenses themselves, there's plenty of resources about that already on the internet.
What I'm more interested in exploring here is the perspectives on copyleft. Is copyleft good? Is it bad? A lot of people have extremely strong opinions about it. Actually that's an understatement; if digital ink were made manifest, the amount spilled over copyleft could fill at least one olympic sized swimming pool. But despite all the heated debates about copyleft, I've never really found a good breakdown about what those arguments are. I actually think it's not too hard to separate the arguments categorically, so here's my attempt to do so.
Even though I'm on the overall-in-support side of things (I am actually conditionally in strategic support of copyleft and think the decision about whether to use copyleft or not should be weighed on a case by case basis; more about that at the end) I'm going to start by discussing the objections before I move to the support side. Generally I think the objection side of things is a bit trickier (and intellectually, maybe a bit more interesting to analyze) than the support side, so I'll go to that first before I explain why one might actually find copyleft to be a valuable tool. (A slight amount more caveat: I'm not claiming to not have bias here; I do. But again, I'm not completely on one side or the other, and I think the decision about whether to apply copyleft to your project is best made by understanding both the pros and the cons.)
Guide to objections
Objection 0: (some) Copyleft "infects" non-copyleft permissively licensed works
I'm marking this as objection 0 because it's not actually an objection itself (some even argue it's a feature, and at the very least it's mostly necessary, unless you're using file or package-based copyleft like the MPL or LGPL). That is to say, on its own people aren't upset about it, but combined with the other objections some people find it particularly irritating: if you combine a copyleft work with a non-copyleft permissively licensed work (again, unless the copyleft license is the LGPL or MPL or similar), effectively the combined work is under copyleft. (This doesn't mean that you can't continue to develop the non-copyleft permissively licensed work separately without copyleft applying though.)
It should be noted though that the same thing is true with combining a non-copyleft permissively licensed work with a proprietary work: effectively the entire work is proprietized. (Indeed, that's exactly what copyleft licenses like the GPL are trying to prevent.)
Anyway, that wouldn't bother you if the terms of copyleft itself didn't bother you, so let's move on to the reasons people find copyleft itself objectionable.
Objection 1: Copyleft is non-free
The first objection is maybe the most classic objection to copyleft: copyleft itself is non-free. There are a few variations to this argument but it generally goes like this: restrictions in licenses are bad; possibly copyright as a system of restrictions is itself bad. Since copyleft relies on copyright and restrictions to preserve the commons, that means that it's also bad. The most free license then is one that provides as few restrictions as possible.
Sound confusing? Let's put this another way and go back to the copyleft as a "judo move" perspective. If copyright were violence (and a number of people in this camp believe that it really is), then copyleft defends against proprietization with a violence-in-retaliation move. It might be defensive, it might even just be returning the violent force of the oppressor against the oppressor itself, but to this particular category of anti-copyleft objection, that doesn't matter. Any violence itself (or any copyright restriction) is objectionable, even defensively, and the fact that a copyleft license makes use of such force is offensive.
The trouble with this position is, if you're really arguing it, you'd better be consistent about it and also object to the violence of proprietization (which is surely worse than copyleft in its reduction of freedoms through restrictions). If you really are concerned with user freedom, your whole ecosystem had better be free with completely permissively licensed non-copyleft works to bring that dream alive. If someone wants to proprietize your world, and legally they can, you can't stop them directly. Your only routes to bringing this completely ultra-restriction-free world to life are to keep building freely licensed works and tools (and encourage others to do so) and to try and reduce the scope of or eliminate copyright on a legislative level (a worthwhile pursuit, but certainly not an easy one, and one we seem to be losing rather than gaining ground on at the moment).
In the software world you used to hear this argument a lot more, particularly along operating system lines: back in the day it especially used to be [Free/Open]BSD users arguing with GNU/Linux users. If you're completely running permissively licensed free software and objecting to both copyleft and proprietary software (like Theo de Raadt), you have the moxie to back this position up by sticking to your principles. (And notably, even though I don't agree with this position entirely, it's one I have a strong amount of respect for.)
However, I think this position is on the decline, and instead we see a different argument on the rise…
Objection 2: Copyleft is strategically suboptimal
The other argument (which I think we've been hearing more and more of) is that copyleft is strategically a poor choice in comparison to permissive licenses for free and open source software.
There are a few reasons you might make this argument; permissive licenses are generally more interoperable with other licenses, but the main reason given is that you'll get more developers and more users on-board this way. Some businesses are uncomfortable with the obligations of copyleft; avoiding copyleft means that you'll get a larger marketshare, and greater popularity means that it's more likely that you'll have more people giving back to your project. Maybe you aren't even worried about contributions; maybe you're making a library and you want as many users as possible even if you're the only active contributor.
You might also not feel strongly about the freedom side of things at all; you might write a library that you're totally okay with being used by only-proprietary-programs; you just want developers to be able to share code and give back to each other or think that you'll end up with better software by following such a methodology, principles be damned. (However, many people who do take this side do feel strongly about free and open source software, they just think this is an easier strategy to iterate toward that goal.)
What I do think is true is that in the software world (but I don't think quite as much in the culture world) we're seeing this attitude on the rise: these days you often hear and see people take the route of "release the code to the projects that aren't your core business, but keep the core bits of your business proprietary if that's what makes sense to you." The move to this trend has been growing simultaneously with the rise of interpreted languages like Python and Ruby, the move to distributed revision control systems, and maybe most importantly, the move to software as a service web applications. This post by GitHub co-founder Tom Preston-Werner, "Open Source (almost) Everything", captures that mindset pretty well.
To say nothing of the culture side of things, the good news here is that for a certain scope on the software side (libraries and infrastructure specifically) this seems to be doing more than well enough. For libraries and certain parts of infrastructure, people do seem interested and willing to contribute back even without copyleft. And we're seeing an abundance of code crop up these days because of it. I think that's great, though I don't think it's actually enough… but more on that below.
In short, arguments to not use copyleft for strategic reasons are fairly common, probably even increasingly common, among many developers. And at least in certain situations, there seems to be reason to back up such a choice.
Objection 3: Deceptive combination of the above
There's another sort of objection that's actually a combination of the previous two, but in a way that's deceptive and potentially even dishonest. What I'm talking about is when anti-copyleft individuals are arguing for not using copyleft for strategic reasons but mask the argument to sound like a principled, freedom-oriented reason. This comic might help best explain what I mean (based on a true story):
COPYLEFT COMIC by Chris Lemmer-Webber +-----------------------------+ | Don't use that copyleft | | license! It's non-free! | | It destroys your freedoms! | | / | | , , , . | | O o o O | | \ C / ~ | | '|' /|\ | | / | | Oh no! I like free! | | Why isn't it free? | | | +-----------------------------+ +-----------------------------+ | I can't use it in this | | proprietary program | | with my proprietary | | license! | | / | | \ / , . | | O o o O | | \ C / __c | | '|' |\ | | / | | But your license is even | | more restrictive point for | | point, and forbids even | | basic distribution and | | modification! | | | +-----------------------------+ +-----------------------------+ | What are you, some kind of | | software freedom zealot? | | / | | | | \ / - _ | | O o o O | | c ~ | | <'|'> /|\ | | | +-----------------------------+ To the extent possible under law, Chris Lemmer-Webber has waived all copyright and related or neighboring rights to Copyleft Comic via CC0. Paste, alter wherever/however you like. http://creativecommons.org/publicdomain/zero/1.0/
Let me describe this perspective in another (non-comic) way: the argument is that I'm reducing someone's freedom by using a copyleft license that will infringe on their ability to integrate said program with their proprietary application, that by choosing a copyleft license one is reducing their "freedom to choose what license they want to use". Sorry, but as I said earlier, the reason why it's hard to maintain the freedom-oriented anti-copyleft position is that you also have to object to proprietary software without a mechanism to protect your work from being proprietized (and this particular breed of truly-freedom-oriented-anti-copyleft Theo de Raadt style perspective seems to be on the decline, maybe because it is hard… though as said, I do admire people who truly take this perspective). But if you're straight up looking to proprietize software (or any other works) then it really isn't freedom you're concerned with at all, it's strategy. I actually think that many people aren't maliciously trying to deceive people, they probably don't realize they're doing this. But a lot of people are, you hear this perspective all the time, and the hypocrisy of it is really annoying.
(And, by the way, if you're waving your finger at me over the edge of your macbook about copyleft being nonfree while committing to your GitHub account in-between working on your software as a service web application and the game you're working for the iOS app store, sorry, but I'm not going to take you seriously.)
Please don't deceptively use arguments about user freedoms when user freedom isn't your primary concern, it diminishes those who are actually concerned with principles and diminishes your own argument when you had a perfectly good one already, one of strategy.
Some brief words on support
Support 1: Proprietary relicensing
On the support side, I think things are generally simpler to analyze. Actually, there's one perspective on supporting copyleft that I think is in decline but has traditionally played enough of a role that it's worth observing: the financial incentive of proprietary relicensing. The basic idea here is that the copyleft allows anyone to release free work that integrates with or extend your own copylefted work, but if they want to release something proprietary that integrates/expands with your work, they need to relicense with you.
Over the last decade this strategy was very popular, but seems to be rapidly on the decline for I suspect a couple of reasons: 1) it's not generally as lucrative as organizations might like and 2) if you get outside contributions and don't just throw code over the wall, you generally need some sort of copyright assignment or contributor agreement. People seem less and less willing to sign such things these days and furthermore they delay integrating contributions (today's distributed collaboration systems have gotten people used to being able to get their contributions integrated very quickly into a codebase).
From my perspective, the decrease in this trend is probably not much to be sad about, but it does probably help point to the perceived decrease in copylefted works.
Support 2: Copyleft as a strategy for freedom
Now for the main reason for supporting copyleft: as a strategy (or even as regulation) for preserving user freedom. I think I'm fairly right in pinpointing this as strategy, I'm not sure I know of anyone who seriously thinks that copyleft is a matter of principles (the FSF directly says "Which license is best for a given library is a matter of strategy, and it depends on the details of the situation" in the article Why you shouldn't use the Lesser GPL for your next library) and it's certainly not a requirement for a work to be considered either free software or free culture. The question really is then, if we have preserving user freedoms in mind, is it a good idea?
Copyleft supporters tend to think yes, it is: going back to the judo move metaphor, there's simply too much risk right now of being beaten up otherwise, so some sort of form of self defense is necessary or at least very useful. By adding a requirement that others share alike, we've helped to make sure that the commons is not commandeered by interests that might not otherwise personally care about user freedom.
Some personal conclusions
So what do I think? Actually, I already stated it: I'm in the conditionally-consider-whether-or-not-copyleft-is-good camp. I am in the concerned-with-user-freedom camp, and I don't feel bad about having a license condition that you're only violating if you're proprietizing things. So a more important question to me is: is copyleft the most strategically beneficial licensing option? And, as I keep semi-saying, it depends.
I think it's worth recognizing that libraries are doing just fine without copyleft. In fact, it's now the case that almost everyone who releases libraries does so under a permissive free and open source software license. And people do seem to be contributing back to those libraries, as much or more than they would be if they were under copyleft (mainly because the scope of people using them is higher and because people seem to realize that you're lowering maintenance costs by trying to give back your contributions into an actual codebase, plus it feels great to have your code merged into a library you love). So as for libraries, I think maybe copyleft isn't so necessary these days as it used to be.
But a world where only libraries are free is also a world where developers are free and users are not. As someone who believes in user freedom, that's not acceptable to me. So if not libraries, where does copyleft hold value? And the answer is obvious: applications. Applications have traditionally been the areas that have had the strongest copyleft. They're also the area that's receiving the least amount of attention from a free and open source software perspective in emerging areas right now (web applications and mobile applications). Particularly I'm interested in the web world, where we're winning on the library side and losing on the application side. What we do see is that free and open source web applications still have a high proportion of copyleft licensing (think Wordpress under the GPL and StatusNet under the AGPL). I suspect copyleft has a huge role to play here yet.
An addendum: I wrote this blogpost a while ago, but continued to procrastinate on publishing it for some reason. On that note, I've just come back from PyCon, which is an amazing conference, but one generally that has a strong amount of the "release your libraries under a permissive license, and snark on people who use copyleft" type attitude (pretty much exactly in the manner of the Open Source (almost) Everything article). Surprisingly, despite having a big logo of AGPL in our poster session on MediaGoblin, we only got one person who snarked at us for the license choice (a pretty lame snarking at that, which was "I think people who use copyleft are insecure", which sounded like hyper-masculine chest thumping in licensing wars form). What I wanted to say in response to that person, but which I failed to do, was to say: I think permissively licensed tools are still great, but I use copyleft in the space that you probably would have proprietized it. I don't want to just "open source almost everything"… I want the whole stack to be released as free software. It's not just developer freedom I'm concerned about, it's user freedom. And I think that's probably the difference.
Another addendum: It's been pointed out to me that maybe my position on "libraries are doing just fine without copyleft" misses that, for example, the state of Android device lockdown might be less abysmal if that ecosystem were copylefted. That's a fair point, though I'm really honestly mostly a web developer and speaking from a web developer space. In the web world, I feel like the type of people who are traditionally copyleft advocates completely fell asleep at the wheel for a while, and the generation of (erk) "rails community" type people took over. And where they've driven us to is a place where the whole ecosystem is so close to being free, but people stop right before finishing the job. And if I wrote copylefted libraries in this space, for the most part, people will just not use it. So why not just be allies with those people, and in the space that they normally lock things down, I can release things as copylefted free software web applications?