Breaking Copyright

Discussion in 'Bukkit Discussion' started by jmlsteele, Jan 5, 2011.

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

    jmlsteele

    tl;dr: CraftBukkit and hMod are illegal, the only way to be have a legal mod is bytecode patching (or something along those lines)


    There are a few things that everyone here has in common. They love Minecraft, they agree that the stock Minecraft server isn't where it needs to be, and they (including myself) have participated in copyright infringement.


    Like him or not, Notch is a "good guy." He designed and created the game we've all come to love and enjoy, and he's (all things considered) really amazing at listening to the community, adding new features, and patching bugs. Hell, he even says we can do whatever we want with the client/server code with ONE exception:


    Now I'm all for using something like hMod or Bukkit to increase the usability of a server, but I think it should be done in a manner that respects the author's wishes, and that most certainly is not being done.


    Not only do both hMod and Bukkit (CraftBukkit to be precise) distribute modified classes from minecraft_server.jar, you (team Bukkit) have gone so far as to make the ENTIRE SERVER downloadable in source form (with proper class names for the most part even) on your github page.


    Now I didn't come here just to throw mud or make accusations. It's entirely possible that Notch is OK with what hMod and Bukkit are doing (just point me to where he mentions distributing his class files is ok and I'll gladly bite my tongue, and even contribute to Bukkit). But in the event that he is not, I come bearing a possible solution.


    There is a library called Javassist (http://www.csg.is.titech.ac.jp/~chiba/javassist/) which allows programmers to analyze and manipulate java bytecode. I spent today playing around with it, and I think it wouldn't be too hard to author something like Bukkit or hMod using this. You could continue to use the deobfuscated sources for your own development, but when it comes time to release something instead of releasing what you compile you release a bytecode patcher instead. The files can be external to minecraft_server.jar, leaving it in pristine condition, and you would just run with the patched files in your classpath as follows

    "java -classpath patched;minecraft_server.jar net.minecraft.server.MinecraftServer nogui"

    or, since Bukkit does have some non-copyright-infringing files you'd run it, which would handle loading the patched files first, all of the plugin stuff, and launching the server.

    Anyways it's late, and I now feel like I'm rambling. I've been trying to formulate this message for the past 3 days but I'm bad with words. Feel free to hate me, or feel free to contact me if you want some more information regarding Javassist (I have a patch for the chunk generation code as a TRIVIAL example of how it works that I'd be glad to make available).

    jmlsteele
     
  2. Offline

    wizjany

  3. Offline

    Oslarathos

  4. Offline

    Tythus

    God dammit beaten to the punch
     
  5. Offline

    8e8

    All that effort to write that post. Seems like a waste.
     
  6. Offline

    Raphfrk

  7. Offline

    wizjany

    No? Deobfuscation was done by the developers, not Notch...
    Notch just said he doesn't mind the server mods that change the server software.
     
  8. Offline

    Raphfrk

    It was a response to this line (which is actually in error)

     
  9. Offline

    jmlsteele

    Which part is in error?

    https://github.com/Bukkit/mc-dev/tree/master/net/minecraft/server

    I'm pretty sure if you compared the code with a decompiled minecraft_server.jar you'd find that they are too similar to be a coincidence. For example in the current jar (as of this writing) ki cooresponds to ChunkProviderGenerate.

    Also
    He's said numerous time that he's ok with server mods, as you and others were quick to point out, but I have never once seen him say that he is ok with those mods distributing his code, which are two different statements.

    You might think it's splitting hairs, but it's a pretty fundamental difference.

    And like I said I'm not trying to point fingers (I've used hMod in the past and as such am guilty of the fruits of their labours), just raise awareness and provide a legal alternative.
     
  10. Offline

    EvilSeph Retired Staff

    Are you a lawyer? An intellectual property lawyer that deals specifically with technologically related cases? I'd really like to know the answer to this question.
     
  11. Offline

    Valrix

    If you're going to make a mod, you're going to distribute it otherwise what's the point of making it? If he's already said he's fine with it being built I'd say that also implies that he's fine with it being distributed. The server doesn't actually contain everything important to the game, the client does, which is why he doesn't like client mods. Hell, you get the server for FREE, making it very open to being played around with.
     
  12. Offline

    SpeaKeasY

  13. Offline

    Raphfrk

    I meant that they didn't have the entire server in source form. Unless the error is mine (again :) ), they are distributing some of the files in source form and the rest in .class form.

    However, I think the hmod policy of downloading the official server and just including the modified files is better. It at least maintains the link to the official site.
     
  14. Offline

    void420

    I am not a lawyer but copyright deals specifically with distribution of someone else's work. Therefore the only 2 choice to remain 100% legal are:
    1. Distribute only patches to the official .class bytecode (which would contain only your code and the location where to inject it in notch's code).
    or
    2. Get notch to officially give you permission to redistribute his code.

    #1 could also be at risk of trademark or patent violation if notch or his company ever decided to become evil. The best way would be #2 but I don't know how open he would be to the idea.
     
  15. Offline

    jmlsteele

    I am not a lawyer of any kind, simply a programmer, but Copyright law (the gist of it anyways) is actually not hard to understand.

    (emphasis added)

    Notch is granted exclusive rights to Minecraft by way of the fact he has Authored it. In order for other people to be allowed to distribute his work, original or modified, he must specifically give/transfer those permissions. He has done the exact opposite saying

    Should be fairly obvious to anyone that distributing the minecraft server, in part or in whole, is breaking copyright.

    I have 3 mods (all dealing with the way terrain is generated) running on the server that my friends and I use that I haven't distributed. Most mods start out that way.

    You can download a LOT of stuff for free on the internet, doesn't make it legal to re-distribute it. And I'm NOT objecting to playing around with the code, as Notch has specifically said we are allowed to do that, I'm just talking about distributing it.

    Thanks SpeaKeasY, I'll have to look into that. Javassist was just the first thing I found that looked like it would work to be honest.

    Raph, while neither CraftBukkit nor Bukkit contain the full server, the mc-dev project does, which is what I was referring to. Distributing the files in class form is still distributing them, which is still illegal.

    I'm so glad I'm important enough to make your diary entry M1sT3rM4n, and I'm a big fan of your videos.
     
  16. Offline

    M1sT3rM4n

    lol my bad I've been browsing 4chan too much this month. I need to kick the habit
     
  17. Offline

    Arrorn

    I was writing something for the hmod community last month but since this topic is here might as post my findings. If you think my logic is flawed in any way shape or form I'll happily take criticism.

    To summarize my findings... No you cannot licence under any GNU licence any "plug-in" that shares or uses data structures and or functions with MineCraft. If it does it is considered by the people who wrote the GNU GPL as part of MineCraft, and you can't licence part of a program... I don't think. You may still wish to copyright your source code.

    NOTICE: I do not claim to be a lawyer, an attorney, or have any legal training of any kind. This is just my findings and opinions of a concerned member of this community.

    I have seen several plugins that are attempting to use the GNU's General Public License (GPL). I say attempting because according to what I have found that by the very act of licensing their plugin with GNU GPL they have, themselves, voided it.

    I hereby present my case that programmers in this community have wrongly licensed their code and have deluded themselves and others.

    I have licensed a program, not for this community or for Minecraft, under the GNU GPL. I recently stumbled upon a plugin, unnamed, that the author, also unnamed, licensed under the GNU GPL. I found this curious so I did some researching on the GNU's website and lo and behold:

    Evidence:

    from http://www.gnu.org/licenses/gpl-faq.html#GPLPluginsInNF

    Analysis:

    My interpretation of this is that because Hey0 shares data structures with Minecraft it is then render as part of Minecraft. Since, Hey0 and Minecraft is one entity as defined as this quote, when another plugin shares data structures with Hey0 and in turn Minecraft it becomes part of this entity. Thus, voiding any attempt to license our plugin, at least with the GNU GPL.

    Many People upon seeing this would attempt to argue that Hey0 and Minecraft are only system libraries that we reference therefore our plugins are not plugins but rather individual programs. If this were the case then we would be able to use the system library exception within the GNU GPL.

    from http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs

    The only problem is that as defined by GNU GPL v3 Hey0 and Minecraft are not system libraries.

    from http://www.gnu.org/licenses/gpl.html

    As defined above Hey0 and Minecraft are Major Components of our plugins. Rendering any such arguement invalid. How I reach this conclusion from the legal jumbo mumbo above.
    is this definition:

    We need Hey0 and Minecraft to run our plugins and to see any output what so ever, hence Major Components.

    To conclude, Me being a concerned member of the Hey0 Mod Community has done research into whether, we, modders can license our plugins under the GNU General Public License (GPL) or the GNU Lesser General Public License (LGPL) as that adds permissions to the GNU GPL, and found that we cannot do so.
     
    Maulss, Obsidian and root like this.
  18. Offline

    root

    The above post just hit the nail on the head :)
     
  19. Offline

    void420

    For anyone linking to twitter, here's a much more legally binding source:
    http://www.minecraft.net/copyright.jsp

    I think it would be a very good idea to talk to the man directly and see if you can get written permission, if not you should look into distributing binary patches for the parts that touch notch's code. I also don't think you can keep it (L)GPL unless he also licenses it that way.
     
  20. Offline

    EvilSeph Retired Staff

    When doing research on this issue, you need to be very careful and take into account the legal terms and definitions defined for the words used. They make all the difference.
     
  21. Offline

    jmlsteele

    Everywhere I write Bukkit in the following post I actually mean CraftBukkit, or hMod, as those are the infringing products.

    While your post is indeed informative Arrorn, it doesn't really apply directly in this situation. The debate isn't whether Bukkit or the plugins which use Bukkit can be licensed as GPL, or even whether Bukkit itself can be licensed such, but whether it is even legal to distribute Bukkit because of the copyright restrictions that Notch has placed on his code.

    If Notch, at a later date, were to revoke that restriction, or Bukkit is re-written such that none of Notch's code is distributed, then Bukkit should indeed be allowed to be licensed as GPL with the linking exception that your first quote talks about.

    Assuming Bukkit is released as GPL (which seems to be what the Devs want), and the infringement issue is resolved, then Plugins written to work with Bukkit MUST be licensed using the GPL, or a GPL compatible license.

    (emphasis theirs)
    Link: http://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL

    HOWEVER, as mentioned earlier, this has no bearing with Bukkit as of yet because of the copyright issues with Bukkit itself.
     
  22. Offline

    Afforess

    Notch has made it clear (as posted in a previous quote by others) that any redistrubution of his code is a copyright volition. While he may not officially do anything about it, it can not be assumed that this will always be the case. Further, as Arrorn has pointed out, Bukkit and CraftBukkit, and any plugins can not use any form of GPL or GNU licencing. I don't see what's left to debate. Bukkit, CraftBukkit, plugin authors (myself included), are clearly in the wrong legally. Code Injection - as suggested by a previous poster, would solve the first issue. A different licence (CC? something else?) would solve the second one.

    These issues will not go away, and should be addressed now, before the problem get's any larger. Mojag Specifications is a multi-million dollar corporation, and the US and it's allies look poorly on Copyright violators. Sweden and the US are on friendly terms - in regards to copyright laws (as seen by the pirate bay fiasco). I believe that this issue will continue to haunt this project (which I dearly want to succeed).
     
  23. Indeed, and all it takes is for Notch/Mojang to Take Action on One thing and that person It's against can turn around and go;
    "Hang On, CraftBukkit & Bukkit and this, that and the other, all Have done this so why hasn't action been taken against them?"

    Thats when Notch/Mojang have to crack down on everything else they have played a blind eye too.
     
  24. Offline

    Valrix

    So the only truly safe thing to do is to get permission from Notch directly or to inject the code, whichever seems to be the easiest. Who knows, maybe just asking him to give his consent could be enough since he already tweeted about it.
     
  25. Notch maybe Aware of Bukkit but I doubt he's aware of its re-disputing of his code.
    But yes a Simple Asking wouldn't go amiss.
     
  26. Offline

    Obsidian

    The trick would be getting the proper written permission, which means asking in exactly the right way -- otherwise, Notch's lawyer will insist that the request be denied.
     
  27. Offline

    Chewi

    The tone is a little harsh in here given that Notch seems to have informally endorsed the project but I agree that written permission is important. Coming from a free software background, I would certainly like some clarification.

    I am trying to package Craftbukkit for Gentoo Linux, where it will always be built from source. This seems to require the unobfuscated classes so I want to know which is the best and most legal way to do this. Is that mc-dev repo on github legal or not?
     
  28. Offline

    feverdream

    I decided to ask my (US based) lawyer about this as I was curious and have an ARAG benefit at my work.

    He stated to me that as long as hey0/bukkit does not distribute any of Notches de-compiled code without written consent, bukkit is fine and fully legal. If however it does distribute his code, decompiled, in any way, Notch can sue for $$$$ or even just simply have the hosting provider delete it as it would be illegal. If this happened, no doubt legal charges would be out of even Notches control to stop.
     
  29. Offline

    Kekec852

    As I understand Bukkit is just a framework and CraftBukkit is actualy interface to MC server. So Bukkit colud be licensed under GPL. But on the other hand CraftBukkit violates MC license, becouse it contains parts of Notch's code.
     
  30. Offline

    feverdream

    Then in that case based n what my lawyer has told me, CraftBukkit would be illegal and anybody who runs it could be raided at any time.

    Maybe somebody should grow some balls and ask Notch?
     
Thread Status:
Not open for further replies.

Share This Page