dmulloy2 / ProtocolLib

Provides read and write access to the Minecraft protocol with Bukkit.
GNU General Public License v2.0
1.02k stars 259 forks source link

TinyProtocol license #3122

Open stonar96 opened 1 month ago

stonar96 commented 1 month ago

Make sure you're doing the following

Describe the question Can you please release TinyProtocol under the MIT license? I can't add TinyProtocol to my MIT project.

API method(s) used TinyProtocol API methods.

Expected behavior TinyProtocol to be licensed under the MIT license.

Code -

Additional context -

dmulloy2 commented 1 month ago

not really. it's hard to change a license since you need the approval of every single former contributor

dmulloy2 commented 1 month ago

any reason to not just use standard ProtocolLib?

stonar96 commented 1 month ago

I'm currently using standard ProtocolLib, personally I don't observe any problems with that. However, some users have asked me if I could replace or remove the dependency because they don't want to run ProtocolLib on their servers for some reason.

Besides that I think it would make sense to have TinyProtocol be released under a more permissive license since one has to include or shade it into the jar in contrast to ProtocolLib. (On a side note: Actually I can't use ProtocolLib in a MIT licensed project either, since that would require ProtocolLib to be released under LGPL for example. However, this seems to be a controversial topic and I also know that it would be impossible to relicense that.)

TinyProtocol has relatively few contributors. I think (provided that you are even fine with that) we could try to reach them out:

dmulloy2 commented 1 month ago

yeah you've touched on some 10+ year drama in the MC community. arguably plugins should be GPL because of Bukkit, but they break their own license since CraftBukkit uses NMS. i don't think that was ever really properly resolved

Photon-GitHub commented 1 month ago

I personally don't mind a license change. However, as dmulloy2 has already said, plugin licensing is a rather complicated situation. Therefore, I am not sure if this is even possible.

djytw commented 3 weeks ago

I definitely agree with changing to a more permissive license for TinyProtocol (and I was thinking about the same thing)

About the licensing - I know paper is licensed under gpl with an explicit exception that plugins can be published under MIT. Maybe Bukkit has similar things somewhere?

stonar96 commented 3 weeks ago

Now only @aadnk's response is missing. @dmulloy2 do you have contact with him, or should I try to reach him?

Ofc I'm aware that this will probably need further investigation, even if all contributors have approved (e.g. to check if it's even legally possible etc.). However, getting the approval from all contributors seems to be the first step to be done.

aadnk commented 3 weeks ago

Changing the license of TinyProtocol to a more permissive license like MIT is fine by me. 👍

Given that it's intended to be bundled with plugins, I should have licensed it under LGPL or MIT in the first place, but it slipped my mind. 😅

Of course, the license status of CraftBukkit is murky, to say the least. This murkiness might also extend to plugins that reference internals/APIs within CraftBukkit and the Minecraft server itself. However, given the outcome of Google LLC v. Oracle America, Inc, TinyProtocol's use of CraftBukkit/Minecraft APIs might arguably fall under fair use in the US — though I am not a lawyer. And it is theoretically better to use ProtocolLib as an API rather than bundle TinyProtocol in terms of potential legal risk, though in both cases a plugin will still be reading/modifying internal network packets so it might not ultimately make much of a difference.

That said, developers may be on safer ground if they avoid contravening the EULA. Mojang has actually historically enforced this, as seen when the creator of the Minecraft Physics mod (Haubna) was required to release their mod for free because charging for mods/plugins is against the EULA.

@stonar96 : I wouldn't personally mind re-licensing the whole of ProtocolLib under LGPL (with TinyProtocol as MIT), but given the number of contributors this would mean a lot of work to contract them or rewrite their contributions. So this might not be worth the effort.