The PS1 Game Spongebob Squarepants: Supersponge Violates the GPL

7 years ago (twitter.com)

I'm surprised that no comment has extrapolated that since this was a vsprintf implementation copy, the final binary would be non compliant only if the machine code generated for it was distributed, but if it was only used for debugging internal builds (as I would assume), then the original developers didn't run afoul of the license. Am I incorrect in my understanding?

  • The author notes that they were able to find constants that the code uses in the binary, so odds are it was at least partially distributed.

    • The constants mentioned are the following:

      "01234567890abcdefghijklmnopqrstuvwxyz" and "01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"

      It's very possible that separate implementations of this function would use those same constants. It's not as if they're some completely arbitrary strings.

      3 replies →

A page with other prototypes and builds from this company may be seen here:

https://hiddenpalace.org/Climax_lot

From the looks of it, Climax Group primarily developed licensed games and shovelware. Say what you will about the quality, but from the number of build dates for each game, they clearly had their shit together with respect to version control.

  • >A page with other prototypes and builds from this company may be seen here:

    That is an insane amount of data! Very impressive.

I'm less interested in the GPL violation aspect, and mot excited to get an insight into what it was like to work on that team, 20 years ago. Minutiae like how to burn a build to CD https://twitter.com/0xGradius/status/1137123492329951232?s=1... feels like a window into the past.

  • Maybe it's a wake-up call for the contemporary prissy developer blogging about coding font ligatures, to learn that whatever masterpiece games they enjoyed in their youth were made in crappy OS using crappy tools and with dodgy coding styles.

    • Absolutely - I think we could all benefit from being more pragmatic and not sweating the small stuff.

  • Burning a build CD wasn’t anything special, the PS1 dev kits read normal CDs (didn’t have the copy protection). Burning of any CD was flaky back in the day (lack of decent buffering)

    • I remember having an old 2x Traxdata drive with almost no buffer - so I certainly lived through the hassle of early drives. It's just exciting to read about other peoples' work flows.

I wonder if this will impact game archival efforts. Companies may be less likely to permit release of old source (or more likely to take action against those who do release source) knowing legal issues like this may be inside. Is there a statute of limitations here? Could the owner the violated code sue? What happens it they succeed, monetary compensation?

Does this mean that any GPL project could reuse source code from this game, under the logic that it all inherently must be GPL licensed?

I'm pretty sure the answer is "no", but I'd like to know why, it makes logical sense...

  • Two wrongs don't make a right. The way the GPL works is: you are given permission to redistribute someone's copyrighted work provided you comply with particular conditions (such as providing similar permission to your end users). If you don't stay within those conditions, then you're violating that person's copyright (you're redistributing their work without permission) and they can sue you. But that doesn't mean that I can distribute your work without permission, any more than you assaulting my neighbour means that I'm allowed to assault you.

    Now the makers of this game and the copyright holder for the GPL work might end up reaching a settlement where the game engine is released under the GPL. (I know of one case of this happening: a Japanese visual novel producer, Leaf, released their engine as used in several games e.g. Kusari . As a result of this there's an open-source engine that you can use to play those games on linux). Equally they might end up reaching a different settlement that involves e.g. withdrawing the game from distribution (this happened with the Wii ports of some classic SCUMM games - they used ScummVM in violation of its license, but could not release their code under the GPL without violating the conditions of the Nintendo API they were using).

    • As a note, the FSF says on their website that their primary goal in any GPL litigation is to get the company to release the source under the GPL.

      3 replies →

  • > Does this mean that any GPL project could reuse source code from this game, under the logic that it all inherently must be GPL licensed?

    No, this only means that the game developers are violating the copyright of the copied code. The GPL is not "viral"; including code under the GPL in a project without following the GPL only means that the GPL doesn't apply to it anymore ("[...] and will automatically terminate your rights under this License"). Since there's no longer any license allowing it, the default restrictions of copyright apply, and the result cannot be distributed without the permission of whoever holds the copyright to that piece of code under the GPL.

  • No, release under the GPL could be (part of) a way to settle a lawsuit for infringement, but it's not automatic.

    • In fact, under GPLv2 you can no longer distribute the code at all (even unrelated to the original infringement) until you are forgiven by the original copyright holder. This clause was removed in GPLv3.

  • IANAL.

    I believe the answer would be "no". Essentially, the owners/holders of the copyright could, in theory, reach an agreement that would permit the publisher to keep publishing the game under a commercial license. That is, just because the code was licensed to you under the GPL (or available to you under that license), that doesn't mean that it had to be that way for everybody if the copyright holders struck some other deal.

    Of course, here, the copyright holder is … everyone who has made changes to the kernel? Significant changes¹ to the kernel? (And see a court for the definition of "significant"?) IDK. For proprietary stuff owned by a single entity it is more straight-forward, but the very nature of FOSS makes this more interesting.

    I wonder if it would only require those that worker on that file? (Can it be separated from the rest of the project? Again, IDK, ask a real lawyer!) At least that might be a shorter list of authors, and presumably you only need to involve those up to the point where the code was copied.

    ¹I say significant because I believe that "significant changes" is what would cause the work to become a "derivative" work, and that person to be the author of that derivative work. But in Oracle v Google, rangeCheck was sufficient for a copyright violation despite being a "trivial" function to most of us, so the bar seems pretty low?

    • The copyright owners here are only the people who wrote the specific function in question. Additionally, I believe you'd only need one of those people to bring a suit or other legal action.

      Note that some FOSS gets around the problem of multiple owners by requiring an attribution (e.g. GNU).

  • The terms of the GPL apply if you have access to the game aka you bought it. You should have access to the code. Catch being you ask for it. Nobody installs Ubuntu and is forced to have all the source.... But it is available as per the GPL.

    • I don't think that's quite true, based on my reading of it:

      > Accompany it with a written offer, valid for at least three years, _to give any third party_, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange

      The company accepts the licence by using the code (or don't accept it, in which case it's copyright infringement), so they must offer it to any one.

  • I'm pretty sure the answer is "yes" if the violation is true and the game has been distributed. Tit for tat.

    • IANAL but I don’t think this is true.

      A person or company that violated the GPL would void the permission granted to them by violating the license and would be liable for having done so. But it would take a court ruling to decide what that means for the parties involved.

      For example, the court might give the violating party the choice to either release source, OR to keep the source closed but to financially compensate the copyright holder(s) of the code that they violated the license for. For example. Another possible outcome could be that they could say that the violating party is given the choice between releasing the source OR recall the product and financially compensate the copyright holder(s) of the code that they violated the license for.

      Like I said though, IANAL.

      4 replies →

Part of me wants to express the irritation that people being neurotic about the GPL could cost us access to old games like this. I worry that someone overzealous would take down source for an 18 year old PS1 game over it.

  • Why would this cost access? It's leaked source code of something that we thought wasn't permitted to be released, which we've now learnt was supposed to be accessible.

  • The archivist in me loses this fight, I feel general adhering to software freedoms is more important and the greater good compared to a single game.

    • A "single game" is unlikely to be affected. Many games are likely violating the GPL, and it's likely that if there are takedowns because of it, there will be a chilling effect on future source code release.

      Are you really protecting software freedoms if it ends up, in fact, discouraging the process of freeing more software?

      1 reply →

    • You talk about software freedom, but I think there's no greatest freedom than being able to use whatever software I want to create something humanity will enjoy.

      1 reply →

  • Your qualification of "neurotic" is entirely non-warranted IMO. As far as I can see so far all that's happened is that the source code of that game got leaked, somebody stumbled upon Linux code while perusing it and pointed it out.

    Besides I think you're being ridiculously alarmist because for one thing archives of the PS1 library (including this game) are trivial to find online, so there's basically no chance for this game to disappear forever and on the other hand if this GPL infringement makes the owner release the source code under the GPL it will make the game more available than ever since it could potentially be ported to any computer you want (although you'll still have to buy the game for the assets).

    Now you may argue that having potentially illegal downloads of PSX archives is not the same thing as having some legit source for getting the game, but then I think you're in a catch 22:

    - If you think that the owner's IP should still be respected and enforced even though it's an almost 20 yo game, why shouldn't the GPL?

    - If you think the GPL shouldn't be enforced because it's an almost 20 yo game, why do you care about the owner's IP?

    I'm more of a BSD kind of guy but I really think it's unfair to blame the GPL or its defenders for what is a fuck-up by the original devs. Introducing a huge chunk of GPL code in a proprietary codebase like this is frankly a rookie mistake.

  • People aren't going to take down the source for a GPL violation. If anything, this will cause the source to be released under the GPL, so it's not illegal to use/host the source code.

    Surely the idea of checking other games for GPL violations has the potential to open more codebases, lest the offenders risk financial penalties.

I wonder if there’s an ML approach that could be used to fingerprint binaries compiled from GPL code. Then I wonder if that could be used to justify discovery / win a suit.

I have no idea how this would work, but it strikes me as plausible?

  • That strikes me as sort of like dmca spam you see from music companies...

    • > fingerprint binaries compiled from GPL code

      I think it's actually a good idea for discovering GPL violations, but false-positives are a real issue: it's trivial to reuse public-domain or BSD code and relicense them in a GPL program, and it's not uncommon obtain a separate license/exemption from the copyright holder. Also, some things are not even copyrightable (e.g. a lookup table of generic data). Discovering identical code snippets don't always mean a GPL violation.

      But as long as the threshold is not too low and a real human (instead of a robot) is reviewing them case-by-case, I think it's okay.

  • You could use it for discovery. To win a suit you still need to get someone with standing to sue in the first place. That's often harder.

I hate all this stuff, I wish Google just blocked all GPL code for me so I never had to see any of it. I have committed to many open source projects and have open soured my own projects. Of course I appreciate anyone is free to use what ever license they like but I do find is frustrating that a game (which is a complex piece of software taking lots of development time) gets picked apart because of a string formatting function, which should really have been available in the system libs, but as it wasn't a quick replacement was grabbed, with a small amount of extra time I suspect a replacement could have been found which wasn't GPL. But due to the lack of care, understanding, appreciation, someone could get their meathooks into the developer/publisher and cause harm. The software didn't sell because of this stupid function, the stupid function almost certainly existed, GPL free in many places, the GPL version had no value at all over any other version, yet where the developer cut and pasted from can have such catastrophic consequences. If it makes no difference to the end binary I feel like a dev should just be able to find or write an alternative and say you are right, that slipped through, sorry, we have now replaced it in our code tree with this version, it makes 0 difference to the end product, so building and shipping a new version would make no difference, simply making this change in our source tree effectively resolves the issue.

  • In this particular case it seems fairly unlikely that there will be any significant consequences. At worst, the game source code might now be forced into a GPL license. It's mostly worthless at this point anyway.

    It is interesting to wonder how this case may have been handled if it was overall more relevant, though. I think a court might assess the actual value of that one function and say that it was something like fair use. Might be a bigger problem if there's a lot more, though.

what's the consequence if someone's product violates GPL ?

  • If the copyright-holder of the GPL'd work doesn't do anything, the consequences are... nothing.

    The owners of lots of GPL'd works such as the GNU project tend to take an approach of quiet negotiation. They will contact the violators and attempt to inform them about their responsibilities when distributing GPL'd software. They want software to be free for examination and modification and many violations are unintentional.

    GPL violations are extremely common, especially with Linux. For example every ip surveillance camera runs Linux/Busybox/etc and I have never seen one that provides source.

    • I believe your last statement is incorrect. Applications written entirely by your developers that merely happen to run on a Linux-based operating system, distributed in conjunction with those works (Linux/Busybox/etc), are separate works within the meaning of copyright law. GPL requires you to provide complete and corresponding source for the GPL’d components and your modifications thereto, but not for independent proprietary applications.

      For example, programs compiled by gcc (GPL) are not considered derived works and therefore don't need to also hold the GPL license.

      In the case of the topic, that appears to be a violation as the game can be considered a derived work. Most violations are handled on a case by case basis if there is legal action due to the nature of "derived work".

      11 replies →

    • I'm bad at open source licenses, but wouldn't they need to make modifications to the Linux they're running on to be required to distribute their source?

      2 replies →

  • Cynically, I would guess just about nothing. If it could be proved that the GPL'd source was compiled in the real game, and was knowingly taken from a GPL'd source, I suppose whoever holds the rights could sue. I think it'd be difficult to prove sufficiently.

  • It depends on if and who pursues the violation. For example, apple is violating the GPL with bash by distributing a binary but not distributing all the source code used to compile it.

    I believe there are also violations by vmware and lots of others (I believe ubiquiti?)

    That said, there are legitimate ways to distribute GPL code, such as a dual license.

    You could write code and license it to company A under one license, and release it under GPL to company B.

    company A could have any rights or responsibilities you grant, while company B would have to comply with the distribution restrictions of the GPL.

    It's also worth noting that the GPL does not restrict how anyone USES the software, it only restricts how the software is redistributed.

There are plenty of BSD licensed implementations of this surely. There was no need to use GPLed code in this context.

  • I agree but most PS1 games were compiled using GCC. The developers probably got used to using GPLed tools and forgot something like this would change the license of their software (even if it wasn't actively used).

Would this mean that only their changes to the GPL would be forced to be made public or the whole piece of software using it?

  • The whole thing.

    • This is one reason I hate npm. Who really checks that sprawling byzantine dependency tree to make sure that there isn't some micropackage that has a GPL license that could get included and taint the whole thing?

      I just have the horrors when I look at the package.json file after the front-end folks have been allowed to run free...

      9 replies →

    • They would have to release the whole thing to come into compliance with the license, but they are not obligated to do so.

Funny, I had a feeling foone had posted this even before I clicked on it. Seemed like their sorta thing. :)

I'm guessing nobody ever asked for the source code, so maybe it wasn't that violating, and now we know it's GPL. ;- )

When I was in games the moment I saw the letters GPL was the moment I closed the tab. GPL code is too dangerous to even read. Stay far far away and hope no one screws up and poisons your entire codebase.

  • But that's the point, isn't it? Are you developing free software? By all means use this GPL library! You are developing proprietary software? Well, too bad, you don't get to use this code. Either develop it by yourself or look somewhere else. Not that what I'm saying is contrary to what you said, I'm just pointing out that it's by design.

    • What the parent poster mentioned is not using a GPL library, but merely looking at its code. The thinking is that once someone reads some piece of code (no matter its license), they're "tainted" forever, and any code they ever write in the future could be treated as "subconscious copying" of that code they had read. If one is afraid of including any code under the GPL (or any other specific license), and one subscribes to that "subconscious copying" theory, it makes sense that one would avoid even getting near code under that license like the plague.

What are the violations? The twitter post just states that GPL was violated, but no evidence offered.

Edit: I'm looking at it on mobile, and the only link seems to be a self referential link, not to anything of substance.

  • If you read the full thread they took the vsprintf() implementation from the Linux kernel circa year 2000.

    • The proof for that seems to be the existance of 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz

      I guess this comment is now a) vsprintf and b) a gpl violation, too.

      2 replies →

  • Yes, Twitter "threads" are annoying. It's just blog posts chopped into Twitter format.

Love clicking on twitter links and being completely confused. They've just stopped showing threads and replies on the non-JS page anymore. This is what we see, and this does appear to be a recent change: https://imgur.com/94u95no there's nothing below this, this is the full page.

  • But imgur works without JS?

    • I don't understand what imgur has to do with Twitter deciding to stop serving content to browsers with JS disabled?

      I was just trying to explain why some of us were confused -- until I tweaked NoScript, the first tweet is shown by itself and is sort of perplexing without the rest of the thread as context.

The more we harp on license, the less we can actually save. The problem isn't that it's GPL. The p problem is that GPL is as much a part of the copywrong system as any other license. Three years is inordinately long to support an offline game like that, especially a licensed one. And frankly, I think in the license wars, I have to back Nickelodeon over GNU-GPL folks.

  • You can avoid the requirement to offer it for three years by shipping the source along with the binary. It's one or the other, not both.