diff --git a/nixos/tests/retroarch.nix b/nixos/tests/retroarch.nix index d13ed074b9c9..ac03cbffefea 100644 --- a/nixos/tests/retroarch.nix +++ b/nixos/tests/retroarch.nix @@ -15,7 +15,7 @@ import ./make-test-python.nix ( services.xserver.enable = true; services.xserver.desktopManager.retroarch = { enable = true; - package = pkgs.retroarchBare; + package = pkgs.retroarch-bare; }; services.xserver.displayManager = { sddm.enable = true; diff --git a/pkgs/applications/emulators/retroarch/README.md b/pkgs/applications/emulators/libretro/README.md similarity index 67% rename from pkgs/applications/emulators/retroarch/README.md rename to pkgs/applications/emulators/libretro/README.md index 1a1fec0ed1d1..ca494d29e8a9 100644 --- a/pkgs/applications/emulators/retroarch/README.md +++ b/pkgs/applications/emulators/libretro/README.md @@ -8,27 +8,25 @@ packages. The basic steps to add a new core are: 1. Add a new core using `mkLibretroCore` function (use one of the existing - files as an example) + cores as an example) 2. Add your new core to [`default.nix`](./default.nix) file 3. Try to build your core with `nix-build -A libretro.` ## Using RetroArch with cores To create a custom RetroArch derivation with the cores you want (instead of -using `retroarchFull` that includes all cores), you can use `.override` like +using `retroarch-full` that includes all cores), you can use `.withCores` like this: ```nix { pkgs, ... }: let - retroarchWithCores = (pkgs.retroarch.override { - cores = with pkgs.libretro; [ - bsnes - mgba - quicknes - ]; - }); + retroarchWithCores = (pkgs.retroarch.withCores (cores: with cores; [ + bsnes + mgba + quicknes + ])); in { environment.systemPackages = [ @@ -36,3 +34,5 @@ in ]; } ``` + +For advanced customization, see `wrapRetroArch` wrapper. diff --git a/pkgs/applications/emulators/retroarch/cores/atari800.nix b/pkgs/applications/emulators/libretro/cores/atari800.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/atari800.nix rename to pkgs/applications/emulators/libretro/cores/atari800.nix diff --git a/pkgs/applications/emulators/retroarch/cores/beetle-gba.nix b/pkgs/applications/emulators/libretro/cores/beetle-gba.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/beetle-gba.nix rename to pkgs/applications/emulators/libretro/cores/beetle-gba.nix diff --git a/pkgs/applications/emulators/retroarch/cores/beetle-lynx.nix b/pkgs/applications/emulators/libretro/cores/beetle-lynx.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/beetle-lynx.nix rename to pkgs/applications/emulators/libretro/cores/beetle-lynx.nix diff --git a/pkgs/applications/emulators/retroarch/cores/beetle-ngp.nix b/pkgs/applications/emulators/libretro/cores/beetle-ngp.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/beetle-ngp.nix rename to pkgs/applications/emulators/libretro/cores/beetle-ngp.nix diff --git a/pkgs/applications/emulators/retroarch/cores/beetle-pce-fast.nix b/pkgs/applications/emulators/libretro/cores/beetle-pce-fast.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/beetle-pce-fast.nix rename to pkgs/applications/emulators/libretro/cores/beetle-pce-fast.nix diff --git a/pkgs/applications/emulators/retroarch/cores/beetle-pce.nix b/pkgs/applications/emulators/libretro/cores/beetle-pce.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/beetle-pce.nix rename to pkgs/applications/emulators/libretro/cores/beetle-pce.nix diff --git a/pkgs/applications/emulators/retroarch/cores/beetle-pcfx.nix b/pkgs/applications/emulators/libretro/cores/beetle-pcfx.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/beetle-pcfx.nix rename to pkgs/applications/emulators/libretro/cores/beetle-pcfx.nix diff --git a/pkgs/applications/emulators/retroarch/cores/beetle-psx.nix b/pkgs/applications/emulators/libretro/cores/beetle-psx.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/beetle-psx.nix rename to pkgs/applications/emulators/libretro/cores/beetle-psx.nix diff --git a/pkgs/applications/emulators/retroarch/cores/beetle-saturn.nix b/pkgs/applications/emulators/libretro/cores/beetle-saturn.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/beetle-saturn.nix rename to pkgs/applications/emulators/libretro/cores/beetle-saturn.nix diff --git a/pkgs/applications/emulators/retroarch/cores/beetle-supafaust.nix b/pkgs/applications/emulators/libretro/cores/beetle-supafaust.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/beetle-supafaust.nix rename to pkgs/applications/emulators/libretro/cores/beetle-supafaust.nix diff --git a/pkgs/applications/emulators/retroarch/cores/beetle-supergrafx.nix b/pkgs/applications/emulators/libretro/cores/beetle-supergrafx.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/beetle-supergrafx.nix rename to pkgs/applications/emulators/libretro/cores/beetle-supergrafx.nix diff --git a/pkgs/applications/emulators/retroarch/cores/beetle-vb.nix b/pkgs/applications/emulators/libretro/cores/beetle-vb.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/beetle-vb.nix rename to pkgs/applications/emulators/libretro/cores/beetle-vb.nix diff --git a/pkgs/applications/emulators/retroarch/cores/beetle-wswan.nix b/pkgs/applications/emulators/libretro/cores/beetle-wswan.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/beetle-wswan.nix rename to pkgs/applications/emulators/libretro/cores/beetle-wswan.nix diff --git a/pkgs/applications/emulators/retroarch/cores/blastem.nix b/pkgs/applications/emulators/libretro/cores/blastem.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/blastem.nix rename to pkgs/applications/emulators/libretro/cores/blastem.nix diff --git a/pkgs/applications/emulators/retroarch/cores/bluemsx.nix b/pkgs/applications/emulators/libretro/cores/bluemsx.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/bluemsx.nix rename to pkgs/applications/emulators/libretro/cores/bluemsx.nix diff --git a/pkgs/applications/emulators/retroarch/cores/bsnes-hd.nix b/pkgs/applications/emulators/libretro/cores/bsnes-hd.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/bsnes-hd.nix rename to pkgs/applications/emulators/libretro/cores/bsnes-hd.nix diff --git a/pkgs/applications/emulators/retroarch/cores/bsnes-mercury.nix b/pkgs/applications/emulators/libretro/cores/bsnes-mercury.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/bsnes-mercury.nix rename to pkgs/applications/emulators/libretro/cores/bsnes-mercury.nix diff --git a/pkgs/applications/emulators/retroarch/cores/bsnes.nix b/pkgs/applications/emulators/libretro/cores/bsnes.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/bsnes.nix rename to pkgs/applications/emulators/libretro/cores/bsnes.nix diff --git a/pkgs/applications/emulators/retroarch/cores/citra.nix b/pkgs/applications/emulators/libretro/cores/citra.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/citra.nix rename to pkgs/applications/emulators/libretro/cores/citra.nix diff --git a/pkgs/applications/emulators/retroarch/cores/desmume.nix b/pkgs/applications/emulators/libretro/cores/desmume.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/desmume.nix rename to pkgs/applications/emulators/libretro/cores/desmume.nix diff --git a/pkgs/applications/emulators/retroarch/cores/desmume2015.nix b/pkgs/applications/emulators/libretro/cores/desmume2015.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/desmume2015.nix rename to pkgs/applications/emulators/libretro/cores/desmume2015.nix diff --git a/pkgs/applications/emulators/retroarch/cores/dolphin.nix b/pkgs/applications/emulators/libretro/cores/dolphin.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/dolphin.nix rename to pkgs/applications/emulators/libretro/cores/dolphin.nix diff --git a/pkgs/applications/emulators/retroarch/cores/dosbox-pure.nix b/pkgs/applications/emulators/libretro/cores/dosbox-pure.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/dosbox-pure.nix rename to pkgs/applications/emulators/libretro/cores/dosbox-pure.nix diff --git a/pkgs/applications/emulators/retroarch/cores/dosbox.nix b/pkgs/applications/emulators/libretro/cores/dosbox.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/dosbox.nix rename to pkgs/applications/emulators/libretro/cores/dosbox.nix diff --git a/pkgs/applications/emulators/retroarch/cores/easyrpg.nix b/pkgs/applications/emulators/libretro/cores/easyrpg.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/easyrpg.nix rename to pkgs/applications/emulators/libretro/cores/easyrpg.nix diff --git a/pkgs/applications/emulators/retroarch/cores/eightyone.nix b/pkgs/applications/emulators/libretro/cores/eightyone.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/eightyone.nix rename to pkgs/applications/emulators/libretro/cores/eightyone.nix diff --git a/pkgs/applications/emulators/retroarch/cores/fbalpha2012.nix b/pkgs/applications/emulators/libretro/cores/fbalpha2012.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/fbalpha2012.nix rename to pkgs/applications/emulators/libretro/cores/fbalpha2012.nix diff --git a/pkgs/applications/emulators/retroarch/cores/fbneo.nix b/pkgs/applications/emulators/libretro/cores/fbneo.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/fbneo.nix rename to pkgs/applications/emulators/libretro/cores/fbneo.nix diff --git a/pkgs/applications/emulators/retroarch/cores/fceumm.nix b/pkgs/applications/emulators/libretro/cores/fceumm.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/fceumm.nix rename to pkgs/applications/emulators/libretro/cores/fceumm.nix diff --git a/pkgs/applications/emulators/retroarch/cores/flycast.nix b/pkgs/applications/emulators/libretro/cores/flycast.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/flycast.nix rename to pkgs/applications/emulators/libretro/cores/flycast.nix diff --git a/pkgs/applications/emulators/retroarch/cores/fmsx.nix b/pkgs/applications/emulators/libretro/cores/fmsx.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/fmsx.nix rename to pkgs/applications/emulators/libretro/cores/fmsx.nix diff --git a/pkgs/applications/emulators/retroarch/cores/freeintv.nix b/pkgs/applications/emulators/libretro/cores/freeintv.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/freeintv.nix rename to pkgs/applications/emulators/libretro/cores/freeintv.nix diff --git a/pkgs/applications/emulators/retroarch/cores/fuse.nix b/pkgs/applications/emulators/libretro/cores/fuse.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/fuse.nix rename to pkgs/applications/emulators/libretro/cores/fuse.nix diff --git a/pkgs/applications/emulators/retroarch/cores/gambatte.nix b/pkgs/applications/emulators/libretro/cores/gambatte.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/gambatte.nix rename to pkgs/applications/emulators/libretro/cores/gambatte.nix diff --git a/pkgs/applications/emulators/retroarch/cores/genesis-plus-gx.nix b/pkgs/applications/emulators/libretro/cores/genesis-plus-gx.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/genesis-plus-gx.nix rename to pkgs/applications/emulators/libretro/cores/genesis-plus-gx.nix diff --git a/pkgs/applications/emulators/retroarch/cores/gpsp.nix b/pkgs/applications/emulators/libretro/cores/gpsp.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/gpsp.nix rename to pkgs/applications/emulators/libretro/cores/gpsp.nix diff --git a/pkgs/applications/emulators/retroarch/cores/gw.nix b/pkgs/applications/emulators/libretro/cores/gw.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/gw.nix rename to pkgs/applications/emulators/libretro/cores/gw.nix diff --git a/pkgs/applications/emulators/retroarch/cores/handy.nix b/pkgs/applications/emulators/libretro/cores/handy.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/handy.nix rename to pkgs/applications/emulators/libretro/cores/handy.nix diff --git a/pkgs/applications/emulators/retroarch/cores/hatari.nix b/pkgs/applications/emulators/libretro/cores/hatari.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/hatari.nix rename to pkgs/applications/emulators/libretro/cores/hatari.nix diff --git a/pkgs/applications/emulators/retroarch/cores/mame.nix b/pkgs/applications/emulators/libretro/cores/mame.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/mame.nix rename to pkgs/applications/emulators/libretro/cores/mame.nix diff --git a/pkgs/applications/emulators/retroarch/cores/mame2000.nix b/pkgs/applications/emulators/libretro/cores/mame2000.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/mame2000.nix rename to pkgs/applications/emulators/libretro/cores/mame2000.nix diff --git a/pkgs/applications/emulators/retroarch/cores/mame2003-plus.nix b/pkgs/applications/emulators/libretro/cores/mame2003-plus.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/mame2003-plus.nix rename to pkgs/applications/emulators/libretro/cores/mame2003-plus.nix diff --git a/pkgs/applications/emulators/retroarch/cores/mame2003.nix b/pkgs/applications/emulators/libretro/cores/mame2003.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/mame2003.nix rename to pkgs/applications/emulators/libretro/cores/mame2003.nix diff --git a/pkgs/applications/emulators/retroarch/cores/mame2010.nix b/pkgs/applications/emulators/libretro/cores/mame2010.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/mame2010.nix rename to pkgs/applications/emulators/libretro/cores/mame2010.nix diff --git a/pkgs/applications/emulators/retroarch/cores/mame2015.nix b/pkgs/applications/emulators/libretro/cores/mame2015.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/mame2015.nix rename to pkgs/applications/emulators/libretro/cores/mame2015.nix diff --git a/pkgs/applications/emulators/retroarch/cores/mame2016.nix b/pkgs/applications/emulators/libretro/cores/mame2016.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/mame2016.nix rename to pkgs/applications/emulators/libretro/cores/mame2016.nix diff --git a/pkgs/applications/emulators/retroarch/cores/melonds.nix b/pkgs/applications/emulators/libretro/cores/melonds.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/melonds.nix rename to pkgs/applications/emulators/libretro/cores/melonds.nix diff --git a/pkgs/applications/emulators/retroarch/cores/mesen-s.nix b/pkgs/applications/emulators/libretro/cores/mesen-s.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/mesen-s.nix rename to pkgs/applications/emulators/libretro/cores/mesen-s.nix diff --git a/pkgs/applications/emulators/retroarch/cores/mesen.nix b/pkgs/applications/emulators/libretro/cores/mesen.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/mesen.nix rename to pkgs/applications/emulators/libretro/cores/mesen.nix diff --git a/pkgs/applications/emulators/retroarch/cores/meteor.nix b/pkgs/applications/emulators/libretro/cores/meteor.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/meteor.nix rename to pkgs/applications/emulators/libretro/cores/meteor.nix diff --git a/pkgs/applications/emulators/retroarch/cores/mgba.nix b/pkgs/applications/emulators/libretro/cores/mgba.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/mgba.nix rename to pkgs/applications/emulators/libretro/cores/mgba.nix diff --git a/pkgs/applications/emulators/retroarch/cores/mrboom.nix b/pkgs/applications/emulators/libretro/cores/mrboom.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/mrboom.nix rename to pkgs/applications/emulators/libretro/cores/mrboom.nix diff --git a/pkgs/applications/emulators/retroarch/cores/mupen64plus.nix b/pkgs/applications/emulators/libretro/cores/mupen64plus.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/mupen64plus.nix rename to pkgs/applications/emulators/libretro/cores/mupen64plus.nix diff --git a/pkgs/applications/emulators/retroarch/cores/neocd.nix b/pkgs/applications/emulators/libretro/cores/neocd.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/neocd.nix rename to pkgs/applications/emulators/libretro/cores/neocd.nix diff --git a/pkgs/applications/emulators/retroarch/cores/nestopia.nix b/pkgs/applications/emulators/libretro/cores/nestopia.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/nestopia.nix rename to pkgs/applications/emulators/libretro/cores/nestopia.nix diff --git a/pkgs/applications/emulators/retroarch/cores/np2kai.nix b/pkgs/applications/emulators/libretro/cores/np2kai.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/np2kai.nix rename to pkgs/applications/emulators/libretro/cores/np2kai.nix diff --git a/pkgs/applications/emulators/retroarch/cores/nxengine.nix b/pkgs/applications/emulators/libretro/cores/nxengine.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/nxengine.nix rename to pkgs/applications/emulators/libretro/cores/nxengine.nix diff --git a/pkgs/applications/emulators/retroarch/cores/o2em.nix b/pkgs/applications/emulators/libretro/cores/o2em.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/o2em.nix rename to pkgs/applications/emulators/libretro/cores/o2em.nix diff --git a/pkgs/applications/emulators/retroarch/cores/opera.nix b/pkgs/applications/emulators/libretro/cores/opera.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/opera.nix rename to pkgs/applications/emulators/libretro/cores/opera.nix diff --git a/pkgs/applications/emulators/retroarch/cores/parallel-n64.nix b/pkgs/applications/emulators/libretro/cores/parallel-n64.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/parallel-n64.nix rename to pkgs/applications/emulators/libretro/cores/parallel-n64.nix diff --git a/pkgs/applications/emulators/retroarch/cores/patches/mame2015-python311.patch b/pkgs/applications/emulators/libretro/cores/patches/mame2015-python311.patch similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/patches/mame2015-python311.patch rename to pkgs/applications/emulators/libretro/cores/patches/mame2015-python311.patch diff --git a/pkgs/applications/emulators/retroarch/cores/patches/mame2016-python311.patch b/pkgs/applications/emulators/libretro/cores/patches/mame2016-python311.patch similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/patches/mame2016-python311.patch rename to pkgs/applications/emulators/libretro/cores/patches/mame2016-python311.patch diff --git a/pkgs/applications/emulators/retroarch/cores/pcsx-rearmed.nix b/pkgs/applications/emulators/libretro/cores/pcsx-rearmed.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/pcsx-rearmed.nix rename to pkgs/applications/emulators/libretro/cores/pcsx-rearmed.nix diff --git a/pkgs/applications/emulators/retroarch/cores/pcsx2.nix b/pkgs/applications/emulators/libretro/cores/pcsx2.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/pcsx2.nix rename to pkgs/applications/emulators/libretro/cores/pcsx2.nix diff --git a/pkgs/applications/emulators/retroarch/cores/picodrive.nix b/pkgs/applications/emulators/libretro/cores/picodrive.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/picodrive.nix rename to pkgs/applications/emulators/libretro/cores/picodrive.nix diff --git a/pkgs/applications/emulators/retroarch/cores/play.nix b/pkgs/applications/emulators/libretro/cores/play.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/play.nix rename to pkgs/applications/emulators/libretro/cores/play.nix diff --git a/pkgs/applications/emulators/retroarch/cores/ppsspp.nix b/pkgs/applications/emulators/libretro/cores/ppsspp.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/ppsspp.nix rename to pkgs/applications/emulators/libretro/cores/ppsspp.nix diff --git a/pkgs/applications/emulators/retroarch/cores/prboom.nix b/pkgs/applications/emulators/libretro/cores/prboom.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/prboom.nix rename to pkgs/applications/emulators/libretro/cores/prboom.nix diff --git a/pkgs/applications/emulators/retroarch/cores/prosystem.nix b/pkgs/applications/emulators/libretro/cores/prosystem.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/prosystem.nix rename to pkgs/applications/emulators/libretro/cores/prosystem.nix diff --git a/pkgs/applications/emulators/retroarch/cores/puae.nix b/pkgs/applications/emulators/libretro/cores/puae.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/puae.nix rename to pkgs/applications/emulators/libretro/cores/puae.nix diff --git a/pkgs/applications/emulators/retroarch/cores/quicknes.nix b/pkgs/applications/emulators/libretro/cores/quicknes.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/quicknes.nix rename to pkgs/applications/emulators/libretro/cores/quicknes.nix diff --git a/pkgs/applications/emulators/retroarch/cores/same_cdi.nix b/pkgs/applications/emulators/libretro/cores/same_cdi.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/same_cdi.nix rename to pkgs/applications/emulators/libretro/cores/same_cdi.nix diff --git a/pkgs/applications/emulators/retroarch/cores/sameboy.nix b/pkgs/applications/emulators/libretro/cores/sameboy.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/sameboy.nix rename to pkgs/applications/emulators/libretro/cores/sameboy.nix diff --git a/pkgs/applications/emulators/retroarch/cores/scummvm.nix b/pkgs/applications/emulators/libretro/cores/scummvm.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/scummvm.nix rename to pkgs/applications/emulators/libretro/cores/scummvm.nix diff --git a/pkgs/applications/emulators/retroarch/cores/smsplus-gx.nix b/pkgs/applications/emulators/libretro/cores/smsplus-gx.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/smsplus-gx.nix rename to pkgs/applications/emulators/libretro/cores/smsplus-gx.nix diff --git a/pkgs/applications/emulators/retroarch/cores/snes9x.nix b/pkgs/applications/emulators/libretro/cores/snes9x.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/snes9x.nix rename to pkgs/applications/emulators/libretro/cores/snes9x.nix diff --git a/pkgs/applications/emulators/retroarch/cores/snes9x2002.nix b/pkgs/applications/emulators/libretro/cores/snes9x2002.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/snes9x2002.nix rename to pkgs/applications/emulators/libretro/cores/snes9x2002.nix diff --git a/pkgs/applications/emulators/retroarch/cores/snes9x2005.nix b/pkgs/applications/emulators/libretro/cores/snes9x2005.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/snes9x2005.nix rename to pkgs/applications/emulators/libretro/cores/snes9x2005.nix diff --git a/pkgs/applications/emulators/retroarch/cores/snes9x2010.nix b/pkgs/applications/emulators/libretro/cores/snes9x2010.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/snes9x2010.nix rename to pkgs/applications/emulators/libretro/cores/snes9x2010.nix diff --git a/pkgs/applications/emulators/retroarch/cores/stella.nix b/pkgs/applications/emulators/libretro/cores/stella.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/stella.nix rename to pkgs/applications/emulators/libretro/cores/stella.nix diff --git a/pkgs/applications/emulators/retroarch/cores/stella2014.nix b/pkgs/applications/emulators/libretro/cores/stella2014.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/stella2014.nix rename to pkgs/applications/emulators/libretro/cores/stella2014.nix diff --git a/pkgs/applications/emulators/retroarch/cores/swanstation.nix b/pkgs/applications/emulators/libretro/cores/swanstation.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/swanstation.nix rename to pkgs/applications/emulators/libretro/cores/swanstation.nix diff --git a/pkgs/applications/emulators/retroarch/cores/tgbdual.nix b/pkgs/applications/emulators/libretro/cores/tgbdual.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/tgbdual.nix rename to pkgs/applications/emulators/libretro/cores/tgbdual.nix diff --git a/pkgs/applications/emulators/retroarch/cores/thepowdertoy.nix b/pkgs/applications/emulators/libretro/cores/thepowdertoy.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/thepowdertoy.nix rename to pkgs/applications/emulators/libretro/cores/thepowdertoy.nix diff --git a/pkgs/applications/emulators/retroarch/cores/tic80.nix b/pkgs/applications/emulators/libretro/cores/tic80.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/tic80.nix rename to pkgs/applications/emulators/libretro/cores/tic80.nix diff --git a/pkgs/applications/emulators/retroarch/cores/twenty-fortyeight.nix b/pkgs/applications/emulators/libretro/cores/twenty-fortyeight.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/twenty-fortyeight.nix rename to pkgs/applications/emulators/libretro/cores/twenty-fortyeight.nix diff --git a/pkgs/applications/emulators/retroarch/cores/vba-m.nix b/pkgs/applications/emulators/libretro/cores/vba-m.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/vba-m.nix rename to pkgs/applications/emulators/libretro/cores/vba-m.nix diff --git a/pkgs/applications/emulators/retroarch/cores/vba-next.nix b/pkgs/applications/emulators/libretro/cores/vba-next.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/vba-next.nix rename to pkgs/applications/emulators/libretro/cores/vba-next.nix diff --git a/pkgs/applications/emulators/retroarch/cores/vecx.nix b/pkgs/applications/emulators/libretro/cores/vecx.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/vecx.nix rename to pkgs/applications/emulators/libretro/cores/vecx.nix diff --git a/pkgs/applications/emulators/retroarch/cores/virtualjaguar.nix b/pkgs/applications/emulators/libretro/cores/virtualjaguar.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/virtualjaguar.nix rename to pkgs/applications/emulators/libretro/cores/virtualjaguar.nix diff --git a/pkgs/applications/emulators/retroarch/cores/yabause.nix b/pkgs/applications/emulators/libretro/cores/yabause.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/cores/yabause.nix rename to pkgs/applications/emulators/libretro/cores/yabause.nix diff --git a/pkgs/applications/emulators/retroarch/cores.nix b/pkgs/applications/emulators/libretro/default.nix similarity index 99% rename from pkgs/applications/emulators/retroarch/cores.nix rename to pkgs/applications/emulators/libretro/default.nix index 61097042e33f..6db990141d88 100644 --- a/pkgs/applications/emulators/retroarch/cores.nix +++ b/pkgs/applications/emulators/libretro/default.nix @@ -1,7 +1,6 @@ { lib, newScope, - fetchFromGitHub, }: lib.makeScope newScope (self: { diff --git a/pkgs/applications/emulators/retroarch/mkLibretroCore.nix b/pkgs/applications/emulators/libretro/mkLibretroCore.nix similarity index 93% rename from pkgs/applications/emulators/retroarch/mkLibretroCore.nix rename to pkgs/applications/emulators/libretro/mkLibretroCore.nix index 42124cb23609..d8fb8879e7f5 100644 --- a/pkgs/applications/emulators/retroarch/mkLibretroCore.nix +++ b/pkgs/applications/emulators/libretro/mkLibretroCore.nix @@ -3,7 +3,7 @@ lib, stdenv, makeWrapper, - retroarchBare, + retroarch-bare, unstableGitUpdater, zlib, # Params @@ -28,7 +28,7 @@ let "lib" "stdenv" "makeWrapper" - "retroarchBare" + "retroarch-bare" "unstableGitUpdater" "zlib" @@ -73,7 +73,7 @@ stdenv.mkDerivation ( runHook preInstall install -Dt ${coreDir} ${coreFilename} - makeWrapper ${retroarchBare}/bin/retroarch $out/bin/${mainProgram} \ + makeWrapper ${retroarch-bare}/bin/retroarch $out/bin/${mainProgram} \ --add-flags "-L ${coreDir}/${coreFilename}" runHook postInstall @@ -90,7 +90,7 @@ stdenv.mkDerivation ( with lib; { inherit mainProgram; - inherit (retroarchBare.meta) platforms; + inherit (retroarch-bare.meta) platforms; homepage = "https://www.libretro.com/"; maintainers = with maintainers; teams.libretro.members; } diff --git a/pkgs/applications/emulators/retroarch/default.nix b/pkgs/applications/emulators/retroarch/default.nix deleted file mode 100644 index 378f514c95eb..000000000000 --- a/pkgs/applications/emulators/retroarch/default.nix +++ /dev/null @@ -1,148 +0,0 @@ -{ lib -, stdenv -, nixosTests -, enableNvidiaCgToolkit ? false -, withGamemode ? stdenv.hostPlatform.isLinux -, withVulkan ? stdenv.hostPlatform.isLinux -, withWayland ? stdenv.hostPlatform.isLinux -, alsa-lib -, dbus -, fetchFromGitHub -, ffmpeg -, flac -, freetype -, gamemode -, gitUpdater -, libdrm -, libGL -, libGLU -, libpulseaudio -, libv4l -, libX11 -, libXdmcp -, libXext -, libxkbcommon -, libxml2 -, libXxf86vm -, makeWrapper -, mbedtls_2 -, mesa -, nvidia_cg_toolkit -, pkg-config -, python3 -, qtbase -, SDL2 -, spirv-tools -, udev -, vulkan-loader -, wayland -, wayland-scanner -, wrapQtAppsHook -, zlib -}: - -let - runtimeLibs = - lib.optional withVulkan vulkan-loader ++ - lib.optional withGamemode (lib.getLib gamemode); -in -stdenv.mkDerivation rec { - pname = "retroarch-bare"; - version = "1.19.1"; - - src = fetchFromGitHub { - owner = "libretro"; - repo = "RetroArch"; - hash = "sha256-NVe5dhH3w7RL1C7Z736L5fdi/+aO+Ah9Dpa4u4kn0JY="; - rev = "v${version}"; - }; - - nativeBuildInputs = [ pkg-config wrapQtAppsHook ] ++ - lib.optional withWayland wayland ++ - lib.optional (runtimeLibs != [ ]) makeWrapper; - - buildInputs = [ - ffmpeg - flac - freetype - libGL - libGLU - libxml2 - mbedtls_2 - python3 - qtbase - SDL2 - spirv-tools - zlib - ] ++ - lib.optional enableNvidiaCgToolkit nvidia_cg_toolkit ++ - lib.optional withVulkan vulkan-loader ++ - lib.optionals withWayland [wayland wayland-scanner] ++ - lib.optionals stdenv.hostPlatform.isLinux [ - alsa-lib - dbus - libX11 - libXdmcp - libXext - libXxf86vm - libdrm - libpulseaudio - libv4l - libxkbcommon - mesa - udev - ]; - - enableParallelBuilding = true; - - configureFlags = [ - "--disable-update_cores" - "--disable-builtinmbedtls" - "--enable-systemmbedtls" - "--disable-builtinzlib" - "--disable-builtinflac" - "--disable-update_assets" - "--disable-update_core_info" - ] ++ - lib.optionals stdenv.hostPlatform.isLinux [ - "--enable-dbus" - "--enable-egl" - "--enable-kms" - ]; - - postInstall = lib.optionalString (runtimeLibs != [ ]) '' - wrapProgram $out/bin/retroarch \ - --prefix LD_LIBRARY_PATH ':' ${lib.makeLibraryPath runtimeLibs} - '' + - lib.optionalString enableNvidiaCgToolkit '' - wrapProgram $out/bin/retroarch-cg2glsl \ - --prefix PATH ':' ${lib.makeBinPath [ nvidia_cg_toolkit ]} - ''; - - preFixup = lib.optionalString (!enableNvidiaCgToolkit) '' - rm $out/bin/retroarch-cg2glsl - rm $out/share/man/man6/retroarch-cg2glsl.6* - ''; - - passthru = { - tests = nixosTests.retroarch; - updateScript = gitUpdater { - rev-prefix = "v"; - }; - }; - - meta = with lib; { - homepage = "https://libretro.com"; - description = "Multi-platform emulator frontend for libretro cores"; - license = licenses.gpl3Plus; - platforms = platforms.unix; - changelog = "https://github.com/libretro/RetroArch/blob/v${version}/CHANGES.md"; - maintainers = with maintainers; teams.libretro.members ++ [ matthewbauer kolbycrouch ]; - mainProgram = "retroarch"; - # If you want to (re)-add support for macOS, see: - # https://docs.libretro.com/development/retroarch/compilation/osx/ - # and - # https://github.com/libretro/RetroArch/blob/71eb74d256cb4dc5b8b43991aec74980547c5069/.gitlab-ci.yml#L330 - broken = stdenv.hostPlatform.isDarwin; - }; -} diff --git a/pkgs/applications/emulators/retroarch/wrapper.nix b/pkgs/applications/emulators/retroarch/wrapper.nix deleted file mode 100644 index ab1ffb2bb00c..000000000000 --- a/pkgs/applications/emulators/retroarch/wrapper.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib -, makeWrapper -, retroarch -, symlinkJoin -, runCommand -, cores ? [ ] -, settings ? { } -}: - -let - settingsPath = runCommand "declarative-retroarch.cfg" - { - value = lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: "${n} = \"${v}\"") settings); - passAsFile = [ "value" ]; - } - '' - cp "$valuePath" "$out" - ''; - - # All cores should be located in the same path after symlinkJoin, - # but let's be safe here - coresPath = lib.lists.unique (map (c: c.libretroCore) cores); - wrapperArgs = lib.strings.escapeShellArgs ( - (lib.lists.flatten (map (p: [ "--add-flags" "-L ${placeholder "out" + p}" ]) coresPath)) - ++ [ "--add-flags" "--appendconfig=${settingsPath}" ] - ); -in -symlinkJoin { - name = "retroarch-with-cores-${lib.getVersion retroarch}"; - - paths = [ retroarch ] ++ cores; - - nativeBuildInputs = [ makeWrapper ]; - - passthru = { - inherit cores; - unwrapped = retroarch; - }; - - postBuild = '' - # remove core specific binaries - find $out/bin -name 'retroarch-*' -type l -delete - - # wrap binary to load cores from the proper location(s) - wrapProgram $out/bin/retroarch ${wrapperArgs} - ''; - - meta = with retroarch.meta; { - inherit changelog description homepage license maintainers platforms; - longDescription = '' - RetroArch is the reference frontend for the libretro API. - '' - + lib.optionalString (cores != [ ]) '' - The following cores are included: ${lib.concatStringsSep ", " (map (c: c.core) cores)} - ''; - mainProgram = "retroarch"; - }; -} diff --git a/pkgs/applications/emulators/retroarch/kodi-advanced-launchers.nix b/pkgs/by-name/ko/kodi-retroarch-advanced-launchers/package.nix similarity index 77% rename from pkgs/applications/emulators/retroarch/kodi-advanced-launchers.nix rename to pkgs/by-name/ko/kodi-retroarch-advanced-launchers/package.nix index 9d83c46396c3..25046e03b9e7 100644 --- a/pkgs/applications/emulators/retroarch/kodi-advanced-launchers.nix +++ b/pkgs/by-name/ko/kodi-retroarch-advanced-launchers/package.nix @@ -1,16 +1,23 @@ -{ stdenv, pkgs, lib, runtimeShell, cores ? [ ] }: +{ + stdenv, + pkgs, + lib, + runtimeShell, + cores ? [ ], +}: let - script = exec: '' #!${runtimeShell} nohup sh -c "pkill -SIGTSTP kodi" & # https://forum.kodi.tv/showthread.php?tid=185074&pid=1622750#pid1622750 nohup sh -c "sleep 10 && ${exec} '$@' -f;pkill -SIGCONT kodi" ''; - scriptSh = exec: pkgs.writeScript ("kodi-"+exec.name) (script exec.path); - execs = map (core: rec { name = core.core; path = core+"/bin/retroarch-"+name;}) cores; - + scriptSh = exec: pkgs.writeScript ("kodi-" + exec.name) (script exec.path); + execs = map (core: rec { + name = core.core; + path = core + "/bin/retroarch-" + name; + }) cores; in stdenv.mkDerivation { diff --git a/pkgs/applications/emulators/retroarch/libretro-core-info.nix b/pkgs/by-name/li/libretro-core-info/package.nix similarity index 93% rename from pkgs/applications/emulators/retroarch/libretro-core-info.nix rename to pkgs/by-name/li/libretro-core-info/package.nix index 3e11deb4b40f..cf9e84832c73 100644 --- a/pkgs/applications/emulators/retroarch/libretro-core-info.nix +++ b/pkgs/by-name/li/libretro-core-info/package.nix @@ -1,7 +1,8 @@ -{ lib -, stdenvNoCC -, fetchFromGitHub -, gitUpdater +{ + lib, + stdenvNoCC, + fetchFromGitHub, + gitUpdater, }: stdenvNoCC.mkDerivation rec { diff --git a/pkgs/applications/emulators/retroarch/retroarch-assets.nix b/pkgs/by-name/re/retroarch-assets/package.nix similarity index 92% rename from pkgs/applications/emulators/retroarch/retroarch-assets.nix rename to pkgs/by-name/re/retroarch-assets/package.nix index 5b0dc2f882f2..dd48b0f49381 100644 --- a/pkgs/applications/emulators/retroarch/retroarch-assets.nix +++ b/pkgs/by-name/re/retroarch-assets/package.nix @@ -1,7 +1,8 @@ -{ lib -, stdenvNoCC -, fetchFromGitHub -, unstableGitUpdater +{ + lib, + stdenvNoCC, + fetchFromGitHub, + unstableGitUpdater, }: stdenvNoCC.mkDerivation { diff --git a/pkgs/by-name/re/retroarch-bare/package.nix b/pkgs/by-name/re/retroarch-bare/package.nix new file mode 100644 index 000000000000..c34dd7e92469 --- /dev/null +++ b/pkgs/by-name/re/retroarch-bare/package.nix @@ -0,0 +1,192 @@ +{ + lib, + stdenv, + # deps + alsa-lib, + dbus, + fetchFromGitHub, + ffmpeg, + flac, + freetype, + gamemode, + gitUpdater, + libdrm, + libGL, + libGLU, + libpulseaudio, + libv4l, + libX11, + libXdmcp, + libXext, + libxkbcommon, + libxml2, + libXxf86vm, + makeBinaryWrapper, + mbedtls_2, + mesa, + nixosTests, + nvidia_cg_toolkit, + pkg-config, + python3, + qt5, + SDL2, + spirv-tools, + udev, + vulkan-loader, + wayland, + wayland-scanner, + zlib, + # wrapper deps + libretro, + libretro-core-info, + retroarch-assets, + retroarch-bare, + retroarch-joypad-autoconfig, + runCommand, + symlinkJoin, + # params + enableNvidiaCgToolkit ? false, + withGamemode ? stdenv.hostPlatform.isLinux, + withVulkan ? stdenv.hostPlatform.isLinux, + withWayland ? stdenv.hostPlatform.isLinux, +}: + +let + runtimeLibs = + lib.optional withVulkan vulkan-loader + ++ lib.optional withGamemode (lib.getLib gamemode); +in +stdenv.mkDerivation rec { + pname = "retroarch-bare"; + version = "1.19.1"; + + src = fetchFromGitHub { + owner = "libretro"; + repo = "RetroArch"; + hash = "sha256-NVe5dhH3w7RL1C7Z736L5fdi/+aO+Ah9Dpa4u4kn0JY="; + rev = "v${version}"; + }; + + nativeBuildInputs = [ + pkg-config + qt5.wrapQtAppsHook + ] ++ lib.optional withWayland wayland ++ lib.optional (runtimeLibs != [ ]) makeBinaryWrapper; + + buildInputs = + [ + ffmpeg + flac + freetype + libGL + libGLU + libxml2 + mbedtls_2 + python3 + qt5.qtbase + SDL2 + spirv-tools + zlib + ] + ++ lib.optional enableNvidiaCgToolkit nvidia_cg_toolkit + ++ lib.optional withVulkan vulkan-loader + ++ lib.optionals withWayland [ + wayland + wayland-scanner + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + alsa-lib + dbus + libX11 + libXdmcp + libXext + libXxf86vm + libdrm + libpulseaudio + libv4l + libxkbcommon + mesa + udev + ]; + + enableParallelBuilding = true; + + configureFlags = + [ + "--disable-update_cores" + "--disable-builtinmbedtls" + "--enable-systemmbedtls" + "--disable-builtinzlib" + "--disable-builtinflac" + "--disable-update_assets" + "--disable-update_core_info" + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + "--enable-dbus" + "--enable-egl" + "--enable-kms" + ]; + + postInstall = + lib.optionalString (runtimeLibs != [ ]) '' + wrapProgram $out/bin/retroarch \ + --prefix LD_LIBRARY_PATH ':' ${lib.makeLibraryPath runtimeLibs} + '' + + lib.optionalString enableNvidiaCgToolkit '' + wrapProgram $out/bin/retroarch-cg2glsl \ + --prefix PATH ':' ${lib.makeBinPath [ nvidia_cg_toolkit ]} + ''; + + preFixup = lib.optionalString (!enableNvidiaCgToolkit) '' + rm $out/bin/retroarch-cg2glsl + rm $out/share/man/man6/retroarch-cg2glsl.6* + ''; + + passthru = { + tests = nixosTests.retroarch; + updateScript = gitUpdater { + rev-prefix = "v"; + }; + wrapper = + { + cores ? [ ], + settings ? { }, + }: + import ./wrapper.nix { + inherit + lib + libretro + makeBinaryWrapper + retroarch-bare + runCommand + symlinkJoin + cores + ; + settings = { + assets_directory = "${retroarch-assets}/share/retroarch/assets"; + joypad_autoconfig_dir = "${retroarch-joypad-autoconfig}/share/libretro/autoconfig"; + libretro_info_path = "${libretro-core-info}/share/retroarch/cores"; + } // settings; + }; + }; + + meta = { + homepage = "https://libretro.com"; + description = "Multi-platform emulator frontend for libretro cores"; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.unix; + changelog = "https://github.com/libretro/RetroArch/blob/v${version}/CHANGES.md"; + maintainers = + with lib.maintainers; + [ + matthewbauer + kolbycrouch + ] + ++ lib.teams.libretro.members; + mainProgram = "retroarch"; + # If you want to (re)-add support for macOS, see: + # https://docs.libretro.com/development/retroarch/compilation/osx/ + # and + # https://github.com/libretro/RetroArch/blob/71eb74d256cb4dc5b8b43991aec74980547c5069/.gitlab-ci.yml#L330 + broken = stdenv.hostPlatform.isDarwin; + }; +} diff --git a/pkgs/by-name/re/retroarch-bare/wrapper.nix b/pkgs/by-name/re/retroarch-bare/wrapper.nix new file mode 100644 index 000000000000..f6c60a2a7374 --- /dev/null +++ b/pkgs/by-name/re/retroarch-bare/wrapper.nix @@ -0,0 +1,79 @@ +{ + lib, + libretro, + makeBinaryWrapper, + retroarch-bare, + runCommand, + symlinkJoin, + cores ? [ ], + settings ? { }, +}: + +let + settingsPath = + runCommand "declarative-retroarch.cfg" + { + value = lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: "${n} = \"${v}\"") settings); + passAsFile = [ "value" ]; + } + '' + cp "$valuePath" "$out" + ''; + + # All cores should be located in the same path after symlinkJoin, + # but let's be safe here + coresPath = lib.lists.unique (map (c: c.libretroCore) cores); + wrapperArgs = lib.strings.escapeShellArgs ( + (lib.lists.flatten ( + map (p: [ + "--add-flags" + "-L ${placeholder "out" + p}" + ]) coresPath + )) + ++ [ + "--add-flags" + "--appendconfig=${settingsPath}" + ] + ); +in +symlinkJoin { + name = "retroarch-with-cores-${lib.getVersion retroarch-bare}"; + + paths = [ retroarch-bare ] ++ cores; + + nativeBuildInputs = [ makeBinaryWrapper ]; + + passthru = { + inherit cores; + unwrapped = retroarch-bare; + withCores = coreFun: retroarch-bare.wrapper { cores = (coreFun libretro); }; + }; + + postBuild = '' + # remove core specific binaries + find $out/bin -name 'retroarch-*' -type l -delete + + # wrap binary to load cores from the proper location(s) + wrapProgram $out/bin/retroarch ${wrapperArgs} + ''; + + meta = { + inherit (retroarch-bare.meta) + changelog + description + homepage + license + mainProgram + maintainers + platforms + ; + + longDescription = + '' + RetroArch is the reference frontend for the libretro API. + '' + + lib.optionalString (cores != [ ]) '' + The following cores are included: ${lib.concatStringsSep ", " (map (c: c.core) cores)}. + ''; + }; +} diff --git a/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix b/pkgs/by-name/re/retroarch-joypad-autoconfig/package.nix similarity index 91% rename from pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix rename to pkgs/by-name/re/retroarch-joypad-autoconfig/package.nix index 36bc02c43f7d..4f30dbf97d8b 100644 --- a/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix +++ b/pkgs/by-name/re/retroarch-joypad-autoconfig/package.nix @@ -1,7 +1,8 @@ -{ lib -, stdenvNoCC -, fetchFromGitHub -, gitUpdater +{ + lib, + stdenvNoCC, + fetchFromGitHub, + gitUpdater, }: stdenvNoCC.mkDerivation rec { diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 5c595135849a..708020eac757 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1075,6 +1075,8 @@ mapAliases { relibc = throw "relibc has been removed due to lack of maintenance"; # Added 2024-09-02 replay-sorcery = throw "replay-sorcery has been removed as it is unmaintained upstream. Consider using gpu-screen-recorder or obs-studio instead."; # Added 2024-07-13 restinio_0_6 = throw "restinio_0_6 has been removed from nixpkgs as it's not needed by downstream packages"; # Added 2024-07-04 + retroarchBare = retroarch-bare; # Added 2024-11-23 + retroarchFull = retroarch-full; # Added 2024-11-23 retroshare06 = retroshare; rigsofrods = rigsofrods-bin; # Added 2023-03-22 ring-daemon = throw "'ring-daemon' has been renamed to/replaced by 'jami-daemon'"; # Converted to throw 2024-10-17 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 882196e53a13..4d0295ead3d6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1454,38 +1454,32 @@ with pkgs; ### APPLICATIONS/EMULATORS/RETROARCH - retroarchBare = qt5.callPackage ../applications/emulators/retroarch { }; + libretro = recurseIntoAttrs (callPackage ../applications/emulators/libretro { }); - retroarchFull = retroarch.override { - cores = builtins.filter - # Remove cores not supported on platform - (c: c ? libretroCore && (lib.meta.availableOn stdenv.hostPlatform c)) - (builtins.attrValues libretro); - }; + retroarch = wrapRetroArch { }; - wrapRetroArch = { retroarch, settings ? {} }: - callPackage ../applications/emulators/retroarch/wrapper.nix - { inherit retroarch settings; }; + # includes only cores for platform with free licenses + retroarch-free = retroarch.withCores ( + cores: + lib.filter + (c: + (c ? libretroCore) + && (lib.meta.availableOn stdenv.hostPlatform c) + && (!c.meta.unfree)) + (lib.attrValues cores) + ); - retroarch = wrapRetroArch { - retroarch = retroarchBare; - settings = { - assets_directory = "${retroarch-assets}/share/retroarch/assets"; - joypad_autoconfig_dir = "${retroarch-joypad-autoconfig}/share/libretro/autoconfig"; - libretro_info_path = "${libretro-core-info}/share/retroarch/cores"; - }; - }; + # includes all cores for platform (including ones with non-free licenses) + retroarch-full = retroarch.withCores ( + cores: + lib.filter + (c: + (c ? libretroCore) + && (lib.meta.availableOn stdenv.hostPlatform c)) + (lib.attrValues cores) + ); - retroarch-assets = callPackage ../applications/emulators/retroarch/retroarch-assets.nix { }; - - retroarch-joypad-autoconfig = callPackage ../applications/emulators/retroarch/retroarch-joypad-autoconfig.nix { }; - - libretro = recurseIntoAttrs (callPackage ../applications/emulators/retroarch/cores.nix { }); - - libretro-core-info = callPackage ../applications/emulators/retroarch/libretro-core-info.nix { }; - - kodi-retroarch-advanced-launchers = - callPackage ../applications/emulators/retroarch/kodi-advanced-launchers.nix { }; + wrapRetroArch = retroarch-bare.wrapper; # Aliases kept here because they are easier to use x16-emulator = x16.emulator;