Calling All Armchair GPL Lawyers

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

Moderators: hgm, Rebel, chrisw

AndrewGrant
Posts: 1754
Joined: Tue Apr 19, 2016 6:08 am
Location: U.S.A
Full name: Andrew Grant

Calling All Armchair GPL Lawyers

Post 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.
#WeAreAllDraude #JusticeForDraude #RememberDraude #LeptirBigUltra
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
gaard
Posts: 447
Joined: Mon Jun 07, 2010 3:13 am
Location: Holland, MI
Full name: Martin W

Re: Calling All Armchair GPL Lawyers

Post 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.
supersharp77
Posts: 1242
Joined: Sat Jul 05, 2014 7:54 am
Location: Southwest USA

Re: Calling All Armchair GPL Lawyers

Post 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:
F. Bluemers
Posts: 868
Joined: Thu Mar 09, 2006 11:21 pm
Location: Nederland

Re: Calling All Armchair GPL Lawyers

Post 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
AndrewGrant
Posts: 1754
Joined: Tue Apr 19, 2016 6:08 am
Location: U.S.A
Full name: Andrew Grant

Re: Calling All Armchair GPL Lawyers

Post 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.
#WeAreAllDraude #JusticeForDraude #RememberDraude #LeptirBigUltra
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
unserializable
Posts: 64
Joined: Sat Oct 24, 2020 6:39 pm
Full name: Taimo Peelo

Re: Calling All Armchair GPL Lawyers

Post 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.
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester
F. Bluemers
Posts: 868
Joined: Thu Mar 09, 2006 11:21 pm
Location: Nederland

Re: Calling All Armchair GPL Lawyers

Post 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
unserializable
Posts: 64
Joined: Sat Oct 24, 2020 6:39 pm
Full name: Taimo Peelo

Re: Calling All Armchair GPL Lawyers

Post 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.
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester
Fulvio
Posts: 395
Joined: Fri Aug 12, 2016 8:43 pm

Re: Calling All Armchair GPL Lawyers

Post 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
F. Bluemers
Posts: 868
Joined: Thu Mar 09, 2006 11:21 pm
Location: Nederland

Re: Calling All Armchair GPL Lawyers

Post 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