Licensing

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

zd3nik
Posts: 193
Joined: Wed Mar 11, 2015 3:34 am
Location: United States

Licensing

Post by zd3nik »

What is the best license to use to make a chess engine open source with the following conditions:
  1. All derivatives of the original work must inherit the unmodified license.
  2. The original author receives mention/artistic-credit in all derivative works.
  3. Anyone may distribute/bundle/whatever the original work and/or derivatives of the original work as long as it is provided free of charge.
  4. No one may sell the original work nor derivatives of the original work without contractual permission granted by the original author (which may include agreement to pay royalties to the original author).
I know this is a topic that has been beaten to death over the years, but I have not paid much attention to it. So forgive me if it seems like the answer is obvious to those "in the know". I'm not "in the know".

If any of the wording I used above is too vague, or filled with loopholes and/or contradictions, just use your judgment to try to infer the spirit of what I'm asking for. I'm not writing a license here, I'm humbly asking for guidance from anyone with more experience/expertise in this area. A summarization of license options (if any) that fit the description above would be of great help to myself and probably many others.

Thanks,
STC
User avatar
hgm
Posts: 28321
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Licensing

Post by hgm »

I don't think any standard license does that. But I am sure it should be easy for you to take the GPL, and modify the applicable clauses to create one.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Licensing

Post by Evert »

zd3nik wrote:What is the best license to use to make a chess engine open source with the following conditions:
  1. All derivatives of the original work must inherit the unmodified license.
  2. The original author receives mention/artistic-credit in all derivative works.
  3. Anyone may distribute/bundle/whatever the original work and/or derivatives of the original work as long as it is provided free of charge.
  4. No one may sell the original work nor derivatives of the original work without contractual permission granted by the original author (which may include agreement to pay royalties to the original author).
I think the first comes by default: if you don't own the copyright to the code, what you're allowed to do with it is written in the licence text. Typically changing the licence is not one of the things it allows you to do.

I think CC-BY-NC or CC-BY-NC-SA are close to what you want. However, you should be aware that the Creative Commons licences are not recommended for software, neither by the FSF nor by Creative Commons themselves. You may want to take a look at different licence options available at http://opensource.org/licenses, but your "may not sell" clause eliminates the GPL, BSD, MIT and Apache licences as suitable (I don't know about/haven't checked any of the others). I suspect that requirement is against the spirit of open source software.

You can always make up your own licence to deal with whatever particulars you want, but it's easier on everyone if you can work with a standard licence.

Hope this helps!
zd3nik
Posts: 193
Joined: Wed Mar 11, 2015 3:34 am
Location: United States

Re: Licensing

Post by zd3nik »

hgm wrote:I don't think any standard license does that. But I am sure it should be easy for you to take the GPL, and modify the applicable clauses to create one.
Evert wrote:your "may not sell" clause eliminates the GPL, BSD, MIT and Apache licences as suitable (I don't know about/haven't checked any of the others). I suspect that requirement is against the spirit of open source software.
Thanks, that does help. I assumed open source licenses typically took 2 basic forms: one form surrenders all control (like MIT) and the second basic form disallows anyone from selling your work or derivatives of your work without your consent. But I guess it would be impractical to expect to be able to enforce the second form.

I'm thinking about making all of the chess engines I've written over the years open source. A couple of them are actually not absolutely terrible - perhaps on par with the likes of Spike. Most of them are just experiments in some form of move generation or programming technique (macros, templates, linked lists, etc). Anyway, it would irk me considerably if I put them out there as open source and someone started making money from them without giving me a cut. Sounds like I'd have to create my own license - and then dream about being able to enforce it.

Thanks for the feedback.
User avatar
hgm
Posts: 28321
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Licensing

Post by hgm »

Well, I am afraid this will be mainly an exercise in futility: it is a virtual certainty that whenever someone wants to make money on a Chess engine, they won't cut you in. The only purpose the license could serve is that they won't touch your stuff, but will base their product on some of the public-domain stuff that is around.
Dirt
Posts: 2851
Joined: Wed Mar 08, 2006 10:01 pm
Location: Irvine, CA, USA

Re: Licensing

Post by Dirt »

Evert wrote:You can always make up your own licence to deal with whatever particulars you want, but it's easier on everyone if you can work with a standard licence.
He could copy the Crafty license.
Deasil is the right way to go.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Licensing

Post by Evert »

zd3nik wrote: Thanks, that does help. I assumed open source licenses typically took 2 basic forms: one form surrenders all control (like MIT) and the second basic form disallows anyone from selling your work or derivatives of your work without your consent. But I guess it would be impractical to expect to be able to enforce the second form.
I don't think that's the problem. It should be no more difficult than if someone takes a GPL source, closes it and sells the result. People have been taken to court over that and lost (allegedly, I don't know of particular instances).
The real reason is that this sort of restriction is against the spirit of open source (and actually against the definition of what open source means). To put this into perspective: having such a restriction in place would disqualify your program from being included in a commercial Linux distribution.
I'm thinking about making all of the chess engines I've written over the years open source. A couple of them are actually not absolutely terrible - perhaps on par with the likes of Spike. Most of them are just experiments in some form of move generation or programming technique (macros, templates, linked lists, etc). Anyway, it would irk me considerably if I put them out there as open source and someone started making money from them without giving me a cut. Sounds like I'd have to create my own license - and then dream about being able to enforce it.
I don't think it's something you'd have to worry about in practice, to be honest. I don't think there's that much money to be made in this business. The requirement of keeping the source open (as per the GPL) is probably sufficient: people who honour the licence keep the source open and are unlikely to try to sell your software to make a profit for themselves (they'd basically be required to say "this other guy wrote this software, which he distributes for free. I'll give it to you if you pay me."), people who don't honour the licence will take your code, break the licence by not releasing their modified sources and try to sell that as their own original work. If they're not bothered by you telling them they need to keep the source open, they're not going to take notice if you tell them not to sell it.
jdart
Posts: 4396
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Licensing

Post by jdart »

This is an unusual combination of restrictive and liberal terms. On the one hand you want to allow modification and redistribution. On the other hand, you want to control that fairly strictly (for example prohibiting selling). You probably want to make up your mind which is more important to you: potentially widespread re-use or control.

If you don't want to grant a standard license then consider distributing it wth a copyright notice and some (hopefully simple) conditions; many people do this. I still distribute my chess UI (not engine) this way, partly because it has some components I cannot license under the MIT license that the engine uses.

--Jon
jdart
Posts: 4396
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Licensing

Post by jdart »

GPL does not mean non-commercial. Quite a few people make money from GPL software, either by selling it with extra services like support, or (if they are the authors) by dual-licensing it and selling a non-GPL version to people who have usages that don't fit GPL.
It should be no more difficult than if someone takes a GPL source, closes it and sells the result. People have been taken to court over that and lost (allegedly, I don't know of particular instances).
I think actually one of the difficulties with GPL is enforcement. If someone misuses GPL software of yours, you can take them to court but that is expensive and difficult. For example, none of the authors of the recently controversial allegedly GPL-derived closed-source chess engines have "lost in court".

--Jon
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Licensing

Post by Evert »

jdart wrote:GPL does not mean non-commercial. Quite a few people make money from GPL software, either by selling it with extra services like support, or (if they are the authors) by dual-licensing it and selling a non-GPL version to people who have usages that don't fit GPL.
For sure. What I was trying to say is that if someone who wants to take your code to make a profit for hemselves, having a GPL licence is probably equally effective as a non-commercial clause in preventing them from doing it (which means it's not going to stop certain people one wy or the other).
It should be no more difficult than if someone takes a GPL source, closes it and sells the result. People have been taken to court over that and lost (allegedly, I don't know of particular instances).
I think actually one of the difficulties with GPL is enforcement. If someone misuses GPL software of yours, you can take them to court but that is expensive and difficult. For example, none of the authors of the recently controversial allegedly GPL-derived closed-source chess engines have "lost in court".
I didn't say it was easy, but enforcing a non-commercial clause is probably no more difficult than enforcing an open-source clause, which has been done (so it's something that people can't just get away with with no penalty if they ignore the clause).
Of course in order to enforce something in court, someone has to take the case to court - and that's the real issue: will you take steps to enforce the licence if someone violates it? At least with the GPL you know that it holds up in principle, which is not true of a random bit of licence text that you put together yourself.

All of which is not to say that the GPL is necessarily the best licence option for open source software, it really depends on hat you want.