edo9300 / edopro

A script engine for "yu-gi-oh!" and sample gui (former "ygopro")
Other
279 stars 75 forks source link

Licensing Issues #209

Closed nfitzen closed 3 years ago

nfitzen commented 3 years ago

YGOPro appears to be licensed under GPL-2.0-only (or at least it should be assumed that way) because the only version number specified is 2.0 within GitHub (based on the tree as of the latest commit). Is this program infringing on the copyright of YGOPro, or was there some sort of exception granted? I couldn't find a license notice in the source files indicating it's GPL-2.0-or-later.

(While I would like to believe I know a bit about copyright and free software licensing, IANAL and this is not legal advice. Edit: This issue is meant to bring attention to a possible issue, but consult with an attorney for any more information.)

edo9300 commented 3 years ago

There is no License version specified anywhere in that repository, and as stated in the LICENSE file, if no version is specified then any GPL version can be used.

One of the main reasons we changed the License was because certain parties were violating the freedoms that we granted to users. We didn't like that and wanted to avoid it as much as possible. We chose AGPL because we wanted to guarantee that the use of this code in server environments would remain free and open.

nfitzen commented 3 years ago

if no version is specified then any GPL version can be used

~~Upon further consideration, I guess "specify" would necessarily entail, well, being specific. I was completely wrong. I knew about that clause in GPL-2.0 § 9, but I didn't really consider that just including the GPL-2.0 license text doesn't count as specifying the license version.~~

We chose AGPL because we wanted to guarantee that the use of this code in server environments would remain free and open.

I wasn't really talking about using the AGPL besides indirectly through GPL-1.0-or-later -> GPL-3.0-or-later compatibility, but, since it was mentioned, I agree with the decision to license the core under the AGPL.

I'm closing this issue because, well, it's not exactly an issue.

Edit: removed the "main complication." AGPL-3.0 § 13 says "users," which I would assume does not include people using the client.

Edit 2: See my next comment for information. And do not take anything in this comment as advice.

nfitzen commented 3 years ago

I'm reopening this because, after more thought (wow I'm really indecisive), just including the license text could count as specifying a version in some capacity.

There is no License version specified anywhere in that repository, and as stated in the LICENSE file, if no version is specified then any GPL version can be used.

There is/could be. The license file itself specifies "Version 2."

This most likely needs to be addressed and should probably be taken up with the developers of YGOPro. Edit 2: This issue is meant to highlight a potential problem. Take it up with a lawyer and then close it if necessary. The licensing situation is unclear, which is why I made this issue.

Edit: obligatory "IANAL, this isn't legal advice" statement here. You should certainly consult with a lawyer for this kind of thing.

sagehane commented 3 years ago

Speaking of GPL compliance, doesn't it go against GPL to lack proper build instructions? Will edit this comment with more details after I can backup my statement.

To quote the front page of the wiki:

TODO: explain how to build the core independently.

TODO: describe build process with Discord RPC TODO: describe build process with sound backends

N.B.: documentation is kind of outdated - sorry but I have limited time

(I ask because I believe I attempted to build EDOPro for Linux like 2-3 times over the past year or so and failed miserably. Although I'm admittedly not familiar with CMake, Premake, and other tools)

nfitzen commented 3 years ago

@sagehane while reproducible builds and free documentation are important for free software, I don't believe the GPL requires it. You just have to be able to build it from source with generally available tools.

AGPL-3.0 § 1 defines "Corresponding Source":

The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work.

Edit: However, this is irrelevant to the issue itself. The issue is one that cannot be easily remedied: namely, that YGOPro is licensed under GPL-2.0-only, which is incompatible with this program.

nfitzen commented 3 years ago

One of the main reasons we changed the License was because certain parties were violating the freedoms that we granted to users. We didn't like that and wanted to avoid it as much as possible. We chose AGPL because we wanted to guarantee that the use of this code in server environments would remain free and open.

@edo9300 if you didn't want server code to be published, then why not take advantage of the AGPL's compatibility with the GPL? § 13 of both GPL-3.0 and AGPL-3.0 states that you can combine code under the GPLv3 with the AGPLv3. This would also allow the upstream YGOPro to reuse the client code but would allow ocgcore and the scripts to be AGPL.

You could just license the client program under GPL-2.0-or-later and ocgcore under AGPL-3.0-or-later. That way, you could distribute the combined work under GPL-3.0-or-later AND AGPL-3.0-or-later, but license the client portion under GPL-2.0-or-later.

This would also possibly help to convince the YGOPro developers to relicense it, or to at least clarify that it's licensed under, GPL-2.0-or-later.

Edit: added last paragraph and simplified stuff. Also, I use SPDX license expressions to indicate dual licenses and such.