-
-
Notifications
You must be signed in to change notification settings - Fork 14.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ryujinx has been removed. Need to decide next steps. #345758
Comments
I'll follow the fork situation. There were some active devs other than gdkchan and it's possible some of them work on a maintained fork, though a few have posted in the ryujinx discord guild that they will not be continuing to work on switch stuff. The source code for 1.1.1401 is still in the nix substituter so building after an stdenv or c# change should not be a problem. |
I tend to be against removing software just because it's no longer maintained. If there's a security vulnerability, mark it as such, but I don't see any reason to remove ryujinx before there's a suitable replacement |
Could point it to https://github.com/ryujinx-mirror/ryujinx for now? (until a proper fork appears) |
@artemist There was a similar discussion about Yuzu when it was removed, starting with this comment: #293312 (comment) I think, sadly, the logical conclusion is to remove Ryujinx from nixpkgs, until a well-supported and -maintained fork pops up. Those who continue to rely on Ryujinx (to which I count myself) will have to build it from source. I'll work on a flake for that in the meantime, which I will publish on my personal git instance sometime this week: https://git.naxdy.org/NaxdyOrg/Ryujinx/ |
This is different from the Yuzu situation tho since it's not a legal takedown, just a repo deletion. |
The reasons for the takedown don't matter. Upstream is gone, the expressions no longer compile without binary cache. Refer to the thread I linked to (you'll have to expand the comments), where all of this has already been discussed at length. The DMCA wasn't even part of the reason to remove it from nixpkgs. I don't like it either, but there's no point in keeping software in nixpkgs that has no upstream. |
As an update for everyone, I added an easy-to-use flake to keep Ryujinx in your configs to my repo of it. I don't plan on maintaining it at all however (not even updating dependencies), so it will essentially just be a snapshot of the last available version, until some other fork comes around. GitHub: https://github.com/Naxdy/Ryujinx |
Proposing moving to your own unmaintained flake at the same time as opening the removal PR for a package that you're not the maintainer of kind of feels like a hostile takeover, not gonna lie. I feel like this behavior should be discouraged. |
I'm sorry you feel that way. The purpose of the flake is not to take anything over, but rather a short-term solution to provide a starting point for people who wish to continue building Ryujinx from source after its inevitable removal from nixpkgs, until a proper fork emerges. Yuzu & Citra were removed from nixpkgs extremely quickly after their takedown from upstream, and the lack of alternatives both in nixpkgs and otherwise was a pretty big blocker for me personally, so my intent was to avoid others from having to go through the same hassle of sourcing recently removed build scripts, fixing the source inputs, and integrating them into their config, as I have done with Citra (a mirror of which I also host, here https://git.naxdy.org/Mirror/citra - just without the flake) |
Yuzu and Citra were as a result of a lawsuit from Nintendo (which was to some extent justified given the profiting). Ryujinx is a slightly different edge-case and I think it's generally a better idea to take the maintainers perspective here, which is to leave the package alone. However if a suitable fork can't be found, I believe the best choice would be to simply mark as broken. This way can indicate to all affected users that this binary is not buildable for the time being. |
First, there is RFC 180 discussing that issue. Second, let's be more accurate here. |
RFC180 does not cover upstream situations, only our downstream situation. It explicitly defines "unmaintained" packages as packages that do not have Nixpkgs maintainers listed. We also don't really know what spurred the takedown yet. As far as we can tell, no legal action was involved, so it's not like we can expect mirrors to be taken down (as was the case with Yuzu). |
I think it should use a mirror and disable updates, or be removed. There's no point marking it as broken if it's never going to be fixed. |
As someone who has slowly been building my own private binary cache (internet here is garbage, and being unable to do any config changes for hours can leave me unable to do any work), leaving broken package in purely on the idea of "well the binary cache still has it" has left me stranded in the past. Idk what the solution actually is, since rapidly removing a package isn't a great option either, but if nixpkgs isn't actually building correctly, that seems like a bug to me. Since changing the source for a package involves forking nixpkgs, that seems like a quick way to lose sanity, vs nixpkgs actually being valid and reproducible. |
Why don't we just follow what the AUR did? Any mirror pointed at the same commit hash would suffice. Then we just drop |
Doing what @MathiasSven suggests seems like the best option until something about the situation changes. Source unavailability, while certainly not a major issue, is a serious problem and using a mirror would be an immediate band-aid for that. If the package were to break due to dependency changes in the future and the maintainers didn't want to vendor a fix, the package would then be marked as broken and could be removed (probably in accordance with RFC180 at that point). I don't expect that to happen any time soon though. If a new upstream appears, we can simply switch to that and make ryujinx an alias for it if it's under a different name. |
Thanks for adding the archive.org mirror. I've been busy for the past few days I was planning on using the mirror used in the AUR today, but the Internet Archive seems like a better choice. |
Yeah, they won't go anywhere there :) The git repo I got from archive.org from which I regenerated the tarballs seems 99.94% pristine (SHA256: Thanks to your maintenance efforts and the package's SHA256 hashes, we can be reasonably confident that the repository history up to 1.1.1401 is untampered, leaving us with merely two commits to audit if we're paranoid.
Of course, we wouldn't even need to question anything had the commits been cryptographically signed. I can't thank you enough for resisting this anti-consumer intimidation against a brilliant piece of engineering. I don't want my games nor all these years of effort to go to waste, and mirroring Atemu's thoughts, am hoping maintenance on this solid software will be smooth sailing for years to come. Heck, I hope I'd be able to lend a hand in case stuff breaks. Can we please defuse the removal PR ? :) |
Pardon me for bringing this up, but I find it really puzzling that the first reaction to stable software getting orphaned is to remove it from a distribution, rather than mirroring it and tending to it as our maintainers are willing to do. Has the software industry at large conditioned people to think that if you look away for a mere second, software will inevitably bit rot ? Most software I ever wrote can be rebuilt and run without modification years after the fact (maybe less so for moving targets like Blender addons or the web ecosystem, which I'm picky about). Technologies like .NET, SDL, Rust, the Linux kernel, or Wine (90s SDKs are still alive and kicking) care deeply about backwards compatibility. Even a standard HTML5 website can work just fine on a Dreamcast if you do the right thing and progressively enhance it. This results in timeless, predictable software, and happy developers and maintainers. Conversely, eagerly removing a perfectly working package contributes to said churn as all users relying on it would be startled as soon as they upgrade NixOS and be forced to needlessly fix their configuration, either removing it or looking for an out-of-tree replacement, with all the inconveniences that comes with that (no binary caching, etc.). It doesn't sound like a good time for anyone involved, so why do it ? It made me wonder if I would've lost access to this software had I not stumbled on the news in time. |
I have the opinion that we should put those things on NUR.
Ehr, Rust introduced breaking changes recently. |
Nixpkgs maintenance has conditioned me to think that :/ A modern emulator like Ryujinx especially has quite a lot of moving parts. Hopefully someone will pick up maintenance, although it seems like there aren’t many qualified maintainers to continue with these kinds of projects after the original teams call it quits. I wouldn’t be surprised if an FFmpeg update or similar breaks it otherwise. |
@AndersonTorres Could you provide any rationale on why this package should suddenly be downgraded and break all users' installation when nothing happened to the source code and maintainers are there to support it ? As for Rust, one unforseen issue should not discredit the stellar stability guarantees they've upheld for such a long time. It certainly doesn't compare to some other software ecosystems. But yeah, this strongly makes me question why I still have it in me to swim against the current in seeking real software engineering. I'll see what I can do to keep this one alive though. |
First, "nothing happened to the source code" is at least a doubtful sentence. The original repo disappeared, the best we have is a backup. Second, NUR is just a migration, not a huge downgrade. Third, IMnsHO Nixpkgs is a database for scripting and metadata for fresh and pristine software. "Fresh" is a bit malleable - the monorepo has some useful abandonware -, on the other hand "pristine" has a more clear cut definition. When the source code disappears, arguably it can no longer be treated as pristine.
Bold mine. Further I have written at length about this months ago: |
Without speaking to the general point of abandonware in Nixpkgs –
We have a |
Thank you for explaining this. No offense, but it hurts inside when someone in a position of power does not seem to grasp the basics, but I'm willing to believe I'm misunderstanding. It doubly hurts when I wish to reach out and offer my help to improve a distribution I love so that users don't get turned off by the churn, only to be taken down. But that is okay. I'm certainly not blaming anyone for my own feelings. I'm more likely to just walk away. There is a reason Nix trusts these cryptographic hashes that it systematically puts them on all packages. An xz would be hard to pull off there. I too hate malware. Combined with how git hashes its commits to assure you that their ancestors are pure (the buzzword is "blockchain"), along with multiple tree archives that pretty much match bit-for-bit with results we already know, we can safely assume nobody evil had the time to poison any mirrors converging on that truth. Please see Wikipedia:
Lastly, handwaving away a respected systems programming language on the basis of a single mistake is disheartening when they work so hard to make people's lives easier. I kindly wish you the best. |
While I have mixed feelings about both removing software because of Nintendo’s meddling and keeping unmaintained software in Nixpkgs, I feel I ought to point out that @AndersonTorres is a non‐committer contributor, like you, and his word doesn’t necessarily carry any more or less weight in this discussion than yours. |
While personally, I don't have a strong opinion on what to do in these situations (remove, switch to mirror, do nothing), I do think that we should have a proper guideline with regards to what should happen in the case of a sudden upstream disappearing magic act. In the meantime, I opened #346797 to mark Ryujinx as known vulnerable, to let users know what they're installing is not developed or maintained by upstream. |
I am speaking about this in general terms. (Although, if we would be more paranoid about this, the tarball generated from
I have no power here.
Most of what I have written is not restricted to Nixpkgs, at least in principle. I think it makes few to no sense to keep this piece eating cycles on Hydra.
No one throws away OpenSSH away because or RegreSSHion. |
It's important to remember that this isn't like Yuzu, the author likely took a check and closed the project. They were not stuck with a dmca, it should be space to host it in nixpkgs. |
Even the case of Yuzu is unclear. |
Thats true, I agree. Thats exactly what I did in my pr that involves assets in #342365. |
Either a check, or an agreement not to sue/harass, we don't know the exact details rn. Either way Nintendo isn't using the legal system to claim the license on the code is invalid, so it, in theory, is still safe to have in nixpkgs, just needs an actual source backing it somewhere. |
Issue description
The owner of the Ryujinx organization has deleted the org and all data. According to riperiperi on the discord:
This is a hard block to building ryujinx anymore. Like Yuzu before, something needs to be decided here, though in this case this is not a DMCA take down, so existing license applies. Might make just as much sense to find a valid fork in the not too distant future.
Maintainers
@06kellyjac
@artemist
The text was updated successfully, but these errors were encountered: