Google, who brought forward the specifics of the ‘do no evil’ ideology within consumer visible software, is refusing to host an open-source project due to slight, almost humorous, modifications to its license, denying ‘evil’ use of the licensed software.
Douglas Crockford selected the MIT license for his JSMin program to reduce JavaScript code syntax in such a way to make it still functionally identical but smaller in size to enable bandwidth savings when these JavaScript files are downloaded by end-users’ web browsers. Ryan Grove continued to utilise this license for his variation of JSMin called JSMin-PHP, appropriately rewritten in the PHP language. This specific license however, contains a variation from the original MIT open-source license, as it includes the following line of text, originally inserted into the license for assumed comical value.
“The Software shall be used for Good, not Evil.”
Since Google’s code hosting solution, imaginatively called ‘Google Code’ only allows hosting of code licensed under very specific open-source licenses, this single modification acts an additional condition which Google is not willing to accept. This means JSMin-PHP can not be hosted at Google Code simply due to this licensing issue.
The developer of JSMin-PHP, Ryan Groove has the following to say about this, on his blog.
“As Google (and some others) interpret it, this additional requirement constitutes a vague use restriction and thus makes the license non-free. Chris [DiBona] explained that if I were to remove that line from the license and ‘return to a proper open source license that we support,’ then jsmin-php could stay on Google Code. Otherwise, he said, ‘we can’t host you,’
… Of course, I can’t change the license, because it’s not my license. It’s Douglas’s license… All derivative works and copies of jsmin.c either include this license or are in violation of it.”
If you are using Google Code to host your project, be warned, Google are very tight on their licensing restrictions. What do you think? Valid reasoning or over the top enforcement of open-source licensing terms?
If you liked this post, you may be interested in these:
It’s a valid reason. Technically it’s not “open-source”. While it may seem a silly argument, it’s still legally not open-source and thus google is well within their rights to refuse to host it.
If a project claims to use license X, I expect them to use the official version of license X. I don’t want to have to read every header of every file.
Even the phrase “The Software shall be used for Good, not Evil.” is vague. Even today there are 2 opposing views on Guantanamo Bay. Some would argue gitmo is evil, while others claim it is needed to protect the US and so is a good thing. So can Douglass’ code be used for apps connected to gitmo?
Many years ago I was looking at using Douglas Crockford’s json.js script. I tried to explain to him the problems with his choice of licensing conditions. He wasn’t interested in engaging with the issue.
There are many things in the world which I disagree with and would consider to be evil. I would like to be able to protest them through my work, but that isn’t very practical via licensing terms. There is also a good chance me (or one of clients) could be caught up in someone else’s protest based licensing terms. Although it is almost 5 years old, the FSF’s take on the issue is relevant today, see the blog post from David “Novalis” Turner.
I think Google is right on this one. If you want to find something to take issue with Google Code over, then complain to them about not allowing AGPL for hosted projects.
I agree with William, that is a very vague restriction for a legal copyright notice. It also makes it non-free software due to rule #0 not applying “The freedom to run the program, for any purpose (freedom 0)”.
It is certainly a very vague condition to place in a license which is effectively a legal document. It seems mad in some sense that this is a concerning factor, but of course, it is completely logical and required for text which governs the use of software to be very specific and precise.
The single additional line changes the regular MIT open source license to a non-free license, due to the freedom 0 which DarwinSurvivor cites.
It is very interesting to see the comments this article is sparking. Thanks all.
It’s vague. Google is correct here. The original author’s attempt at being clever has failed, badly.
@William Chambers
Being open source means making your source code freely available, not permitting your code to be used in all applications. Restricting certain uses of your code does not disqualify your code as being closed source.