Something I mentioned in my introductory post was that I look back on a lot of my ideas ten and twenty years ago and cringe. A lesser example of that is a complete turnaround in how I think about software (and other content) licensing. Out of college, my thinking was something like the following, which I probably said far more often than anybody cared to hear:
Software should be proprietary if you plan to make money off of it and donated to the public domain if you don’t.
That was…well, wrong.
…I probably didn’t value my time…
I completely bought into the nonsense of the GPL (and other copyleft licenses) being “viruses” that “infect” software. I also bought into nonsense that the only reasons to publish software were either to make money or to allow someone else make money. And I probably didn’t value my time, thinking of it as free; either that, or I didn’t put value on the time of people who created software I used.
And honestly? I was probably stupid enough to think that including a copy of the GPL with my program was some huge burden…
…vague jabs at the alleged dangers of the GPL…
Times have changed. For me, at least. I still hear certain pundits (one of whom runs a popular weekly podcast) make vague jabs at the alleged “dangers” of the GPL, despite the simple fact that the Linux kernel (under the GPL) is in far wider use than the BSD kernel (under the non-copyleft BSD license), even if you include the versions of the kernel that have become proprietary, such as Apple’s macOS.
Today, I fall far more strongly on the copyleft side of the fence, where most of the code I release is available under so-called strong copyleft licenses, often the Affero GPL, which has clauses that require releasing the source code even if it’s being used as part of an online service. I’m also more likely to use applications that have stronger licenses. The contents of this blog, even, are published under a copyleft license and you can get and modify the source files, plus see the history of any changes, from its repository.
What changed? Probably a few things.
Licensing in a Nutshell
Copyright law revolves around the idea of a “fixed work,” which is pretty much just a bit of art or science you make that you can then give to someone else. You can give a book to someone. You can give a story to someone. You can’t give yourself giving a speech to anybody…but you can give them a recording of that event.
In modern copyright law, when you create a fixed work, you are automatically granted (by your government) the exclusive right over who is allowed to copy that work, hence “copyright.” This lasts for some (more or less) finite amount of time, at which point copyright protection expires and the work becomes part of the public domain, as in common ownership by the public. Without getting too far in the weeds, the idea is that the duration of copyright protection on a work should be the size that encourages the creation of the most art.
…contract between a copyright holder and another party that allows that party to use that work…
A license is an agreement or contract between a copyright holder and another party that allows (“gives license to”) that party to use that work, beyond the pure consumption that copyright law naturally already allows. A public license is a license granted to anybody who wants permission without needing to negotiate a contract.
So, right here, we have a problem with anti-copyleft terms: The idea of a “permissive license” is nonsense, because all licenses are formal permission. The phrase exposes a kind of self-entitlement to exploit someone else’s work without needing to contribute back.
Another problem is that, traditionally, contracts require consideration to be valid. The “permissive” licenses don’t have any consideration, only offering the software. You might argue that something like the BSD license is a deed rather than a contract, but it doesn’t say so and isn’t witnessed, so it would also be a poor deed. So, whereas the GPL has been upheld in court in several countries, I’m not convinced that BSD, MIT, and Apache have the same strength, meaning that the developers and the users may not be protected.
…you can weigh that “cost” against the value of the software to make your decision.
This is all beside the point, though, because we might argue that these public licenses don’t need to be either thing, because they could be gifts or anything else. And that’s fine, but if someone distributes software they wrote, they should have the right to decide how you pay them. If their idea of payment is using the same license and publishing your changes, you can weigh that “cost” against the value of the software to make your decision. You’re always allowed to write your own, after all.
And that brings me to my next point.
I Don’t Work for You
A key reason that many developers release their code under non-copyleft licenses is a hope for widespread adoption by large companies. I support those people and will congratulate them if and when a Google or Apple forks their code and builds a proprietary product on top of that. But it isn’t something I want for my projects.
…interaction is going to be on my terms, not theirs.
If I ever was before, I’m no longer interested in working for a large company without compensation…and probably not with compensation, truth be told. In some cases, I will gladly do work without being paid (this blog comes to mind), but especially when the beneficiary could be a company I don’t really respect, that hypothetical interaction is going to be on my terms, not theirs.
With strong copyleft licenses, I am compensated both by the beneficiaries publishing their code and by excluding companies that see free software developers as just a resource to exploit. I am also compensated by the understanding that, if I produce something useful enough for other people to maintain it, it will always be available in its latest state to whoever needs it.
This is, of course, very similar to the different incidents leading Richard Stallman to create what’s now the GPL.
Tragedy of the Commons
When Garrett Hardin wanted to talk about the potential problems of overpopulation in 1968, coining the phrase Tragedy of the Commons, he made two points relatively clear.
- Environmentalism, despite its merits, often revolves around racist, colonialist, and white supremacist ideas and policies, and it’s always other groups whose populations need to be limited. That’s unrelated, here, but important to consider.
- Unbounded freedom for anybody is unsustainable.
Hegel was the first to state correctly the relation between freedom and necessity. To him, freedom is the appreciation of necessity. “Necessity is blind only in so far as it is not understood.” Freedom does not consist in the dream of independence from natural laws, but in the knowledge of these laws, and in the possibility this gives of systematically making them work towards definite ends.
Anti-Dühring, Frederick Engels (emphasis mine)
And this idea that irresponsible stewards are not free is the crux of a lot of political arguments. Taxation, democracy, environmentalism, making art, producing investigative journalism, having a bank of software that anybody can use or modify, and the mere existence of billionaires all have the same common question of whether the freedom to exploit some resource carries an obligation to do so in a way that is equitable and sustainable.
To put this in a slightly different context, I like to flip questions about the morality of taxation on their heads and compare them to online shops and payment processors taking a cut of all revenue or paying a cover charge to get into an event. If taxes are bad, then surely there is no reason to accept money via credit cards (or Patreon, for that matter) and no reason to sell goods in a formal marketplace, and everybody should just hawk their wares in person, accepting only cash.
…those charges maintain access to a stable marketplace or a safe venue.
But nobody in their right mind would accept that and everybody realizes that those charges maintain access to a stable marketplace or a safe venue. If you don’t pay up, credit cards stop working as the processors go out of business and marketplaces become havens for scammers when there is no enforcement of policy. Similarly, if you’re a billionaire and don’t pay “fair” taxes, don’t come crying when you lose everything in an economic collapse. And bringing the discussion back to how I license what I produce, if you don’t support the maintenance of the commons—putting in some work, in this case, instead of money—then expect to live in a world where there is nobody to help you with problems unless you hire them.
And returning to the idea of consideration in contract law, if you don’t work to maintain the commons, is there a possible future where FreeBSD developers decide that the BSD License does not represent a permanent grant of any rights, since it doesn’t refer to any such thing, and sue Apple for copyright infringement? I don’t think it would happen, but it seems possible, especially in a world where Apple ceases all support because they got what they wanted.
By contrast, the GPL requires that maintenance work (though there’s room to do it better) and has been proven out by lawsuits, making it a safer bet overall.
To put it another way, a way that’s often misused to excuse abuses and invasions of privacy, freedom isn’t free.
(Almost) Everything Is Compatible
The last big reason that has convinced me to change my mind is that, at least in the software world, almost all open source code can be used in a project licensed under the AGPL. There are exceptions, of course, especially among the competing copyleft licenses such as the EPL. But for the most part, if software has an OSI-approved license, the AGPL’s terms are a superset of its requirements.
…the flip-side of the “viral” claims…
This is the flip-side of the “viral” claims: In a situation where you have to bother with copyleft and non-copyleft licenses, the copyleft licenses “win.” In the same way Apple can pull a version of FreeBSD behind closed doors, the Linux community can use anything from FreeBSD, but not the other way around.
Unfortunately, the same can’t be said of the non-software public licenses. While I appreciate the work that Creative Commons does, insisting on continuing their non-commercial licenses means that there is a huge split even among people who support the license framework. Because you can’t “share-alike” both commercial and non-commercial terms, you can’t combine even very similar works.
And that’s very strange, because the share-alike clause already has the effect of eliminating most of the abusive kinds of commercial exploitation. Karl Fogel made the point well in jokingly proposing a license that does what the non-commercial advocates seem to look for.
Likewise, the commercial-friendly Creative Commons licenses permit use of the work within GPL-licensed works, but this is not reciprocal. The intent is for games to be able to use art, but the idea of showing code inside a book doesn’t seem unreasonable.
The Flipside of Virality
One legitimate problem with copyleft licenses, possibly all public licenses, is that the creator still owns the underlying copyright and so is not bound by the terms of the public license. That means that, for example, I can stop providing updates to SlackBackup and start releasing proprietary versions.
However, I can’t put the genie back in the bottle. That is, unlike my hypothesis about non-copyleft licenses being revokable, there is no way to retract the copyleft licensing of code already released, because those licenses state that clearly.
All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met.
GNU General Public License, version 3
Additionally, the problem is largely resolvable by dispersing the underlying copyright. That is, I can stop extending the licensing terms of SlackBackup only because I am currently the only contributor. If people contributed changes back to it, I would need to remove those changes or get their permission to alter the license arrangements for future releases, and each additional contributor makes that change more difficult.
This is why I would encourage everybody to avoid involvement in projects with Contributor License Agreements, since the agreements exist partly to eliminate the need for permission in relicensing.
I suppose my point is that I apologize broadly for my tiny, tiny part in propagating hatred of the GPL, and (if they read this and remember) apologize specifically to the various people I argued with on which licenses are better. And in an environment when companies encourage sharing that doesn’t require any responsibility from them, it only seems right for me to stick with copyleft licensing.