Page 1 of 5

Calling All Armchair GPL Lawyers

Posted: Fri Feb 12, 2021 8:17 pm
by AndrewGrant
So the FF2 thread devolved into 10 different interpretations of how one could provide a binary of a GPL engine with an NNUE network, and still violate (in their view) the right's of the GPL'ed programs authors. In this thread, I ask each individual what they feel is an appropriate way to offer a private Network which is intended to run inside a slightly modified GPL engine. IE, what could Fat Fritz 2 have done such that there would be no doubt in your mind that all license obligations were followed, even if the entire concept was lame.

My view:
1) Fat Fritz does not need to post the code for their modifications online
2) Fat Fritz needs to provide the Network as a second file, read in using the usual UCI commands
3) Fat Fritz needs to provide the source to any customer (someone whom they have shared the binary with) who made a request
4) Fat Fritz needs to include a copy of the GPLv3 alongside their (download?) to inform customer's of their rights.

Re: Calling All Armchair GPL Lawyers

Posted: Fri Feb 12, 2021 8:31 pm
by gaard
AndrewGrant wrote: Fri Feb 12, 2021 8:17 pm So the FF2 thread devolved into 10 different interpretations of how one could provide a binary of a GPL engine with an NNUE network, and still violate (in their view) the right's of the GPL'ed programs authors. In this thread, I ask each individual what they feel is an appropriate way to offer a private Network which is intended to run inside a slightly modified GPL engine. IE, what could Fat Fritz 2 have done such that there would be no doubt in your mind that all license obligations were followed, even if the entire concept was lame.

My view:
1) Fat Fritz does not need to post the code for their modifications online
2) Fat Fritz needs to provide the Network as a second file, read in using the usual UCI commands
3) Fat Fritz needs to provide the source to any customer (someone whom they have shared the binary with) who made a request
4) Fat Fritz needs to include a copy of the GPLv3 alongside their (download?) to inform customer's of their rights.
FF2 is of dubious legal status and related topics and discussions should be moved to Engine Origins.

Re: Calling All Armchair GPL Lawyers

Posted: Fri Feb 12, 2021 8:43 pm
by supersharp77
gaard wrote: Fri Feb 12, 2021 8:31 pm
AndrewGrant wrote: Fri Feb 12, 2021 8:17 pm So the FF2 thread devolved into 10 different interpretations of how one could provide a binary of a GPL engine with an NNUE network, and still violate (in their view) the right's of the GPL'ed programs authors. In this thread, I ask each individual what they feel is an appropriate way to offer a private Network which is intended to run inside a slightly modified GPL engine. IE, what could Fat Fritz 2 have done such that there would be no doubt in your mind that all license obligations were followed, even if the entire concept was lame.

My view:
1) Fat Fritz does not need to post the code for their modifications online
2) Fat Fritz needs to provide the Network as a second file, read in using the usual UCI commands
3) Fat Fritz needs to provide the source to any customer (someone whom they have shared the binary with) who made a request
4) Fat Fritz needs to include a copy of the GPLv3 alongside their (download?) to inform customer's of their rights.
FF2 is of dubious legal status and related topics and discussions should be moved to Engine Origins.
Agreed.......100%....Well Said !! :) :wink:

Re: Calling All Armchair GPL Lawyers

Posted: Fri Feb 12, 2021 8:45 pm
by F. Bluemers
gaard wrote: Fri Feb 12, 2021 8:31 pm
AndrewGrant wrote: Fri Feb 12, 2021 8:17 pm So the FF2 thread devolved into 10 different interpretations of how one could provide a binary of a GPL engine with an NNUE network, and still violate (in their view) the right's of the GPL'ed programs authors. In this thread, I ask each individual what they feel is an appropriate way to offer a private Network which is intended to run inside a slightly modified GPL engine. IE, what could Fat Fritz 2 have done such that there would be no doubt in your mind that all license obligations were followed, even if the entire concept was lame.

My view:
1) Fat Fritz does not need to post the code for their modifications online
2) Fat Fritz needs to provide the Network as a second file, read in using the usual UCI commands
3) Fat Fritz needs to provide the source to any customer (someone whom they have shared the binary with) who made a request
4) Fat Fritz needs to include a copy of the GPLv3 alongside their (download?) to inform customer's of their rights.
FF2 is of dubious legal status and related topics and discussions should be moved to Engine Origins.
I always felt "Engine Origines" was meant for discussing when the origine/status of an engine was questioned.to be discussed and/or investigated.
That is surely not the case here.
Best

Re: Calling All Armchair GPL Lawyers

Posted: Fri Feb 12, 2021 9:03 pm
by AndrewGrant
I was trying to get a conversation going about what future people should do, in the eyes of the people, not about what FF2 in particular. I should have made that more clear. Mods are welcome to axe this thread, or move it elsewhere, since it just looks like a duplicate of the already existing conversation.

Namely, I've been working on some strong NNUE nets for a few months with all original efforts, and many have urged me to sell a pro version of future Ethereals with the NNUE nets being paid for. I would want to do it in a way that most people agree is up to code, even if there is no chance of someone coming after me for the code I actually own.

Re: Calling All Armchair GPL Lawyers

Posted: Fri Feb 12, 2021 9:13 pm
by unserializable
AndrewGrant wrote: Fri Feb 12, 2021 8:17 pm My view:
1) Fat Fritz does not need to post the code for their modifications online
2) Fat Fritz needs to provide the Network as a second file, read in using the usual UCI commands
3) Fat Fritz needs to provide the source to any customer (someone whom they have shared the binary with) who made a request
4) Fat Fritz needs to include a copy of the GPLv3 alongside their (download?) to inform customer's of their rights.
As an armchair non-lawyer who in the at past has had some involvement in selecting licenses for open-source projects, I also interpret that 3 and 4 must be done according to GPLvN. (EDIT: and 1) does not need to be done))

The 1) does not seem to hold as absolute, it is possible to comply with license conditions on select medium, e.g. mailing DVD, if they want to, and they would not need to make the source /publicly/ available online, they can just limit this to their customers who want it -- who in turn are of course free to distribute code further freely, online or otherwise, as guaranteed by license.

The 2) also does not seem to hold, because network can be considered their work / plug-in / neural database and as far as I understand is altogether separate data file which is not embedded in the binary.

To illustrate this understanding of 2):

Keeping code and data/artwork separate is necessarily common for open-source clones of commercial game engines that work with original files / artwork, where the engine authors themselves do not have authority to distribute the game files / artwork -- those who have the data files from original media can use them however to play games with the engine. First and most famous example of such open-source engines is Doom, which open-source binaries only become functional for true gaming game if either custom or original WAD files are dropped in.

Or consider simple GPL-licensed screensaver program, that works with reading and displaying different image files and is essentially non-functional when no image files are present (blank screen at most). If someone were to create a distribution of the that screensaver together with their own created images and sell it, the image files remain original artwork and would not be 'virally infected' with GPL.

Re: Calling All Armchair GPL Lawyers

Posted: Fri Feb 12, 2021 9:25 pm
by F. Bluemers
AndrewGrant wrote: Fri Feb 12, 2021 9:03 pm I was trying to get a conversation going about what future people should do, in the eyes of the people, not about what FF2 in particular. I should have made that more clear. Mods are welcome to axe this thread, or move it elsewhere, since it just looks like a duplicate of the already existing conversation.

Namely, I've been working on some strong NNUE nets for a few months with all original efforts, and many have urged me to sell a pro version of future Ethereals with the NNUE nets being paid for. I would want to do it in a way that most people agree is up to code, even if there is no chance of someone coming after me for the code I actually own.
Well,I saw no need to move the ff2 threads to "Engine Origines".That is why I responded.
W.r.t. NN(UE) nets I wonder if these are just data or could be compared to state-machines for instance .
So maybe the distinction between NN(UE) as pure data or instruction is not so clear.
So maybe these could still be covered by GPL??
Best

Re: Calling All Armchair GPL Lawyers

Posted: Fri Feb 12, 2021 10:07 pm
by unserializable
F. Bluemers wrote: Fri Feb 12, 2021 9:25 pm W.r.t. NN(UE) nets I wonder if these are just data or could be compared to state-machines for instance .
So maybe the distinction between NN(UE) as pure data or instruction is not so clear.
State-machine is often data, for example regular expressions are (finite) state machines that need an engine for interpreting them (transitioning between states while matching against data). I do not think this viewpoint change has real repercussions.

But consider something more complex than state machine -- a program in Turing complete programming language that main engine can interpret, spawn and communicate with, according to predefined protocol (this would be plugin-like behaviour). In that case there are clearly /instructions/ present in data/program file, but at the same time there are also two different programs (engine / plugin), which as such can be licensed under different licenses, if so chosen.

Re: Calling All Armchair GPL Lawyers

Posted: Fri Feb 12, 2021 10:14 pm
by Fulvio
AndrewGrant wrote: Fri Feb 12, 2021 8:17 pm So the FF2 thread devolved into 10 different interpretations of how one could provide a binary of a GPL engine with an NNUE network, and still violate (in their view) the right's of the GPL'ed programs authors. In this thread, I ask each individual what they feel is an appropriate way to offer a private Network which is intended to run inside a slightly modified GPL engine. IE, what could Fat Fritz 2 have done such that there would be no doubt in your mind that all license obligations were followed, even if the entire concept was lame.

My view:
1) Fat Fritz does not need to post the code for their modifications online
2) Fat Fritz needs to provide the Network as a second file, read in using the usual UCI commands
3) Fat Fritz needs to provide the source to any customer (someone whom they have shared the binary with) who made a request
4) Fat Fritz needs to include a copy of the GPLv3 alongside their (download?) to inform customer's of their rights.
1) I think it is pretty clear that they need to provide the code:
https://en.wikipedia.org/wiki/BusyBox#GPL_lawsuits
and they did it:
https://github.com/DanielUranga/Stockfish/tree/ff2

2) This is also pretty clear, how the parts are packaged doesn't matter.: "You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable Section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged."

3) This is related to 1). I don't think that being a customer or having the binary makes any difference.

4) Yes, and they also need to clearly state that it is a stockfish derivate

Re: Calling All Armchair GPL Lawyers

Posted: Fri Feb 12, 2021 10:19 pm
by F. Bluemers
unserializable wrote: Fri Feb 12, 2021 10:07 pm
F. Bluemers wrote: Fri Feb 12, 2021 9:25 pm W.r.t. NN(UE) nets I wonder if these are just data or could be compared to state-machines for instance .
So maybe the distinction between NN(UE) as pure data or instruction is not so clear.
State-machine is often data, for example regular expressions are (finite) state machines that need an engine for interpreting them (transitioning between states while matching against data). I do not think this viewpoint change has real repercussions.

But consider something more complex than state machine -- a program in Turing complete programming language that main engine can interpret, spawn and communicate with, according to predefined protocol (this would be plugin-like behaviour). In that case there are clearly /instructions/ present in data/program file, but at the same time there are also two different programs (engine / plugin), which as such can be licensed under different licenses, if so chosen.
Yes I was also thinking in the direction of f.i. python/lsp program running in an interpreter.(is the interpreter the (chess playing) program and the code it is running just data?)
All this might not make much impression of a judge tough :-)
Anyway an NN(UE) feels to me very different from a mere pst table or so.
Best