I could just be bad at following what is going on too, since this is the first time I have seen this.
I could just be bad at following what is going on too, since this is the first time I have seen this.
> modify it under the terms of the GNU Lesser General Public
> * License as published by the Free Software Foundation;
LGPL, not GPL.
No shady stuff going on either, https://github.com/mirror/tinycc/blob/mob/tcctools.c sais the same thing.
Edit: texi2pod.pl however does seem to be GPL, and not LGPL: https://github.com/mirror/tinycc/blob/mob/texi2pod.pl however, perl isn't linked, so there's probably a way out there.
il-opcodes does seem to be GPL2+, and the header arguably would end up in the binary thus forcing everything to be GPL? https://github.com/mirror/tinycc/blob/mob/il-opcodes.h
Edit 2:
I think I've resolved this: Fabrice Bellard already agreed to relicense under a permissive license, see: https://github.com/mirror/tinycc/blob/mob/RELICENSING
Thus, I think it would be really hard to argue that there's any problem left, since the only file here that could be in violation (il-opcodes) is authored by fabrice bellard and arguably already permissively licensed.
Case closed.
Says:
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
That looks like GPL 2+ to me. Please correct me if I misunderstand.The COPYING file contains this:
* GNU LESSER GENERAL PUBLIC LICENSE
* Version 2.1, February 1999
* [This is the first released version of the Lesser GPL. It also counts
* as the successor of the GNU Library Public License, version 2, hence
* the version number 2.1.]
It seems to me that code is licensed under LGPL 2.1, as was mentioned by the cheat-engine author in the github issues.Edit: Fabrice Bellard is also the author of libtcc, who has chosen to release that project under LGPL, so this is irrelevant to begin with. The file is LGPL.
Also, "any later version" is any later version of the same license. LGPL and GPL are two separate licenses- you can't switch GPL to LGPL using this clause.
I assume that it used to stand for "library", and this was changed to discourage people from thinking of this library as the default license for libraries, and consider using the GPL instead. For example, the GNU Readline library is GPL, and this is reportedly the reason why CLISP is also GPL'd.
> [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.]
There's a bit of a myth that if you release a program containing GPLed code then you irrevocably get the obligation to release your source code whether you want to or not. Certainly you're in violation of the terms if you don't, but releasing your source code is not the only way to correct the violation. Even if you were successfully taken to court over the matter (which can only be done by the copyright owner of the GPLed software, since it's a contract with them that you're breaching), the court might require another resolution e.g. that you remove the GPLed code from your software or pay the copyright owner a fee/fine.
https://github.com/cheat-engine/cheat-engine/blob/master/Che...
Anyway, all it does is convert from texinfo to pod formats, so that should be easily doable by some other tool or by the author themselves, if that is the only remaining violation, might as well address that.
First of all: IANAL.
Yes, and the perl script will remain GPL, but that doesn't make the rest of the program a derived work. That even seems to be the position of the FSF:
> The Free Software Foundation [...] asserts that an executable that uses a dynamically linked library is indeed a derived work. This does not, however, apply to separate programs communicating with one another.
Perl (and the script) is a separate program, the entirety of CheatEngine is not automatically a derived work of the perl script. Thus the script can remain GPL and CE could be licensed any way it wants without a problem.
Wikipedia has a section dedicated to this: https://en.wikipedia.org/wiki/GNU_General_Public_License#Lin...
Which if you think about it is really a very problematic assertion, for a couple of reasons.
First, it doesn't seem to be related at all the the definition of "derived work" in the Copyright Act (in the US) or the examples given for other kinds of derived works, which all involve incorporating creative elements from the original work into the derived work. These elements might be translated or rearranged or otherwise transformed, but they're still necessary for the work to count as derivative. Linking against a dynamic library has more in common with referencing another work in your bibliography—which so far as I am aware has never been considered enough on its own to consider the referencing document a derivative work.
But more importantly: The FSF also maintains that a clean-room, from-scratch open-source reimplementation of a proprietary library with a compatible ABI is not a derived work of the proprietary library. (For example Lesstif vs. Motif, or Wine vs. Windows.) A program which is dynamically linked against some library is only dependent on the library's ABI, not the specific implementation of the library, and can be used at runtime with either version. So is it a "derivative work" of the original proprietary library, or the open-source reimplementation? And of course the same logic could be applied the other way around for a program which can be (but need not be) dynamically linked against a GPL library—it could just as easily be linked against a proprietary reimplementation of the same library with a compatible ABI. And why should it make any difference for the purpose of declaring something a "derivative work" whether the reimplementation under a compatible license already exists, or merely could exist? The part which is asserted to be "derivative" hasn't changed at all.
I am not (a / your) lawyer, yada yada, but the "dynamic linking implies derivative work" argument has always struck me as being at odds with both the plain meaning of "derivative work" and actual practice when the situation is reversed.
Either way, it is hard to blame the author of Cheat Engine for this. If there is any violation it comes from a vendored dependency. Again, IANAL, but if someone presents you code and claims it is licensed under X, but then you find out they don't have the rights to license that code under X, it is hard to find you at fault.
Edit: The GPL file in question is authored by the same author of libtcc (Fabrice Bellard) who has released libtcc in its entirety under LGPL. No violation has occurred anywhere in the stack, the header is simply incorrect.
No. GPL encourages people to say "GPLv2 or later" or "GPLv3 or later", but being under one version of the GPL does not automatically afford "or later" unless the copyright holder says so.
No. Both the GPL and the LGPL encourage you to add the “or any later version” clause that allows the FSF to retroactively add other licensing options to your code, but they do not include that clause themselves. The standard example is that the SMB protocol implementations in the Linux kernel (GPL 2.0 only) and the Samba project (GPL 3.0 or later) cannot share code in either direction.
> LGPL states that it counts as GPL 2.1
Also no. The GNU Lesser General Public License (LGPL) 2.1 (says that it) counts as the successor of the GNU Library General Public License (LGPL) 2.0, not of the ordinary GNU General Public License (GPL) 2.0. GPL 2+ code cannot be treated as LGPL 2.1, and from the FSF’s perspective allowing that would not make sense, as GPL 2 enforces strictly more copyleft than LGPL 2.1.
Why the confusing renaming? As far as I can see, Stallman wanted library authors to switch from LGPL to GPL, so that library users are forced into the GPL as well. The chosen solution was to play language games to redefine the “L” in “LGPL” to mean “lesser” instead of “library”. There is an official article that explicitly points out this piece of manipulation[1], but I still cannot suppress the vague feeling of revulsion at being manipulated.
The only actually GPL-licensed file in that list, obsolete_ntifs.h, doesn't exist in the repo. If you can find a version of CheatEngine that includes that file, presumably that would be a GPL violation, but that would have to rely on an analysis of how integrated the DBKKernel component is with the rest of the CheatEngine system.