There's been a bit of a furore in the emulation community lately centred around the PlayStation 1 emulator DuckStation, which has now seen two license changes recently. As far as I'm aware, DuckStation is the most popular emulator for Sony's classic PS1 console, due to it being fast and accurate.
Up until recently it was open source under the GPL, then on September 1st it changed over to the PolyForm Strict License, and then again on September 13th it was changed over to the CC-BY-NC-ND license. This places a number of restrictions on the project like no commercial use and no derivatives allowed. That means, according to the creator, that no one else is allowed to package it up either as their change mentioned "Packaging is still **not** permitted, since it is effectively a modified/derived work".
Replying to a user unhappy about it on the GitHub, the creator said this:
I am well aware of how licenses work. That's why I changed, to make it very clear and a deterrent due to certain parties violating the old license, by not attributing and stripping my copyright. Packagers being collateral damage was a beneficial side-effect, considering they don't clearly mark their versions as modified (also a GPL requirement), break functionality, and expect upstream to provide support.
I have the approval of prior contributors, and if I did somehow miss you, then please advise me so I can rewrite that code. I didn't spend several weekends rewriting various parts for no reason. I do not have, nor want a CLA, because I do not agree with taking away contributor's copyright.
Also, I don't appreciate the threats. If you are not a copyright holder, then you are not in a position to make any demands. I find it especially ironic, considering when the GPL was actually violated on multiple occasions, even as recently as a few months ago, nobody ever takes issue with that.
I've restricted the repository to prior contributors, and if they have any concerns, they are more than welcome to do so here. If this turns into harassment, then I'll just shut the whole thing down, because I'm way too busy with my actual job to be dealing with unsubstantiated drama from a hobby that is supposed to be fun. Please consider how the community would benefit from that.
With that in mind, this means DuckStation as of the latest changes is no longer open source. You could say it's "source available", or whatever your chosen way is to describe code you can view but has restrictions on it.
Emulators like this are no exception. I completely understand and sympathize with this change. However, I have to ask: is this really going to help? The people stealing Duckstation and other projects like it for self-gain without contributing to anything other than their own wallets are obviously not the type to shy away from copyright violations. They're no different, if not even more dubious than console bootleggers in many countries. The same applies to third-party Linux packages by other users which are falsely attributed to the original developer. All this will really do is prevent Duckstation from being used by a PS1 developer to resell their game on Steam.
Duckstation has also never had a very good issue tracker (at least one that was easy to find) or other resources, and it's competing with other open source projects like BeetlePSX which are roughly the same minus a few niche features.
I think the reason Github users are angry is not so much because it's no longer free software, but more because the developer is taking GPL-licensed commits he may not legally own and making them his own semi-proprietary work. This is a legal grey area.
Last edited by bonkmaykr on 17 September 2024 at 3:55 am UTC
Many of you are getting this wrong...
Swanstation was a port of the libretro-core that was maintained by RetroArch without Stenzek's permission after he and the head developer of RetroArch had a falling out over Stenzek teying to push code updates to the tree and the RetroArch dev reversing the changes because "he didn't like them".
Duckstation was meant to be distributed as-is either in flatpak, self extracting executables, or the unmodified source code for distributions of Linux/BSD to do their own localized and self-maintained ports with. The exe and flatpak versions would be supported officially by stenzek where as the source code ports would be distribution maintained.
He changed the license because he doesn't want people to clone Duckstation and then steal his work, and have people blaming him for a forked project's faults like Swanstation did.
I don't blame him. The GPL is a very flawed license when it comes to allowing a developer to have absolute control over him/her project. For some projects its fine, but for others it's a total headache.
This is why many developers in the past have used BSDL, MIT, and other more restricive licenses to maintain control and prevent unauthorized forking. This saves Stenzek the time and trouble of dealing with unofficial ports, packages, and projects. He's not saying you can't fork the project, but what he is say is, if you fork, all changes have to be submitted back forst in private, and approved before you publish your changes go public in your fork so the entire project is on the same page.
You dont need anyone's permission to fork GPL'd code. There was nothing unethical in the forking of Duckstation then, nor is there anything unethical in the continued development of the still GPL'd fork. And if the GPL is "flawed" it is an order of magnitude less so than the CC-BY-NC for software. And where do you get the BSD and MIT license do anything to stop forking? They're even more lax and permissive than the LGPL.
Last edited by Desum on 17 September 2024 at 4:09 am UTC
If he wants to restrict the binary or something, I'm fine with that. Likewise, if he wanted to make a more restricted version of the project, I'm fine with that so long as it's either a new one or a clean-fork of this one.
Add to that, I don't trust a developer this unstable. If it was 100% FOSS instead of being this weird Source Available model, I'd be able to ignore it as I can trust someone will pick up the torch if and when the original dev leaves the project.
So I'd rather just migrate now, and use something else I can trust to be more stable in the long term.
Many of you are getting this wrong...This is what it means to be FOSS. FOSS is about freedom and openness of the source code. People are free to take your source code and do whatever they want with it. Both good and bad.
Swanstation was a port of the libretro-core that was maintained by RetroArch without Stenzek's permission after he and the head developer of RetroArch had a falling out over Stenzek teying to push code updates to the tree and the RetroArch dev reversing the changes because "he didn't like them".
Duckstation was meant to be distributed as-is either in flatpak, self extracting executables, or the unmodified source code for distributions of Linux/BSD to do their own localized and self-maintained ports with. The exe and flatpak versions would be supported officially by stenzek where as the source code ports would be distribution maintained.
He changed the license because he doesn't want people to clone Duckstation and then steal his work, and have people blaming him for a forked project's faults like Swanstation did.
I don't blame him. The GPL is a very flawed license when it comes to allowing a developer to have absolute control over him/her project. For some projects its fine, but for others it's a total headache.
This is why many developers in the past have used BSDL, MIT, and other more restricive licenses to maintain control and prevent unauthorized forking. This saves Stenzek the time and trouble of dealing with unofficial ports, packages, and projects. He's not saying you can't fork the project, but what he is say is, if you fork, all changes have to be submitted back forst in private, and approved before you publish your changes go public in your fork so the entire project is on the same page.
If they don't like it, they're free to start a new project, under a new license.
Last edited by based on 17 September 2024 at 6:35 am UTC
Can't they simply fork the last GPL licensed version? There are plenty of instances where software changes from GPL to something else (happens quite often in enterprise oss projects), most of the time, they get forked faster than you can read the news statement of the new license in use. I'm sure if there is interest in keeping DuckStation really open, it will happen.
It already has a fork with more users: Swanstation
Can't they simply fork the last GPL licensed version? There are plenty of instances where software changes from GPL to something else (happens quite often in enterprise oss projects), most of the time, they get forked faster than you can read the news statement of the new license in use. I'm sure if there is interest in keeping DuckStation really open, it will happen.
It already has a fork with more users: Swanstation
I'm sure someone will go the Jellyfin route with the stand-alone version sometime soon, too. Hopefully, like Jellyfin, it'll be even better than the original.
Edit: In fact, the whole situation is exactly of the Aseprite debacle. People who don't use Linux don't seem to get the "distribution" or "repository" concept of supporting Linux distros. Despite initially calling their projects "open source", what they really mean is collaborative-but-dictatorial.
Last edited by redneckdrow on 17 September 2024 at 3:12 pm UTC
ope
I think the reason Github users are angry is not so much because it's no longer free software, but more because the developer is taking GPL-licensed commits he may not legally own and making them his own semi-proprietary work. This is a legal grey area.
This is not, this is a violation of GPL license if the contributor did not explicitly give him permission to relicense their work. Any contributor that did not can sue him as per the GPL license and force him to remove their contribution.
Btw, can CC-BY-ND even be compiled ?
This is not, this is a violation of GPL license if the contributor did not explicitly give him permission to relicense their work.
And the main dev stenzek claims he has permission by everyone.
Btw, can CC-BY-ND even be compiled ?
CC doesn't make any distinction between source and binary, so compiling creates a derivative work you're not allowed to redistribute.
EDITED to merge a double-post after somebody deleted their own post:
You, on your own, can compile it. As long as it's just you and nobody knows about it, you can do anything. You can compile it, you can change it to say "stenzek is a doodoo head" at startup, knock yourself out.
Distributing such a changed version, including just a compiled binary of the unchanged sources (because for the CC, both are the same, a derivative work), that's what's not legal. No uploading it to the internet, no giving it to your friends, probably not even letting other people use it on your own system.
Last edited by DrMcCoy on 17 September 2024 at 3:34 pm UTC
I read dev comments but i still don't understand why he bothered to change licence...
Last edited by legluondunet on 17 September 2024 at 7:45 pm UTC
The GPL is a very flawed license when it comes to allowing a developer to have absolute control over him/her project. For some projects its fine, but for others it's a total headache.So, first, it's hardly surprising that the GPL is flawed when it comes to allowing a developer to have absolute control over a project, because it was designed precisely to stop developers (and companies) from having absolute control over projects. The point of the GPL is for users to have modification rights, much the way recipe users have modification rights over recipes. Lots of people use Free Software today because they like the way it can be developed collaboratively, with lots of people contributing to some central repository that is somewhat controlled by someone, but that was not the point.
This is why many developers in the past have used BSDL, MIT, and other more restricive licenses to maintain control and prevent unauthorized forking.
Second, the BSD and MIT licenses are not more restrictive--to the contrary, they are more permissive. They do, particularly the BSD licenses, make it easier to fork a project to a different, more restrictive one . . . but the original code in the permissive license would remain.
If you’ve been part of the emulation scene for a long time then you probably not surprised by this.
The mgba dev has had the same blow ups with the same people.
And also Near.
The best emu devs out there have become frustrated and angry with that projects leads and it always goes to shit.
Just because I think stenzek has issues and he's had rows with the retroarch crowd, doesn't mean I'd go kiss their feet. More than one party can be awful at the same time.
Second, the BSD and MIT licenses are not more restrictive--to the contrary, they are more permissive. They do, particularly the BSD licenses, make it easier to fork a project to a different, more restrictive one . . . but the original code in the permissive license would remain.See, for example, Mac OS and PlayStation's OS: both using FreeBSD and both absolutely making plenty of money for those companies without any control by anyone involved with the FreeBSD project.
Yes, as an ex ScummVM dev... The retroarch people aren't exactly well loved among many projects and devs in that space. I make no secret of my personal views there either, I think they're scum, and not the good kind.
Just because I think stenzek has issues and he's had rows with the retroarch crowd, doesn't mean I'd go kiss their feet. More than one party can be awful at the same time.
I would like to know more than vague claims. What's up with "retroarch (libretro) people"?
The Creative Commons licenses (except, arguably, CC0) are a terrible, terrible choice for software.
CC0 is not even recommended due to it neglecting to protect against software patents.
Mind you, I dislike all other CC licenses as I find forced attribution aggravating (despiting agreeing its good to maintain a paper trail).
Found it: https://www.reddit.com/r/emulation/comments/sjvkmb/duckstations_oss_license_violations_are_these/
See more from me