Libogc (Wii homebrew library) discovered to contain code stolen from RTEMS
168 comments
·April 27, 2025ndiddy
eqvinox
Copyright laws (in sane countries) have (varying amounts of) exceptions for reverse engineering pieces that are required for compatibility/interoperability.
Whether this applies to the Nintendo SDK… no clue, ask your lawyer ;). (i.e.: was there an alternative option to using RE'd pieces of the Nintendo SDK?)
It makes sense from a perspective/perception of: with the Nintendo SDK, [if] there wasn't really a choice or an alternative. With the RTEMS code there was.
giovannibajo1
Of course there was. You can clean-room reverse-engineer the hardware. This is what is done daily by Libdragon maintainers for supplying an open source SDK for Nintendo 64 with zero proprietary code in it.
mech422
way back in the before times... Open Source projects went to great lengths to make sure they didn't use anything that could 'taint' the code (eg Samba )
I think the DeCSS stuff wasn't used till it had been publicly leaked and was considered 'common knowlege' or some such to prevent lawsuits
ranger_danger
How could one ever prove that a solution was clean-room? For example I would consider the oman leak to taint all development of N64 in existence. Even if someone didn't personally look at it, they most certainly got information from someone else that did.
selfhoster11
> On the other hand, the Wii's no longer commercially relevant so I doubt Nintendo will do anything about it either to him or to the DevKitPro project.
They've been going after ROM sites. Going after libogc or Marcan would fit their recent MO.
I think it is really, really unwise to put libogc on blast like this. It draws Nintendo's attention, which is never good. It would be better to reach out privately, and tell them you'll publically call them out unless they add missing credit and/or remove the offending code. Which for all I know, might have been retired already.
TuxSH
To me this looks like a bad attempt at exposing dirty laundry in bad faith, which is not too surprising coming from him.
1. Commit 3ba50ec which Marcan is complaining about was pushed in 2008 and didn't just delete attrib specifically, but all (?) VCS comments indiscriminately. The file was barely touched since
2. "The authors of libogc didn't just steal proprietary Nintendo code (...) ignorance about the copyright implications of reverse engineering Nintendo binaries" ---> AFAIK it's software RE work, and nothing done in the console hacking scenes is truly cleanroom at all, and there's no point to it either as Nintendo can knock&talk and/or send strongly worded letters when they please, legality be damned
I don't know much about the Wii scene specifically, and libogc seems to be a mess in general, but what I do know is that libctru (3ds)/libnx (Switch) don't have that drama nor made the mistakes made in libogc
delroth
> AFAIK it's software RE work, and nothing done in the console hacking scenes is truly cleanroom at all
There's a wide gradient of how much effort people put into reverse engineering consoles in a legal way vs. just copying code straight from their decompiler and slapping an open source license on it. libogc is very much on the "didn't even try" side of that gradient, it's been known since pretty much forever, and even their documentation is straight up copied from Nintendo's SDKs for part of their libraries.
What's new here is discovering that even the parts people thought were developed "fresh" and not just straight-up asm2c'd from Nintendo are actually stolen from other open source projects in a way that tries to conceal the origin of the code.
Whether you'll find that "more morally reprehensible" or not will largely depend on your personal morals, but clearly for some people that seems to be the case...
TuxSH
Yes, libogc is a dumpster fire and the dkP org would be better served by rewriting a libogc replacement (w/ a different API) from scratch, quite honestly.
What I find odd is the timing, I highly suspect he learned about it many months ago.
> There's a wide gradient of how much effort people put into reverse engineering consoles in a legal way vs. just copying code straight from their decompiler and slapping an open source license on it.
Agreed (I replied the same in another comment)
JoshTriplett
> To me this looks like a bad attempt at exposing dirty laundry in bad faith, which is not too surprising coming from him.
It seems odd that you would complain about the messenger, here, since it seems you don't actually dispute the message.
> Commit 3ba50ec which Marcan is complaining about was pushed in 2008 and didn't just delete attrib specifically, but all (?) VCS comments indiscriminately.
So it's OK that they did something wrong because they did everything wrong?
> there's no point to it either as Nintendo can knock&talk and/or send strongly worded letters when they please, legality be damned
There's very much a point to it (when you're building an emulator or tooling, rather than e.g. romhacks where it's unavoidable), because if you carefully stay entirely above board, you can burn those strongly worded letters, make DMCA counter-notices, and otherwise rely on the fact that both emulation and reverse-engineering are legal.
amiga386
Hector just doesn't have enough drama going on in his life after resigning (twice!) from the LKML, eh?
Nonetheless, I respect him for calling out FOSS license violations, even if he's done it in the most drama-pilled way.
amszmidt
> 1. Commit 3ba50ec which Marcan is complaining about was pushed in 2008 and didn't just delete attrib specifically, but all (?) VCS comments indiscriminately. The file was barely touched since
FWIW -- I think this is the commit being talked about: https://github.com/m87h/libogc/commit/3ba50ecd4134ef37a0f18f...
Looks honestly totally innocent ...
scripturial
This by itself just looks to me like someone getting rid of the old CVS comments that are messing up the headers. Maybe the problem is that younger people don’t recognize what a cvs header is?
amszmidt
Yeah entirely possible.
The threading code does seem to be "similar" enough to warrant some investigation, but from the looks no license notice was "removed". Even the threading code in question has never had one, from the initial import from CVS/Subversion.
Making a mountain out of a molehill .... before the molehill is even there?
sunaookami
>I don't know much about the Wii scene
It shows. It's an open secret to everyone in the Wii scene that libogc is based on proprietary Nintendo code.
>but what I do know is that libctru (3ds)/libnx (Switch) don't have that drama nor made the mistakes made in libogc
Because WinterMute is not behind them.
userbinator
which Marcan is complaining about
"That prick again?" Not surprised at all. He's been trying to stir shit up for a long time, and best ignored as a troll.
userbinator
Yes, for those who don't know, this prick has even tried to take on Linus, with the expected result: https://news.ycombinator.com/item?id=42978765
(Read the dead comments there - very enlightening.)
deng
How extremely weird. Why didn't they just use RTEMS openly? Was it for clout or did they want to circumvent the GPLv2? I can't imagine the Wii Homebrew scene being commercially significant that it would matter.
kmeisthax
I suspect that it was neither for clout nor circumvention, but ignorance and people doubling down on that ignorance. If you are not specifically bathed in the norms of the FOSS community, GPL is kind of an unintuitive concept. It's a copyright license that forces you to disclaim most of the benefits of copyright protection. If you're coming from a piracy or game modding scene, where copyright is a thing you wipe your ass with, even the bare minimum of GPL compliance is going to seem like a waste of time at best and someone else trying to butt in on your project at worst.
Think about how many pirates do piracy because they think copyright is unethical, versus how many of them are data hoarders, or just want shit for free, or are reselling shady IPTV boxes on eBay. The former two groups are FOSS-adjacent, but the latter two do not care. Then keep in mind how basically any free shit tends to be almost immediately abused by children with an Internet connection and no access to payment rails.
Homebrew scenes seem like a candidate for doing things "the right way", but culturally they're a lot closer to piracy scenes than anyone wants to admit, at least in front of a court.
dokyun
That's what makes it come off as stupid and kneejerk to me. This guy wrote "The Wii homebrew community was all built on top of a pile of lies and copyright infringement" like it's some kind of shocking revelation. The guy writes it in a way that makes me think it's fueled by some years-long grudge rather than an intent to unravel some kind of conspiracy. It's kinda pathetic, really.
II2II
> Homebrew scenes seem like a candidate for doing things "the right way", but culturally they're a lot closer to piracy scenes than anyone wants to admit, at least in front of a court.
I realize the homebrew scene doesn't view themselves this way, but I pretty much view them as part of the piracy scene even when they are antagonistic towards those who pirate games. The main difference is that they are "pirating" hardware rather than software. By that I mean they are overriding DRM created by the hardware vendor to use the hardware in unauthorized ways.
Now it is easy to say that you should be able to do what you want with hardware you own. In most respects, I am sympathetic with that. Yet I don't like that philosophy for one big reason: it creates a huge disincentive to those who want to create open platforms since it is going to be nearly impossible for them to get any traction when they are up against jailbroken devices from huge multinational corporations.
asiekierka
> it creates a huge disincentive to those who want to create open platforms since it is going to be nearly impossible for them to get any traction when they are up against jailbroken devices from huge multinational corporations.
I'm not so sure about that. More specifically, I wonder if there are more or fewer Steam Decks in the wild than jailbroken Nintendo Switch units.
frumplestlatz
I very much doubt that jailbreaking and the homebrew scene contribute significantly to the difficulty of building a financially viable open hardware platform.
Building a mass market hardware platform of any kind is incredibly difficult on its own merits.
JoshTriplett
Note the mention that libogc also copies code from the official Nintendo SDK, which is proprietary.
I would guess one of three cases:
- They didn't want to respect the GPL, because they thought their library would be less popular if it were GPLed. (Many homebrew projects don't want to be fully Open Source because they want to hold back some special sauce, either to slow down efforts by the console vendor to stop them, or to differentiate themselves from other homebrew projects for clout. So someone building a foundational library for homebrew on a platform might want to, legitimately or otherwise, avoid presenting themselves as GPLed.)
- They didn't want to respect the GPL because they couldn't, because they were also pulling in proprietary code they weren't supposed to be using anyway.
- They didn't care because they were already ripping off the Nintendo SDK so why not rip off an Open Source project too. For instance, they just pointedly didn't care about copyright at all, which is a very different position than just not caring about code being proprietary.
(I can respect the position of "we're ignoring the copyright on this old game, so that we can do some awesome modding/romhacking", which is very different than ignoring Open Source licenses and failing to even give credit. I don't see the former as hypocrisy; it's just "we should be able to hack on anything". Console game modders / romhackers / etc tend to have a huge amount of respect for the original game and its authors, and give due credit, even if they're technically violating copyright.)
kmeisthax
> Many homebrew projects don't want to be fully Open Source because they want to hold back some special sauce, either to slow down efforts by the console vendor to stop them, or to differentiate themselves from other homebrew projects for clout. So someone building a foundational library for homebrew on a platform might want to, legitimately or otherwise, avoid presenting themselves as GPLed.
For context, The Homebrew Channel itself was one of these projects. fail0verflow had put shittons of work into DRM for the Channel and its installer... purely so that you couldn't remove an anti-scam warning screen that they'd put in there to warn people about shady people trying to sell The Homebrew Channel.
Thing is, GPL requires you to explicitly allow that behavior[0], so HBC can't use GPL software.
[0] It is extraordinarily difficult to write a blanket copyright license that provides most of the terms we care for but prohibits this kind of behavior, without giving the authors the ability to veto anything they don't like. Standard operating procedure in the FOSS space has been to just allow all commercial activity.
asiekierka
> Thing is, GPL requires you to explicitly allow that behavior, so HBC can't use GPL software.
Couldn't, not at the time. HBC has been open-sourced some time ago, sans DRM, as the Wii has long lost commercial relevance beyond enthusiast communities. This open-source re-release is what the repository is.
somat
What was the nature of the stolen(infringed really) code? Because a naive first glance show that they were distributing source code from a project that requires that you distribute source code.... shrugs, what's the problem here?
So was it removing license comments from the files?
qwery
It's plagiarism.
They laundered source code from a free software project in a deliberate attempt to deceive.
(allegedly, etc.)
napierzaza
[dead]
mubou
Is RTEMS an active project? They should file a copyright complaint and have the libogc repo taken down if this is true. If it were me, I'd lawyer up and throw the book at them.
LibOGC accepts donations via Patreon, which means -- if the allegations are true -- they're profiting off stolen code. RTEMS could and should sue for damages.
This isn't the first time I've seen an open source project stolen by someone trying to pass it off as their own work while accepting Patreon donations. I'd like to see some justice every now and then...
arghwhat
Being active doesn't matter, the copyright holders still hold the copyright.
How much they profit off the stolen portion is also questionable, and open source licenses weren't meant to extort money but to grant us rights to the code. What they should do is add attributions and fix their licensing (libogc needs to be GPLv2), or remove the code. Willingly, yesterday.
mubou
I was thinking more "is it possible to contact them." When I googled RTEMS I found that it's originally an OS for missile systems from 1993 O_o
But I disagree. It's not extorting money to sue someone who stole your code and deliberately removed your copyright notices. The open source license only gives you the right to use the work for commercial purposes AS LONG AS you comply with the terms of the license. If you don't, then you're illegally profiting off stolen work. You can't violate the terms of a contract while still benefiting from it.
I don't know how much was stolen here, but if it's foundational enough to the project that HBC had to give up development, then they might have a case, but IANAL. Not doing anything though would mean letting them get away with their ill-gotten gains (again - if true), and I just don't think that's right. Like I said, I've seen similar things happen before and it pisses me off.
seabass-labrax
The opinion that parent was expressing is much the same as the motivation behind the Principles of Community-Oriented GPL Enforcement[1], which are endorsed by all the GPL enforcement initiatives.
The principles acknowledge that copyright allows GPL violators to be sued for financial damages, as you point out in your post. However, they also take into account that lawsuits don't necessarily further the goals of software freedom, because excessive litigation could disincentivize people from using free software out of fear of mistakenly falling into non-compliance. As a result, it's better for free software to give violators many chances to comply and to provide guidance towards this where possible, and also seek injunctions rather than financial remedies if the court with jurisdiction allows it.
The principles are well worth a read; they explain a lot about how organizations such as the Software Freedom Conservancy operate, and why the few lawsuits which they do bring are so weird.
It's also worth noting that these principles are sometimes considered extreme within the free software community from the other side, which argues that the GPL should never be litigated!
delroth
> HBC had to give up development
HBC has not been under real development for 10+ years. This is mostly a performative act.
OrvalWintermute
RTEMS is the most widely used RTOS for Science space, and it is used in medical devices also.
londons_explore
The copyright holders might have allowed this use, or at least declined to pursue any enforcement.
arghwhat
Note that copyright holders for an open source project is often a very long list of people that would all need to approve of having their contribution relicensed. It's a bit of a complicated matter.
Considering attribution was removed, I doubt it was approved, but it's not impossible that they somehow learnt and decided not to care as enforcement can be unreasonably cumbersome.
inamberclad
RTEMS is under active development and is running around the solar system right now :)
brudgers
I'd lawyer up and throw the book at them.
Litigation is expensive.
Yeah, hobbies can be expensive and sure litigation could be someone’s hobby…nothing wrong with that and maybe worth having lawyers on retainer if that’s your jam.
But in this case, there’s probably not a business case…and being a civil matter, there’s no book-‘em Danoh book to throw. Just normal squeezing blood from turnips…which again, might be someone’s hobby at least in theory.
AshamedCaptain
How much "reverse engineering" these days really is clean room and how much of it is just ripping off proprietary software?
One can easily find a bazillion of "github repos" that distribute what is evidently directly decompiled game code with minimal cleanup. Bonus points if they also claim it is OK as long as the game art is not distributed, which in addition to being wrong is disrespectful to developers as a whole.
But when the Nintendo copyright czar wakes up, they're the bad guys...
arghwhat
Note that reverse engineering does not have to be clean room, poking at hardware without ever seeing any software. In many places, poking at the proprietary software, decompiling it, tracing it, and so forth is fine despite what unenforcable EULA's might suggest. What is not okay is taking the binaries or decompiled source verbatim and re-distributing it.
Note that e.g. copyright does not apply to decompiled source code (the original authors did not write the decompiled source, unlikely assets taken verbatim - maybe that's where the arguments you mention stem from - although note that there may be regional regulatory differences). Instead, the things that might cause issues are things like the enforceable parts of the software license, any enforceable patents on the functionality, or enforceable platform license restrictions for applications built based on decompiled source.
amiga386
Copyright does apply to decompiled source code (it's a derivative work of the binary).
However, reverse engineering is allowed explicitly (...in several countries, ask a local lawyer!) for the purpose of interoperability, and sometimes for certain kinds of research. In those cases, what would otherwise be cooyright infringement is permitted.
If you're not doing it for those reasons (e.g. to attain exacting bug-for-bug levels of compatibility with a proprietary system, as is often needed in emulators), if in fact you could use any threading library, you don't then get to take an unrelated library and file the serial numbers off.
arghwhat
To be clear, a derivative work is copyright of the one creating the derivative, not the original author.
The question is whether creating the derivative work of that specific transformative nature is allowed. Unlike assets taken verbatim, this requires evaluating the exact instance. A binary decompilation is importantly not a simple translation, as that would be entirely unusable - rather, it is like creating blueprints for a finished building.
This is in part why licenses aim to manage and in part restrict you through a contract with the author, using a formally granted usage right to the entity as leverage for complying with a bunch of conditions, orthogonal to the copyright.
Your point stands though, my statement was not as accurate as it could have been.
AshamedCaptain
> Note that e.g. copyright does not apply to decompiled source code
Where does this non-sense come from exactly? Are you claiming the decompiled source code is not a derivative work? It is almost a text-book definition of one (in much the same way the executable is...).
There are some situations (and this depends on your legislation) in which _violating_ copyright is lawful (e.g. in the EU, if it is _strictly necessary_ to do so for interoperability reasons -- think cryptography for network equipment; a decade ago I used to work on this!). But blanket distribution of decompiled proprietary (or GPL'd!) binaries _is_ a copyright violation (literally textbook, as "decompilation" is quite an example of an automated translation). And frankly, I have no idea what kind of confusion of ideas makes these people believe it is OK to distribute game code publicly. Or why it would be OK for code but not for assets. (And it has nothing to do with patents).
ThatPlayer
> the original authors did not write the decompiled source
This isn't anything new or unique to programming. In the same way if I were to transcribe a movie (let's say it's a silent movie) to a script, it would still be that movie. Or if I were to translate a book into Klingon . Or even do a cover song of "Beat It" entirely with throat singing. Copyright would still apply.
thescriptkiddie
> Or even do a cover song of "Beat It" entirely with throat singing. Copyright would still apply.
bad example, in this specific case copyright would actually not apply
matheusmoreira
The method of operation is not protected by copyright. You can write a program that works just like the proprietary software.
MyOutfitIsVague
> Note that e.g. copyright does not apply to decompiled source code
This is absolutely not true. I've been seeing this claim for years, and it's complete nonsense. Otherwise I'd be able to decompile the entirety of Microsoft Windows and then just redistribute it as my own source code.
> the original authors did not write the decompiled source
The original authors also did not write the compiled binary. The copyright still applies to it.
Philpax
> One can easily find a bazillion of "github repos" that distribute what is evidently directly decompiled game code with minimal cleanup. Bonus points if they also claim it is OK as long as the game art is not distributed, which in addition to being wrong is disrespectful to developers as a whole.
I'm sorry, this is supposed to be a bad thing?
TuxSH
> How much "reverse engineering" these days really is clean room and how much of it is just ripping off proprietary software?
In Nintendo console hacking scenes? None at all, there is no point to it, going through the hassle of doing cleanroom as an individual is wasted effort.
Though, the spectrum between copy-pasting HexRays output verbatim and rewriting things yourself is fairly large.
giovannibajo1
The Nintendo 64 homebrew scene uses libdragon which is 100% clean room, 100% based on reverse engineering, is fully open source and allows to create ROMs with no proprietary libraries.
lexicality
Just because some people steal software doesn't mean that Nintedo's behaviour isn't also bad. It's not an either-or situation.
matheusmoreira
> How much "reverse engineering" these days really is clean room and how much of it is just ripping off proprietary software?
I did mine clean room. When I reverse engineered my laptop's features, I intercepted the proprietary software's communications with the hardware, compiled my findings into a whole bunch of notes and then wrote my own free software to do the same thing based on those notes.
> But when the Nintendo copyright czar wakes up, they're the bad guys...
They are always the bad guys. Copyright owners are monopolists. Copyright as a whole should be abolished. I don't care what the so called "pirates" are doing, they are always less morally wrong than eternal copyright monopolists who rob us of our public domain rights and turn perfectly good computers into locked down digital fiefdoms where we are serfs.
20 year old games you grew up with? Give me a break. These companies have all made their fortunes multiple times over. This "intellectual property" should already be in the public domain by all reasonable accounts. God forbid Nintendo be unable to sell you the exact same Mario ROM for the 10th time though. We're all going to be long dead before our culture returns to us. That means it effectively never will.
armada651
> Copyright as a whole should be abolished.
Why is abolishment always the first reaction to any system with flaws? There are multi-billion dollar companies who would love to see copyright abolished, especially right now so that they can profit from artists with reckless abandon without giving them so much as a penny.
Copyright provides an incentive for artists to dedicate their life to their creative endeavors by providing a means to make a living off their art and I would like that to continue to be the case. It needs to be reformed, not abolished.
matheusmoreira
> Why is abolishment always the first reaction to any system with flaws?
Because we're sick of it. We're tired of pretending this stuff is artificially scarce while they rob us of our rights. The reality is intellectual property is fiction and public domain is its natural state. We'd like to start living in reality.
Nearly two hundred years ago, one man warned everyone this would happen.
https://www.thepublicdomain.org/2014/07/24/macaulay-on-copyr...
> once it ceases to be considered as wrong and discreditable to invade literary property, no person can say where the invasion will stop. The public seldom makes nice distinctions.
> The wholesome copyright which now exists will share in the disgrace and danger of the new copyright which you are about to create.
> in attempting to impose unreasonable restraints on the reprinting of the works of the dead, you have, to a great extent, annulled those restraints which now prevent men from pillaging and defrauding the living.
Not only did nobody listen, people doubled down on this bullshit. These are the consequences.
> Copyright provides an incentive for artists to dedicate their life to their creative endeavors
False. It is absolute rent seeking.
The original social contract was we'd all pretend for a few years that intellectual works couldn't be trivially copied so that creators could turn a profit. And then, and this part is the key, and then the works would enter the public domain.
When was the last time some work you enjoyed entered the public domain? It's not happening. They keep postponing it. You'll be dead before your culture enters the public domain. They've all made a zillion dollars off of it already but they think it's not enough.
Artists? They defend this stuff. They deserve the consequences. They are monopolists, just like the corporations you are decrying. On this very site I've run into artists who think it's absolutely just that they and their families get to enjoy centuries of rent from the government granted monopolies on their creations.
ranger_danger
> The Wii homebrew community was all built on top of a pile of lies and copyright infringement
I think you can find evidence that basically all emulation since at least the N64 has been based on stolen SDKs and massive amounts of drama and infighting between overly-passionate groups of people.
Not to mention almost every single emulator developer pirates massive amounts of ROMs in order to test and debug games with their code. Many of them also have troves of proprietary SDKs as well.
JoshTriplett
Sad news, though always good to see someone calling out problems.
Are there any Wii homebrew loaders that aren't based on libogc?
MelodyUwU
i dont know of wii homebrew but in the nds space there is BlocksDS which is not part of devkitpro, and in gba space you can get (experimental) toolchains from wf-pacman (wonderful toolchain). sadly, the nintendo homebrew space is ruled by devkitpro, and i spent some time trying to find an alternative to it, but that doesnt seem to exist right now.
MelodyUwU
just realized you asked for something different, and my comment above is on the wrong subject. either way, i dont know of any big library/toolchain/sdk for the wii not from dkP, so the chances of a loader different from hbc and not based on libogc are small, sadly.
msephton
It's curious that the infractions were known about for so long—decades—but didn't make the news. I guess something happened to cause Marcin to speak up about it in 2025. But what?
Starlevel004
It's not exactly a secret that the 2000s nintendo console homebrew scene is based on leaked SDKs.
bogwog
This is a strange accusation. The repo linked as proof (https://github.com/derek57/libogc) consists of over 100 commits meticulously converting the libogc codebase to look more like the RTEMS codebase, and claiming that's enough proof that it's the same codebase. I wonder if it'd even build, or if those changes didn't break anything?
Regardless of whether there's any truth to this anonymous accusation, this doesn't seem like the right way to go about it. An article walking through some of the similarities would be much more helpful to prove the point (and probably less work for whoever went through this exercise).
At least provide some links to RTEMS code comparing the libogc code. The OP cites these (https://github.com/devkitPro/libogc/blob/52c525a13fd1762c103... and https://github.com/atgreen/RTEMS/blob/2f200c7e642c214accb7cc...), but that's hardly a smoking gun. The function is trivial, just filling in some struct fields. The logic for choosing the stack size is the same, but it's also trivial and I'd just as likely attribute it to the function interface.
I'm not saying it isn't true, I just find this to not be the most credible accusation I've seen. This feels like some opensource drama thing, and the readme doesn't help, being both lacking information and including lines like:
> How disgusting...
EDIT:
also, they have another serious accusation without ANY proof:
> we discovered that large portions of libogc were stolen directly from the Nintendo SDK or games using the Nintendo SDK (decompiled and cleaned up).
pcwalton
> The OP cites these (https://github.com/devkitPro/libogc/blob/52c525a13fd1762c103... and https://github.com/atgreen/RTEMS/blob/2f200c7e642c214accb7cc...), but that's hardly a smoking gun. The function is trivial, just filling in some struct fields.
Yeah, I'm with Marcan 90% of the time, and in my view Marcan is more likely than not right that that function is derived from the RTEMS function, but in my view there's still reasonable doubt. That is to say, purely based on the evidence linked, I only agree that it's probable that the code is copied and disagree with Marcan's claim that it's "not possible" for the implementation to be non-infringing.
The fact that some of the identifiers are similar raises the biggest suspicions. "__lwp_stack_isenough" vs. "_Stack_Is_enough" is suspicious because I'd probably call that "sufficient_stack_available" or something like that. "LWP_STATES_DORMANT" vs. "STATES_DORMANT" is also suspicious because the normal OS term would be "sleeping". Still, the function logic is different enough that, even with that evidence, one could plausibly claim that only the headers or interface were copied and the implementation was clean-room, which is non-infringing per Oracle v. Google.
In US legal system terms, I'd say that a preponderance of the evidence shows that the code is a derivative work (i.e. it's more likely than not that the code was copied at some point), but that there's still reasonable doubt (i.e. a reasonable person could plausibly believe otherwise).
armada651
I looked for other examples in the code and found __lwp_thread_changepriority pretty damning, judge for yourself:
https://github.com/atgreen/RTEMS/blob/2f200c7e642c214accb7cc...
https://github.com/devkitPro/libogc/blob/52c525a13fd1762c103...
The only difference is that the prependit parameter and its associated branch is missing, other than that the functions are completely identical.
jchw
FWIW, whether you agree with the accusation or not, it isn't anonymous. The commit history makes it obvious that it's marcan (Hector Martin) making the accusations.
Whether it's really worth all of the hooplah or not is going to be up to taste. I think it's pointless to just not explicitly credit RTEMS personally, but I suspect the real point of doing this is probably in large parts just to distance themselves from the reverse engineered libogc code.
bogwog
> FWIW, whether you agree with the accusation or not, it isn't anonymous. The commit history makes it obvious that it's marcan (Hector Martin) making the accusations.
I was referring to this repo by github account "derek57": https://github.com/derek57/libogc
I assume it's anonymous because the account has no public contact info.
EdwardKrayer
I'm not an expert in embedded systems, but I do work on them at a very low level, and I can't be sure 100% of my code would differential from the RTEMS code base any more than libogs's. That doesn't mean they didn't do it - but the concepts behind Real Time Operating Systems in general are well known, and nearly standardized.
athrowaway3z
For completeness sake; another possibility is that both took from the same source.
null
noobermin
Isn't this like almost 20 years of history down the drain, including the project that gave marcan notability? Quite an event to transpire. It's crazy that millions of us looked at projects like THC as being acts of brilliance, not merely theft. There cleary were brilliant people involved in the project (segher who helped reverse engineer the NES/SNES/N64 CIC for example) so I don't doubt they're not capable.
I'm not a lawyer, but publicly announcing that you found out that you were using a library largely consisting of decompiled Nintendo SDK code, then continued to use it and distribute binaries with the library compiled into them seems inadvisable to me. On the other hand, the Wii's no longer commercially relevant so I doubt Nintendo will do anything about it either to him or to the DevKitPro project. Maybe that's why Marcan waited so long to go public about this. I'm also not sure why he thought copying code uncredited from a Nintendo SDK was good enough to "reluctantly continue to use the project" but copying code uncredited from a 25 year old release of an RTOS written by a defense contractor was a step too far. Different people have different moral standards I guess.
I will say that in general, the DevKitPro maintainers are very much on the "Cathedral" side of the spectrum and behave very abrasively, so the reaction Marcan lists doesn't surprise me. In general their licensing philosophy is "make it as easy as possible to write homebrew using the toolchain while making it as difficult as possible to fork/build your own copy of our toolchain". All of the console-side libraries are permissively licensed, while the tooling to build at least some of their libraries doesn't have a license file, is undocumented, and the maintainers ignore any requests for help from people who are trying to use it. DevKitPro is also extremely aggressive with enforcing their trademarks, to the point of issuing takedowns to people who are hosting unmodified old releases of the toolchain. Trying to sweep the libogc licensing issue under the rug (i.e. moving the issue about the licensing to a private repo instead of even just closing it) to try to keep the project Zlib licensed tracks with this behavior IMO.