1{ lib, stdenv, pkg-config, fetchFromGitHub, fetchpatch, cmake, wrapGAppsHook, avahi, avahi-compat, openssl, gst_all_1, libplist }:
2
3stdenv.mkDerivation rec {
4 pname = "rpiplay";
5 version = "unstable-2021-06-14";
6
7 src = fetchFromGitHub {
8 owner = "FD-";
9 repo = "RPiPlay";
10 rev = "35dd995fceed29183cbfad0d4110ae48e0635786";
11 sha256 = "sha256-qe7ZTT45NYvzgnhRmz15uGT/FnGi9uppbKVbmch5B9A=";
12 };
13
14 patches = [
15 # allow rpiplay to be used with firewall enabled.
16 # sets static ports 7000 7100 (tcp) and 6000 6001 7011 (udp)
17 (fetchpatch {
18 name = "use-static-ports.patch";
19 url = "https://github.com/FD-/RPiPlay/commit/2ffc287ba822e1d2b2ed0fc0e41a2bb3d9dab105.patch";
20 sha256 = "08dy829gyhyzw2n54zn5m3176cmd24k5hij24vpww5bhbwkbabww";
21 })
22 ];
23
24 nativeBuildInputs = [
25 cmake
26 openssl
27 libplist
28 pkg-config
29 wrapGAppsHook
30 ];
31
32 buildInputs = [
33 avahi
34 avahi-compat
35 gst_all_1.gstreamer
36 gst_all_1.gst-plugins-base
37 gst_all_1.gst-plugins-good
38 gst_all_1.gst-plugins-bad
39 gst_all_1.gst-plugins-ugly
40 ];
41
42 meta = with lib; {
43 broken = stdenv.isDarwin;
44 homepage = "https://github.com/FD-/RPiPlay";
45 description = "An open-source implementation of an AirPlay mirroring server.";
46 license = licenses.gpl3Plus;
47 maintainers = with maintainers; [ ];
48 platforms = platforms.unix;
49 };
50}