gpl
Does Fat Fritz 2 violate GPL?
<p>Fat Fritz 2 is a chess engine recently published and sold by Chessbase. <a href="https://en.chessbase.com/post/fat-fritz-2-best-of-both-worlds" rel="nofollow noreferrer">Release article</a>. It uses the Stockfish binary, and replaces the NNUE in Stockfish with its own. Stockfish itself is licensed under GPL; the text on <a href="https://stockfishchess.org/about/" rel="nofollow noreferrer">Stockfish's website</a> is:</p>
<blockquote>
<p>Stockfish is free, and distributed under the GNU General Public License Version 3 (GPLv3). Essentially, this means that you are free to do almost exactly what you want with the program, including distributing it among your friends, making it available for download from your web site, selling it (either by itself or as part of some bigger software package), or using it as the starting point for a software project of your own.</p>
<p>The only real limitation is that whenever you distribute Stockfish in some way, you must always include the full source code, or a pointer to where the source code can be found. If you make any changes to the source code, these changes must also be made available under the GPL.</p>
</blockquote>
<p>Fat Fritz 2 uses Stockfish's binary, and the (small) modifications the author made to the binary is publicly available. However, its NNUE is closed source. Does Fat Fritz 2 violate Stockfish's license? Stockfish's developers certainly <a href="https://blog.stockfishchess.org/post/643239805544792064/statement-on-fat-fritz-2" rel="nofollow noreferrer">aren't happy</a> with Fat Fritz 2, but I am wondering if they have a legal argument against Fat Fritz 2, or if the criticism is entirely on moral grounds.</p>
<p>If it is necessary for context: engines work by searching through the game tree and returning their so-called &quot;eval function&quot; on the end position. In other words, there are two crucial prongs of engine code:</p>
<ul>
<li>search, which governs how the engine searches through the game tree (e.g., which moves it looks at first)</li>
<li>eval, which governs how the engine judges the final position of the search (e.g., the side that has more material is usually better)</li>
</ul>
<p>Different engines usually have different search &amp; eval code. In the case of Stockfish, its eval function is a neural network of a specific type (&quot;NNUE&quot;). Fat Fritz 2 uses Stockfish's search, but replaces Stockfish's NNUE with its own (definitely different) NNUE.</p>

<p><a href="https://stockfishchess.org/blog/2021/our-lawsuit-against-chessbase/" rel="nofollow noreferrer">Stockfish filed a suit against Chessbase</a> (a distributor of Fat Fritz 2) alleging violation of GPL, so the fair answer to this question is probably &quot;don't know, but we will find out&quot;.</p>
<p><strong>Edit</strong>: a settlement has been <a href="https://www.chess.com/news/view/chessbase-stockfish-reach-settlement" rel="nofollow noreferrer">reached</a>. The answer to the title question is &quot;yes&quot;; Chessbase concedes that &quot;they used Stockfish in violation of its license in two of their products, Fat Fritz 2 and Houdini 6&quot;. Furthermore, there is this clause:</p>
<blockquote>
<p>Also, neural networks offered by Chessbase for use with Stockfish that are included in the compilation or dynamically loaded at runtime to initialize the data structures and logic of the software must be subject to GPL-3.0 or a compatible license.</p>
</blockquote>
<p>So Fat Fritz 2's NNUE is also covered by GPL.</p>
