What's wrong with ethical software licensing?

When less freedom is better

Happiness is a Warm GNU

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.

To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. ― Preamble to the GPL 3.0

Stirring stuff. Makes you want to go and write an operating system, doesn't it? Since version 1.0 in 1989, the GPL, and others like it, have laid the foundations for the free software ecosystem we have today; you can pick up software for practically any purpose, without paying for it, perfectly legally. And, if you have the skills and the inclination, you can read the code to see how that software works, and make your own changes.

Big Software was the enemy, in those simpler times. IBM, Microsoft, Oracle, Sun, Apple and their ilk: the dragons jealously guarding their secret hordes of code, stifling competition, holding back research, progress and the good of the commonwealth. For a while, the dragons could safely ignore open source software. Its audience was a limited number of enthusiasts, and distribution was by bulletin board or disks in the post. By the turn of the millennium, though, even some relatively ordinary people had heard of Linux, and the World Wide Web (largely served by open-source Linux, Apache and MySQL) was booming and bubbling through millions of dialup modems into relatively ordinary homes, bringing downloads to all. Steve Ballmer was calling Linux "a cancer". Free software enthusiasts, in return, were making up insulting names for his products, like "Windoze" and "Micro$oft Orifice".

But the FOSS bros were growing up. They had families and bills to pay, and so they found ways to sell free software: support, maintenance, upgrades, commercial licences, and so on. And the fat dragons smelled money, and decided that open-source wasn't so bad after all. Now, Microsoft publishes huge amounts of code on GitHub. (They liked it so much, they bought the company.) They're big contributors to Linux, and use it to run their Azure cloud services. Google make obscene amounts of money by giving away Android, Chrome and so on. Facebook, Amazon, Twitter, IBM, Oracle, Adobe and Intel are also big hitters in the free-as-in-speech world.

It's not clear who won that war. FOSS is bigger than ever, but so are the tech companies. GNU is everywhere, but Richard Stallman is still angry. Like soldiers lost in the jungle, still fighting long after the treaties have been signed, open-source warriors are looking for enemies.

Licensed to Ill

Let me get one thing straight: I love open-source. I'm writing this using Firefox on Ubuntu, on Plume running on a server stack including NginX, PostgreSQL and Rust on some kind of Linux. I contribute, in a minor way, to free software. And though we FOSS geeks are still predominantly white males, most of us try to be good people.

Good people don't like it when their creations are turned to evil ends. Alfred Nobel hoped his improved explosives would "put an end to war".

One could of course say that Nobel’s view on the war deterring effect of weapons and explosives — what would be later called the balance of terror — was a comfortable way for him to defend his own activity. ― Sven Tägil

Those who hoped open-source would bring down the tech giants were disappointed. So have they emulated Nobel and founded a peace prize? Sadly, the culture of the FOSS community has largely turned inwards. Innumerable accidents of history led to English-speaking white men dominating the software industry. They've made themselves comfortable, and in doing so, made the space uncomfortable for people not like them. If you're not a white man, you'll find it harder to be taken seriously, to get paid, or to have your voice heard. And if you are, you're allowed to get away with saying and doing obnoxious things; being sexist or racist or homomisic is much too often excused or ignored. This state of affairs is by no means contained to FOSS, or software, but it is a big problem in a community supposedly aligned with principles of openness and public good.

FOSS is a steaming pile of dog shit for everyone not an entitled white guy. ― @[email protected]

Maybe it was always there. Looking at the language of the GPL, phrases like "To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights" have a ring of "don't step on me" libertarianism. "Free speech" too often means the freedom to harass, incite violence and spread hateful propaganda. "Free software" is in danger of being tainted in the same way.

The problem with conventional free software licences is freedom 0, the first of the four essential freedoms.

At the head of the list is freedom 0, the freedom to run the program as you wish, in order to do what you wish.

Some developers propose to place usage restrictions in software licenses to ban using the program for certain purposes, but that would be a disastrous path. This article explains why freedom 0 must not be limited. Conditions to limit the use of a program would achieve little of their aims, but could wreck the free software community. ― Richard Stallman, Why programs must not limit the freedom to run them

Richard Stallman argues that restricting what a user can do with software is counterproductive. Firstly, forbidding uses which are already illegal is pointless; illegal activities are dealt with by the legal system, and those already breaking a law aren't worried about breaking a licence agreement. But laws differ between countries. Organizing an LGBT pride event could be illegal, and even risk the death penalty in some places. In others, it could be legally acceptable to plan terrorist attacks on other states. Almost anything is legal if you just pick the right place to do it. And since I can run software on a server on the other side of the world without ever leaving my room, whose jurisdiction counts? And does that country's police force have the means and the will to prosecute online crime?

If we accepted programs with usage restrictions as part of a free operating system such as GNU, people would come up with lots of different usage restrictions. There would be programs banned for use in meat processing, programs banned only for pigs, programs banned only for cows, and programs limited to kosher foods. Someone who hates spinach might write a program allowing use for processing any vegetable except spinach, while a Popeye fan might allow use only for spinach. There would be music programs allowed only for rap music, and others allowed only for classical music. ― ibid

I love this ridiculous idea. It's a straw man argument: programmers want their software to be used, and won't put anti-spinach clauses in. (Except as satire, specifically to annoy Stallman.) But there are more important and generally accepted ethical issues than a developer's vegetable preferences. You have to ask what's most important: that everyone can use your software, or that your software doesn't help people do bad things. Stallman's point is that the definition of "bad things" varies from one developer to another. True, but if your chosen licence specifies that the software may not be used to break the UN Universal Declaration of Human Rights, or that it may not be used to promote or enable fascism, there's a pretty large majority of people who'll be fine with that.

Revenge of the Freed Zeroes

The recent example that's brought this to Fediversial attention is Gab. Gab failed as a single-server social network after its members supported and engaged in fascist activities, up to and including mass murder. Gab is a "free speech" platform for white supremacy, anti-semitism, alt-right extremism and general fascist trolls. After its home-grown software proved unable to cope with the site's regrettably fast growth, the perpetrators forked the AGPL-licensed project Mastodon and started to deploy that as the new, distributed, Gab.

Mastodon users are generally a leftist, LGBT-friendly, anti-racist, anti-fascist bunch. This did not go down well. But Mastodon's BDFL Eugen could do nothing to stop Gab using his code. The licence which protected Mastodon's freedom also protected every arsehole's freedom to use it.

Free choice

So, to prevent this kind of thing happening to your software project, which licence can you choose?

There isn't a standard answer. You could take the Anti-Fascist MIT license, which just adds an extra "No fascists" condition to one of the most widely-used licences. (The author, Jamie Kyle, tried adding similar conditions to an existing open-source project's MIT license, and it didn't go down well.) Or there's Laurelai's fork with a more thorough definition of fascism. Whichever version you take, it's legally untested, and written by people with no legal training.

There's the Open Anarchist License, if you like. It starts off by excluding a list of bad types of people, from murderers down to liars. There's no further definition of the terms, so I have to assume that anyone who has ever told a lie is forbidden. Then, in the following conditions, it's restrictive to the point where software so licensed can't be used by any organization which does contracts for, or receives funds from, central government or law enforcement. It can't even be used by people who work for such organizations - so that's teachers and students, doctors and nurses, librarians, social workers, street cleaners and bus drivers out. That's going to limit its use pretty severely.

The Common Good Public License is more sensible. It's the only one with a businesslike website. It looks a lot like the GPL, but restricts use to entities compliant with the UN Declaration of Human Rights and with some environmental conditions. Unfortunately, the environmental conditions are extremely vague, and worded as triple negatives that seem to be saying the opposite of what I'd expect them to say. Still, it's in beta and may well improve.

The Non-Violent Public License, and its non-commercial variant the CNPL, look like the most solid, useful and legally watertight of the ethical licences I've found. They're still very new and untested in court, but (to my non-lawyer mind) seem reasonable and specific enough that there might be a chance of enforcing them. They focus on specific disallowed uses: war, fossil fuel extraction, promotion of hate speech, and so on. It can't cover every possible bad use, but certainly gets the big ones.

"Freedom 0" is explicitly violated to afford these protections and prevent unethical usage of the program to actually Free Society. ― Thufie, author of the NPL

So that's my pick, and I'm licensing this article under the NPL.


Notes and Queries

  1. "I thought it was FLOSS‽" Like many other inconsequential matters, the difference between FOSS and FLOSS is hotly debated. It's Free or Free / Libre. I don't prefer one over the other, and have used FOSS here just to save wear on my L key.
  2. "You've spelt license wrong!" No, just according the needlessly complicated British rules. "License" is the verb, "licence" is the noun. Though when referring to a specific licence, I defer to the authors' spelling, which always happens to be with an s, American-style.
  3. "So why aren't you spelling 'organise' the British way?" They're both the British way: "~ise" and "~ize". Ask the Oxford English Dictionary. Got to get some use out of that Z key.
  4. The picture? It's some open sauce.