So Stockfish would not be allowed to use the non GPLed evaluation dll (at least under the generally accepted interpretation of the GPL you could not distribute SF with the non GPLed library, privately you can use SF however you want).
Now it would be nice if the FSF explained how their claims in the FAQ are actually derived from the text of the GPL3.
I think you need to read this part of the sentence in the license most carefully, "...which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program..."
bool can_copy_sf = false; // The default is you can't copy
if (!by_nature_extension_of_sf(dll) && !not_combined_with_sf_for_larger_program(dll)) {
dll = mere_aggregate
} else {
dll = combined_work
}
bool complies_with_gpl = mere_aggregate ? true : is_gpl_compliant_license(dll);
if (complies_with_gpl)
can_copy_sf = true;
If can_copy_sf evaluates to false you can still copy and distribute - or allow others to copy and distribute - the dll however you like. After all, that is *your* dll. But if you want to copy SF, then you must have 'can_copy_sf' evaluate to true otherwise you have no right to do so.
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit.
Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
As I read it the italic part is the definition of an aggregate. Then the last sentence says that the GPL is not viral on an aggregate. You cannot invert this.
Ideas=science. Simplification=engineering.
Without ideas there is nothing to simplify.
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit.
Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
As I read it the italic part is the definition of an aggregate. Then the last sentence says that the GPL is not viral on an aggregate. You cannot invert this.
Right. And the non-GPL'd dll in the hypothetical does not meet the definition of an aggregate. In pseudo code:
Michel wrote: ↑Thu Feb 25, 2021 5:30 pm
So it seems that according to the FAQ a GPLed program cannot use a non GPL compatible library
It can use it, but you can't distribute it.
An example is using ffmpeg with libfdk_aac and x264. You can compile this yourself but you won't find any binary compile with this combination of features.
Now it would be nice if the FSF explained how their claims in the FAQ are actually derived from the text of the GPL3.
That's a tricky one. As the license is based on copyright law, and copyright law has no clauses about "processes", separate "files" and "dynamic vs static linking", I'm sure they can only give their interpretation. I don't know if there's existing precedent that you can use here.
Does the stated intent of the entity that authored the license hold any weight in such a discussion?
Last edited by Gian-Carlo Pascutto on Thu Feb 25, 2021 5:56 pm, edited 1 time in total.
Gian-Carlo Pascutto wrote: ↑Thu Feb 25, 2021 5:53 pm
Does the stated intent of the entity that authored the license hold any weight in such a discussion?
I think the case can be made based on the clear meaning of the text and the stated intent and history of actions by Albert Silver and CB. They clearly did not intend FF2 as a 'mere aggregate' and their own words and actions testify to that.
gonzochess75 wrote: ↑Thu Feb 25, 2021 5:24 pmThe problem stems from you insisting you get to copy someone elses work - Stockfish - and distributing *it* how you see fit. You don't have that right. That's not your work. Absent complying with the GPL you simply have no rights at all with regards to Stockfish. If you think the terms of the GPL are unreasonable that's entirely fine. The solution is you don't get to copy or distribute Stockfish.
Sure I can. I can put it on GitHub, complete with source. It is not my responsibility that the people who download it might use it together with other software that the Stockfish developers wish to declare as their own.
hgm wrote: ↑Thu Feb 25, 2021 6:43 pm
Sure I can. I can put it on GitHub, complete with source. It is not my responsibility that the people who download it might use it together with other software that the Stockfish developers wish to declare as their own.
Yeah, but what does that have to do with anything? Last I checked, ChessBase doesn't require you to go to their github to download and compile Stockfish yourself. If their repo had had all the parts they are distributing 99% of this discussion wouldn't have happened.
I already gave you exactly this use case: you can compile ffmpeg yourself with combinations that aren't legally distributable, i.e. x264 (GPLv2 incl patent grants) + libfdkaac (license expressly disclaiming any implied patent grants).
hgm wrote: ↑Thu Feb 25, 2021 7:48 pm
They also did not make a conventional evaluation in a DLL.
Right. Instead they modified SF sources, claimed themselves as authors of the combined work, and - quoting Albert Silver - "did it because, one, the neural network is unusable in any other environment..."