Minecraft- unrelated shenanigans


  • Discourse touched me in a no-no place

    Years ago, a group of people decompiled and deobfuscated the Minecraft server jar, and started writing a plugin-based extension of it. They called it Bukkit, based on a silly in-joke. Later (~1/12), Mojang, the company that makes Minecraft, hired four of the Bukkit developers (including the guy who started the project.) At the time, they announced that they were part of the Mojang team, but didn't explicitly say "and Mojang also bought Bukkit."

    Fast forward to a couple weeks ago, when one of the (non-Mojang) developers of Bukkit didn't like some decisions Mojang made (really...you don't care what the details are; it's tedious) so he decided to kill Bukkit. People freaked, and Mojang stepped in and said "actually...no. He doesn't have the power to do that, as we own the code." People freaked some more, and the dev admitted Mojang was right.

    The point

    Fast forward to yesterday. One of the other non-Mojang Bukkit devs (one of the most prolific, too) issued a DMCA takedown notice against Bukkit, claiming that Bukkit was GPL, but used Mojang's proprietary code, and therefore Minecraft was in violation of GPL and, as a partial owner of the Bukkit code, his rights were being violated. More people freak out.

    The funny thing is he's probably right about his copyright, but his backstory is wrong. Bukkit, being a derivative work, can't claim Minecraft's product is violating GPL.

    I don't use Bukkit so this is all kind of academic to me, but the soap opera is kind of entertaining.



  • Didn't you just censor the majority of the soap opera? I don't follow minecraft, but this sounds like normal idiocy.



  • I'm not following...a GPL'd project built after the fact and based on a proprietary code base can make the GPL trickle back up into the proprietary code? I know the GPL is cancer and all, but that's like a sexually transmitted disease you get from secret admirers and stalkers but without the sex part.



  • Did they ever get 1.8 released, or are they too busy getting themselves off to their company bank account statement to do any real work? (I'm guessing it was never released since nobody's been bugging me to update my server)



  • Minceraft kind of turned into crap when v1.8beta got released.
    It surprises me that so many people kept playing after that.


  • Discourse touched me in a no-no place

    @Matches said:

    Didn't you just censor the majority of the soap opera?

    Censor? No. Skip over, yeah, because, quite frankly, it's tedious. Although to be honest, at the core, there's some humorlessness and pedantic dickweedery worthy of this site.

    Dinnerbone came right out and said Mojang liked what they'd done and wanted to do something analogous to it, two years ago. Now people are saying that because he didn't also say "and they bought our derivative software" that the fact that they DID buy the software is some kind of coverup to...trick other developers into unpaid labor for Mojang, I guess.



  • @FrostCat said:

    that the fact that they DID buy the software is some kind of coverup to...trick other developers into unpaid labor for Mojang, I guess.

    But but but... but they were making Minecraft mods. How isn't that unpaid labor for Mojang?

    Here's a pro-tip: when I make and publish a Skyrim mod, the only one making money on the deal is Bethesda.



  • @mott555 said:

    a GPL'd project built after the fact and based on a proprietary code base can make the GPL trickle back up into the proprietary code?

    No, it can't.

    That would be like me decompiling the Windows TCP stack, releasing my decompiled source as a work under the GPL, and then claiming MS are violating the GPL (and, if MS is still using a derivative of the BSD stack, claiming that the *BSDs are violating GPL as well).

    I'm not sure of the licensing terms of the Minecraft server, but I'd be willing to bet the original decompilation / deobfuscation violated those terms, and would be considered a derivative work of Mojang's code anyway.

    This would leave me to believe that:

    • Any original code by the Bukkit developers would be © them, and could be licensed any way they like, including under the GPL
    • Code derived from Mojang's code remains © Mojang, despite its decompiled and deobfuscated status, and cannot be subsequently licensed by some third party as GPL (it's basically the same as stripping copyright notices off someone else's code and releasing it as your own work)
    • Given the way the GPL works, this would mean the developers of Bukkit were violating the GPL themselves any time they distributed a binary of Bukkit, as well as violating Mojang's copyright and (probably) license terms every time they distributed either binary or source derived from Mojang's code.

  • Discourse touched me in a no-no place

    @mott555 said:

    I'm not following...a GPL'd project built after the fact and based on a proprietary code base can make the GPL trickle back up into the proprietary code?

    That appears to be the basis (or at least part of it) for the DMCA takedown request, yes. This is where if I weren't lazy I'd get that Fry jpeg and put "not sure if dishonest or ignorant" on it.

    Here's the takedown request.
    http://dl.bukkit.org/dmca/notification.txt

    "The provided license [for CraftBukkit] 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."

    His last paragraph is gibberish, somehow. CB uses a reverse-engineered version of the MC server. Said reverse-engineered version is implicitly authorized since the copyright owner continues to make it available. It's also GPL and open source. But because the original software, which does NOT use the infringing code, isn't open source....the author of the takedown is all butthurt profit?


  • Discourse touched me in a no-no place

    @blakeyrat said:

    But but but... but they were making Minecraft mods. How isn't that unpaid labor for Mojang?

    I don't claim that these guys are making sense.

    The core of this is that people running MC servers were financing themselves by pay-to-win ("give us $10 and we'll give you bonus equipment.") This annoyed Mojang because what would happen is some 10yo kid "borrows" dad's credit card and spends $100, and then either the server owner rips him off, or he does something that gets him banned from the server. Then he tells Dad, Dad gets pissed off, and writes an angry email to Mojang demanding his money back. Mojang quite rightly says "well, that's not really something we can fix. We didn't take his money." Mojang got tired of dealing with it and changed their EULA so that servers can't implement pay to win. (I'm summarizing, of course. There's a bit more nuance here.)

    All sorts of people got butthurt about this for various reasons. good and bad. So the primary Bukkit maintainer tried to kill the project in some kind of protest, and Mojang swooped in and said "uh, no."

    And the butthurt people had a second round, because somehow, apparently Mojang kept their acquisition of Bukkit a secret so as to con developers into being unpaid interns? The guy who tried to kill Bukkit was actually one of the people Mojang hired, but he left about a year later and went back to Bukkit. Presumably, he knew all along Mojang owned it. Certainly when they publicly asserted their ownership, he was quick to agree it wasn't his to shut down.

    And then the other guy comes along with the DMCA takedown. Nobody knows what his reasons were yet, or at least, nobody's publicly saying anything, but all sorts of people are freaking out.


  • Discourse touched me in a no-no place

    @mott555 said:

    Did they ever get 1.8 released

    Just a couple days ago.



  • See, these are the types of problems you get with Java.



  • @blakeyrat said:

    See, these are the types of problems you get with Java bytecode languages.


  • Discourse touched me in a no-no place

    @tufty said:

    Given the way the GPL works, this would mean the developers of Bukkit were violating the GPL themselves any time they distributed a binary of Bukkit

    It's not possible for anyone to violate the GPL when they distribute something they hold the copyright of. No matter what the FSF's fellow travellers say. All licenses are founded on copyright law.

    It's also not possible for someone to change the license on some code by just decompiling it and slapping a new license.txt in there. Copyright law again (the decompiled code would be a true derivative work at best).

    Redistribution may break the law, but not the GPL. The Bukkit devs have demonstrated major idiocy. (Who owns the license on the parts that were not written by people who were Mojang employees at the time? That's where you ask the copyright lawyer…)



  • People just aren't getting any of my jokes this morning, are they.


  • FoxDev

    Frankly my dear; we often don't get your jokes, that function is independent of any time variable.



  • @dkf said:

    It's not possible for anyone to violate the GPL when they distribute something they hold the copyright of. No matter what the FSF's fellow travellers say. All licenses are founded on copyright law.

    I agree. However, they were not distributing something they hold the copyright to. They were distributing something they partially hold copyright to, the rest of which they were wilfully misrepresenting the license terms of.

    So whilst they could happily distribute the source of their own original code, or even a binary consisting solely of their own original code (and optionally, other GPLed code) under the GPL, they could not release a binary containing a mix of their own GPLed code and other non-GPLed code under the GPL, as it breaks the "direct linking" aspect of the GPL.

    Given that they were, AIUI, using GPLv3, there's also the issue of "did the decompiled Mojang code contain anything patented?"



  • Since we had that spat, I've come to see you in a whole new light and I actually get when you're trying to be funny, but I guess this morning the jokes fell flatter than usual. Not sure why.


  • Discourse touched me in a no-no place

    @tufty said:

    So whilst they could happily distribute the source of their own original code, or even a binary consisting solely of their own original code (and optionally, other GPLed code) under the GPL, they could not release a binary containing a mix of their own GPLed code and other non-GPLed code under the GPL, as it breaks the "direct linking" aspect of the GPL.

    That's probably true--but Mojang first implicitly and then explicitly allowed them to continue to release the reverse-engineered source of the Minecraft server, so the GPL isn't violated by refusal to release source. In essence, the server is dual-licensed: Mojang provides a closed-source binary, but they also provide an open-source derived version of the same thing. I'm sure that violates the intent behind the GPL but it may not actually violate the GPL itself? This is some serious pedantry.



  • Anything the GPL touches invokes serious pedantry.

    Tangentially relevant discussion on meta.d for once... a LONG time ago


  • ♿ (Parody)

    @blakeyrat said:

    People just aren't getting any of my jokes this morning, are they.

    I chuckled at the java joke. I went back and Liked it, because somehow i see that I missed doing that. Now my eternal Like of the joke is transcribed.



  • What makes it even more interesting is that the "original work" being claimed is the Bukkit API; and, by implementing that API, the "infringing" work- CraftBukkit (as well as another implementation, Spigot, which Wolvereness has dutifully also filed a DMCA takedown against) somehow become "derivative works".

    Now, correct me if I'm wrong, but I thought we went over this whole "implementing an API is a derived work" thing back with Google and Oracle?

    One "argument" I saw made is that Bukkit has a class called itemstack and CraftBukkit has a "CraftItemStack" which implements it, and because it's a derived class, it's a derived work. Because apparently OO principles are legally binding for Copyright purposes. Is every Java program a derivative work of the Java class library by extending Object? (interestingly, the GPL FAQ tries to assert that "creating a derived class is creating a derivative work" but of course it cannot change the definition of what a derivative work is so that just dumb.

    That said, Bukkit does have library methods that CraftBukkit uses. Does utilizing a GPL library mean that you must make the program using it GPL?

    Also, why did Wolvereness only suddenly take issue with this? If CraftBukkit is infringing on the Bukkit API's GPL, it's odd that he decided to make commits since early 2012 without a peep. I guess it's pure coincidence that he discovered this travesty against Open Source software immediately after himself and the other core dev basically said they will do whatever they can to prevent Bukkit from continuing.

    TL;DR of this story is that two butthurt developers with no professional experience (one of whom worked for Mojang for a year working on the ubiquitous API and was fired when it was discovered that he had done jack shit) have basically decided that they want to "take their ball and go home" and after realizing that Open Source doesn't really make that particularly useful have started to file DMCA takedown requests based on Bukkit including code that they have already provided over the last two years.



  • You can get fired from Mojang for doing jack shit?

    I find that very surprising.



  • Well yeah, but see he was doing jack shit from home, whereas everybody else had to go the the office. Doing nothing at all becomes bittersweet when you find out one of your co-workers was able to not only do nothing at all, but also do nothing at all while in their underwear.



  • Ah that makes more sense then.


  • Discourse touched me in a no-no place

    @BC_Programmer said:

    If CraftBukkit is infringing on the Bukkit API's GPL

    This is an effectively meaningless statement, though. Dinnerbone invented both Bukkit and CraftBukkit. The latter is the reference implementation of the former.

    Best guess for the impetus of all of this is that Wolverness is upset with Mojang's enforcement of "no play-to-win." (And remember, their practical issue with PTW is that they were getting blamed for the action of server hosts.)


  • Discourse touched me in a no-no place

    @BC_Programmer said:

    was fired when it was discovered that he had done jack shit

    I assume you mean EvilSeph here. I have no idea if he was fired or quit, and CBA to look, plus I'm not sure if it's relevant. I don't think Wolverness was ever a Mojang employee, and EvilSeph's name's not on the DMCA takedown.

    I have to say the level of angst and vitriol on reddit and the Bukkit forums is hilarious.


  • Discourse touched me in a no-no place

    My understanding is this can be fixed by removing Wolverness' code from CraftBukkit. Since he was a prolific contributor that's going to be a lot of work, because it would all have to be reimplemented.

    For extra fun, this is all a certain amount of masturbation. CraftBukkit is on github; all that's happened, practically, is that Wolverness has temporarily blocked download of a precompiled executable. You can still get the source and build it yourself if you want and are capable.



  • The amount of ass-hattery due to the fsf and the gpl is mindboggerling as the license itself.



  • Yes I was referring to EvilSeph. Now, of course, EvilSeph was not mentioned on the Takedown. But he has already made his own attempts to shut down bukkit "sorry guys Bukkit is done now". Arguably, he might not have... encouraged... other contributors to do this, but he might have done so. Either way, I would say it's a symptom of the same mindset.

    Also I think he's (EvilSeph) is a bit of a douchebag so I had to get that in somehow.



  • Arguably it could also be 'fixed' by simply contesting the takedown, after which the weight of making a legal case (hiring lawyers and all that fun stuff) would be up to him. Optionally, he could be encouraged to perhaps fornicate with headwear as well.



  • @BC_Programmer said:

    One "argument" I saw made is that Bukkit has a class called itemstack and CraftBukkit has a "CraftItemStack" which implements it, and because it's a derived class, it's a derived work. Because apparently OO principles are legally binding for Copyright purposes.

    That's hilarious.

    @BC_Programmer said:

    That said, Bukkit does have library methods that CraftBukkit uses. Does utilizing a GPL library mean that you must make the program using it GPL?

    Library usage is what the LGPL is for. If they haven't licensed the library as LGPL rather than GPL, and it's being "linked" by the executable (in the java case, that means "included within"), then yes, it should be GPL.



  • I thought that the title said "Microsoft" at first.

    I am disappointed.



  • Well, Minecraft does let you make Stained-glass windows.


  • Discourse touched me in a no-no place

    The repo has both files containing the text of both LGPL and GPL--but the commit which added them says "We're LGPL."

    It's interesting. I wouldn't think that Wolverness has a legal let to stand on with revoking distribution rights, because the WHOLE POINT of *GPL is allowing redist.

    At any rate, BC says the same thing other people did on reddit, which is Mojang can certainly file a counter notice, and the files go back up, and that's the end of it unless Wolverness sues.



  • @lucas said:

    The amount of ass-hattery [s]due to the fsf and the gpl[/s]caused by ass-hats who use it as their rallying cry is mindboggerling (sic) as the license itself.

    FTFY



  • Thx.

    Seriously though the FSF is just a cult full of asshats as far as I am concerned. It has got to the point where it is fucking ridiculous e.g. Reddit used jquery and did have the license in the file, nobody cares except for the GPL software freedom brigade. If I am releasing anything free it is going to be under WFTPL license.



  • @BC_Programmer said:

    Is every Java program a derivative work of the Java class library by extending Object?

    Well... no, because Java's source code is GPLv2 + Classpath Exception, The Classpath Exception was created to specifically bypass the linking part of the GPL without making the entire project LGPL.


  • Discourse touched me in a no-no place

    @BC_Programmer said:

    interestingly, the GPL FAQ tries to assert that "creating a derived class is creating a derivative work" but of course it cannot change the definition of what a derivative work is so that just dumb

    It's not illegal to stretch the interpretation of the law far beyond what was intended — think how much of the legal profession would be out of a job if it was — and the FSF will merrily misrepresent the law if they think that they can push their weird-ass communistic politics by doing so. The API question was indeed decided, firmly, and the result fucks over their interpretation big-time. But they're not required to tell you that; they can keep on lying as much as they want on this.

    Law isn't a program. Actual intention counts for a lot. (Except where some dolt forces a “strict liability” interpretation, which is why that should virtually always be resisted as a matter of principle. But there's none of that in this area.)


  • :belt_onion:

    @tufty said:

    Given the way the GPL works, this would mean the developers of Bukkit were violating the GPL themselves any time they distributed a binary of Bukkit, as well as violating Mojang's copyright and (probably) license terms every time they distributed either binary or source derived from Mojang's code.

    The way I read it, that's exactly what the dev is saying. That Bukkit is violating GPL and has to be killed, despite Mojang now sort-of owning it and its original work.
    Which to me sounds true unless/until Mojang "authorizes" Bukkit under a different license and then everyone will be happy again. AFAIK the only problem here is GPL itself, not the app.



  • @dkf said:

    @BC_Programmer said:
    interestingly, the GPL FAQ tries to assert that "creating a derived class is creating a derivative work" but of course it cannot change the definition of what a derivative work is so that just dumb

    It's not illegal to stretch the interpretation of the law far beyond what was intended — think how much of the legal profession would be out of a job if it was — and the FSF will merrily misrepresent the law if they think that they can push their weird-ass communistic politics by doing so. The API question was indeed decided, firmly, and the result fucks over their interpretation big-time. But they're not required to tell you that; they can keep on lying as much as they want on this.

    Law isn't a program. Actual intention counts for a lot. (Except where some dolt forces a “strict liability” interpretation, which is why that should virtually always be resisted as a matter of principle. But there's none of that in this area.)

    First...my recollection tells me that the definition of a 'derived work' is a bit hazy to begin with (there are some things that should be but aren't, for that matter, such as a video and its audio taken together).

    Second: I think the FAQ is out of date, both with respect to the rulings in Oracle v. Google as it winds its way to the courts, and regarding technology. It predates the wide usage of bytecoded languages for modular programming, the way we see with Java, .NET etal now, to the best of my knowledge. So yes, the answer has changed since the FAQ was written, and they need to update their answer to reflect that, most likely.


  • Discourse touched me in a no-no place

    @tarunik said:

    First...my recollection tells me that the definition of a 'derived work' is a bit hazy to begin with (there are some things that should be but aren't, for that matter, such as a video and its audio taken together).

    It is hazy (it applies to a lot of things other than software too) but a decompiled version of someone else's code would absolutely count as derived work. Fuck, it's even a mechanically derived work, with about as much originality as playing Lady Gaga using an iPod.

    OK, they did stuff subsequently, but that just takes them into the area already explored by remixes, and they're widely known to be rather copyright-dodgy.

    @tarunik said:

    they need to update their answer to reflect that

    Morally, yes. Legally, no. Propaganda-ally, absolutely not! If it frightens a few more fools developers into adopting something that isn't necessarily in their best interests, so much the better from the FSF's perspective. They're a bunch of zealots, and so have really very different goals to ordinary people.

    Oh well, at least they don't behead people who disagree with them.



  • @dkf said:

    but a decompiled version of someone else's code would absolutely count as derived work. Fuck, it's even a mechanically derived work, with about as much originality as playing Lady Gaga using an iPod.

    Definitely. My point was that when the FAQ was written, you couldn't go off and derive from a class in a pile of bytecode generated from sources you have never seen before. Now, that's a routine operation.

    @dkf said:

    They're a bunch of zealots, and so have really very different goals to ordinary people.

    Maybe...? (I haven't run into the FSF proper being a bunch of zealots, just the idiots who use the GPL as a banner for their religous zeal.)



  • @tarunik said:

    My point was that when the FAQ was written, you couldn't go off and derive from a class in a pile of bytecode generated from sources you have never seen before.

    Ahem bullshit ahem. I was happily decompiling Lisp bytecode in the early '80s (and so was Stallman). Decompiling compiled C/C++ to source has been do-able for long time as well, and was easier in the earlier days, when compilers were less "optimising" and more "optimistic"1


  • ♿ (Parody)

    @tufty said:

    Ahem bullshit ahem. I was happily decompiling Lisp bytecode in the early '80s (and so was Stallman). Decompiling compiled C/C++ to source has been do-able for long time as well, and was easier in the earlier days, when compilers were less "optimising" and more "optimistic"<sub>1

    But that's not really what he said. You don't need to decompile anything to derive from a compiled java class file.



  • @boomzilla said:

    But that's not really what he said. You don't need to decompile anything to derive from a compiled java class file.

    ...unless said class is marked as final.



  • @boomzilla said:

    @tufty said:
    Ahem bullshit ahem. I was happily decompiling Lisp bytecode in the early '80s (and so was Stallman). Decompiling compiled C/C++ to source has been do-able for long time as well, and was easier in the earlier days, when compilers were less "optimising" and more "optimistic"<sub>1

    But that's not really what he said. You don't need to decompile anything to derive from a compiled java class file.

    Exactly, @boomzilla. I'm well and familiar with what decompilers can (and can't) do, by the way. So, go back to debate class @tufty, you need it as you managed to completely miss my argument in your quest to oppose it. (Besides, for pedant points, decompiled source code still counts as 'source code' for the purposes of my original argument.)



  • I think the best way to illustrate what (as I understand it) is being described is with a... err, illustration.

    Let's Say Paula Bean creates a SuperBean Library in Java. She, because she is brillant, licenses it under the GPL.

    Now Joe creates a Project and uses the SuperBean library. he references the .jar and creates a derived SuperBean class:

    public class JoesBean extends com.Paula.BrillantSystems.SuperBean
    

    Has Joe just created a "derived work"? He has not decompiled anything to extend SuperBean, and his code contains only his own code, and does not include any code from the SuperBean library. In fact, the act of the superclass being used only occurs at run-time- even if the Superbean.jar file is missing, the program will still run, it will simply encounter a ClassNotFoundException when or if JoesBean is ever constructed. In fact, the project could be changed to no longer reference SuperBean.jar at all, and JoesBean is left in some forgotten java namespace. Would it still be a derived work of Superbean.jar?

    This get's even more strange when we consider that, in C/C++, including header files doesn't actually constitute a derived work, according to Stallman himself, even. This is how it is possible for companies to create proprietary software while using say glibc. The rules regarding "making a derived class is creating a Derived work" ought only to apply if you happen to need some of the original work's source code to that superclass in order to create the derived class in the first place. But with Java/C#/etc. you create Derived classes without having to decompile anything; all the metadata is added by the compiler to the .jar /.exe/dll. (This raises another question: can you change the license to use that metadata?). You create a new class file which contains none of the original work's code at all, and in fact can even stand apart from it. So why is it a derived work? In that context it is analogous to saying that any bash script that uses sed is a "derived work" from sed and needs to adhere to sed's license.



  • The real solution is for the entire software world to completely ignore anything involving Stallman, FSF, and any software starting with G or GNU. Kill the cancer by not feeding it.



  • Aaargh, brianfart. I read "derive" and my mind said "decompile".

    Mind you, smalltalk is a (usually) bytecode based language that allows derivation and extension of binary classes, and that's been around since the '70s.


Log in to reply