From e34cd11e1dce71f9f5696e261ffdd6aafb44d804 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sat, 23 Nov 2024 10:39:15 +0000 Subject: [PATCH 01/17] libretro-core-info: move to pkgs/by-name, format with nixfmt-rfc-style --- pkgs/applications/emulators/retroarch/cores.nix | 1 - .../li/libretro-core-info/package.nix} | 9 +++++---- pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 5 insertions(+), 7 deletions(-) rename pkgs/{applications/emulators/retroarch/libretro-core-info.nix => by-name/li/libretro-core-info/package.nix} (93%) diff --git a/pkgs/applications/emulators/retroarch/cores.nix b/pkgs/applications/emulators/retroarch/cores.nix index 61097042e33f..6db990141d88 100644 --- a/pkgs/applications/emulators/retroarch/cores.nix +++ b/pkgs/applications/emulators/retroarch/cores.nix @@ -1,7 +1,6 @@ { lib, newScope, - fetchFromGitHub, }: lib.makeScope newScope (self: { 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7543000e7961..e776a47db688 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1482,8 +1482,6 @@ with pkgs; 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 { }; From 1a6115afb56189cc573bfbb2b1c9ed87551529ea Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sat, 23 Nov 2024 10:40:53 +0000 Subject: [PATCH 02/17] retroarch-assets: move to pkgs/by-name, format with nixfmt-rfc-style --- .../re/retroarch-assets/package.nix} | 9 +++++---- pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 5 insertions(+), 6 deletions(-) rename pkgs/{applications/emulators/retroarch/retroarch-assets.nix => by-name/re/retroarch-assets/package.nix} (92%) 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e776a47db688..70de999c1ba1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1476,8 +1476,6 @@ with pkgs; }; }; - 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 { }); From 859926a5b57eb00669a344b6a59c56853cdd2d87 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sat, 23 Nov 2024 10:42:12 +0000 Subject: [PATCH 03/17] retroarch-joypad-autoconfig: move to pkgs/by-name, format by nixfmt-rfc-style --- .../re/retroarch-joypad-autoconfig/package.nix} | 9 +++++---- pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 5 insertions(+), 6 deletions(-) rename pkgs/{applications/emulators/retroarch/retroarch-joypad-autoconfig.nix => by-name/re/retroarch-joypad-autoconfig/package.nix} (91%) 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/all-packages.nix b/pkgs/top-level/all-packages.nix index 70de999c1ba1..509453bdf9a1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1476,8 +1476,6 @@ with pkgs; }; }; - retroarch-joypad-autoconfig = callPackage ../applications/emulators/retroarch/retroarch-joypad-autoconfig.nix { }; - libretro = recurseIntoAttrs (callPackage ../applications/emulators/retroarch/cores.nix { }); kodi-retroarch-advanced-launchers = From b65ca14edeb3375f2ed97b3217c5952d71b161da Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sat, 23 Nov 2024 10:44:35 +0000 Subject: [PATCH 04/17] kodi-retroarch-advanced-launchers: move to pkgs/by-name, format with nixfmt-rfc-style --- .../package.nix} | 17 ++++++++++++----- pkgs/top-level/all-packages.nix | 3 --- 2 files changed, 12 insertions(+), 8 deletions(-) rename pkgs/{applications/emulators/retroarch/kodi-advanced-launchers.nix => by-name/ko/kodi-retroarch-advanced-launchers/package.nix} (77%) 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 509453bdf9a1..a9e2dacb6ae1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1478,9 +1478,6 @@ with pkgs; libretro = recurseIntoAttrs (callPackage ../applications/emulators/retroarch/cores.nix { }); - kodi-retroarch-advanced-launchers = - callPackage ../applications/emulators/retroarch/kodi-advanced-launchers.nix { }; - # Aliases kept here because they are easier to use x16-emulator = x16.emulator; x16-rom = x16.rom; From 7ae7e0df8611b2f3d86ffa4f333a0a7a91d037fd Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sat, 23 Nov 2024 10:46:35 +0000 Subject: [PATCH 05/17] retroarch: format with nixfmt-rfc-style --- .../emulators/retroarch/default.nix | 214 ++++++++++-------- .../emulators/retroarch/wrapper.nix | 66 ++++-- 2 files changed, 156 insertions(+), 124 deletions(-) diff --git a/pkgs/applications/emulators/retroarch/default.nix b/pkgs/applications/emulators/retroarch/default.nix index 378f514c95eb..0b9863f54a50 100644 --- a/pkgs/applications/emulators/retroarch/default.nix +++ b/pkgs/applications/emulators/retroarch/default.nix @@ -1,50 +1,51 @@ -{ 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 +{ + 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); + lib.optional withVulkan vulkan-loader + ++ lib.optional withGamemode (lib.getLib gamemode); in stdenv.mkDerivation rec { pname = "retroarch-bare"; @@ -57,67 +58,74 @@ stdenv.mkDerivation rec { rev = "v${version}"; }; - nativeBuildInputs = [ pkg-config wrapQtAppsHook ] ++ - lib.optional withWayland wayland ++ - lib.optional (runtimeLibs != [ ]) makeWrapper; + 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 - ]; + 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" - ]; + 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 ]} - ''; + 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 @@ -137,7 +145,13 @@ stdenv.mkDerivation rec { 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 ]; + 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/ diff --git a/pkgs/applications/emulators/retroarch/wrapper.nix b/pkgs/applications/emulators/retroarch/wrapper.nix index ab1ffb2bb00c..0aa608174a64 100644 --- a/pkgs/applications/emulators/retroarch/wrapper.nix +++ b/pkgs/applications/emulators/retroarch/wrapper.nix @@ -1,28 +1,38 @@ -{ lib -, makeWrapper -, retroarch -, symlinkJoin -, runCommand -, cores ? [ ] -, settings ? { } +{ + 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" - ''; + 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}" ] + (lib.lists.flatten ( + map (p: [ + "--add-flags" + "-L ${placeholder "out" + p}" + ]) coresPath + )) + ++ [ + "--add-flags" + "--appendconfig=${settingsPath}" + ] ); in symlinkJoin { @@ -46,13 +56,21 @@ symlinkJoin { ''; 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)} - ''; + 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"; }; } From 006b13c56c744ba6ea7d867bcc67c7726e7bf335 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sun, 24 Nov 2024 02:17:31 +0000 Subject: [PATCH 06/17] retroarch-{bare,full}: renamed from retroarch{Bare,Full} --- nixos/tests/retroarch.nix | 2 +- pkgs/applications/emulators/retroarch/mkLibretroCore.nix | 8 ++++---- pkgs/top-level/aliases.nix | 2 ++ 3 files changed, 7 insertions(+), 5 deletions(-) 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/mkLibretroCore.nix b/pkgs/applications/emulators/retroarch/mkLibretroCore.nix index 42124cb23609..d8fb8879e7f5 100644 --- a/pkgs/applications/emulators/retroarch/mkLibretroCore.nix +++ b/pkgs/applications/emulators/retroarch/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/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 4efab55ea533..adeff4374024 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1073,6 +1073,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 From bc078e1e31f041f3a43985a0d9352d128eba0421 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sun, 24 Nov 2024 02:19:19 +0000 Subject: [PATCH 07/17] retroarch-bare: add passthru.wrapper, refactor derivation to use it --- .../emulators/retroarch/default.nix | 46 +++++++++++++++---- .../emulators/retroarch/wrapper.nix | 17 +++---- pkgs/top-level/all-packages.nix | 17 ++----- 3 files changed, 50 insertions(+), 30 deletions(-) diff --git a/pkgs/applications/emulators/retroarch/default.nix b/pkgs/applications/emulators/retroarch/default.nix index 0b9863f54a50..96696f8659d8 100644 --- a/pkgs/applications/emulators/retroarch/default.nix +++ b/pkgs/applications/emulators/retroarch/default.nix @@ -1,11 +1,7 @@ { lib, stdenv, - nixosTests, - enableNvidiaCgToolkit ? false, - withGamemode ? stdenv.hostPlatform.isLinux, - withVulkan ? stdenv.hostPlatform.isLinux, - withWayland ? stdenv.hostPlatform.isLinux, + # deps alsa-lib, dbus, fetchFromGitHub, @@ -28,18 +24,30 @@ makeWrapper, mbedtls_2, mesa, + nixosTests, nvidia_cg_toolkit, pkg-config, python3, - qtbase, + qt5, SDL2, spirv-tools, udev, vulkan-loader, wayland, wayland-scanner, - wrapQtAppsHook, zlib, + # wrapper deps + 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 @@ -60,7 +68,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config - wrapQtAppsHook + qt5.wrapQtAppsHook ] ++ lib.optional withWayland wayland ++ lib.optional (runtimeLibs != [ ]) makeWrapper; buildInputs = @@ -73,7 +81,7 @@ stdenv.mkDerivation rec { libxml2 mbedtls_2 python3 - qtbase + qt5.qtbase SDL2 spirv-tools zlib @@ -137,6 +145,26 @@ stdenv.mkDerivation rec { updateScript = gitUpdater { rev-prefix = "v"; }; + wrapper = + { + cores ? [ ], + settings ? { }, + }: + import ./wrapper.nix { + inherit + lib + makeWrapper + 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 = with lib; { diff --git a/pkgs/applications/emulators/retroarch/wrapper.nix b/pkgs/applications/emulators/retroarch/wrapper.nix index 0aa608174a64..bdfaabcfbfc8 100644 --- a/pkgs/applications/emulators/retroarch/wrapper.nix +++ b/pkgs/applications/emulators/retroarch/wrapper.nix @@ -1,9 +1,9 @@ { lib, makeWrapper, - retroarch, - symlinkJoin, + retroarch-bare, runCommand, + symlinkJoin, cores ? [ ], settings ? { }, }: @@ -36,15 +36,15 @@ let ); in symlinkJoin { - name = "retroarch-with-cores-${lib.getVersion retroarch}"; + name = "retroarch-with-cores-${lib.getVersion retroarch-bare}"; - paths = [ retroarch ] ++ cores; + paths = [ retroarch-bare ] ++ cores; nativeBuildInputs = [ makeWrapper ]; passthru = { inherit cores; - unwrapped = retroarch; + unwrapped = retroarch-bare; }; postBuild = '' @@ -55,15 +55,17 @@ symlinkJoin { wrapProgram $out/bin/retroarch ${wrapperArgs} ''; - meta = with retroarch.meta; { - inherit + meta = { + inherit (retroarch-bare.meta) changelog description homepage license + mainProgram maintainers platforms ; + longDescription = '' RetroArch is the reference frontend for the libretro API. @@ -71,6 +73,5 @@ symlinkJoin { + lib.optionalString (cores != [ ]) '' The following cores are included: ${lib.concatStringsSep ", " (map (c: c.core) cores)} ''; - mainProgram = "retroarch"; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a9e2dacb6ae1..339703815acc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1454,27 +1454,18 @@ with pkgs; ### APPLICATIONS/EMULATORS/RETROARCH - retroarchBare = qt5.callPackage ../applications/emulators/retroarch { }; + retroarch-bare = qt5.callPackage ../applications/emulators/retroarch { }; - retroarchFull = retroarch.override { + retroarch-full = wrapRetroArch { cores = builtins.filter # Remove cores not supported on platform (c: c ? libretroCore && (lib.meta.availableOn stdenv.hostPlatform c)) (builtins.attrValues libretro); }; - wrapRetroArch = { retroarch, settings ? {} }: - callPackage ../applications/emulators/retroarch/wrapper.nix - { inherit retroarch settings; }; + wrapRetroArch = retroarch-bare.wrapper; - 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"; - }; - }; + retroarch = retroarch-bare.wrapper; libretro = recurseIntoAttrs (callPackage ../applications/emulators/retroarch/cores.nix { }); From 3c11d3ede137f702d28424ff2460c7497fa0e9e6 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sun, 24 Nov 2024 02:23:24 +0000 Subject: [PATCH 08/17] retroarch-bare: move to pkgs/by-name --- .../default.nix => by-name/re/retroarch-bare/package.nix} | 0 .../retroarch => by-name/re/retroarch-bare}/wrapper.nix | 0 pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 2 deletions(-) rename pkgs/{applications/emulators/retroarch/default.nix => by-name/re/retroarch-bare/package.nix} (100%) rename pkgs/{applications/emulators/retroarch => by-name/re/retroarch-bare}/wrapper.nix (100%) diff --git a/pkgs/applications/emulators/retroarch/default.nix b/pkgs/by-name/re/retroarch-bare/package.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/default.nix rename to pkgs/by-name/re/retroarch-bare/package.nix diff --git a/pkgs/applications/emulators/retroarch/wrapper.nix b/pkgs/by-name/re/retroarch-bare/wrapper.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/wrapper.nix rename to pkgs/by-name/re/retroarch-bare/wrapper.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 339703815acc..f7235f3752c4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1454,8 +1454,6 @@ with pkgs; ### APPLICATIONS/EMULATORS/RETROARCH - retroarch-bare = qt5.callPackage ../applications/emulators/retroarch { }; - retroarch-full = wrapRetroArch { cores = builtins.filter # Remove cores not supported on platform From 3aa0725cb3576f6ef4b53fe79f7769e50a331aa7 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sat, 23 Nov 2024 11:31:52 +0000 Subject: [PATCH 09/17] retroarch: add withCores helper --- pkgs/by-name/re/retroarch-bare/package.nix | 2 ++ pkgs/by-name/re/retroarch-bare/wrapper.nix | 2 ++ pkgs/top-level/all-packages.nix | 20 ++++++++++---------- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/re/retroarch-bare/package.nix b/pkgs/by-name/re/retroarch-bare/package.nix index 96696f8659d8..d83e4b226258 100644 --- a/pkgs/by-name/re/retroarch-bare/package.nix +++ b/pkgs/by-name/re/retroarch-bare/package.nix @@ -37,6 +37,7 @@ wayland-scanner, zlib, # wrapper deps + libretro, libretro-core-info, retroarch-assets, retroarch-bare, @@ -153,6 +154,7 @@ stdenv.mkDerivation rec { import ./wrapper.nix { inherit lib + libretro makeWrapper retroarch-bare runCommand diff --git a/pkgs/by-name/re/retroarch-bare/wrapper.nix b/pkgs/by-name/re/retroarch-bare/wrapper.nix index bdfaabcfbfc8..b3955892d10f 100644 --- a/pkgs/by-name/re/retroarch-bare/wrapper.nix +++ b/pkgs/by-name/re/retroarch-bare/wrapper.nix @@ -1,5 +1,6 @@ { lib, + libretro, makeWrapper, retroarch-bare, runCommand, @@ -45,6 +46,7 @@ symlinkJoin { passthru = { inherit cores; unwrapped = retroarch-bare; + withCores = coreFun: retroarch-bare.wrapper { cores = (coreFun libretro); }; }; postBuild = '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f7235f3752c4..598ca8d95cd6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1454,19 +1454,19 @@ with pkgs; ### APPLICATIONS/EMULATORS/RETROARCH - retroarch-full = wrapRetroArch { - cores = builtins.filter - # Remove cores not supported on platform - (c: c ? libretroCore && (lib.meta.availableOn stdenv.hostPlatform c)) - (builtins.attrValues libretro); - }; + libretro = recurseIntoAttrs (callPackage ../applications/emulators/retroarch/cores.nix { }); + + retroarch = retroarch-bare.wrapper { }; + + retroarch-full = retroarch.withCores ( + cores: + builtins.filter + (c: (c ? libretroCore) && (lib.meta.availableOn stdenv.hostPlatform c)) + (builtins.attrValues cores) + ); wrapRetroArch = retroarch-bare.wrapper; - retroarch = retroarch-bare.wrapper; - - libretro = recurseIntoAttrs (callPackage ../applications/emulators/retroarch/cores.nix { }); - # Aliases kept here because they are easier to use x16-emulator = x16.emulator; x16-rom = x16.rom; From 61d8a91f52e9e6cb0a82ac66ac878ce00f5c9c1a Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sun, 24 Nov 2024 02:27:55 +0000 Subject: [PATCH 10/17] libretro: renamed from retroarch --- pkgs/applications/emulators/{retroarch => libretro}/README.md | 0 .../emulators/{retroarch => libretro}/cores/atari800.nix | 0 .../emulators/{retroarch => libretro}/cores/beetle-gba.nix | 0 .../emulators/{retroarch => libretro}/cores/beetle-lynx.nix | 0 .../emulators/{retroarch => libretro}/cores/beetle-ngp.nix | 0 .../emulators/{retroarch => libretro}/cores/beetle-pce-fast.nix | 0 .../emulators/{retroarch => libretro}/cores/beetle-pce.nix | 0 .../emulators/{retroarch => libretro}/cores/beetle-pcfx.nix | 0 .../emulators/{retroarch => libretro}/cores/beetle-psx.nix | 0 .../emulators/{retroarch => libretro}/cores/beetle-saturn.nix | 0 .../{retroarch => libretro}/cores/beetle-supafaust.nix | 0 .../{retroarch => libretro}/cores/beetle-supergrafx.nix | 0 .../emulators/{retroarch => libretro}/cores/beetle-vb.nix | 0 .../emulators/{retroarch => libretro}/cores/beetle-wswan.nix | 0 .../emulators/{retroarch => libretro}/cores/blastem.nix | 0 .../emulators/{retroarch => libretro}/cores/bluemsx.nix | 0 .../emulators/{retroarch => libretro}/cores/bsnes-hd.nix | 0 .../emulators/{retroarch => libretro}/cores/bsnes-mercury.nix | 0 .../emulators/{retroarch => libretro}/cores/bsnes.nix | 0 .../emulators/{retroarch => libretro}/cores/citra.nix | 0 .../emulators/{retroarch => libretro}/cores/desmume.nix | 0 .../emulators/{retroarch => libretro}/cores/desmume2015.nix | 0 .../emulators/{retroarch => libretro}/cores/dolphin.nix | 0 .../emulators/{retroarch => libretro}/cores/dosbox-pure.nix | 0 .../emulators/{retroarch => libretro}/cores/dosbox.nix | 0 .../emulators/{retroarch => libretro}/cores/easyrpg.nix | 0 .../emulators/{retroarch => libretro}/cores/eightyone.nix | 0 .../emulators/{retroarch => libretro}/cores/fbalpha2012.nix | 0 .../emulators/{retroarch => libretro}/cores/fbneo.nix | 0 .../emulators/{retroarch => libretro}/cores/fceumm.nix | 0 .../emulators/{retroarch => libretro}/cores/flycast.nix | 0 .../emulators/{retroarch => libretro}/cores/fmsx.nix | 0 .../emulators/{retroarch => libretro}/cores/freeintv.nix | 0 .../emulators/{retroarch => libretro}/cores/fuse.nix | 0 .../emulators/{retroarch => libretro}/cores/gambatte.nix | 0 .../emulators/{retroarch => libretro}/cores/genesis-plus-gx.nix | 0 .../emulators/{retroarch => libretro}/cores/gpsp.nix | 0 .../applications/emulators/{retroarch => libretro}/cores/gw.nix | 0 .../emulators/{retroarch => libretro}/cores/handy.nix | 0 .../emulators/{retroarch => libretro}/cores/hatari.nix | 0 .../emulators/{retroarch => libretro}/cores/mame.nix | 0 .../emulators/{retroarch => libretro}/cores/mame2000.nix | 0 .../emulators/{retroarch => libretro}/cores/mame2003-plus.nix | 0 .../emulators/{retroarch => libretro}/cores/mame2003.nix | 0 .../emulators/{retroarch => libretro}/cores/mame2010.nix | 0 .../emulators/{retroarch => libretro}/cores/mame2015.nix | 0 .../emulators/{retroarch => libretro}/cores/mame2016.nix | 0 .../emulators/{retroarch => libretro}/cores/melonds.nix | 0 .../emulators/{retroarch => libretro}/cores/mesen-s.nix | 0 .../emulators/{retroarch => libretro}/cores/mesen.nix | 0 .../emulators/{retroarch => libretro}/cores/meteor.nix | 0 .../emulators/{retroarch => libretro}/cores/mgba.nix | 0 .../emulators/{retroarch => libretro}/cores/mrboom.nix | 0 .../emulators/{retroarch => libretro}/cores/mupen64plus.nix | 0 .../emulators/{retroarch => libretro}/cores/neocd.nix | 0 .../emulators/{retroarch => libretro}/cores/nestopia.nix | 0 .../emulators/{retroarch => libretro}/cores/np2kai.nix | 0 .../emulators/{retroarch => libretro}/cores/nxengine.nix | 0 .../emulators/{retroarch => libretro}/cores/o2em.nix | 0 .../emulators/{retroarch => libretro}/cores/opera.nix | 0 .../emulators/{retroarch => libretro}/cores/parallel-n64.nix | 0 .../cores/patches/mame2015-python311.patch | 0 .../cores/patches/mame2016-python311.patch | 0 .../emulators/{retroarch => libretro}/cores/pcsx-rearmed.nix | 0 .../emulators/{retroarch => libretro}/cores/pcsx2.nix | 0 .../emulators/{retroarch => libretro}/cores/picodrive.nix | 0 .../emulators/{retroarch => libretro}/cores/play.nix | 0 .../emulators/{retroarch => libretro}/cores/ppsspp.nix | 0 .../emulators/{retroarch => libretro}/cores/prboom.nix | 0 .../emulators/{retroarch => libretro}/cores/prosystem.nix | 0 .../emulators/{retroarch => libretro}/cores/puae.nix | 0 .../emulators/{retroarch => libretro}/cores/quicknes.nix | 0 .../emulators/{retroarch => libretro}/cores/same_cdi.nix | 0 .../emulators/{retroarch => libretro}/cores/sameboy.nix | 0 .../emulators/{retroarch => libretro}/cores/scummvm.nix | 0 .../emulators/{retroarch => libretro}/cores/smsplus-gx.nix | 0 .../emulators/{retroarch => libretro}/cores/snes9x.nix | 0 .../emulators/{retroarch => libretro}/cores/snes9x2002.nix | 0 .../emulators/{retroarch => libretro}/cores/snes9x2005.nix | 0 .../emulators/{retroarch => libretro}/cores/snes9x2010.nix | 0 .../emulators/{retroarch => libretro}/cores/stella.nix | 0 .../emulators/{retroarch => libretro}/cores/stella2014.nix | 0 .../emulators/{retroarch => libretro}/cores/swanstation.nix | 0 .../emulators/{retroarch => libretro}/cores/tgbdual.nix | 0 .../emulators/{retroarch => libretro}/cores/thepowdertoy.nix | 0 .../emulators/{retroarch => libretro}/cores/tic80.nix | 0 .../{retroarch => libretro}/cores/twenty-fortyeight.nix | 0 .../emulators/{retroarch => libretro}/cores/vba-m.nix | 0 .../emulators/{retroarch => libretro}/cores/vba-next.nix | 0 .../emulators/{retroarch => libretro}/cores/vecx.nix | 0 .../emulators/{retroarch => libretro}/cores/virtualjaguar.nix | 0 .../emulators/{retroarch => libretro}/cores/yabause.nix | 0 .../emulators/{retroarch/cores.nix => libretro/default.nix} | 0 .../emulators/{retroarch => libretro}/mkLibretroCore.nix | 0 pkgs/top-level/all-packages.nix | 2 +- 95 files changed, 1 insertion(+), 1 deletion(-) rename pkgs/applications/emulators/{retroarch => libretro}/README.md (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/atari800.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/beetle-gba.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/beetle-lynx.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/beetle-ngp.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/beetle-pce-fast.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/beetle-pce.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/beetle-pcfx.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/beetle-psx.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/beetle-saturn.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/beetle-supafaust.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/beetle-supergrafx.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/beetle-vb.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/beetle-wswan.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/blastem.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/bluemsx.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/bsnes-hd.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/bsnes-mercury.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/bsnes.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/citra.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/desmume.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/desmume2015.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/dolphin.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/dosbox-pure.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/dosbox.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/easyrpg.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/eightyone.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/fbalpha2012.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/fbneo.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/fceumm.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/flycast.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/fmsx.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/freeintv.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/fuse.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/gambatte.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/genesis-plus-gx.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/gpsp.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/gw.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/handy.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/hatari.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/mame.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/mame2000.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/mame2003-plus.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/mame2003.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/mame2010.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/mame2015.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/mame2016.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/melonds.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/mesen-s.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/mesen.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/meteor.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/mgba.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/mrboom.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/mupen64plus.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/neocd.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/nestopia.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/np2kai.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/nxengine.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/o2em.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/opera.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/parallel-n64.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/patches/mame2015-python311.patch (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/patches/mame2016-python311.patch (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/pcsx-rearmed.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/pcsx2.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/picodrive.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/play.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/ppsspp.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/prboom.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/prosystem.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/puae.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/quicknes.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/same_cdi.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/sameboy.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/scummvm.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/smsplus-gx.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/snes9x.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/snes9x2002.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/snes9x2005.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/snes9x2010.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/stella.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/stella2014.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/swanstation.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/tgbdual.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/thepowdertoy.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/tic80.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/twenty-fortyeight.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/vba-m.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/vba-next.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/vecx.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/virtualjaguar.nix (100%) rename pkgs/applications/emulators/{retroarch => libretro}/cores/yabause.nix (100%) rename pkgs/applications/emulators/{retroarch/cores.nix => libretro/default.nix} (100%) rename pkgs/applications/emulators/{retroarch => libretro}/mkLibretroCore.nix (100%) diff --git a/pkgs/applications/emulators/retroarch/README.md b/pkgs/applications/emulators/libretro/README.md similarity index 100% rename from pkgs/applications/emulators/retroarch/README.md rename to pkgs/applications/emulators/libretro/README.md 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 100% rename from pkgs/applications/emulators/retroarch/cores.nix rename to pkgs/applications/emulators/libretro/default.nix diff --git a/pkgs/applications/emulators/retroarch/mkLibretroCore.nix b/pkgs/applications/emulators/libretro/mkLibretroCore.nix similarity index 100% rename from pkgs/applications/emulators/retroarch/mkLibretroCore.nix rename to pkgs/applications/emulators/libretro/mkLibretroCore.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 598ca8d95cd6..1cd47254f462 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1454,7 +1454,7 @@ with pkgs; ### APPLICATIONS/EMULATORS/RETROARCH - libretro = recurseIntoAttrs (callPackage ../applications/emulators/retroarch/cores.nix { }); + libretro = recurseIntoAttrs (callPackage ../applications/emulators/libretro { }); retroarch = retroarch-bare.wrapper { }; From b3cc74f3f8ea790dba2a7c8a8c15a1efc955b5e6 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sun, 24 Nov 2024 02:28:32 +0000 Subject: [PATCH 11/17] libretro: update README.md --- pkgs/applications/emulators/libretro/README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/applications/emulators/libretro/README.md b/pkgs/applications/emulators/libretro/README.md index 1a1fec0ed1d1..ca494d29e8a9 100644 --- a/pkgs/applications/emulators/libretro/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. From e981e0a249b35f5a49b16a506505673c93b484c4 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sat, 23 Nov 2024 11:43:53 +0000 Subject: [PATCH 12/17] retroarch-free: init --- pkgs/top-level/all-packages.nix | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1cd47254f462..a5acdd543e50 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1458,10 +1458,24 @@ with pkgs; retroarch = retroarch-bare.wrapper { }; + # includes only cores for platform with free licenses + retroarch-free = retroarch.withCores ( + cores: + builtins.filter + (c: + (c ? libretroCore) + && (lib.meta.availableOn stdenv.hostPlatform c) + && (!c.meta.unfree)) + (builtins.attrValues cores) + ); + + # includes all cores for platform (including ones with non-free licenses) retroarch-full = retroarch.withCores ( cores: builtins.filter - (c: (c ? libretroCore) && (lib.meta.availableOn stdenv.hostPlatform c)) + (c: + (c ? libretroCore) + && (lib.meta.availableOn stdenv.hostPlatform c)) (builtins.attrValues cores) ); From 2d0d7ee55aca25cc6fef074fa27e1c762af4fd40 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sun, 24 Nov 2024 02:24:30 +0000 Subject: [PATCH 13/17] retroarch-bare: remove top-level `with lib` in meta --- pkgs/by-name/re/retroarch-bare/package.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/re/retroarch-bare/package.nix b/pkgs/by-name/re/retroarch-bare/package.nix index d83e4b226258..9de1b19b6179 100644 --- a/pkgs/by-name/re/retroarch-bare/package.nix +++ b/pkgs/by-name/re/retroarch-bare/package.nix @@ -169,19 +169,19 @@ stdenv.mkDerivation rec { }; }; - meta = with lib; { + meta = { homepage = "https://libretro.com"; description = "Multi-platform emulator frontend for libretro cores"; - license = licenses.gpl3Plus; - platforms = platforms.unix; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.unix; changelog = "https://github.com/libretro/RetroArch/blob/v${version}/CHANGES.md"; maintainers = - with maintainers; - teams.libretro.members - ++ [ + 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/ From 60d1565d29c9751be1b53d89450da48d349e6d27 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sun, 24 Nov 2024 12:24:09 +0000 Subject: [PATCH 14/17] retroarch: define it using wrapRetroArch instead retroarch-bare.wrapper --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a5acdd543e50..2014e774b4bd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1456,7 +1456,7 @@ with pkgs; libretro = recurseIntoAttrs (callPackage ../applications/emulators/libretro { }); - retroarch = retroarch-bare.wrapper { }; + retroarch = wrapRetroArch { }; # includes only cores for platform with free licenses retroarch-free = retroarch.withCores ( From 3d616665d6df74d912b1a2a099f782e104bf03a9 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sun, 24 Nov 2024 12:27:51 +0000 Subject: [PATCH 15/17] retroarch-{bare,free}: use lib instead of builtins --- pkgs/top-level/all-packages.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2014e774b4bd..dbd6ab2e5bec 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1461,22 +1461,22 @@ with pkgs; # includes only cores for platform with free licenses retroarch-free = retroarch.withCores ( cores: - builtins.filter + lib.filter (c: (c ? libretroCore) && (lib.meta.availableOn stdenv.hostPlatform c) && (!c.meta.unfree)) - (builtins.attrValues cores) + (lib.attrValues cores) ); # includes all cores for platform (including ones with non-free licenses) retroarch-full = retroarch.withCores ( cores: - builtins.filter + lib.filter (c: (c ? libretroCore) && (lib.meta.availableOn stdenv.hostPlatform c)) - (builtins.attrValues cores) + (lib.attrValues cores) ); wrapRetroArch = retroarch-bare.wrapper; From 50c7be19f3caca384afc45317fb75bf71369339e Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sun, 24 Nov 2024 12:38:54 +0000 Subject: [PATCH 16/17] retroarch-bare: add missing . in longDescription --- pkgs/by-name/re/retroarch-bare/wrapper.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/re/retroarch-bare/wrapper.nix b/pkgs/by-name/re/retroarch-bare/wrapper.nix index b3955892d10f..5a8bc8e8f017 100644 --- a/pkgs/by-name/re/retroarch-bare/wrapper.nix +++ b/pkgs/by-name/re/retroarch-bare/wrapper.nix @@ -73,7 +73,7 @@ symlinkJoin { RetroArch is the reference frontend for the libretro API. '' + lib.optionalString (cores != [ ]) '' - The following cores are included: ${lib.concatStringsSep ", " (map (c: c.core) cores)} + The following cores are included: ${lib.concatStringsSep ", " (map (c: c.core) cores)}. ''; }; } From 600ffd15b2141a19341b23b28cdd579fc63122f0 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sun, 24 Nov 2024 22:00:20 +0000 Subject: [PATCH 17/17] retroarch: use makeBinaryWrapper --- pkgs/by-name/re/retroarch-bare/package.nix | 6 +++--- pkgs/by-name/re/retroarch-bare/wrapper.nix | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/re/retroarch-bare/package.nix b/pkgs/by-name/re/retroarch-bare/package.nix index 9de1b19b6179..c34dd7e92469 100644 --- a/pkgs/by-name/re/retroarch-bare/package.nix +++ b/pkgs/by-name/re/retroarch-bare/package.nix @@ -21,7 +21,7 @@ libxkbcommon, libxml2, libXxf86vm, - makeWrapper, + makeBinaryWrapper, mbedtls_2, mesa, nixosTests, @@ -70,7 +70,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config qt5.wrapQtAppsHook - ] ++ lib.optional withWayland wayland ++ lib.optional (runtimeLibs != [ ]) makeWrapper; + ] ++ lib.optional withWayland wayland ++ lib.optional (runtimeLibs != [ ]) makeBinaryWrapper; buildInputs = [ @@ -155,7 +155,7 @@ stdenv.mkDerivation rec { inherit lib libretro - makeWrapper + makeBinaryWrapper retroarch-bare runCommand symlinkJoin diff --git a/pkgs/by-name/re/retroarch-bare/wrapper.nix b/pkgs/by-name/re/retroarch-bare/wrapper.nix index 5a8bc8e8f017..f6c60a2a7374 100644 --- a/pkgs/by-name/re/retroarch-bare/wrapper.nix +++ b/pkgs/by-name/re/retroarch-bare/wrapper.nix @@ -1,7 +1,7 @@ { lib, libretro, - makeWrapper, + makeBinaryWrapper, retroarch-bare, runCommand, symlinkJoin, @@ -41,7 +41,7 @@ symlinkJoin { paths = [ retroarch-bare ] ++ cores; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeBinaryWrapper ]; passthru = { inherit cores;