diff options
author | Benedict Aas <x+g@shou.io> | 2019-03-07 13:36:41 +0000 |
---|---|---|
committer | Mario Rodas <marsam@users.noreply.github.com> | 2019-03-07 13:36:41 +0000 |
commit | f6da38a42b6677df1873c03304aa20cd824b120e (patch) | |
tree | 8ce113498f20b4e44f3f96ac65b732853511384c /pkgs/applications/networking/mkchromecast | |
parent | 597a1e7f2d9a1252266191cbad67e5ae01cf9417 (diff) |
mkchromecast: init at 0.3.8.1
Diffstat (limited to 'pkgs/applications/networking/mkchromecast')
-rw-r--r-- | pkgs/applications/networking/mkchromecast/default.nix | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/pkgs/applications/networking/mkchromecast/default.nix b/pkgs/applications/networking/mkchromecast/default.nix new file mode 100644 index 0000000000000..34f5be71ef358 --- /dev/null +++ b/pkgs/applications/networking/mkchromecast/default.nix @@ -0,0 +1,84 @@ +{ stdenv +, fetchFromGitHub +, python3Packages +, sox +, flac +, lame +, wrapQtAppsHook +, ffmpeg +, vorbis-tools +, pulseaudio +, nodejs +, youtube-dl +, opusTools +, gst_all_1 +}: +let packages = [ + vorbis-tools + sox + flac + lame + opusTools + gst_all_1.gstreamer + nodejs + ffmpeg + youtube-dl +] ++ stdenv.lib.optionals stdenv.isLinux [ pulseaudio ]; + +in +python3Packages.buildPythonApplication rec { + pname = "mkchromecast-unstable"; + version = "2020-10-17"; + + src = fetchFromGitHub rec { + owner = "muammar"; + repo = "mkchromecast"; + rev = "eb9da74d887acd70ed179e6e4c0cbed4ff83de04"; + sha256 = "1l565n3rmyghc4vzh80gazvdks1i97j1h94x33pkmxxlf9a9rncj"; + }; + + propagatedBuildInputs = with python3Packages; [ + PyChromecast + psutil + mutagen + flask + netifaces + requests + pyqt5 + ]; + + postPatch = '' + substituteInPlace setup.py \ + --replace 'platform.system() == "Darwin"' 'False' \ + --replace 'platform.system() == "Linux"' 'True' + ''; + + nativeBuildInputs = [ wrapQtAppsHook ]; + + # Relies on an old version (0.7.7) of PyChromecast unavailable in Nixpkgs. + # Is also I/O bound and impure, testing an actual device, so we disable. + doCheck = false; + + dontWrapQtApps = true; + + makeWrapperArgs = [ + "\${qtWrapperArgs[@]}" + "--prefix PATH : ${stdenv.lib.makeBinPath packages}" + ]; + + postInstall = '' + substituteInPlace $out/lib/${python3Packages.python.libPrefix}/site-packages/mkchromecast/video.py \ + --replace '/usr/share/mkchromecast/nodejs/' '${placeholder "out"}/share/mkchromecast/nodejs/' + '' + stdenv.lib.optionalString stdenv.isDarwin '' + install -Dm 755 -t $out/bin bin/audiodevice + substituteInPlace $out/lib/${python3Packages.python.libPrefix}/site-packages/mkchromecast/audio_devices.py \ + --replace './bin/audiodevice' '${placeholder "out"}/bin/audiodevice' + ''; + + meta = with stdenv.lib; { + homepage = "https://mkchromecast.com/"; + description = "Cast macOS and Linux Audio/Video to your Google Cast and Sonos Devices"; + license = licenses.mit; + maintainers = with maintainers; [ shou ]; + }; +} |