git.iko.soy/typeable/nixpkgs
on master help sign in
Merge pull request #143891 from aanderse/kodi

kodi.packages.libretro-snes9x: init at 1.60.0.29

commit79be4cb011363dad056024932c9f77211b48f4ca authorAaron Andersen <aaron@fosslib.net> dateTue 2 Nov 2021, 17:21 (5 years ago) parenta72f1d2020738a
4 files changed+70−3
pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix+31 pkgs/applications/video/kodi-packages/libretro/default.nix+24 pkgs/applications/video/kodi/build-kodi-binary-addon.nix+6−2 pkgs/top-level/kodi-packages.nix+9−1
pkgs/applications/video/kodi-packages/libretro-snes9x/default.nixnew file+31
@@ -0,0 +1,31 @@
1+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libretro, snes9x }:
2+
3+buildKodiBinaryAddon rec {
4+ pname = "kodi-libretro-snes9x";
5+ namespace = "game.libretro.snes9x";
6+ version = "1.60.0.29";
7+
8+ src = fetchFromGitHub {
9+ owner = "kodi-game";
10+ repo = "game.libretro.snes9x";
11+ rev = "${version}-${rel}";
12+ sha256 = "1wyfkg4fncc604alnbaqk92fi1h80n7bwiqfkb8479x5517byab1";
13+ };
14+
15+ extraCMakeFlags = [
16+ "-DSNES9X_LIB=${snes9x}/lib/retroarch/cores/snes9x_libretro.so"
17+ ];
18+
19+ extraBuildInputs = [ snes9x ];
20+ propagatedBuildInputs = [
21+ libretro
22+ ];
23+
24+ meta = with lib; {
25+ homepage = "https://github.com/kodi-game/game.libretro.snes9x";
26+ description = "Snes9X GameClient for Kodi";
27+ platforms = platforms.all;
28+ license = licenses.gpl2Only;
29+ maintainers = teams.kodi.members;
30+ };
31+}
pkgs/applications/video/kodi-packages/libretro/default.nixnew file+24
@@ -0,0 +1,24 @@
1+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, tinyxml }:
2+
3+buildKodiBinaryAddon rec {
4+ pname = "libretro";
5+ namespace = "game.libretro";
6+ version = "19.0.0";
7+
8+ src = fetchFromGitHub {
9+ owner = "kodi-game";
10+ repo = "game.libretro";
11+ rev = "${version}-${rel}";
12+ sha256 = "1831wbbc4a545lr4mg1fm4sbx75k5lkrfqaa5fh308aar0nm974d";
13+ };
14+
15+ extraBuildInputs = [ tinyxml ];
16+
17+ meta = with lib; {
18+ homepage = "https://github.com/kodi-game/game.libretro";
19+ description = "Libretro wrapper for Kodi's Game API";
20+ platforms = platforms.all;
21+ license = licenses.gpl2Only;
22+ maintainers = teams.kodi.members;
23+ };
24+}
pkgs/applications/video/kodi/build-kodi-binary-addon.nix+6−2
@@ -5,6 +5,7 @@
55, extraNativeBuildInputs ? []
66, extraBuildInputs ? []
77, extraRuntimeDependencies ? []
8+, extraCMakeFlags ? []
89, extraInstallPhase ? "", ... } @ attrs:
910toKodiAddon (stdenv.mkDerivation ({
1011 name = "kodi-" + name;
@@ -19,7 +20,7 @@ toKodiAddon (stdenv.mkDerivation ({
1920 # disables check ensuring install prefix is that of kodi
2021 cmakeFlags = [
2122 "-DOVERRIDE_PATHS=1"
22− ];
23+ ] ++ extraCMakeFlags;
2324
2425 # kodi checks for addon .so libs existance in the addon folder (share/...)
2526 # and the non-wrapped kodi lib/... folder before even trying to dlopen
@@ -28,7 +29,10 @@ toKodiAddon (stdenv.mkDerivation ({
2829 runHook preInstall
2930
3031 make install
31− ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version}
32+
33+ [[ -f $out/lib/addons/${n}/${n}.so ]] && ln -s $out/lib/addons/${n}/${n}.so $out${addonDir}/${n}/${n}.so || true
34+ [[ -f $out/lib/addons/${n}/${n}.so.${version} ]] && ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version} || true
35+
3236 ${extraInstallPhase}
3337
3438 runHook postInstall
pkgs/top-level/kodi-packages.nix+9−1
@@ -1,7 +1,11 @@
1−{ lib, newScope, kodi }:
1+{ lib, newScope, kodi, libretro }:
22
33with lib;
44
5+let
6+ inherit (libretro) snes9x;
7+in
8+
59let self = rec {
610
711 addonDir = "/share/kodi/addons";
@@ -68,6 +72,10 @@ let self = rec {
6872 snes = callPackage ../applications/video/kodi-packages/controllers { controller = "snes"; };
6973 };
7074
75+ libretro = callPackage ../applications/video/kodi-packages/libretro { };
76+
77+ libretro-snes9x = callPackage ../applications/video/kodi-packages/libretro-snes9x { inherit snes9x; };
78+
7179 jellyfin = callPackage ../applications/video/kodi-packages/jellyfin { };
7280
7381 joystick = callPackage ../applications/video/kodi-packages/joystick { };