Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kicking the Bukkit: Anatomy of an open source meltdown


Published on

On September 3rd, 2014, a disgruntled ex-developer erased from the internet the work of over 150 developers over four years. This is the story of the Bukkit Minecraft server project's demise, and how you protect your project from its fate.

Presented at Silicon Valley Code Camp 2014:

Published in: Software, Technology
  • Okay I could see him doing this if Mojang was going to start charging for bukkit. They werent going to and this guy just kicked the shin of many developers just because he could? Sure he put work into it but its Open source as programs go thus meaning that anyone who can code can put their two cents in but dont expect a copywrite ... The fact that this happened is just a testement on how greedy people are. I hope future open source programs keep this lesson in mind and as a rule make all code put into any open source project property of the project and not subject to copywrite.
    Are you sure you want to  Yes  No
    Your message goes here
  • Excellent analysis, possible above quibbles aside. Well done.

    Are you sure you want to  Yes  No
    Your message goes here
  • Not sure about this presentation.

    Just enforce GPL licence and you'r ok ;-)

    Just ask Software Freedom Law Center and your fine.

    For example, it works against Cisco :
    Are you sure you want to  Yes  No
    Your message goes here

Kicking the Bukkit: Anatomy of an open source meltdown

  1. Kicking the Bukkit Anatomy of an open source meltdown
  2. A little about me ● Ryan Michela (@ryanmichela) ● Plugin author ● Contributor to the Bukkit project
  3. Overview ● A brief history of Minecraft ● The rise and fall of Bukkit ● How you can protect your project
  4. Brief history of Minecraft ● Minecraft is a sandbox style video game started by Markus “Notch” Presson in 2009 for Mojang Software ● 3rd best selling video game of all time ● >54 million copies
  5. Brief history of Minecraft ● Beloved by children ● The defining video game of the middle-school generation ● The Super Mario Brothers of the 21st century
  6. The genesis of the Bukkit project ● Bukkit - an open-source Minecraft server platform ● Plugin platform for Minecraft ● Started in December 2010 by Dinnerbone, Evilseph, Grum, and Tahg
  7. Licensing questions plague infant project ● By January, 2011, the core team started worrying about licensing issues ● Bukkit licensed LGPL, but built on decompiled Minecraft source ● Decompiled Mojang code blended into Bukkit repository
  8. Mixed signals from Mojang Nov 2010: “First of all, most “mods” that add new features to the game are in a very gray area legally, and I frown upon them. Most of them add really cool new features, though. It’s highly likely that something like the bridge mod will make it into the game.” - Notch
  9. Mixed signals from Mojang August 2012: “Personally, I used to feel threatened by it as I felt it challenged my “vision,” but on the other hand, I also know how wonderful mods are for games. We decided to just let it happen, and I’m very happy we did. Mods are a huge reason of what Minecraft is.” - Notch
  10. Mojang hires Bukkit team ● Feb 28, 2012 - Mojang hires core Bukkit team to work on official modding API ● Mojang offers to help with Bukkit ○ “We will, however, help bukkit to be compatible with 1.2, to avoid having a long gap while you wait for the official Minecraft server to catch up.” ● Licensing fears mostly alleviated
  11. But darkness was brewing in the community ● Opportunistic server owners started charging for in-game perks, calling them “donations” ● Angry parents complain to Mojang ● "I don’t even know how many emails we’ve gotten from parents, asking for their hundred dollars back their kid spent on an item pack on a server we have no control over." - Notch
  12. Pay-to-win becomes commonplace ● Big servers start selling off in-game functionality ● $10k for “rank” in a game targeted at children
  13. Mojang updates its EULA (and fails at public relations) ● June, 2014 - Mojang awkwardly chastises for-profit server owners on IRC ○ “doesn't matter at all, based on plugins or not, you cannot make money with Minecraft without our permission :)” ○ “running servers is *NOT* A BUSINESS*” ○ “We'll ask nicely and then send really mean lawyers :)”
  15. EULA changes drop bombshell on Bukkit ● “The one major rule is that you must not distribute anything we‘ve made.” ● “so that we are crystal clear, what we have made includes, but is not limited to, the client or the server software for our Game. It also includes modified versions of a Game, part of it or anything else we‘ve made.”
  16. Evilseph shutters Bukkit project ● August 21, 2014 ● Development team burnt out ● No support from Mojang ● EULA re-raises specter of infringement
  17. “At this point in time, I think it's safe to say that it's no longer worth it for us to put up a fight when it comes to keeping Bukkit and modding alive. With large and significant changes coming in Minecraft 1.8 that we'll be hard pressed to provide support for and the lack of support from Mojang with updates since acquiring our original core team (Mojang used to provide us with mappings to speed up the update process), there is little motivation for us to continue limping on across various aspects of the project.” - Evilseph
  18. Mojang owns bukkit?! ● Mojang secretly bought Bukkit when they hired the core development team
  19. Mojang will finish Bukkit
  20. Then the DMCA gets involved September 3, 2014 - Wolvereness, a long-time Bukkit developer, files a DMCA takedown notice against all versions of Bukkit hosted on the main Bukkit download servers at Multiplay
  21. Wolvereness’ Claim The provided license requires the use of included or linking code to provide the original source under the GNU GPL license version 3, or any later version. An official notice has been sent to Mojang AB, whereas the Chief Operating Officer, Vu Bui, responded with the clear text: Mojang has not authorized the inclusion of any of its proprietary Minecraft software (including its Minecraft Server software) within the Bukkit project to be included in or made subject to any GPL or LGPL license, or indeed any other open source license As the Minecraft Server software is included in CraftBukkit, and the original code has not been provided or its use authorized, this is a violation of my copyright. I have a good faith belief the distribution of CraftBukkit includes content of which the distribution is not authorized by the copyright owner, it's agent, or the law.
  22. Gone from the internet ● September 5, 2014 - Wolvereness shuts down Bukkit repo on GitHub ● September 6, 2014 - Wolvereness shuts down SpigotMC and Cauldron, forks of Bukkt
  23. Great new things in the future ● Sponge Project steps up ● Microsoft buys Mojang - $2.5B
  24. Five Reasons
  25. Reason 1: Questionable inclusion of decompiled code in an open source project ● Bukkit built on top of partially decompiled Mojang code ● Mojang code blended with Bukkit code in Github
  26. Reason 2: Questionable application of (L)GPL3 ● GPL3 chosen without proper consideration of consequences ● Unmodified Mojang .class files distributed as part of Bukkit .jar using Maven shade ● LGPL3 explicitly bans linking and distributing non-free code
  27. Reason 3: Questionable relationship with Mojang Software ● What exactly did Mojang buy? Bukkit code? Logos? Domains? - Nobody knows ● Mojang success was built on the backs of volunteers ○ Reverse engineering is torturous work ○ Some developers feel they were taken advantage of
  28. Reason 4: No contributor license agreement ● 125+ developers each own their own piece of Bukkit ● Project couldn’t re-license with more permissive license
  29. Reason 5: Unhappy developer community ● EULA changes ● Terrible Mojang PR ● Secretly selling the project
  30. It only takes one unhappy developer to kill an unprotected project
  31. Thoroughly consider your license before your first commit ● Which license do you choose? ○ MIT? ○ Apache? ○ GPL? ○ Other? ● Changing your license after accepting contributions is not trivial
  33. ● Node ● Bootstrap ● JQuery ● Rails ● Apache.* ● Docker ● NuGet ● Android ● Linux ● Git ● Mongo (AGPL) ● Discourse
  34. MIT vs. Apache Permissive licensing ● MIT - Do whatever you want ● Apache - Patent protection
  35. GPL vs. LGPL vs. AGPL Restrictive licensing ● GPL - products ● LGPL - libraries ● AGPL - network services
  37. Thoroughly vet the licenses of all components you modify or link against ● If your dependencies licenses are incompatible with your license, your license may be invalid ● ● Unlicensed code is a landmine
  38. Common license compatibility David A. Wheeler, The Free-Libre / Open Source Software (FLOSS) License Slide
  39. Avoid uncommon or “off brand” licenses ● Legal ramifications less understood ● License compatibility less understood ● Don’t “roll your own”
  40. Consider a Contributor License Agreement ● Typically grants or transfers copyright to the project ● - for Github projects
  41. Avoid pinning the survival of your open-source project on the good graces of a for-profit company
  42. Avoid directly linking to closed source code in an open source project
  43. Avoid alienating your entire developer community simultaneously
  44. Avoid operating your project in another company’s legal gray area
  45. And especially: Don’t secretly sell your open source project to a for-profit company while continuing to accept contributions