Question about Pore

Ah alright thats awesome

@M4GNV5 I don’t think you understand the point. What he’s trying to say is that the IMPLEMENTATION is copyrighted, not the API. Pore only uses the API, therefor no DMCA

The federal appeals court disagrees with your assessment that APIs are not copyrightable. All you need to make sure than anything distributed with classes that link against Bukkit is that it satisfies the conditions of the GPL.

Since this thread is still sort-of alive, I thought I’d point out a post I made over on the subreddit regarding Pore’s legal status. While I’m not 100% sure of my interpretation’s accuracy, I’m pretty sure Pore is safe either way.

1 Like

Simply put, the problem lies and always has lain within CraftBukkit; Bukkit itself has no problems. As long as Pore is licensed properly, there should be no problem. Implementing Bukkit’s API is completely legal as long as the implementation has a valid, compatible license.

I highly doubt that it will be discontinued because of a copyright strike considering Pore doesn’t use any of Bukkit’s code as far as i considered.

I’d also think it’s safe. Not to contest the legal status of any code, but rather because Spore would only take method calls and route them to Sponge methods. It wouldn’t be using anything other than method names I’d guess. And I’m doubtful that the method names themselves would constitute copyright infringement.

Even if it needs to virtualize a Bukkit server internally and then intercept the called methods. In that case, I still think it’d only need Bukkit’s API (just the shell with method names that forward to Sponge methods somehow), but none of the code that processed the methods.

Before you read this, I am not attempting to scaremonger, I would like to see this succeed - but I don’t think Pore is currently in compliance with the GPL of Bukkit and is vulnerable to a takedown request.

TL;DR: You can’t relicense the Bukkit portions of the code under the MIT as it seems you have tried to do in Pore. They are compatible, not interchangeable. Either go full GPL v3, or add that the org.bukkit classes are GPL v3 in the license. Any original code that doesn’t touch the org.bukkit classes can most likely remain MIT - because it’s compatible with the GPL.


I’m not a lawyer, but I’m pretty sure licensing your whole repo under the MIT whilst including the Bukkit code in your repo actually breaks the GPL of Bukkit.

I know that you say the MIT licence is compatible with the GPL, that’s true - but the whole combined work must then be licensed under the GPL. The MIT licence is compatible because it doesn’t have any restrictions that the GPL doesn’t, and it allows sub-licensing, which the GPL doesn’t. That last point is important - technically, you are breaking Bukkit’s GPL licence by including the GPL’d code in a repository that is solely labelled “MIT” - you are attempting to relicense the Bukkit code, something that the GPL does not allow. Based on what you’ve done, you are saying someone could take Pore and make a closed source version because it’s MIT - but you actually don’t have the right to say that the Bukkit code can be used in a closed source situation, because the GPL doesn’t give you the right to decide this.

This is why you’ve broken Bukkit’s license on this - and I believe you are entirely vulnerable to a takedown request as it stands.

You could mark Pore as MIT except for classes in the “org.bukkit” package, explaining that they are GPL v3. That way, people could take the original parts of Pore and reuse it under the MIT (the Pore framework could be useful as a translator from another API), but if they use Pore “as-is” with any Bukkit class, then it becomes GPL. This is because the MIT licence allows you to sublicense your code - you can go from an MIT licence to the GPL licence (to a more restrictive license), but not the other way around.

I am of the opinion that, if you sort this licensing issue out, then you should be OK legally - but as I say, I’m not a lawyer - don’t take my word for it.

Sorry if this post seems very legal-like and aggresive. It’s not meant to be - it’s important that the license is right so you don’t fall foul of any issues. I hope it helps - I’m hoping Pore can help eek out a bit more life of abandoned plugins…

Ah, I didn’t think about that. Although it wouldn’t directly be in use of code other than method names at best, I guess the license may be another ordeal entirely, since you’d be directly referencing the Bukkit method names, so would potentially need to at least be the same license.

That’s an interesting point. While I was of the impression that the GPL is implied in reusing the code, I suppose it couldn’t hurt to add a disclaimer. However, keep in mind that the MIT license is GPL-compatible, and therefore derivatives of Pore could be legally licensed as such.

I feel you kind of missed my point a little here. The compatibility is one way only - you can use MIT code in a GPL’d codebase, but you can’t use GPL code in an MIT codebase unless you make the MIT codebase GPL (which you correctly say you can do).

By using Bukkit code in Pore, you’ve automatically made it a GPL codebase. There is nothing stopping you from saying that the code around Bukkit that you’ve written is MIT, but because you’ve included code that is GPL, the combination is GPL too - so effectively, Pore is under the GPL. However, you haven’t said this anywhere.

Unfortunatley, you can’t really say that - if you use GPL’d code, you have to include the GPL license terms with it.

Essentially, the problem comes in because you’ve not stated that the Bukkit code is GPL. By not doing so, you’ve stated that the whole of Pore is under the MIT license - you are violating the GPL, as you can’t sublicense from GPL to MIT.

It’s not a disclaimer you need to add - you need to change your licensing. As I said, saying code in org.bukkit is licensed under the GPL v3 and code in other packages is licensed under the MIT license should be enough.