If you’re not sure what Bukkit is, you can skip over this post. Otherwise, keep reading.

In case you’ve been out of the loop, it appears that the Bukkit project is in self-destruct mode now that the two dozen or so core contributors have all announced their departure over circumstances I’m not entirely sure I understand.

The opinions here are therefore my own and are reflective of only the information I currently have and are subject to change. If you find them upsetting, then direct your frustrations to an organization that probably deserves it.

First, I think this is entirely weird and probably equal parts selfish and self destructive on the contributors’ behalf. Second, I’ll predict what’s going to happen: In a year or two, no one will remember any of this, Mojang will be motivated by recent actions by the Bukkit contributors to fast track their own API, and every single one of the Bukkit contributors will fade into obscurity.

Essentially, the upshot is that if you throw a tantrum and collectively elect to take your ball and go home, your actions will galvanize the community into factions that strongly support and strongly disapprove of your behavior. History has suggested it’s unlikely to happen any other way. The faction that supports your activity may be most helpful in constructing a new community from scratch while the opposing one will seek to destroy it. Though, I would urge caution to anyone who strives to build a community upon a foundation of vitriol and anger.

But let’s back up for a moment and discuss this obscurity I mentioned. I’ve been running Bukkit off and on for probably two years or so (maybe three, I honestly can’t remember–I first used it when the project was quite young). And let me be frank: Aside from some of the big names (Dinnerbone, EvilSeph), I can’t remember anyone else’s name. Sad? Maybe, but that’s the reality. As a consumer of the Bukkit source code (speaking of it as a product), I was exclusively interested in using it because it made my life a bit easier as one of the administrators of a small server for a few friends of mine and I, and because of the numerous (and useful) plugins. Selfish? You bet.

Unfortunately, Bukkit’s substantial memory requirements over the stock Minecraft server and local lack of interest in Minecraft in general, I’ve since shut down the server we were using indefinitely and may or may not elect to start it up again. This is going to sound harsh, but as someone who might administer future Minecraft servers for my own personal use, I’m not really going to care in the long run what happens to Bukkit. It was a great project, but when open source projects die or fork, I don’t have the time to fuss with internal project politics. I’m going to pick one that does what I want, and I’m not going to fret about who did what. In the end, it doesn’t matter.

Second, as I understand it currently, this is largely due to the departure of EvilSeph from the project for various reasons. It’s also due to the activities of Wolvereness whom I understand used the DMCA to take down specific parts of Bukkit code. I’m not entirely clear on which parts were removed, but a response from a Mojang employee is suggestive that it was a fairly important part of Bukkit and likely the parts that attempted to reimplement the Minecraft server software. So, legally speaking, the activity by Bukkit was already on shaky grounds, even though Mojang had no interests in doing anything to the project (at that point in time).

Finally, it appears to me that the community has decided to circle the wagons around Wolvereness, essentially working themselves up into a tizzy about this perceived smack-in-the-face by an evil, profit-making company (without which, I might remind you, Bukkit wouldn’t exist). I find it oddly ironic that certain posters on the Bukkit forums have plainly stated that community members are uninterested in working for a for-profit company “for free.”

Do you guys have any idea what you’ve been doing the last three years? I really shouldn’t have to spell this out. At least it hasn’t degenerated into Youtube-level stupidity, so that’s a plus, but the night is young.

(Aside: It may surprise you to discover that you can make money from GPL licensed software; you just have to supply the original sources and any modifications you’ve made thereof to any party that asks.)

The other side of the coin is that there was a huge debate about the legality of Minecraft existing, simply on the merit that Bukkit is licensed under the GPL. I recall no less than two or three individuals arguing that, because of the GPL’s nature, since Mojang “owns” Bukkit, the Minecraft sources must therefore be released or else it will be in violation of the GPL. I am not a lawyer, but this is outright nonsense, and I’ll explain.

First, Minecraft by necessity of causality predates Bukkit. If Minecraft didn’t exist, there would be no Bukkit. Second, you cannot control what third parties will do with your own product; if a third party produces software that is GPL licensed and relies on interfacing in some manner with your closed source product, they cannot then demand that you open your product under the GPL or face legal action. It simply doesn’t work that way. Yes, it’s a problem that Mojang now owns some rights to Bukkit, but I’d argue that the nature of Bukkit’s interaction with Minecraft is such that it is legally dubious to argue that Minecraft is in violation of the GPL simply on the merit that Bukkit requires it to exist. (This is for a court to decide, not armchair lawyers.)

Second, I’ve seen a few comments from people who are essentially encouraging the Bukkit contributors to “take back” their contributions so Mojang cannot use them. This is equally absurd, because these contributions have already been licensed under the GPL, presumably with the intent of being part of the Bukkit project. While possible, it’s very difficult to backtrack a contribution made in good faith under a copyleft license like the GPL, because to do so flies in the spirit of the license. The GPL is intended to protect the consumers of such code (that’s you and me), and as such, the copyright holders give up some rights so that we may freely make use of the code, freely modify the code, and freely give back our own contributions without fear that the original sources will be closed or otherwise pulled out from under us. This is why many popular projects over the years have been forked: Community members grow frustrated with a lack of maintenance or the stewardship of the project maintainers/owners, and so they fork the project to drive it in a direction they want for themselves.

In spite of Richard M. Stallman’s intentions, there is nothing altruistic about open source or open source stewardship. It is almost always entirely driven, even if only initially, because of inherently selfish desires. The desire to scratch one’s own itch isn’t something that materializes out of charity to an as yet unknown community. Thus, licenses like the GPL strive to protect us all from inherently selfish drives, particularly those activities by people who would rather take their own contributions and run for the hills.

To put it more simply: If anyone from Bukkit attempts to reverse their GPL licensing, it will only apply to any code they write at the point after which the GPL licensed code was written and existed.

A final point that comes to mind is one that I’ve been musing about myself for my own projects, including one that I intend to have distinct commercial and F/OSS versions that will live simultaneously but with the intention that they may accept source code contributed to me by other individuals. It goes something like this: If Mojang did in fact buy the rights to Bukkit two years ago, they should have made all contributors sign a Contributor License Agreement. Such an agreement would provide protections to Mojang and to the individual contributors by 1) ensuring that contributions made to Bukkit are given to Mojang under a perpetual non-exclusive license with the rights to relicense and sublet the sources as Mojang desires and 2) protects the contributor by authorizing them to reuse their contributed code in their own projects (or commercially) as they see fit. CLAs are fairly common among open source projects and provide a means for contributing to F/OSS projects that may have commercial backing or commercial versions based in part on community-supplied sources without leaving the projects in legal limbo.

This would have afforded Mojang the options to do whatever they see fit with newly contributed code while making clear Bukkit’s legal standing. It may have also prevented someone from torpedoing the project via the DMCA (or similar). However, unless the agreed upon CLA were retroactive to previous contributions, it would most certainly not have prevented someone from poisoning the well with contributions made in the months prior to the implementation of a CLA. It’s plausible then that even with the protections of a CLA, things may have worked out the same way. Regardless, it’s better to have some protections than not enough, and I think the events that have transpired this week should serve as a warning to all F/OSS projects. If you do not have sufficient legal protections, a malevolent actor can use copyright law to irreversibly damage your project.

Beyond that, I’m sure there are still a few lessons to take away from the Bukkit fiasco which we’ll discover in due time. For now, the best we can do is sit back and wait.