Thoughts on the subject of ethical licenses

Message ID
DKIM signature
Download raw message
I have some thoughts of my own regarding the ethical licensing movement.
I hope we can promote a more civil discussion among peers, rather than
between opponents.

Firstly, I completely acknowledge the concerns of those who would put
ethical clauses in their licenses. I believe that the values on display
with these licenses are valid and worth fighting for. That being said, I
don't believe that software licensing is the appropriate stage for this
fight. I'll explain why, and I'll also share my thoughts on alternative
solutions to these valid ethical issues.

Even though I find problems with the ethical-source approach, I again
find the ethical dilemma valid and worth addressing. Ethical-source is a
desperate response to the increasing radicalism of world politics. Many
advocates feel powerless to effect change in the world around them, as
dissonant right-wing worldviews grow in public support. This leaves us
frustrated, dejected, and desperate for solutions.

Software licensing is a domain over which we have power, as software
developers, to affect change. Contrasted with the powerless feeling we
endure on the world's political stage, our power over the software
ecosystem is a good feeling. We want to believe that by exercising our
privilege in the software space, we can bring about the broader changes
we want in the rest of the world, or at least insulate the software
ecosystem against it.

Unfortunately, it won't work. I know this sucks. I feel those same
frustrations with the progress of world affairs. I feel equally
powerless and desperate. This approach, however, amounts only to virtue
signaling. There are better ways to signal your virtues, and better ways
to deal with the problems that are facing us.

This doesn't mean that there is no place for ethics in your software
projects. You shouldn't have to deal with racism, sexism, homophobia,
transphobia, or any other kind of discrimination in your project's
spaces. The maintenance of a healthy and inclusive community is an
important role for a software maintainer to perform. Be vigilant, and be
prepared to moderate discussions, eject bad actors, and provide a safe
space for everyone. It's going to be hard work, and it won't be made
easier by your choice of license.

Just because a jerk (or substitute whichever rude word you prefer) can
use your software doesn't mean that you're obligated to interact with
them. You can ban them from your issue trackers, mailing lists, and
chat rooms. You can reject their patches. You can even blackhole their
IPs from your distribution servers. Tell them to fork off and die.
You're still going to have to do this if you use an ethical software

Philosophy aside, the specific issues as I see them with the ethical
licensing approach are:

1. Laws enforce themselves

The Hippocratic License, for example, includes the following:

>The Software shall not be used by any person or entity for any systems,
>activities, or other uses that violate any applicable laws,
>regulations, or rules that protect human, civil, labor, privacy,
>political, environmental, security, economic, due process, or similar
>rights (the “Human Rights Laws”). Where the Human Rights Laws of more
>than one jurisdiction are applicable to the use of the Software, the
>Human Rights Laws that are most protective of the individuals or groups
>harmed shall apply.

The problem is, licenses are held in force by laws, too. Human rights
are already defended: by laws. Anyone who is prepared to violate *human
rights* is going to have no problem ignoring your software license, too.

2. It's difficult to comply with

I maintain a project hosting forge, which is currently licensed with the
AGPL. It provides git hosting, among other things. If I used the
Hippocratic License instead of AGPL, would I be liable if someone hosted
a project on my platform which violated, say, environmental laws? The
license terms say that most stringent jurisdiction applies. Let's say
for example that the electricity consumption of Bitcoin was made illegal
under strict environmental protections somewhere, and I have users in
that jurisdiction. If someone pushes the Bitcoin source repository to
SourceHut, are they in violation of the SourceHut license? Am I?

What if someone pushes GNURadio to SourceHut, and I have a user in the
United States National Radio Quiet Zone?

3. It's not open source

This should be fairly obvious. Simply review the ESD and OSD:


Points 1 and 6 are the only ones which are not in *direct* conflict with
the open-source definition. Ethical Source is tautologically not the
same thing as Open Source.

Even if we disagree on software licensing being the appropriate venue
for these battles, I don't believe that a hostile takeover of the
open-source definition is an appropriate way to promote this viewpoint.
A better approach is to put forward new definitions and terminology for
the ethical-source movement to rally behind, and to not drag open-source
advocates into it kicking and screaming. Any members of the open-source
community who were brought into ethical-source without their consent are
going to make for poor members of the ethical-source community.

A contested merger of our groups would leave half of us feeling
disenfranchised: if the OSD remains the same, ethical-source advocates
feel unrepresented; if the OSD changes, open-source advocates feel
unrepresented. This "hostile takeover" approach risks creates a
community of fragmentation and infighting. In truth, almost all goals of
the open-source and ethical-source movements are in alignment. By
cooperating as separate entities, we can be more successful in promoting
our shared goals, and compete only on our mutually exclusive goals.

I believe that this approach is going to weaken the open-source
community before it makes it stronger. For this reason, I voted against
Coraline in the OSI board member election.

Note: I Bcc'd my personal mailing list due to throughput issues with
moderation on license-discuss. Thanks for all of your hard work, mods :)
Reply to thread Export thread (mbox)