citron-emu: init at version 0.12.25#482846
Conversation
|
marcin-serwin
left a comment
There was a problem hiding this comment.
The derevation comes as a mix of the repos citron.nix by @simonwjackson and citron-flake by @Zempashi.
The first repo is licensed under GPL-2.0-or-later while there is no license statement in the second one. This means that work based on them cannot be legally incorporated into nixpkgs.
|
I believe citron should be safe to distribute with nixpkgs, since they share a similar anti-piracy stance to azahar, and since they have a clearnet download of the source available unlike some of the previous yuzu forks. Nintendo has admitted that emulation is legal, but maintain that anti-circumvention still apply. From my brief research it seems you must provide citron with decryption keys yourself.
Is it okay with you that this derivation is distributed under MIT @simonwjackson and @Zempashi? |
I don't think @Zempashi will respond, it seems that he has been inactive in github for a couple of months. Also after some more research is seems like the the both of the flakes are kinda based or at least very similar to this by @liberodark. |
|
Ok, after the feedback from @marcin-serwin I have redid the package and mainly based it on the work done by @liberodark for his own citron work and also his old previous work on the removed torzu package. I did extend it a bit to match up with how the latest version of citron is built and also added some option for the building and the features. The derevation this version is based on GPL3. |
nixpkgs is under MIT license. GPL3 works cannot be added to nixpkgs |
ok small question then, the torzu package I based by work on was in nixpkgs before and maintained by the same person, after the removal of torzu it was reuploaded under gpl3. In this case what license do we base the work on? |
3b84bac to
62b4f7e
Compare
|
@liberodark for you is it acceptable that the package is distributed under MIT? |
62b4f7e to
1e51548
Compare
If you based the work on the removed nixpkgs code then it's under the MIT license. If the person just reuploaded the same file in their repo then it's still MIT. If the person made substantial changes to the recipe then those changes are released under the GPL license. |
In my opinion it is very similar and some part nearly identical to the torzu package that was removed. At least based on that I think the package can fall under MIT then. |
marcin-serwin
left a comment
There was a problem hiding this comment.
Please squash all the commits into the first one
053210a to
251ccb0
Compare
marcin-serwin
left a comment
There was a problem hiding this comment.
All changes should be squashed into the first commit, even the review fixups, see https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#commit-conventions
Hi, I only work under GPL v3, but if you need to reuse my work on Citron or another Switch emulator under the MIT license, you have my permission. Best Regards |
|
251ccb0 to
bbe8585
Compare
bbe8585 to
efbacdc
Compare
efbacdc to
0422085
Compare
|
I think now every suggested changes are now implemented. @marcin-serwin is the current version acceptable? |
| (lib.cmakeFeature "TITLE_BAR_FORMAT_IDLE" "${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) {}") | ||
| (lib.cmakeFeature "TITLE_BAR_FORMAT_RUNNING" "${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) | {}") |
There was a problem hiding this comment.
just a sanity check: is the | difference between these two intended?
| nx_tzdb = fetchzip { | ||
| url = "https://github.com/lat9nq/tzdb_to_nx/releases/download/${nx_tzdbVersion}/${nx_tzdbVersion}.zip"; | ||
| hash = "sha256-YOIElcKTiclem05trZsA3YJReozu/ex7jJAKD6nAMwc="; | ||
| stripRoot = false; | ||
| }; |
There was a problem hiding this comment.
I'm unsure whether this may require setting meta.sourceProvenance considering it is mainly data and not code. Had it been vendored in the citron-emu repo then we would not set meta.sourceProvenance...
Not a blocker
pbsds
left a comment
There was a problem hiding this comment.
Built and tested, LGTM. If not for the current state of the eden PR I would've merge this. However, in respect of #485097 (review) I'll go ahead and put this PR on your the radar as well @NixOS/nixpkgs-core.
I am in favor of distributing citron, please view my previous comment here as to why: #482846 (comment)
Both Citron and Eden have source code hosted on the clear net, however Citron in contrast to Eden displays a firmer anti-piracy stance while Eden only mentions "dumped/extracted from console" on their quick start page (their FAQ page is at the time of writing still pending). I have not viewed any of their Discord servers.
Also to add to this to even join the discord server you need to verify you have a CFW switch using a tool running on a actual switch, without it you cannot access most stuff. Also to add all the testing I did was done using a real CFW switch with software I own and dumped. |
marcin-serwin
left a comment
There was a problem hiding this comment.
I don't have access to my regular PC at the moment so I can't test this but the diff LGTM.
|
Also worth considering @nixos/nixpkgs-core: AFAIU nixpkgs doesn't do value judgements on the packages we distribute, since distribution does not equal endorsement. The removal of yuzu from nixpkgs was purely due to risk management, and the situation since then has changed. Also worth noting is that FreeBSD, Ubuntu and Debian still now distribute yuzu, and they have not been hit with any action from Nintendo. |
|
Indeed we don't see any reason to block this or #485097, given the reasoning expressed in the two PR threads. |
Things done
Derivation that builds citron-emu. Citron-emu is a fork of the now archived yuzu. Compared to other forks this one is still actively maintained and also displays a strong anti-piracy stance clearly stating the software is for running Nintendo Switch Homebrew games. See FAQ
The derevation comes as a mix of the repos citron.nix by @simonwjackson and citron-flake by @Zempashi. I was not able to use what they have done but after some modifications to both of their work I was able to get it running.
Unlike the 2 previous implementations, the external dependency
nx_tbdbis fetched direcly as the original build process also direcly fetches a URL using the cmake file. See herepassthru.tests.nixpkgs-reviewon this PR. See nixpkgs-review usage../result/bin/.