What license is the Bukkit Project under?

Discussion in 'Bukkit News' started by EvilSeph, Jan 4, 2011.

Thread Status:
Not open for further replies.
  1. Offline


    The licensing of the Bukkit Project is currently as follows:
    Bukkit - GPL with NO exceptions
    CraftBukkit - LGPL

    Before you say anything we are aware that using the GPL will force plugin authors to GPL their plugin too and are considering changes to our choice of licensing. Though this has no legal weight, you can be rest assured that we will NOT be forcing people to GPL or open source their code and are looking for the best licensing for us to use.

    Once we've looked into this issue enough we'll be announcing our license choices - and our license WILL likely change from just the GPL, but until then the Bukkit is under GPL with NO exceptions (this is not due to us wanting this; I am clarifying that we have not specified any exceptions on the license we've currently applied to Bukkit) and CraftBukkit is under LGPL.
  2. Offline


    What's the difference between Bukkit and CraftBukkit?
  3. Offline


    As I understand it, CraftBukkit is the wrapper library for minecraft_server.jar (like how hmod is "Minecraft_mod.jar") and Bukkit is.... well that is a bit confusing. What more is there to Bukkit? I take it perhaps there are going to be seperate admin tools or something that form a complete Bukkit package?

    I suppose we'll need to wait on details but please make Bukkit "overdocumented" - there is no such thing as TMI when it comes to something like this ;)
  4. Offline


    It is one of the annoying things about open source licenses that you have to get them right first time.

    If you use one license and then a few months later 90% of the team wants to change, you can't if the work of the other 10% is spread out over the whole project.

    In fact, that is why I raised the issue in another thread. You don't want to pick a license by accident. Better to spend time getting it right.
  5. Offline


    I was curious under what license this was released under, thank you for clarifying.
  6. Offline


    Bukkit is the API for developing plugins to be used in the server wrapper (CraftBukkit). If you combined the 2 it would basically be hMod. The point of Bukkit was to decouple these 2 and make anything beyond the basic scope of server administration a job for plugins.
  7. Offline


    As Raphfrk put it, it's best to get the license right from the get go. Personally, I think Bukkit should be LGPL as it's meant to be a library in a sense, and by using LGPL with a clean room documented api, plugins can, if I'm not mistaken, be any license. As it currently stands, you guys have the wrapper LGPL and the library GPL, which is a bit backwards or my understanding of how you're organizing it is backwards. And if licensing is a major headache, look at a BSD variant.

    Something I recommend, though, is having developers who submit patches to the project sign/agree to a document stating they relinquish choice of license to a majority vote or some such determination. This is so you can approach a license change without difficulty, because a common misconception of the GPL is that people don't have copyright still. Any bit of a code a developer adds is technically still their work, and changing the license of their code without their consent is a violation of the terms they released it under.
  8. Offline


    What does this mean to those of us who are not legal-savvy?
  9. Offline


    The GPL license says that if you link your program with a GPL program, you must release the source of your program. You can't take the source for a GPL program and combine it with some code of your own and release the result as closed source, even if you include the source for the GPL portion.

    Effectively, when a program is released under GPL, the programmer is saying "In exchange for letting everyone freely use this program, anyone who adds to it must allow everyone use the result too".

    If you combine (link) your program with the GPL program and then release it, you are considered to have made an addition to the GPL program, and so you must open source your program.

    Using the program to compile your program doesn't count, as anyone is allowed to use GPL programs as programs without restriction.

    This means that you can use gcc to compile closed source programs.

    However, when you compile something with gcc, you are linking it to the various standard libraries (like stdio.h).

    If those libraries had used GPL, then anyone who used them to compile their code would have to release their code as open source, because they linked them to the standard libraries.

    The L-GPL (lesser) license is for situations like this. The program itself is covered under GPL, except you are allowed to use it as a library without having to release your code under GPL.

    However, if you were to make a change to the library itself, rather than just using it as a library, you would have to release that code.

    For example, if it was a standard library and you fixed a bug in one of the functions, you wouldn't be allowed to release the resulting library, unless you open source the bug fix.

    Since bukkit is the API and craftbukkit is the actual server, plugins will be linking to bukkit, so that is the important one as regard to licenses. If Bukkit is GPL, then linking against bukkit and distributing the result would cause the plugin to be covered by GPL.

    Ofc, with Java, that isn't actually really what happens. The linking will be accomplished by the user. The only thing needed in the source is the names for the class/imports. However, that is the same as linking to a .dll that is distributed by someone else and (apparently) still counts as for the purposes of GPL.

    The current situation means that someone who releases a plugin that links to bukkit could be asked to open source the plugin. I think that anyone who has made any contribution whatsoever to any file that you link to can make the request, even if the rest of the devs object.

    In that (hopefully unlikely) situation, you can still release it under another licence, in addition to GPL (and release all future updates only under the license of your choice). Also, if you don't have full copyright over your plugin and its not covered by GPL, in theory, you can't link to bukkit, as is.

    (Also, as they say, the above is not legal advice or something :) )
    robhol likes this.
  10. Offline


    Uhh, you're not specifying whether you're using GPLv2, or GPLv3. I'm curious as to which you're going with.

    Also, as you're licensing Bukkit itself under the GPL, be aware that plugin authors that depend on code that's not GPL-compatible (such as various libraries that they rely on) cannot release their plugins. IIRC, the simplified BSD and MIT licenses would be fine for a dependency, but most others would not be.

    That and for everyone else, if you're making an interface to communicate with Bukkit or CraftBukkit (i.e. web interface) - you're not bound to the GPL, as you are relying on their output, and are not technically using their code. This means you can do a web interface and release it under the MIT license, and it'd be perfectly kosher under the terms of the license.
  11. Offline


    This is great. I will be sure to add my plugins and my part to help this new community. ( Shame about Hey-0 ) Great about this. Long live bukkit and the community.
  12. Offline


  13. Offline


    Works fine here?
  14. Offline


  15. Offline


    Was intermittent for me.
  16. Offline


    Since you're not planning to go to court over anything, a BSD license is best - permissive enough to allow plugin authors and interested parties total freedom, yet clear on attribution.

    I'm not a lawyer, but I know from a programming perspective that licenses can be very complicated, and very difficult to change - besides, will you really be willing to fight to maintain the integrity of a GPL license?

    It's really to the detriment of the GPL if you apply it without legal weight - you're clipping off it's claws.
  17. Offline


    For what it's worth, based on your stated intentions, I'd also suggest using the BSD license rather than GPL.
  18. Offline


  19. Offline


    Erm, someone correct me if I'm wrong here, but if licensed under the GPL, Bukkit itself would be in violation of its own license upon release as it depends upon and links to a program (Minecraft) which is not compatible with the GPL.
  20. Offline


    That's an excellent point - I`m pretty sure that the Minecraft/Bukkit/CraftBukkit combination would be considered as a single program under the GPL, therefore invalidating the license completely.

    Also see this and this.
  21. Offline


    Honestly, as I pointed out before, the best option is LGPL for both projects. That, or GPL with classpath exception. And I still highly recommend a developer-agreement regarding license change. Create a council to run the project, and council has authority to assign license. This authority would be given by each developer before their code can merged.
  22. Offline


    Technically, Bukkit doesn't link to the server files, that's what CraftBukkit does. So, it is CraftBukkit that would be breaking the GPL :).
  23. Offline


    Aha, yeah. Figured I was missing something. :oops:
    --- merged: Jan 5, 2011 11:00 PM ---
    Yeah. That's what I was thinking as well.
  24. Offline


    That gives the main branch an advantage over forks. Forks are bound by the license at the time they fork, but the main branch can update the license as needed. Ofc, it wouldn't affect legacy code.
  25. Offline


    The main branch can't retroactively change license, and it also can't change license without consent of all copyright holders, so I don't really see a problem there.
  26. Offline


    It's only a slight advantage :). Effectively, it allows the main branch to close their source and I doubt it would be a big issue anyway.
  27. Offline


    Yeah. Also considering how this project started I don't really see the devs going the closed route. They seem very into the thing being open, and that's good!
  28. Offline


    BWAH legal speak is making my head asplode right now. Basically I need to know:
    1) Do I need to get a license for my plugins when I release them for Bukkit? If so, then
    2) which license do I need to release them under and
    3) how would I go about getting it?
    If anyone could answer this for me, I'd really appreciate it. I've never really bothered with licenses. I hate legal stuffs. Way too complicated for me. I prefer obfuscated code. :p
  29. Offline


    OK guys, if you don't know what the licences are about, then you shouldn't be weighing into this discussion.

    However, the original plan is good. GPL for the core, and LGPL for the wrapper.

    To stop all the handwavium: Using LGPL doesn't break anything, as Bukkit isn't distributing minecraft. Source and Metamod are GPL, and you don't see people jumping up and down about Valve not releasing the source for TF2 and CS do you?

    It's also handy to EXPLICITLY specify GPLv3, unless some devs have some issue with the patent clause.

    What does it mean for plugin authors? They have to release their code. No excuses. No pay-for-play. It's open source, or they can write their own damned wrapper.

    What does it mean for plugin users? You guys get to use the stuff for free, and if something's broken or not working the way you want, you can fix it yourself.

    The BSD licence isn't suitable. It's far too lax, and lets people close the source, which is against the spirit of the GPL. CC-BY-NC is kinda ok, but if someone wants to pay someone to code a massive plugin, you can't do that. GPLv3 solves these problems.

  30. Offline


    This makes no sense. Source isn't GPL, and since Metamod is an unofficial modification that is a combination of clean room reverse engineering and the SDK, it is the derivative much like Bukkit is. So the reason people aren't jumping up and down about not releasing the source for TF2 and CS is because it is closed source and always has been. And the reason it gets away with being GPL is because of Valve Software's stance towards it. Valve software has been supportive of metamod, so it's generally considered in the clear. However, support doesn't mean legal exemption. At any time, Valve software could change it's stance and enforce it's copyrights. Same thing applies with Notch/Mojang and Bukkit/hmod. It's a grey area to start, and the licensing on top is iffy.

    And part of me is confused about all this talk of what CraftBukkit and Bukkit are in relation to each other. If Bukkit is the API, doesn't that imply that it handles connection with plugins. And CraftBukkit ties Bukkit to the server. As such, Bukkit should be LGPL as well to allow license flexibility for plugins.
Thread Status:
Not open for further replies.

Share This Page