diff --git a/pkgs/applications/video/kodi/plugins.nix b/pkgs/applications/video/kodi/plugins.nix index 41298269a18..8228c2c6cd9 100644 --- a/pkgs/applications/video/kodi/plugins.nix +++ b/pkgs/applications/video/kodi/plugins.nix @@ -1,5 +1,6 @@ { stdenv, fetchurl, fetchFromGitHub, fetchpatch, lib -, unzip, cmake, kodi, steam, libcec_platform, tinyxml }: +, unzip, cmake, kodi, steam, libcec_platform, tinyxml +, jsoncpp, libhdhomerun }: let @@ -265,4 +266,37 @@ in ln -s $out/lib/addons/pvr.hts/pvr.hts.so* $out/share/kodi/addons/pvr.hts ''; }; + + pvr-hdhomerun = (mkKodiPlugin rec { + plugin = "pvr-hdhomerun"; + namespace = "pvr.hdhomerun"; + version = "2.4.7"; + + src = fetchFromGitHub { + owner = "kodi-pvr"; + repo = "pvr.hdhomerun"; + rev = "60d89d16dd953d38947e8a6da2f8bb84a0f764ef"; + sha256 = "0dvdv0vk2q12nj0i5h51iaypy3i7jfsxjyxwwpxfy82y8260ragy"; + }; + + meta = with stdenv.lib; { + homepage = https://github.com/kodi-pvr/pvr.hdhomerun; + description = "Kodi's HDHomeRun PVR client addon"; + platforms = platforms.all; + maintainers = with maintainers; [ titanous ]; + }; + }).override { + buildInputs = [ cmake jsoncpp libhdhomerun kodi libcec_platform kodi-platform ]; + + # disables check ensuring install prefix is that of kodi + cmakeFlags = [ "-DOVERRIDE_PATHS=1" ]; + + # kodi checks for plugin .so libs existance in the addon folder (share/...) + # and the non-wrapped kodi lib/... folder before even trying to dlopen + # them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use + installPhase = '' + make install + ln -s $out/lib/addons/pvr.hdhomerun/pvr.hdhomerun.so* $out/share/kodi/addons/pvr.hdhomerun + ''; + }; } diff --git a/pkgs/development/libraries/libhdhomerun/default.nix b/pkgs/development/libraries/libhdhomerun/default.nix new file mode 100644 index 00000000000..08563ed53dd --- /dev/null +++ b/pkgs/development/libraries/libhdhomerun/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchgit }: + +stdenv.mkDerivation { + name = "libhdhomerun-1efbcb"; + + src = fetchgit { + url = "git://github.com/Silicondust/libhdhomerun.git"; + rev = "1efbcb2b87b17a82f2b3d873d1c9cc1c6a3a9b77"; + sha256 = "11iyrfs98xb50n9iqnwfphmmnn5w3mq2l9cjjpf8qp29cvs33cgy"; + }; + + patchPhase = stdenv.lib.optionalString stdenv.isDarwin '' + substituteInPlace Makefile --replace "gcc" "cc" + substituteInPlace Makefile --replace "-arch i386" "" + ''; + + installPhase = let + libSuff = if stdenv.isDarwin then "dylib" else "so"; + in '' + mkdir -p $out/{bin,lib,include/hdhomerun} + install -Dm444 libhdhomerun.${libSuff} $out/lib + install -Dm555 hdhomerun_config $out/bin + cp *.h $out/include/hdhomerun + ''; + + meta = with stdenv.lib; { + description = "Implements the libhdhomerun protocol for use with Silicondust HDHomeRun TV tuners"; + homepage = "https://github.com/Silicondust/libhdhomerun"; + repositories.git = "https://github.com/Silicondust/libhdhomerun.git"; + license = stdenv.lib.licenses.lgpl2; + platforms = stdenv.lib.platforms.unix; + maintainers = [ maintainers.titanous ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 43d67504c76..a11f09845c5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8615,6 +8615,8 @@ with pkgs; libharu = callPackage ../development/libraries/libharu { }; + libhdhomerun = callPackage ../development/libraries/libhdhomerun { }; + libhttpseverywhere = callPackage ../development/libraries/libhttpseverywhere { }; libHX = callPackage ../development/libraries/libHX { }; @@ -16440,6 +16442,7 @@ with pkgs; ++ optional (config.kodi.enableSVTPlay or false) svtplay ++ optional (config.kodi.enableSteamLauncher or false) steam-launcher ++ optional (config.kodi.enablePVRHTS or false) pvr-hts + ++ optional (config.kodi.enablePVRHDHomeRun or false) pvr-hdhomerun ); };