From 3dfad2c328293b3a96a2efd991caec1bd83c662f Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sun, 4 Feb 2024 21:34:16 -0300 Subject: [PATCH 1/2] emulationstation: migrate to by-name --- .../default.nix => by-name/em/emulationstation/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 deletions(-) rename pkgs/{applications/emulators/emulationstation/default.nix => by-name/em/emulationstation/package.nix} (100%) diff --git a/pkgs/applications/emulators/emulationstation/default.nix b/pkgs/by-name/em/emulationstation/package.nix similarity index 100% rename from pkgs/applications/emulators/emulationstation/default.nix rename to pkgs/by-name/em/emulationstation/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4a76ca2721f1..b6a23fd79d7c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2684,8 +2684,6 @@ with pkgs; emu2 = callPackage ../applications/emulators/emu2 { }; - emulationstation = callPackage ../applications/emulators/emulationstation { }; - fceux = libsForQt5.callPackage ../applications/emulators/fceux { }; firebird-emu = libsForQt5.callPackage ../applications/emulators/firebird-emu { }; From af039eb7c612e55cb7ed3141c3ae20587aafcf0f Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sat, 27 Jan 2024 10:30:22 -0300 Subject: [PATCH 2/2] emulationstation: refactor - finalAttrs design pattern - remove eigen dependency - strictDeps - move resources to $out/share - link resources to $out/bin --- pkgs/by-name/em/emulationstation/package.nix | 80 ++++++++++++++++---- 1 file changed, 64 insertions(+), 16 deletions(-) diff --git a/pkgs/by-name/em/emulationstation/package.nix b/pkgs/by-name/em/emulationstation/package.nix index f0434ecdedf4..7358aa5ed99c 100644 --- a/pkgs/by-name/em/emulationstation/package.nix +++ b/pkgs/by-name/em/emulationstation/package.nix @@ -1,33 +1,81 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, curl, boost, eigen -, freeimage, freetype, libGLU, libGL, rapidjson, SDL2, alsa-lib -, vlc }: +{ lib +, SDL2 +, alsa-lib +, boost +, cmake +, curl +, fetchFromGitHub +, freeimage +, freetype +, libGL +, libGLU +, libvlc +, pkg-config +, rapidjson +, stdenv +}: -stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "emulationstation"; version = "2.11.2"; src = fetchFromGitHub { - fetchSubmodules = true; owner = "RetroPie"; repo = "EmulationStation"; - rev = "cda7de687924c4c1ab83d6b0ceb88aa734fe6cfe"; + rev = "v${finalAttrs.version}"; + fetchSubmodules = true; hash = "sha256-J5h/578FVe4DXJx/AvpRnCIUpqBeFtmvFhUDYH5SErQ="; }; - nativeBuildInputs = [ pkg-config cmake ]; - buildInputs = [ alsa-lib boost curl eigen freeimage freetype libGLU libGL rapidjson SDL2 vlc ]; + nativeBuildInputs = [ + SDL2 + cmake + pkg-config + ]; + + buildInputs = [ + SDL2 + alsa-lib + boost + curl + freeimage + freetype + libGL + libGLU + libvlc + rapidjson + ]; + + strictDeps = true; + + cmakeFlags = [ + (lib.cmakeBool "GL" true) + ]; installPhase = '' - install -D ../emulationstation $out/bin/emulationstation - cp -r ../resources/ $out/bin/resources/ + runHook preInstall + + install -Dm755 ../emulationstation $out/bin/emulationstation + mkdir -p $out/share/emulationstation/ + cp -r ../resources $out/share/emulationstation/ + + runHook preInstall + ''; + + # es-core/src/resources/ResourceManager.cpp: resources are searched at the + # same place of binaries. + postFixup = '' + pushd $out + ln -s $out/share/emulationstation/resources $out/bin/ + popd ''; meta = { - description = "A flexible emulator front-end supporting keyboardless navigation and custom system themes"; - homepage = "https://emulationstation.org"; - maintainers = [ lib.maintainers.edwtjo ]; - license = lib.licenses.mit; - platforms = lib.platforms.linux; + homepage = "https://github.com/RetroPie/EmulationStation"; + description = "A flexible emulator front-end supporting keyboardless navigation and custom system themes (forked by RetroPie)"; + license = with lib.licenses; [ mit ]; mainProgram = "emulationstation"; + maintainers = with lib.maintainers; [ AndersonTorres edwtjo ]; + platforms = lib.platforms.linux; }; -} +})