Do patches need to be open source?

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

Moderators: hgm, Rebel, chrisw

Ras
Posts: 2487
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: Do patches need to be open source?

Post by Ras »

Ovyron wrote:The programmers get to share their work, without revealing their secrets.
Oh, they can. But doing so in relying on OTHER programmers to fully release their secrets, e.g. the SF programmers, that's leeching.
So the problem is the Licence itself that doesn't allow this compromise.
It's not a problem, it's the main feature of the GPL to shut out cadgers.
Would you say that it's damaging the open source project as SF had it missing?
In the long run: yes. Because "you" (hypothetical you) could include anything that the SF team releases, but not the other way round.
people can take a look at the behavior and produce open source that does it.
What a nonsense. Not only leeching, but even wasting other programmers' time just to be able to leech. Good that the GPL shuts such people out. Not welcome.
This "open your source or don't share anything" philosophy is damaging.
No, it isn't. Because it's "no cadgers".

Rule of thumb: whenever someone cries that he has to opensource derivative works of GPL'ed programs, the GPL has done a good job. The coercion of the GPL has to make up for the lack of decency in these people.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Do patches need to be open source?

Post by Ovyron »

Ras wrote:Rule of thumb: whenever someone cries that he has to opensource derivative works of GPL'ed programs, the GPL has done a good job. The coercion of the GPL has to make up for the lack of decency in these people.
This is circular reasoning. It's only indecent because the Licence prohibits it. A way to make it decent is to allow it in the Licence. The users that don't get to use the idea because it's kept private are being damaged.

People are currently keeping their secrets closed source at home and not making the ideas public, this is the worse possible scenario (it's better that at least people can take a look at them to replicate them with their own code), but Stockfish's License enforces it.
Your beliefs create your reality, so be careful what you wish for.
syzygy
Posts: 5557
Joined: Tue Feb 28, 2012 11:56 pm

Re: Do patches need to be open source?

Post by syzygy »

edited after reading another post that made my comment redundant
Last edited by syzygy on Thu Feb 22, 2018 8:21 pm, edited 1 time in total.
Ras
Posts: 2487
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: Do patches need to be open source?

Post by Ras »

Ovyron wrote:It's only indecent because the Licence prohibits it.
I'm afraid you've just qualified yourself as one of those people.
syzygy
Posts: 5557
Joined: Tue Feb 28, 2012 11:56 pm

Re: Do patches need to be open source?

Post by syzygy »

Ovyron wrote:Disclaimer: Of course, I didn't implement some Learning Algorithm in Stockfish :roll: - this was a hypothetical scenario, but the information gathered was very useful, since in the entire thread I didn't see anyone caring about the actual algorithm, just about if some random licence was violated or not. The licence is the most important thing for people, not what other people that would benefit get or not, I guess this explains the current state of the world. This thread was an eye-opener,
It was an eye-opener to you that if you post a question about "if some random licence was violated or not" you get answers that are fully on topic?

Duh.

Of course we don't care about "the actual algorithm" that clearly was only hypothetical and thus not actual (and certainly not the actual topic of your question).
Robert Pope
Posts: 558
Joined: Sat Mar 25, 2006 8:27 pm

Re: Do patches need to be open source?

Post by Robert Pope »

Ovyron wrote:
Ras wrote:Rule of thumb: whenever someone cries that he has to opensource derivative works of GPL'ed programs, the GPL has done a good job. The coercion of the GPL has to make up for the lack of decency in these people.
This is circular reasoning. It's only indecent because the Licence prohibits it. A way to make it decent is to allow it in the Licence. The users that don't get to use the idea because it's kept private are being damaged.

People are currently keeping their secrets closed source at home and not making the ideas public, this is the worse possible scenario (it's better that at least people can take a look at them to replicate them with their own code), but Stockfish's License enforces it.
It's not circular reasoning. It's the whole philosophy. "We're putting this out there for people to use, and if you build on it, you need to pay it forward by putting your improvements out there too."

If you don't like that philosophy, or you have goals that are in conflict with it, that's fine. Then you just don't use that work as a jumping off point. If you're okay with paying it forward in the way the license requires, then you get to stand on the shoulders of those giants that went before you.
User avatar
hgm
Posts: 27789
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Do patches need to be open source?

Post by hgm »

Ovyron wrote:..., and think more people could have more nice things if Stockfish had a different Licence, since currently people are building nice things at home but keeping them private because they don't want to go open source, but sharing the thing (for USERS that would benefit, not for other programmers!) closed would be fine.
Well, the GPL is a two-edged sword. On the one hand it will cause some people to release sources they otherwise would have kept to themselves. On the other hand, it will cause some people to not release what they have even as a binary. There is no perfect solution here that works out optimally in every case. The best you can hope for is to find something that works best on average.

Personally I don't like the GPL much, because I indeed feel that it would be an obstacle to the usage of the code I create. Some of my engines are used by others exactly because their sources are not public, and no strings are attached to using them.
syzygy
Posts: 5557
Joined: Tue Feb 28, 2012 11:56 pm

Re: Do patches need to be open source?

Post by syzygy »

Ras wrote:
syzygy wrote:So you are saying that distributing a library that contains no GPL'd material from Stockfish whatsoever could not be distributed under another license than the GPL? That is of course false.
The question is not just whether GPL'ed code is contained because that is only one of several mechanisms how the GPL can kick in, albeit the most frequent case.
It _is_ the only mechanism how the GPL can kick in. That is how copyright works.
However, this scenario is not about code inheritance. It's about the concept of a whole work, and that in turn is in place to prevent people from using dynamic linkage as a way how to circumvent the GPL and making it useless.
But any "whole work" requirement of the GPL applies only to code to which the GPL applies. If the GPL somehow forbids me to distribute A+B, but only A has GPL'd material in it, then I am completely free to distribute B. (And if it is also legal to distribute A on its own, either by me or by someone else, then the GPL indeed isn't being very effective at preventing A+B.)
The dynamic linkage option holds for LGPL'ed software only and not for GPL'ed. That's why LPGL exists in the first place, to allow an option that GPL doesn't allow.
That's how the FSF would like it to be, but they did not write copyright law.

There is no doubt that a proprietary program can dynamically link against a GPL'd library as long as that program as distributed does not include GPL'd code itself.

A bit more complicated is the other situation: I take a GPL'd program and modify it to link against a proprietary library. If I want to distribute the modified program, I have to comply with the GPL; the GPL kicks in because and only because that modified program contains GPL'd code. The GPL now says that I am allowed to distribute the modified program only if the "entire work" is licensed under the GPL. The FSF will say that the "entire work" includes the proprietary library. But I say no, the "entire work" is at most the modified program and some toy GPL'd library that is just enough to get the program to compile and run.
syzygy
Posts: 5557
Joined: Tue Feb 28, 2012 11:56 pm

Re: Do patches need to be open source?

Post by syzygy »

Ovyron wrote:This is circular reasoning.
But your reasoning is a non-starter to begin with, because there would not have been a constant stream of new developers contributing patches to SF had SF not been open source.
Ras
Posts: 2487
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: Do patches need to be open source?

Post by Ras »

syzygy wrote:It _is_ the only mechanism how the GPL can kick in. That is how copyright works.
No, it isn't. Or how else would tools for removing copy protection from programs be illegal? How would the act of cracking itself be illegal? The crack doesn't contain source code from the program to crack, after all.
But any "whole work" requirement of the GPL applies only to code to which the GPL applies.
Which is the case in this example because the "whole work" contains a GPL'ed Stockfish.
That's how the FSF would like it to be, but they did not write copyright law.
But the GPL, which is a valid software licence that has already been tried in court, though not in this specific scenario.
There is no doubt that a proprietary program can dynamically link against a GPL'd library as long as that program as distributed does not include GPL'd code itself.
There is very much doubt because the licence of the library does not allow this, so this would constitute a copyright infringement (usage of library without valid licence). OK, one can link at home of course, but not distribute the result.
The FSF will say that the "entire work" includes the proprietary library. But I say no, the "entire work" is at most the modified program and some toy GPL'd library that is just enough to get the program to compile and run.
This is clearly just trying to circumvent the licence because the licence itself says otherwise. If you don't agree, then you don't agree with the licence and therefore don't have ANY licence in that usage scenario. Means, copyright infringement.