kicking the bukkit: anatomy of an open source meltdown
DESCRIPTION
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: http://www.siliconvalley-codecamp.com/Session/2014/kicking-the-bukkit-anatomy-of-an-open-source-meltdownTRANSCRIPT
![Page 1: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/1.jpg)
Kicking the BukkitAnatomy of an open source meltdown
![Page 2: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/2.jpg)
A little about me
● Ryan Michela (@ryanmichela)
● Plugin author● Contributor to the Bukkit project
![Page 3: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/3.jpg)
Overview
● A brief history of Minecraft
● The rise and fall of Bukkit
● How you can protect your project
![Page 4: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/4.jpg)
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
http://www.eurogamer.net/articles/2014-06-26-minecrafts-console-versions-have-now-outsold-minecraft-on-pc-mac
![Page 5: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/5.jpg)
![Page 6: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/6.jpg)
![Page 7: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/7.jpg)
Brief history of Minecraft
● Beloved by children● The defining video game of the middle-
school generation● The Super Mario Brothers of the 21st
century
![Page 8: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/8.jpg)
![Page 9: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/9.jpg)
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
https://github.com/Bukkit/Bukkit/commit/4e8311a6551e8d7794cff73c57a481251b47459c
![Page 10: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/10.jpg)
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
http://forums.bukkit.org/threads/where-is-my-bukkit-preview.543/
![Page 11: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/11.jpg)
Mixed signals from MojangNov 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
http://notch.tumblr.com/post/1525944516/an-update-is-coming-tomorrow
![Page 12: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/12.jpg)
Mixed signals from MojangAugust 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
http://www.vg247.com/2012/08/01/notch-minecraft-mod-used-to-threaten-my-vision-minecraft-creator-speaks/
![Page 13: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/13.jpg)
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 alleviatedhttp://mojang.com/2012/02/minecraft-team-strengthened/
![Page 14: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/14.jpg)
![Page 15: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/15.jpg)
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
http://notch.net/2014/06/literally-worse-than-ea/
![Page 16: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/16.jpg)
Pay-to-win becomes commonplace
● Big servers start selling off in-game functionality
● $10k for “rank” in a game targeted at children
![Page 17: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/17.jpg)
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 :)”
http://blog.tian.io/mojang-threatens-lawyers-against-pay-to-win-minecraft-server-operators
![Page 18: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/18.jpg)
https://twitter.com/notch/status/474869769301409792
![Page 19: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/19.jpg)
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.”
https://account.mojang.com/documents/minecraft_eula
![Page 20: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/20.jpg)
Evilseph shutters Bukkit project
● August 21, 2014● Development team burnt out● No support from Mojang● EULA re-raises specter of infringement
![Page 21: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/21.jpg)
“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
http://forums.bukkit.org/threads/bukkit-its-time-to-say.305106/
![Page 22: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/22.jpg)
Mojang owns bukkit?!
● Mojang secretly bought Bukkit when they hired the core development team
https://storify.com/lukegb/the-tale-of-bukkit-for-minecraft-1-8
![Page 23: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/23.jpg)
Mojang will finish Bukkit
![Page 24: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/24.jpg)
![Page 25: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/25.jpg)
Then the DMCA gets involvedSeptember 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
![Page 26: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/26.jpg)
The provided license requires the use of included or linking code toprovide the original source under the GNU GPL license version 3, or anylater version. An official notice has been sent to Mojang AB, whereas theChief Operating Officer, Vu Bui, responded with the clear text:
Mojang has not authorized the inclusion of any of its proprietaryMinecraft software (including its Minecraft Server software) within theBukkit project to be included in or made subject to any GPL or LGPLlicense, or indeed any other open source license
As the Minecraft Server software is included in CraftBukkit, and theoriginal code has not been provided or its use authorized, this is aviolation of my copyright. I have a good faith belief the distribution ofCraftBukkit includes content of which the distribution is not authorized bythe copyright owner, it's agent, or the law.
http://dl.bukkit.org/dmca/notification.txt
Wolvereness’ Claim
![Page 27: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/27.jpg)
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
https://github.com/github/dmca/blob/master/2014-09-05-CraftBukkit.mdhttp://www.spigotmc.org/threads/our-dmca-response.28772/
![Page 28: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/28.jpg)
![Page 29: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/29.jpg)
Great new things in the future
● Sponge Project steps up
● Microsoft buys Mojang - $2.5B
http://abc13.com/news/software-writer-in-la-marque-latest-swatting-victim/305170/https://mojang.com/2014/09/yes-were-being-bought-by-microsoft
![Page 30: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/30.jpg)
![Page 31: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/31.jpg)
Five Reasons
![Page 32: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/32.jpg)
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
![Page 33: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/33.jpg)
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
![Page 34: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/34.jpg)
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
![Page 35: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/35.jpg)
Reason 4: No contributor license agreement● 125+ developers each own their own piece
of Bukkit● Project couldn’t re-license with more
permissive license
![Page 36: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/36.jpg)
Reason 5: Unhappy developer community● EULA changes● Terrible Mojang PR● Secretly selling the project
![Page 37: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/37.jpg)
It only takes one unhappy developer to kill an unprotected project
![Page 38: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/38.jpg)
![Page 39: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/39.jpg)
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
![Page 40: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/40.jpg)
www.choosealicense.com
![Page 41: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/41.jpg)
● Node● Bootstrap● JQuery● Rails
● Apache.*● Docker● NuGet● Android
● Linux● Git● Mongo (AGPL)● Discourse
![Page 42: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/42.jpg)
MIT vs. Apache
Permissive licensing● MIT - Do whatever you want● Apache - Patent protection
![Page 43: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/43.jpg)
GPL vs. LGPL vs. AGPL
Restrictive licensing● GPL - products● LGPL - libraries● AGPL - network services
![Page 44: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/44.jpg)
http://oss-watch.ac.uk/apps/licdiff/
![Page 45: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/45.jpg)
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
● http://www.gnu.org/licenses/license-list.html
● Unlicensed code is a landmine
![Page 46: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/46.jpg)
Common license compatibility
David A. Wheeler, The Free-Libre / Open Source Software (FLOSS) License Slidehttp://www.dwheeler.com/essays/floss-license-slide.html
![Page 47: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/47.jpg)
Avoid uncommon or “off brand” licenses● Legal ramifications less understood● License compatibility less understood
● Don’t “roll your own”
![Page 48: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/48.jpg)
Consider a Contributor License Agreement● Typically grants or transfers copyright to the
project
● http://www.clahub.com - for Github projects
![Page 49: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/49.jpg)
![Page 50: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/50.jpg)
Avoid pinning the survival of your open-source project on
the good graces of a for-profit company
![Page 51: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/51.jpg)
Avoid directly linking to closed source code in an
open source project
![Page 52: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/52.jpg)
Avoid alienating your entire developer community
simultaneously
![Page 53: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/53.jpg)
Avoid operating your project in another company’s legal
gray area
![Page 54: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/54.jpg)
Don’t secretly sell your open source project to a for-profit company while continuing to
accept contributions
And especially:
![Page 55: Kicking the Bukkit: Anatomy of an open source meltdown](https://reader035.vdocument.in/reader035/viewer/2022062512/553835f84a79591c7b8b46f9/html5/thumbnails/55.jpg)