Dr.Mario 64's gzip implementation is taken almost verbatim from gzip source code
twitter.com
twitter.com
inflate.c -- Not copyrighted 1992 by Mark Adler
version c10p1, 10 January 1993
You can do whatever you like with this source file, though I would
prefer that if you modify it and redistribute it that you include
comments to that effect with your name and the date. Thank you.
[The history has been moved to the file ChangeLog.]
EDIT: Changed formattingIt's sort of how bringing BSD code into a GPL project is a bit of a one way street.
Man, if copyright wasn’t 85 years long, Nintendo might already be off the hook.
The tweeter's claim does not matter. If you download the version of gzip they're talking about and look at inflate.c, it clearly spells out that it's authored by Mark Adler free for reuse.
The gzip project can not relicense the file, only any addenda they performed to the original might be GPL'd.
Nintendo’s defense, of course, would be to say they received the file from a non-gzip source.
Do you have any sources on that history? All I can find with a quick search is blog posts asking whether GPL usage is declining.
File in question literally starts with a comment stating
inflate.c -- Not copyrighted 1992 by Mark Adler
version c10p1, 10 January 1993Nintendo might have a "I didn't know any better because the header was unclear" argument that might limit their practical damages, but if we can only find this file with associated changes in a GPLed project it certainly looks like GPL infringement.
Grab the original rather than taking code out of GPLed projects if you don't want GPLed code.
Also, if this is GPL code, does that mean Dr. Mario would need to be licensed under the GPL? And would that mean any other distributed software by Nintendo which uses any code from Dr. Mario 64 would need to be licensed under the GPL? If so, isn't that... kind of a big deal?
That does not make it gzip code, the zlib code is not relicensed and it keeps its original license.
Furthermore, both gzip and DrMario64 having merged in zlib's code does not give gzip any claim upon DrMario64.
If you go and download gzip 1.2.4a (the version mentioned) and open it, the first two lines state:
/* inflate.c -- Not copyrighted 1992 by Mark Adler
version c10p1, 10 January 1993 */
Note that the file you link to is copyrighted (rather than not-copyrighted) 1995-1998. Now maybe saying that it's zlib's is inexact because zlib did not actually exist at the time, but that doesn't really make a difference, it's basically the code to what would eventually become zlib, by zlib's author, under a hyper-permissive license.But it's the answer.
> my question was if the posted code is from gzip or zlib. It looks like it's probably zlib.
It's zlib code living inside gzip, so it's not an either / or question.
edit: I see you've answered this in another thread. Thanks.
In theory the publishers of Dr Mario might owe the copyright holders for GNU zip (perhaps the FSF) damages, and of course it would be possible to stop them from shipping more copies of the infringing product, Dr Mario (I doubt this is a real issue since it's an old game).
1. there's no evidence so far that Nintendo didn't just independently use the same release
2. that gzip uses it doesn't relicense the file
The answers here are in line with my (NAL) understanding of the issue:
https://softwareengineering.stackexchange.com/questions/3318...
If the Nintendo-authored derivatives of Dr. Mario are free of external GPL code; more generally, if they are the sole copyright holders of those derivatives -- they may release them (or not) under any license they like.
For instance, you're welcome to release a work under GPL, and maintain a proprietary patchset that you release only in binary form. But, at the moment that you incorporate code/content written by external contributors under the GPL license, you cannot incorporate that into your proprietary version.
While Nintendo may not be compelled to release derivatives, it is my (NAL) understanding that the gzip authors would have a very strong case to a very expensive discovery process which would provide them very broad access to Nintendo's game source code. While I don't think that all of the revealed code would enter public record, some of it would inevitably be entered as evidence.
There's another fun case worthy of consideration: if you are the sole author of some body of code, and you contribute that code to a GPL-licensed project (but do not assign copyright to that project), you retain full rights to the original code. You may, at a later date, license the original form of that code to an employer for proprietary use, or to another project using an incompatible license. And this is a great use of version control software -- you must not include later improvements to that code that was made by others; and the repo provides excellent historical evidence.
(and the fact that the code isn’t actually GPL)
So in your example, while people could share the code you publish under the GPL, it does not impact what you can do with your closed source version. Only when you'd start to integrate patches to the GPL branch from third parties, you'd get into trouble.
Also, damn, Nintendo was still releasing N64 games in 2001? The release date would've been mere months before the Gamecube launch and Luigi's Mansion.
One result is that the allegation got investigated here: HN isn't just regurgitating the news, its readers are making news. Sometimes, misinformation is the result of an honest confusion. Better to discuss it out in the open, than cover it up.
The other result is that it's a teaching moment for people who have incomplete understanding of related licensing issues.
If you were both following the same spec, they should be very similar. Intentionally renaming things would just make it more confusing for the next guy and more difficult for anyone to validate your code.
EDIT: and of course that’s not to say they didn’t “steal” it, just saying that similarity in this kind of code is to be highly expected.
I spent a week banging my head against the FFI for Java to get MD5 C code wrapped, and then in a fit of pique tried to do an all-Java implementation.
Since Java is a C-family language, transcribing the code from the specification was a cakewalk, and I had something working within a day.
Because of the PNG work (and a fascination with compression) I've also spent some time in the zlib code, and the zlib code is... unusual. Among other things, it has longjmp support built in so you can do cooperative multitasking in single-threaded systems. That and some aggressive work to assert that there is sufficient free memory to run zlib properly, makes the code a bit more novel. I don't think you or I would write the code that way, so it's implausible that someone would accidentally replicate the code, in this scenario or any other.
I still think that, given the two pairs of screenshots we have, most of the code and comments looks like obvious boilerplate that could easily be identical. A couple of lines perhaps not, but it’s far from conclusive.
There are only so many ways to say something like: // step 2: figure out how many blocks of hash length will be in the derived key, rounding up
https://stackoverflow.com/questions/20762094/how-are-zlib-gz...
It's how they found an old unused Luigi model for Mario 64!
Author = other
Autocorrect Freudian slip? The rights of the author are key to the licensing issues this tweet raises.