As much as I like duckstation and am glad that its source code remains publicly available, its move from GPL-3 to a highly restrictive no-derivative license last month [0] means that supporting new platforms or features or fixing bugs that might pop up on new versions of OS can't be adapted to the latest versions of the code.
Changing the license will only hurt the legitimate interested parties of the future, as nefarious people who fork and rebrand and charge for such programs have a tendency to be unscrupulous and don't care what the license says. It does help with filing claims, but that can be wack a mole.
It would be nice if they would grant non-commercial non-monetary derivatives at least, so people who want to fix code after the author moves on can do so in an honorable manner.
Another solution might be perhaps a termination clause saying that after some multiple of 5 years that it will revert to GPL-3 again. So at least if the worst happens the software can live on.
There's a strange issue in the emulator world... I won't call it credit-stealing but it's similar.
The short form is that there are some developers who *actively forbid* distribution of binaries you create simply on the grounds of "Your shitty build will send hate my way and I don't want that."
And it's true. I know several people who maintain emulators and hot damn do some people on the internet go "I used your emulator and my computer crashed/wife left me/dog died, you suck!" only to find out that this person is running xXxHotTaterBucketXxX's build from 3 years ago that has more bugs than a cricket farm. This happens on a surprisingly regular basis too.
I maintained a very small tool at one point that handled patching PSP games. someone about once a week would email me and every time they had an issue it was boiled down to "you downloaded a version of this tool off a forum from somewhere with unofficial patches." Getting people to download a new version was hard.
The vast majority of people who use emulators don't know the first thing about how they work nor do they care. they want their games and they want them now. and anything that stands in between them and their goal is literally hitler.
I am not familiar with this project, but I am an expert in free and open source licensing, and in this context there are some irregularities.
molticrystal points out the commit in which the licence is 'changed'. Some files which were previously labelled as being dedicated to the public domain ('Unlicense') are now indicated as being under the Creative Commons Attribution-NonCommercial-NoDerivatives International License, version 4. This an is untrue statement at the specific commit, because work in the public domain cannot be copyrighted (this is a simplification, but substantively true). However, it will become a true statement and thus legally significant as and when new, original code is added in future commits, as this would be copyrightable.
More importantly, there are other files which previously contained this declaration:
// SPDX-License-Identifier: (GPL-3.0 OR CC-BY-NC-ND-4.0)
This, expressed in the ISO standard SPDX syntax, means that the copyright holder(s) allow copying under the terms of either the GNU General Public License version 3 or the aforementioned Creative Commons licence.
Contributors to the project generally continue to hold copyright to their commits under the 'inbound-outbound' doctrine, and this is reinforced by the GitHub terms of service. That means that the main author has to respect the licence terms too.
Here's the problem: by changing the licence of the whole program to only the Creative Commons BY-NC-ND, they have to have violated one of the two original options. If they use their rights from the GPL, they must retain the GPL option for others (copyleft principle); if they use their rights from the CC-BY-NC-ND-4.0 licence, they cannot make derivative works so won't be allowed to continue developing the project!
All in all, this is just yet another case of 're-licensing' a formerly free and open source project that has no grounds in law. More positively, it is also therefore another case of the inbound-outbound effect of collaborative development strengthening FOSS.
It doesn’t even properly address the original problem. Originally, this was stated to be in response to people “stealing” the source code, making low quality Android ports (without releasing source code), and users coming to the official channels to complain about problems unique to the Android versions. A license change does not in any way stop that, instead it only alienates those who wish to support development and yet now are seemingly disallowed from even contributing due to the weird licensing.
> If they use their rights from the GPL, they must retain the GPL option for others (copyleft principle); if they use their rights from the CC-BY-NC-ND-4.0 licence, they cannot make derivative works so won't be allowed to continue developing the project!
If they own the copyright to all of the code that was published, then they can use that right to relicense the code however they like without violating either of the licenses. That would, however, presume that they either did not accept contributions from anyone else prior to the change, had contributions assign them copyright, or removed code by those contributors.
And, of course, changing the license on new code doesn’t revoke the rights granted to people by the previous licenses if they had the code already.
The LGPL requires that you're able to debug, modify, and replace the library in question, in this case, Qt.
> You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications.
However, DuckStation supplies prebuilt bundles that don't allow for that, in the case of Windows.
As long as the license pre-exists the change, then the changes will be included beneath that license. As law depends on intent, rather than anything strictly automatic. A "best effort" is fine.
The bigger problem is that re-licensing is... Hellfire. You require specific permission from all involved, every single person who agreed to previous terms. If a single person does not grant permission, you either cannot transition, or must strip out everything of their work - and anything their work may have further led to. They can't be the inspiration for anything.
You also cannot relicense something once you've placed it in the public domain (99.99999% of the time).
So... Begin your history with one license, you're fine.
Right, but the license attached to a file doesn't make it clear whose diffs are whose. You don't think it would be a reasonable defensive measure to include a license so it's obvious who committed which changes on exactly which date? (Barring someone rewriting commit history, which they could do with licenses in code comments too.)
Have you visited the retroarch site without an ad blocker lately? I recommend it. Also, Retroarch can no longer run even Gameboy games on any of my systems without dropping frames every few seconds, regardless of configuration. Defaults drop frames, vsync + disabled threaded rendering drops frames, any combination of backend drivers drop frames. Not to mention audio stutter and crackle, which has always been an issue in RA, not so in standalone emulators.
It may be that I'm a picky bitch about these things, but retroarch has been an absolute mess lately. I can at least see where Stenzek is coming from. These people just do not care the way they ought to for such a problem. Retroarch is regression city.
Stenzek's skills as a software engineer are unparalleled and I have to imagine he knows what he's talking about.
Retroarch isn't perfect - but it makes emulators usable on devices without mouse+keyboard, with a consistent UI for configuration.
Without it, emulation on Steam Deck and Miyoo/Ambernic-style devices would be nowhere near as good an experience.
And if you're focused on emulating 8/16bit games, it runs the vast majority of them just fine. (If you want to emulate, say, Gamecube or beyond, that's when you're better off with individual standalone emulators)
Stenzek (DuckStation developer, also contributed many dramatic improvements to Dolphin and PCSX2) effectively declared very public war on Retroarch. He gets a lot of shit for it in certain circles, and for the way he did it (relicensing DuckStation from GPL to a nonfree license). Lots of drama.
The relicense had nothing to do with that and it wouldn't stop RetroArch regardless. They ship RA with several by-license-text incompatible[0] emulators anyway; many of their cores are under non-commercial licenses and some are explicitly included against the wishes of their original developers; ask the MAME devs what they think of RetroArch.
Stenzek changed the license because he had a meltdown last month when PCSX2 changed it's license from the LGPL to the GPL (which is allowed by the LGPL; there's nothing dubious about making this change)[1] for... some reason. In response, he threw a tantrum and closed all his open PCSX2 PRs, effectively quitting the project[2][3][4].
RetroArch is a plague on the emulation community, but that's not why Stenzek relicensed his emulator.
[0]: If this is actually incompatible will largely depend on your views how the GPL interacts with dynamic linking. Don't just repeat the FSF FAQ, look for other legal opinions not written by free software advocates.
> Stenzek changed the license because he had a meltdown last month when PCSX2 changed it's license from the LGPL to the GPL (which is allowed by the LGPL; there's nothing dubious about making this change)[1] for... some reason. In response, he threw a tantrum and closed all his open PCSX2 PRs, effectively quitting the project[2][3][4].
Pretty sure it's because he would be "forced" to open-source Aethersx2 (which is an android port of pcsx2).
He wouldn't be. AetherSX2 is based on LGPL-era PCSX2 code and license changes don't apply retroactively like that (otherwise, imagine if SDL changed its license to GPL and instantly forced half of PC games to go open source).
It would only prevent him from using code added after the switch to GPL, which is not a problem because AetherSX2 ended development long before PCSX2 switched to the GPL.
Did Stenzek publicly discuss his motivations somewhere, or did this happen in some unindexed chatroom/backroom? It would probably be good to look over the rational and complaints causing the fallout first hand.
RetroArch is cancer to the emulation scene. Multiple emulator devs despise RetroArch and users don't like it because of the confusing UI. It's sad that standalone emulators for homebrewed console (e.g. Switch) have gotten so rare "thanks" to RetroArch.
The shittiest part is the RA 'team' (really just daniel) forks the most popular emulators and profits off them while never updating their forks with upstream improvements and never pushing any of the money they profit back to the emudevs doing actual work.
It's really sad that he still hasn't been pushed out yet.
They only fork the projects that are extremely difficult to work with the upstream authors of; DuckStation is a prime example.
And I guarantee you nobody on the libretro team is "profiting" off of other emulator projects unless you consider the RetroArch patreon donations to be part of that, but that money often goes back to developers funding bounties and other work/hardware for development... and it exists irrespective of any cores they might support.
The claim that they never update their forks is also demonstrably false. There are some cores that lack a maintainer, but it's not like they are actively being hostile in some way by not updating something. Also keep in mind that they host hundreds of different cores and all the builds for them across a dozen+ platforms, which is thousands of different build combinations, something I've never seen in ANY other single software project on earth (unless you count an operating system I guess). And some people only want to work on certain cores, or just RA.
I think attitudes like this is exactly why nothing ever changes in the emulation scene.
That 'confusing UI' is fully functional with a game controller, and consistent across many cores.
Which is a massive win when you want to run emulators on devices without mouse/keyboard, and more than makes up for minor performance issues or having out-of-date cores.
I've run many of the underlying emulators' software that got repurposed into cores. I loved XMB on the PS3 and PSP, and I really wish Sony didn't drop it. Retroarch's UI is a complete disaster. It is on the whole the most confusing software I have ever encountered.
That's actually one of my reasons for preferring standalone emulators on Android. My device's hardware L and R work by emulating screen touch, and the touch positions are assigned per-app, so with something like RetroArch it would be a pain to make sure an appropriate L/R target is in the same place for each emulated system.
I like retroarch and I don’t find anything confusing about the RA UI. Sure normies might be confused by its UI but then again they most likely get confused by a start menu.
No hardware I tested has any problems with any emulator and most emulators still run better than the main port.
If you were referring to another retroarch site you went to the wrong site which could explain your problems, but please open a bug report if you really have such a bad experience with retroarch and maybe try another libretro frontend.
Sadly I consider your comment as FUD since I can't collaborate/verify any of your problems on any hardware... I'm sorry. If you really downloaded retroarch from a non official source, please check your PC for malware.
Edit just to clarify I'm not associated with retroarch even though I provided code a few times in the past. I'm still using it from time to time, but I hadn't had contact to anyone from this project for years. I'm just an independent dev who hates FUD...
I appreciate stenzek skills he is a huge contribuitor in emulation-scene not only with DuckStation but considerable contribuition in Dolphin, psx2 (and his Aethersx2 android fork, even though he abandoned after incessant mobile users toxic complaints and death threats).
I know he gets a lot of hate for sabotaging his own emulator (Aethersx2) with ads, and DuckStation subsequent change to a restrictive license, but still think his positive contributions to emulation still considerably outweights these negative ones.
Also let's cut him some slack, it wasn't long ago he got over-harassed by the Retroarch devs to the point they sent email to their irl employer with damning accusations of sexual harassment.
Retroarch abuse to emulation devs is quite well documented, it mostly stems from their project lead twinaphex(who also personally receives the donations) but he also has peers involved in the project that think alike.
None of this is documentation of abuse. It's documentation of second-hand complaints of unspecified abuse. That's not to say there isn't actual abuse happening, just that you probably should've picked different links if you wanted to demonstrate it.
- There's no proof aethersx2 is his project. But there is proof that it violates open source licenses.
- No proof of death threats from users
- No proof of "sabotaging his own emulator"
- No proof he "got over-harassed by the Retroarch devs to the point they sent email to their irl employer with damning accusations of sexual harassment."
> - No proof he "got over-harassed by the Retroarch devs to the point they sent email to their irl employer with damning accusations of sexual harassment."
EDIT: Okay, so the employer's email alleging harassment was to another emulator dev (redream), I misremembered it, but the harassment is still real.
I really don't know what is "credible" proof to you on Internet drama. That is the best you will have: screenshots, multiple users corrobating the account and stenzek own words. Nothing tangible.
Out of curiosity, what would be a "credible" proof for you in this context? Filed police reports with confirmations that those threats have indeed been made?
It's an archive of the last commit before the license change and it doesn't appear any work has been done on top of it (save for a preamble in the README). Furthermore, from what I've gleaned from the replies to the email that was sent to every contributor of DuckStation in the git history about this topic, it doesn't appear that there is any interest in maintaining or contributing to a GPLv3 fork.
It's really funny that all the comments here about the "restrictive license" avoid admitting that license is Creative Commons, because open source has become such a caricature of its ideas that Creative Commons is the villain now.
Specifically, it violates freedom 3 of the FSF definition (redistribute changes), and section 3 of the OSI definition (Derived Works). This freedom is at the core of what FOSS is.
And that's before the violation of freedom 0, "The freedom to run the program as you wish, for any purpose" of the non commercial licenses.
I'd personally agree with that (hence my quotes around the having become part), although I'm not nearly caught up with the lore enough to know whether equating open source with the FSF and OSI is fair. Also can't vouch for the thread starter's opinion of course.
Changing the license will only hurt the legitimate interested parties of the future, as nefarious people who fork and rebrand and charge for such programs have a tendency to be unscrupulous and don't care what the license says. It does help with filing claims, but that can be wack a mole.
It would be nice if they would grant non-commercial non-monetary derivatives at least, so people who want to fix code after the author moves on can do so in an honorable manner.
Another solution might be perhaps a termination clause saying that after some multiple of 5 years that it will revert to GPL-3 again. So at least if the worst happens the software can live on.
[0] https://github.com/stenzek/duckstation/commit/7f4e5d55dbdef5...