Michel wrote: ↑Thu Feb 25, 2021 10:26 am
noobpwnftw wrote: ↑Thu Feb 25, 2021 9:38 am
That would be the same as loading a private driver or firmware blob in the Linux world.
Yes, possible, but they must be distributed separately if not explicitly allowed by a
"controlled interface" exception from the GPL code.
It is not clear to me what separate distribution means. I could put a nicely GPLed SF on my website with some extra facilities for dynamic loading and then a non-GPLed evaluation .dll on a different website, and finally I use a download manager that combines everything on the user's machine (after having verified that the user has bought the product).
Also note that the evaluation .dll could be derived from a source file in C containing a NNUE net in a large array together with a function that executes it (to overcome the objection that NNs are not derived from source code and hence perhaps not copyrightable, I have no opinion on this point).
PS. I am just playing the devil's advocate here.
All of these hypotheticals are missing the forest for the trees. If you accept that the NN weights file is copyrightable, then the only relevant question is whether the SF + NN weights file is a "combined work" or if it is two separate works merely aggregated together.
https://www.gnu.org/licenses/old-licens ... ggregation
"Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. We use this term in the case where they are separate programs, not parts of a single program. In this case, if one of the programs is covered by the GPL, it has no effect on the other program.
Combining two modules means connecting them together so that they form a single larger program. If either part is covered by the GPL, the whole combination must also be released under the GPL—if you can't, or won't, do that, you may not combine them.
What constitutes combining two parts into one program? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).
If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.
By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program."
So again the only relevant question is whether SF + NN weights file is a combined work or not. Here is some evidence that they are indeed a combined work whether or not the weights file is separated on the file system:
1) Albert Silver modified the SF source files to include *himself* as an author. If he didn't believe they were a combined work, then why the hell would he do this?
2) Albert Silver and Chessbase *renamed* SF and the weights file to be the same name - FatFritz2 - and marketed them as a combined work.
3) The weights file was developed for and tested against SF and no other engine and was intended from the very beginning to be combined with SF and no other engine in its distribution. It is not as if the weights file was developed in a clean room and only at the very end Albert Silver and Chessbase had the miraculous idea, "Hey you know what would *really* make this weights file shine?? Let's include it with an arbitrary chess engine!"
4) The weights file is ABSOLUTELY USELESS without SF. Chessbase could have decided to just sell the weights file and not include a copy of SF and let their own customers figure out how to combine the two, but they didn't. Why? Because it would have been useless without SF and they knew it.
5) Here is
a quote from Albert Silver himself proving that he intended them and still intends them as a combined work:
"I did it because, one, the neural network is unusable in any other environment, and the second reason is this was what Stockfish was doing, this was standard procedure," explains Silver.
6) The fact that he had to modify SF sources at all is evidence they are a combined work. If they were really two separate works not intended to be combined, then why did he have to modify SF sources to make them work well together?
7) The purported sources that were released on github had "FF2" as the branch name for an SF github repository. If they are not a combined work - both the SF and FF weights file, then why was the former renamed in a branch to match the latter?
If there is any actual litigation in Chessbase and AS future over what they've done I would be very surprised if that quote and the patch where he modifies *the GPL'd SF source code* to include himself as an author doesn't prove dispositive. It defies incredulity to say that CB and AS did not intend their weights file to be a combined work with SF. All the history of what they've done up to this point clearly points to their intention that they be a combined work.