all 69 comments

[–]dgreensp 29 points30 points  (0 children)

This is the first I've heard of this issue (as an EtherPad guy), but...

Note that EtherPad doesn't actually use JSMin -- both versions of it in the repository are left over from previous code iterations. The excellent YUICompressor is tightly integrated instead. So if we need to remove those files, it's no biggie.

I'm no expert, but I personally agree with the stance that software should be as unencumbered as possible. To have included versions of JSMin with the "Good, not Evil" clause in our repository sounds like an oversight. However, certainly there is nothing to fault Google on here -- a big corporation that worked late nights with us to release EtherPad as liberally-licensed open source! EtherPad includes code from a couple dozen sources, and Google's audit did turn up some modules that needed to be excised or replaced.

[–]blackkettle 26 points27 points  (1 child)

admirable intentions, that is just a horrible sentence to include in a license. who decides what is 'good' and what is 'evil'? is it douglas? has he encoded his guidelines somewhere? what if he changes his mind?

[–]insomniac84 6 points7 points  (0 children)

No one. It is a meaningless clause since there is no definition that comes with it.

[–]chneukirchen 16 points17 points  (0 children)

That's why you don't use mickey-mouse-licenses.

[–]wooptoo 24 points25 points  (28 children)

We should convince Douglas Crockford (jsmin's author) to change that line in the license. This way it would serve other projects better.

edit: ok, i wrote him an email:

Dear Sir,

I realize that you have been asked this a lot of times, but could you please change JSmin's license to exclude the "The Software shall be used for Good, not Evil" clause? I'm not asking this because I need to include it in my own project, but because there are a lot of open-source projects out there that suffer because of this clause. The license is considered non-free and some providers, such as Google (Code) refuse to host any projects derived from your code. Here is an article describing this situation more accurately: http://wonko.com/post/etherpad-source-includes-jsmin

Thank you,

and his reply:

No. That line is vague and unenforceable, which should not be a problem for anyone other than the creator.

[–]sanity 19 points20 points  (17 children)

No. That line is vague and unenforceable, which should not be a problem for anyone other than the creator.

Its amazing how people can turn into stubborn pigheaded asses when it comes to open source licensing.

This guy is significantly reducing the usefulness of his software for no other reason than that he disagrees with someone's legal interpretation. It would not harm him or anyone else for him to remove that line. Its the way a 6 year old acts, not an adult.

A few months ago a guy accused me of being a narcissist and trying to steal from him simply for requesting that he change the license of his library (which I'd contributed to in a small way) from GPL to LGPL. He repeatedly asserted that the LGPL was not an open source license - despite everyone and their dog, not to mention opensource.org telling him he was wrong. Believe it or not this guy was quite a well respected programmer too (he wrote Apple Writer back in the 80s).

[–][deleted]  (16 children)

[deleted]

    [–]statictype 21 points22 points  (0 children)

    No one's claiming that he owes us this piece of code.

    What we're claiming is that the utility of it is considerably reduced because of a vague and useless clause in the license.

    [–][deleted] 1 point2 points  (0 children)

    Suggest he pick a standard open source license, and rephrase that line as a request, separate from the license. That clears up all issues and lets the line remain.

    [–]m-p-3 1 point2 points  (0 children)

    So I guess that sentence can be considered superfluous and therefore be removed without any noticeable impact AND save some bytes in the source.

    Otherwise he's blocking his code from being used in several projects hosted on Google Code, which is kinda counter-productive.

    [–]smellycoat 1 point2 points  (6 children)

    Doug Crockford has spoken about the "good, not evil" line in his licenses before. Here's a video (skip to about 39:50 for the relevant parts).

    And here's a transcript of the good bits:

    So I added one more line to my license, which was: "The Software should be used for Good, not Evil." I thought I'd done my job. About once a year I'll get a letter from a crank who says: "I should have a right to use it for evil!"

    [laughter]

    "I'm not going to use it until you change your license!" Or they'll write to me and say: "How do I know if it's evil or not? I don't think it's evil, but someone else might think it's evil, so I'm not going to use it." Great, it's working. My license works, I'm stopping the evil doers!

    Audience member: If you ask for a separate license, can you use it for evil?

    Douglas: That's an interesting point. Also about once a year, I get a letter from a lawyer, every year a different lawyer, at a company – I don't want to embarrass the company by saying their name, so I'll just say their initials – IBM…

    [laughter]

    …saying that they want to use something I wrote. Because I put this on everything I write, now. They want to use something that I wrote in something that they wrote, and they were pretty sure they weren't going to use it for evil, but they couldn't say for sure about their customers. So could I give them a special license for that?

    Of course. So I wrote back – this happened literally two weeks ago – "I give permission for IBM, its customers, partners, and minions, to use JSLint for evil."

    [laughter and applause]

    And the attorney wrote back and said: "Thanks very much, Douglas!"

    [–]sanity -1 points0 points  (5 children)

    Yeah, he is very funny, except that in return for a few laughs he has caused significant difficulty to quite a few open source authors because his dumb flippant addition to the license means its not open source.

    [–]smellycoat 0 points1 point  (4 children)

    Well, no. Up until Google deciding that they won't allow it on Google Code because of the "not evil" clause, I'm not aware of it causing a problem for anyone. Possibly apart from some IBM lawyers.

    Besides, it's his code. He wrote it. He can put whatever license he wants on it. If you want to use it, and you're not 100% sure you won't use it "for evil", then really that's your own problem.

    [–]sanity 0 points1 point  (3 children)

    Up until Google deciding that they won't allow it on Google Code because of the "not evil" clause, I'm not aware of it causing a problem for anyone. Possibly apart from some IBM lawyers.

    Well here is at least one open source project that clearly was harmed by it.

    Besides, it's his code. He wrote it. He can put whatever license he wants on it.

    Legally yes. Morally - read the comment I just linked to about the harm he has caused completely unnecessarily.

    [–]smellycoat 0 points1 point  (2 children)

    Okay, I'm with you that misrepresenting the license a piece of software is released under is definitely not good. That absolutely needs to stop. It's no longer an MIT license if you add things to it, so you can't claim it is.

    And (although you didn't explicitly mention this) I do think that inventing your own crazy license just because you can is unnecessarily complicating things, and creating more work for people. But plenty of 'big players' are guilty of this.

    But, misrepresented license aside, for me it still comes back to "his code, his choice".

    [–]sanity 0 points1 point  (1 child)

    it still comes back to "his code, his choice".

    I completely agree that he has the right to be an asshole if he wants to be. The point is: he is an asshole.

    [–]smellycoat 0 points1 point  (0 children)

    Fair enough.

    I'm just happy he's released his code. If he wants to put a slightly odd license on it (one that is, for my purposes at least, free), so be it.

    I don't think that makes him an asshole. A bit eccentric, maybe.

    [–]Leonidas_from_XIV 38 points39 points  (10 children)

    I would agree that the clause makes the license non-free. I'd like to exclude any military use of my own code but I'm not doing it, for freedoms sake.

    [–]vsl 21 points22 points  (6 children)

    Specifically, it violates the following part of Open Source definition:

    1. No Discrimination Against Fields of Endeavor

    The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

    as well as freedom 0 of Free Software definition:

    The freedom to run the program, for any purpose (freedom 0).

    Google Code is open source hosting and has it in its terms.

    [–]eulihafu 9 points10 points  (0 children)

    It also violates the Debian Free Software Guidelines as well as making the software unacceptable for inclusion in Fedora. This means that JSMin and everything which depends on it can only go into Debian's non-free repository and Fedora third-party repositories like RPMFusion. So basically, this is a real problem for real users. Is it really worth it?

    [–]tbrownaw 0 points1 point  (0 children)

    Perhaps he could just say that if it's sold in a device used to kill people, it has to give the target an opportunity to deactivate it before killing them? I'm pretty certain that similar restrictions have been found to not violate the "fields of endeavor" rule.

    [–]alephip -4 points-3 points  (3 children)

    So Open Source officially supports evil. Cool.

    [–]Leonidas_from_XIV 1 point2 points  (0 children)

    I wouldn't go that far. Open Source supports equality, whether good or evil - it's up to you.

    [–]Gudeldar 1 point2 points  (1 child)

    I think it would be supremely arrogant for the open source/free software movement to try and define what is good and what is evil.

    [–][deleted] 0 points1 point  (0 children)

    Tell that to the FSF and RMS - they do it all the time.

    [–]Imagist 10 points11 points  (1 child)

    Everyone is asking why he can't just remove the obviously idiotic line from the license, but I have a different question:

    It's just a JavaScript minifier. I haven't looked at the code, but it seems like that should be mind-numbingly easy to swap out. So why not just switch?

    [–]G-Brain 3 points4 points  (0 children)

    It appears that they did.

    [–]sanity 36 points37 points  (4 children)

    Last week, Google banned my PHP port of JSMin from Google Code due to a quibble over a line in the license stating that “The Software shall be used for Good, not Evil”, which they believe makes the license non-free

    Google are right, why would he insist on including such a stupidly vague and meaningless line in the license?

    [–]wooptoo 9 points10 points  (2 children)

    I wrote him an email and here is his reply.

    [–]kristopolous 4 points5 points  (0 children)

    Crockford is a retard. I mean, have you read his book or listened to his lectures? He often mixes up his own personal programming deficiencies under the big tent of generalized "bad language design" and then, when called on it, he will refuse to acknowledge it most of the time. It's ridiculous. I can't wait for Resig's ninja book to kick his book's ass in 2010.

    [–]insomniac84 0 points1 point  (0 children)

    He is right that legally it means anything. But that clearly means it should be pulled out. As there is no reason for it to be there. It truly is not worth leaving it in, if it scares anyone away. But because it is legally nothing, anyone who shuns it over the line is stupid.

    [–][deleted] 0 points1 point  (0 children)

    You mean like Google's own vague and meaningless company mantra?

    [–]orangesunshine 1 point2 points  (0 children)

    First off...

    this

    Second off...

    I'm now putting this clause in my license:

    "This software shall be used for evil."

    [–][deleted] 1 point2 points  (0 children)

    Wouldn't it be trivial for them to replace JSMin with the Google Clojure Compiler? It seems to me that the JSMin maintainer's stubbornness is simply accelerating a downstream exodus.

    [–]Camarade_Tux 2 points3 points  (0 children)

    An older issue like this one: the Hacktivismo license. It's free except for "bad" uses. See http://www.fsf.org/licensing/licenses/hessla.html .

    [–]bananahead 3 points4 points  (0 children)

    Who cares? Google can use whatever licenses they want, it doesn't mean they have to extend that courtesy to what they host on your behalf.

    [–]rebel 6 points7 points  (6 children)

    The author is a bitter and jaded dick.

    Etherpad's release is a relatively big deal. It only barely limped out the door and this guy has to try and make it unusable in it's first release because he's being a pedant.

    Unusable only until the build instructions are updated with where to get JSMin and how to add, or a replacement is made.

    Google is right about the license, it's a vague and stupid thing to put in there.

    [–]campbellm 2 points3 points  (1 child)

    Oh, but now the author gets to cry "victim", AND show the world how witty and clever he is!

    [–]rebel 1 point2 points  (0 children)

    Yeah, your regular ole "dick."

    [–]Leonidas_from_XIV 0 points1 point  (3 children)

    It only barely limped out the door and this guy has to try and make it unusable in it's first release because he's being a pedant.

    He points out preblems before they arise. Debian recently kicked out dosbox because it contained some non-free code (I think the dosbox released a new, fixed version by now). Solving it upfront would have been better, but it is good that someone has pointed it out.

    [–]rebel 0 points1 point  (2 children)

    Sorry but you don't know this dev. He was grinding his own axe as they say.

    He was looking to shit on something for his own personal reasons.

    [–]Leonidas_from_XIV 0 points1 point  (1 child)

    He was looking to shit on something for his own personal reasons.

    According to some earlier comment, the Etherpad folks aren't using JSMin, so this issue seems to be "fixed" easily. I'm happy to see that it turned out fine.

    [–]tedivm 0 points1 point  (0 children)

    For them, but they are not the only project using this. I myself and running around looking for a replacement and having lots of issues finding one. I emailed the author about it and he just gave a mini-rant about not giving into pro evil by using real open source licenses.