toxic: 0.15.1 -> 0.16.0
[NixPkgs.git] / pkgs / development / libraries / mediastreamer / default.nix
blobb388622a959a2e670d17ff1bf52f957986710c97
2   bctoolbox,
3   bzrtp,
4   cmake,
5   fetchFromGitLab,
6   fetchpatch2,
7   ffmpeg,
8   glew,
9   gsm,
10   lib,
11   libX11,
12   libXext,
13   libopus,
14   libpulseaudio,
15   libv4l,
16   libvpx,
17   ortp,
18   python3,
19   qtbase,
20   qtdeclarative,
21   speex,
22   srtp,
23   stdenv,
26 stdenv.mkDerivation rec {
27   pname = "mediastreamer2";
28   version = "5.2.111";
30   dontWrapQtApps = true;
32   src = fetchFromGitLab {
33     domain = "gitlab.linphone.org";
34     owner = "public";
35     group = "BC";
36     repo = pname;
37     rev = version;
38     hash = "sha256-Le52tsyzOpepmvb+GOGCPwwTriPUjhYpa6GM+y/6USA=";
39   };
41   patches = [
42     # Plugins directory is normally fixed during compile time. This patch makes
43     # it possible to set the plugins directory run time with an environment
44     # variable MEDIASTREAMER_PLUGINS_DIR. This makes it possible to construct a
45     # plugin directory with desired plugins and wrap executables so that the
46     # environment variable points to that directory.
47     ./plugins_dir.patch
49     # Port to ffmpeg 5.0 API
50     (fetchpatch2 {
51       url = "https://salsa.debian.org/pkg-voip-team/linphone-stack/mediastreamer2/-/raw/4e7784802d2eac57dffe210c8c23e696f40ac6ec/debian/patches/ffmpeg_5_0_fixes.patch";
52       hash = "sha256-5ay4iVbx8IOX952HEFaKLBGKLRYUWRntufciApUVhh0=";
53     })
54   ];
56   nativeBuildInputs = [
57     cmake
58     python3
59     qtbase
60     qtdeclarative
61   ];
63   propagatedBuildInputs = [
64     # Made by BC
65     bctoolbox
66     bzrtp
67     ortp
69     ffmpeg
70     glew
71     libX11
72     libXext
73     libpulseaudio
74     libv4l
75     speex
76     srtp
78     # Optional
79     gsm # GSM audio codec
80     libopus # Opus audio codec
81     libvpx # VP8 video codec
82   ];
84   strictDeps = true;
86   cmakeFlags = [
87     "-DENABLE_STATIC=NO" # Do not build static libraries
88     "-DENABLE_QT_GL=ON" # Build necessary MSQOGL plugin for Linphone desktop
89     "-DCMAKE_C_FLAGS=-DGIT_VERSION=\"v${version}\""
90     "-DENABLE_STRICT=NO" # Disable -Werror
91     "-DENABLE_UNIT_TESTS=NO" # Do not build test executables
92   ];
94   NIX_LDFLAGS = "-lXext";
96   meta = with lib; {
97     description = "Powerful and lightweight streaming engine specialized for voice/video telephony applications. Part of the Linphone project";
98     homepage = "https://www.linphone.org/technical-corner/mediastreamer2";
99     license = licenses.gpl3Only;
100     platforms = platforms.linux;
101     maintainers = with maintainers; [ jluttine ];
102   };