{
lib,
stdenv,
alsa-lib,
cmake,
curl,
fetchzip,
ffmpeg,
freeimage,
freetype,
harfbuzz,
icu,
libgit2,
pkg-config,
poppler,
pugixml,
SDL2,
writeText,
...
}: let
version = "3.1.0";
hash = "sha256-v9nOY9T5VOVLBUKoDXqwYa1iYvW42iGA+3kpPUOmHkg=";
patch = writeText "emulationstation-de.patch" ''
--- a/resources/systems/unix/es_find_rules.xml
+++ b/resources/systems/unix/es_find_rules.xml
@@ -19,6 +19,8 @@
~/.config/retroarch/cores
/usr/local/lib/libretro
+
+ /run/current-system/sw/lib/retroarch/cores
@@ -667,4 +669,4 @@
~/bin/ZEsarUX/zesarux
-
\ No newline at end of file
+
'';
in
stdenv.mkDerivation {
pname = "emulationstation-de";
inherit version;
src = fetchzip {
url = "https://gitlab.com/es-de/emulationstation-de/-/archive/v${version}/emulationstation-de-v${version}.tar.gz";
inherit hash;
};
patches = [patch];
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
alsa-lib
curl
ffmpeg
freeimage
freetype
harfbuzz
icu
libgit2
poppler
pugixml
SDL2
];
installPhase = ''
install -D ../es-de $out/bin/es-de
install -D ../es-pdf-convert $out/bin/es-pdf-convert
install -D ../LICENSE $out/share/es-de/LICENSE
install -D ../es-app/assets/es-de.6.gz $out/share/man/man6/es-de.6.gz
install -D ../es-app/assets/org.es_de.frontend.desktop $out/share/applications/org.es_de.frontend.desktop
install -D ../es-app/assets/org.es_de.frontend.appdata.xml $out/share/metainfo/org.es_de.frontend.appdata.xml
install -D ../es-app/assets/org.es_de.frontend.svg $out/share/icons/hicolor/scalable/apps/org.es_de.frontend.svg
install -D ../es-app/assets/org.es_de.frontend.svg $out/share/pixmaps/org.es_de.frontend.svg
mkdir -p $out/share/es-de/
cp -r ../licenses/ $out/share/es-de/licenses/
cp -r ../themes/ $out/share/es-de/themes/
cp -r ../resources/ $out/share/es-de/resources/
'';
meta = {
description = "EmulationStation Desktop Edition is a frontend for browsing and launching games from your multi-platform game collection";
homepage = "https://es-de.org";
maintainers = with lib.maintainers; [ivarmedi];
license = lib.licenses.mit;
platforms = lib.platforms.linux;
mainProgram = "emulationstation";
};
}