Ask HN: Can I exclude Trump supporters in my open source license?

21 points by africajam ↗ HN
At the end of the readme for my open source project on github I put the following:

"I would encourage anyone who supports Donald Trump as president of the USA or who agrees with his racist statements to desist from using this code."

Is there someway an open source license could be written to explicitly state that supporters of Donald Trump may not use it?

update

Thanks to the suggestion by @notacoward I have decided to go for the following wording instead:

This ReadMe document and/or the following statement may not be removed from this project or any works that derive from it: The creator of PropertyWebBuilder is opposed to the racist statements made by Donald Trump during his presidential campaign of 2016 and would prefer that supporters of Donald Trump do not use this project.

60 comments

[ 3.0 ms ] story [ 140 ms ] thread
(comment deleted)
You can just not distribute your software. Keep it for yourself.

Last year, a german developer did that, because he disagreed with the policies of the European Union.

http://www.sciencemag.org/news/2015/11/paper-retracted-after...

That's were you see the notion of country is a great invention: you can gather all the non racists in a country, and all the racists in other countries (classified by races), and then everybody is happy. But of course, don't distribute your products cross borders: establish tariffs and rules for importation and exportation.

Oh wow, that's a great link. So it seems this person does continue to have a restriction on the use of his software in certain countries as a visit to his website shows.
You can just not distribute your software. Keep it for yourself.

Last year, a german developer did that, because he disagreed with the policies of the European Union.

http://www.sciencemag.org/news/2015/11/paper-retracted-after...

That's were you see the notion of country is a great invention: you can gather all the non racists in a country, and all the racists in other countries (classified by races), and then everybody is happy. But of course, don't distribute your products cross borders: establish tariffs and rules for importation and exportation.

It would not be open source if you didn't allow Trump supporters to use it.

https://opensource.org/osd

The license must not discriminate against any person or group of persons.

There is no such thing as pro-life or pro-choice open source software.

I did not know about the open source definition. Is that just a guide line or does it carry some weight?

Also, is it discrimination if I give users a choice? You can use my software whoever you are, you just have to disagree with racism.

It doesn't carry any weight, it's just a label. It's like the difference between open source and free software. They are just definitions made by someone. You can write any license you want (but get a lawyer).

The concrete problems is that this license with the no-Trump-supporters clause will not be compatible with most of the license that most people think when someone talk as a open source or free software. So for most people this will not be open source or free software.

(I'm not a lawyer, so please get someone to review my opinions.)

* You can't copy code from GPL/LGPL licensed software to your project, and someone else can't copy code from your project to a GPL/LGPL project.

This is important if you are planning to copy any code from a GPL/LGPL library.

* You can copy code from MIT/BSD licensed software to your project, but someone else can't copy code from your project to a MIT/BSD project.

Hey, you can even copy code from a MIT/BSD to a project that has a license that allow to use it only for evil purposes, like killing kitties.

IANAL.

I did not know about the open source definition. Is that just a guide line or does it carry some weight?

It carries the weight of the names of the people who support it. Take a look at who is involved in it. Ian Murdock, founder of Debian, is a co-founder for the OSI.

Also, is it discrimination if I give users a choice? You can use my software whoever you are, you just have to disagree with racism.

Rephrasing it doesn't change anything.

So you want to exclude people based on their political opinions ? How is it different from excluding Mexican immigrants from using your code ?

Trump supporters are persons you know, just like gay people, blacks or immigrants. What difference do you see between your attitude and the average Trump supporter's one ?

Being Mexican is not a choice. Being black or being gay is not a choice.

Associating and supporting someone who hates all of the above is a choice.

See the difference now?

Let's say I'm a religious. It IS a choice. Is it OK to ban me from doing anything for this very reason?
Actually our beliefs are not a choice - they are a cumulative result of the arguments that the person has heard. If you don't believe it, try and like Trump. So you can choose to act like you like (or don't) something, but you can't choose to like (or not) something.

So instead of creating better arguments in the support of your political beliefs, you're telling people to just pretend to be on your side.

Funny how so many people are against bigotry on HN (I constantly see articles about it). Yet, it's perfectly fine to be bigoted against someone that goes against your political beliefs.

Generalization and bigotry will only bring us 8 years of Trump. This sort of behavior is exactly why people voted Trump into power in the first place: instead of actually having civil conversations and understanding the opposition, you attempt to silence and destroy your opponents through passive-aggressive tactics, shaming, lying, and laws.

Learn from your mistakes and we might have better leaders in the future.

Nah. Trump gamed the process in more ways than one through the electoral college and actively encouraging foreign intervention in our election.

Not to mention, he's made several very bigoted statements that helped him get elected.

I don't recall any other candidates doing anything remotely similar to what he's done.

Bigotry is different than dissuading others from supporting Trump(who is a bigot).

Can you explain how Trump gamed the process through the electoral college?
"Nah. Trump gamed the process in more ways than one through the electoral college"

The electoral college is now considered 'gamed'? This has pretty much been how a president is elected since the United States was founded. If Hillary or Bernie were actually trying to get the popular vote, their campaign trails would have looked much different. They were trying to 'game' the system too (but failed).

"and actively encouraging foreign intervention in our election."

Hillary had 30,000 missing emails and Trump made a joke about Russia. Jokes aren't supposed to be taken seriously. We also still have no proof Russia hacked anything. I have access to IP addresses in Russia. It doesn't mean I'm in Russia or Russian. I will believe it when I see the proof.

"I don't recall any other candidates doing anything remotely similar to what he's done."

You mean like when Bernie Sanders and Hillary Clinton blame both the wealthy and white people for all of our country's problems?

"Bigotry is different than dissuading others from supporting Trump(who is a bigot)."

Trump isn't a bigot. Many of the 'bigoted' things that you see in the mainstream media were completely taken out of context or were outright lies. I watched his live speeches and then saw the resulting media coverage. It was ridiculously bad.

Is Trump going to be a good president? Only time will tell. He's not even in power yet.

I'm glad you feel it's okay to be bigoted against a person as long as it's not on the list of protected classes.

Many on HN love to smoke weed. Would it be okay, in your opinion, if all companies got together and had mandatory, monthly, drug tests, and fired anyone that had any level of THC in their system?

After all, the government can only give you the freedom of speech, right? (this is the argument I keep hearing when someone wants to be bigoted against another (usually on the left) after the Trump election)

When you start to encourage the singling out (and generalizing) of people based on things such as political opinions, it creates a world where you lose your freedoms and the only people that come out on top are the wealthy and those in power.

Trump encouraged a foreign government to hack Hilary's campaign accounts for incriminating evidence.

Trump focused on important states where he knew he could a lead with electoral votes.

He whipped up racist and class hatred to get elected.

I don't have respect for him nor the people who voted for him.

It's deeply disturbing that HN discourages political discourse now that Trump is in power.

Can you please provide sources (primary sources with direct evidence, not editorialized articles) in support of these claims?
(comment deleted)
I am the opposite of a Trump supporter but that's going too far. Why? Because I have a hard time believing that there are significant numbers of Trump supporters in the developer community. Developers need to understand logic pretty well that automatically eliminates 98% of Trump's claims.

You're better off saying the software can't be used to produce trolling bots. You have a better case there.

What does it mean to be a Trump supporter? What if you didn't like him, but you voted for him as the lesser evil? Are you a supporter? What if you didn't vote for him, but you still prefer him over Clinton?

Are you a supporter if you hope that he will be a good president now that he's been elected? Because, you know, he's going to be the president anyway and it would be nice to have a good one.

Also - what are the "racist statements" of Donald Trump? Is it really true that he made "racist statements"? Or are you talking about statements that might be racist if given the most uncharitable interpretation?

This is stupid. Keep your politics out of software, whatever they might be. If you're really so intent on combining the two, go make a separate project for doing so.
> This is stupid.

Partisan threads are bad enough without stooping to this. Please edit such name-calling out of your comments here, as the HN guidelines ask: https://news.ycombinator.com/newsguidelines.html.

name-calling

I don't see any name calling.

Please read https://news.ycombinator.com/newsguidelines.html and you'll understand the sense in which the term is used here.
Is this argument / debate the reason this post has been flagged?
There are ways to ask questions about restrictive clauses in licences that don't cause shitty threads, which is something that almost always happens when US politicians are named.
You're right - lessons learnt ;)
[flagged] on a post means users flagged it.
Hacker News could do better by recognizing the substance of coarsely-articulated statements instead of engaging in pedantic tone policing.
If you can point to a large internet community where people being jerks to each other results in substantive discourse, I'd love to see it.

However, please don't routinely create many throwaway accounts here. We ban those. HN is a community. Anonymity is fine, but users should have some continuous identity that other users can relate to. Otherwise we might as well have no usernames and no community, and that would be an entirely different site.

To my knowledge, even RMS doesn't demand ideological purity from users of his software. Why do you?
To be fair, RMS ideology is expressly against demanding any restrictions like this. So ideological purity can't be demanded by RMS without being a hypocrite.
Absolutely. I think this is a very novel form of protest. It would be interesting to see developer's reactions to it.
My two cents: Be affirmative rather than negative. Say what values you stand for, what movements and groups you wish to support and empower, and not which groups you oppose and wish to exclude.

By the FSF definition of "free", this might be an unfree (restrictive) license. But that neednt stop you. Still, an aspirational statement of what you wish to support and further is likely more productive.

(comment deleted)
I'm not a trump supporter but I wouldn't use an open source project written by someone with this type of philosophy.

Yes I am judging you philosophically (you're "open sourcing" something but being closed minded. It's as offensive as saying "I don't want any Russians using my code"), but also being realistic and trying to give you a constructive criticism. It's already hard to get traction for ANY open source project no matter how open you license it. That's why people say use MIT license or don't bother.

What will probably happen when you DO manage to open source it this way: The worst case: nobody would care. The best case scenario is your repo will go viral and you'll get tons of troll comments for what has nothing to do with your code. If that's what you want go ahead, but as a programmer I would rather be judged by the code quality and what the project does.

If you read this far, let's imagine in this case your project was actually a groundbreaking innovative piece of technology that no one has released before. Here's what will happen: some other "non trump supporter" will take your code and release it as their own as MIT, and people will use that instead while you're busy dealing with trump supporters trolling your github repo.

I don't expect it would be legally enforceable but I would like the chance to be able to make a statement with my code.
Yeah then don't even bother writing code. Just add a README.md that says that and you'll get what you want--attention.
Half of the reason legalese is so complex is to attempt to cover all bases, the other half is so that lawyers need to be hired to translate it.

Just put in simple plain language what you want to exclude. If you find someone violated your terms (most people do not read them), then it's on you to drag them into court and prove that they were a Trump supporter and to define that term.

It would not be an open source license anymore.

If you really want to make a moral statement at the cost of your code being unusable by any open source project, corporation or other entity that cares about following licenses, you might want to consider just adding the

  The Software shall be used for Good, not Evil.
clause from the JSON license.

http://www.json.org/license.html

edit: I should be clear that, like the response says, this still wouldn't be an open source license, and it would be a pain in the ass for anyone wanting to use it. I'm just saying, at least this clause looks somehat idealistic and not just pure trolling.

https://softwareengineering.stackexchange.com/questions/4702...

The JSON license is not an open source license because it doesn't allow evil people to use it. This is not a joke.
Seriously? That's quite interesting. Got some evidence to back that up?
Yep, there have been many arguments on Debian that it isn't disributable as it isn't compatible with DFSG (Debian Free Software Guidelines).

Also, google code hosting removed it as it wasn't Free Software... which was quite ironic given their 'do no evil' stance.

The real issue is... few 'bad people' think they are evil, and therefore it is too subjective. Licences are not the place to make silly clauses, if you want the main premise to be respected.

That is true. Re-posting what current_call posted above:

https://opensource.org/osd

The license must not discriminate against any person or group of persons.

That is the legal definition to be compliant as per OSI. The JSON license did not fulfill it. However, since then, the JSON spec/schema has been worked out under ECMA 5 standardisation, so you can JSON for all your evil projects now without a worry. [1]

JSLint, however, you will need to get a waiver like IBM did.[2]

[1]: https://news.ycombinator.com/item?id=3693108

[2]: http://dev.hasenj.org/post/3272592502/ibm-and-its-minions

You would need to use more grounded specifics for it to be legally actionable, but of course the answer is yes. Your code is your legal property, and how (or if) you license it is your choice.
To be honest it would be more about making a statement than trying to enforce it legally.
You would have to contact the department of Thought Police that would help you identify Trump supporters. From there on, simply compile a list of people that may not use your software.

The rest is trivial.

The problem is defining "supporter" in legal terms. It's probably easy to exclude the Trump Organization itself, but what about those who do business with them? You could exclude people who directly contributed to Trump's campaign, but does one such person in a company bar use by the entire company? It quickly becomes a bit of a quagmire.

Possible alternative: require preservation of a copyright notice which (among all the usual stuff) condemns Trump and his policies. It gives voice to your protest, without the definitional hassles that enforcing a restriction would have.

Great!!! I love your possible alternative suggestion.

Perhaps something along the lines of:

This ReadMe document and/or the following statement may not be removed from this project or any works that derive from it:

The creator of PropertyWebBuilder is opposed to the racist statements made by Donald Trump during his presidential campaign of 2016.

Serious philosophical question: can you verify someone's ideology, their internal mental state?

If not -- then this doesn't seem possible.

If yes -- then maybe.

.....

That said, from an editorial perspective, I find this very troubling.

More and more in America, we attempt to shame others based on what we perceive as their intentions and internally held beliefs and attitudes.

In objective reality, we can never fully know or understand what someone else is feeling, or what they intend. (At least as far as I am aware.)

Yet many of us still pretend we can, denouncing and shaming others because of their perceived intolerant or hateful beliefs. And, it's becoming socially acceptable, sometimes even encouraged... forgive me, but this whole idea is extraordinarily surreal.

EDIT: What makes this doubly strange - if this were satire, it would be funny.

Why would that be acceptable? It's definitely not acceptable for a restaurant owner to serve, say, muslims or black people. How is that any different?
I meant: "to refuse to serve"
How about a more positive message? "The creator of this software believes in equal rights" or "Be excellent to one another".

Picking on "Trump supporters" is a pretty low blow. And in practical terms is probably pointless -- basically just virtue signalling[0].

I know it's hard to know what to do, but if we're going to make a positive change in the world, we're all going to have to do better than this.

[0] https://en.wikipedia.org/wiki/Virtue_signalling

> Can I exclude Trump supporters in my license?

Yes.

> Can I exclude Trump supporters in my open source license?

No, because that license would not be open source. [1]

[1]: https://opensource.org/osd