
The PS1 Game Spongebob Squarepants: Supersponge Violates the GPL - donohoe
https://mobile.twitter.com/foone/status/1137120829005750272
======
estebank
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?

~~~
haecceity
Isn't it common to leave debug code in production software?

~~~
gambiting
I work on AAA games and we definitely don't leave any debug code in production
copies of the games. It's all #ifdef'd out in Retail builds.

~~~
dijit
I’m always surprised when I see you here but I’m not sure why.

Anyway. I can corroborate this. Debug code is /really/ harming performance in
AAA games. Also, you want to remove your “cheats” that QC use to skip chunks
of the game.

~~~
zaarn
Older games are known for still containing various cheats to skip chunks of
the game or make them easier. I'd guess a PS1 game might still have debug left
in along with cheats simply either due to time pressure or someone forgot.

~~~
mewse
In my experience, we would leave the cheats in retail builds of those old
games mostly because leaving them in was less risky than removing them. They
had been there during all of development and testing, and we were reasonably
certain of the build’s stability, but.. pull them out and your compiled code
layout changes, data layout potentially changes, and who knows whether it’ll
expose a new misbehaviour we’ve never seen before or know to regression test.

It’s just much much much safer to leave the debugging assistants (level skip,
etc) in place. Especially back in the days when we couldn’t issue patches
after release!

(Also, depending on era, you could feed a cheat code or two to
magazines/websites/etc to get another article written about your game.. doubt
that trick works any more, though!)

~~~
zeta0134
As a kid from the 90s, I can confirm that I purchased more than a couple PS1
games that I learned about by reading their cheats lists! I wouldn't have
found out about the games any other way, since we didn't get reliable internet
access until much later. Those game magazines were a big influence on my
younger years.

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

[https://hiddenpalace.org/Climax_lot](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.

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

That is an insane amount of data! Very impressive.

------
davb
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...](https://twitter.com/0xGradius/status/1137123492329951232?s=19)
feels like a window into the past.

~~~
frou_dh
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.

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

------
bendbro
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?

~~~
thristian
"will"? This is why game archival efforts _are_ difficult. Companies already
know that this kind of thing goes on, and that's why so few games (or
commercial software of any kind) get their sources released.

~~~
lone_haxx0r
Thanks, RMS.

------
Wowfunhappy
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...

~~~
lmm
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).

~~~
zucker42
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.

~~~
lmm
True, and in practice most copyright holders who release their work under the
GPL feel similarly. However, in general a copyright holder is under no
obligation to accept such a settlement, and in principle if you distribute
GPLed work without conforming to the GPL terms then you are liable for
statutory damages (in the US, $50k for accidental infringement and $150k for
wilful infringement, per act of infringement) just like for any other act of
copyright infringement.

~~~
eru
Is that any copy sold, or eg any release of your software?

~~~
lmm
That's up to the courts to interpret. I don't know what the precedents are.

------
ocdtrekkie
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.

~~~
dcbadacd
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.

~~~
ocdtrekkie
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?

~~~
dcbadacd
Well, it's not freeing software unless they release the game GPL, if they
don't then they're just illegally using GPL source code making the source far
from anything free.

------
Sniffnoy
Non-mobile link:
[https://twitter.com/foone/status/1137120829005750272](https://twitter.com/foone/status/1137120829005750272)

------
aidenn0
More readable link:

[https://threadreaderapp.com/thread/1137120829005750272.html](https://threadreaderapp.com/thread/1137120829005750272.html)

------
peatmoss
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?

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

~~~
segfaultbuserr
> _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.

------
superdisk
Super cool that the entire soundtrack is a bunch of FastTracker 2 XM files.

------
scraft
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.

~~~
jfoster
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.

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

~~~
dmm
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.

~~~
chucksmash
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?

~~~
dmm
Because they are distributing GPL'd software they also have to at least offer
the exact source they used. If they are using an unmodified kernel, giving
users a link to a git tag would satisfy this.

In practice, every embedded use of Linux I've seen has included at least some
modifications.

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

~~~
tmm84
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).

------
vortico
How many KB or lines is the vsprintf implementation they used? Just curious.

~~~
arve0
227 lines, 4.62 kB.
[https://github.com/zavg/linux-0.01/blob/5839d67d5825265fc665...](https://github.com/zavg/linux-0.01/blob/5839d67d5825265fc665c9dc0ec2e767ff47a6dd/kernel/vsprintf.c)

------
mhh__
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?

~~~
Wowfunhappy
The whole thing.

~~~
thrower123
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...

~~~
TheAceOfHearts
There's tools [0] to help check the licenses of all your dependencies. I think
larger companies build up a whitelist of libraries as they're reviewed and
approved.

[0] [https://github.com/davglass/license-
checker](https://github.com/davglass/license-checker)

~~~
nfriedly
Yep. When I was at IBM, part of releasing something was a review every of
dependency and it's license. The stuff I worked on wasn't allowed to include
any GPL code. (Or WTFPL, for that matter, but I think that had more to do with
curse words than actual license issues.)

~~~
Wowfunhappy
Couldn't you just "relicense" WTFPL code as MIT code (or proprietary code, for
that matter) and call it a day?

~~~
nfriedly
Haha, probably, but it wasn't a big deal to replace it with something else.

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

------
RickSanchez2600
Does this mean they can open source the Spongebob game to port it to different
platforms?

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

~~~
saagarjha
Well, the GPL requires that they have the license text available somewhere.

------
spraak
How does using GPL impact a SaaS product?

~~~
yoz-y
Depends on which GPL, basic GPL can be sidestepped. The Aferro GPL (AGPL) was
made specifically to handle the SaaS case.

~~~
spraak
Can you explain further what you mean by sidestepped?

------
forrestthewoods
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.

~~~
klez
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.

~~~
cesarb
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.

------
Rebelgecko
Isn't it fine since they've released the source?

~~~
Narishma
They didn't release the source.

~~~
icebraining
Plus that wouldn't be enough, it'd have to be released under a license with
the same rights (lots of source out there is just for viewing, and can't be
reused).

------
hermitdev
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.

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

~~~
NikkiA
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.

~~~
ignoranceprior
The leaked game source code:

[https://github.com/philosophofee/SBSPSS/blob/5c41694e561de9c...](https://github.com/philosophofee/SBSPSS/blob/5c41694e561de9ce8d763d31ad22bbe595be09ca/source/system/vsprintf.cpp)

The Linux kernel code:

[https://github.com/zavg/linux-0.01/blob/5839d67d5825265fc665...](https://github.com/zavg/linux-0.01/blob/5839d67d5825265fc665c9dc0ec2e767ff47a6dd/kernel/vsprintf.c)

------
colemickens
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](https://imgur.com/94u95no) there's nothing below
this, this is the full page.

~~~
spraak
But imgur works without JS?

~~~
colemickens
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.

------
Endy
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.

~~~
icebraining
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.

