32 , gtkSupport ? false, gtk3
33 , qt5Support ? false, qt5
34 , raspiCameraSupport ? false, libraspberrypi
35 , enableJack ? true, libjack2
47 assert raspiCameraSupport -> (stdenv.isLinux && stdenv.isAarch64);
49 stdenv.mkDerivation rec {
50 pname = "gst-plugins-good";
53 outputs = [ "out" "dev" ];
56 url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
57 sha256 = "1929nhjsvbl4bw37nfagnfsnxz737cm2x3ayz9ayrn9lwkfm45zp";
67 ] ++ lib.optionals stdenv.isLinux [
97 ] ++ lib.optionals raspiCameraSupport [
99 ] ++ lib.optionals gtkSupport [
102 ] ++ lib.optionals qt5Support (with qt5; [
107 ]) ++ lib.optionals stdenv.isDarwin [
109 ] ++ lib.optionals stdenv.isLinux [
116 ] ++ lib.optionals enableJack [
121 "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
122 "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
123 ] ++ lib.optionals (!qt5Support) [
125 ] ++ lib.optionals (!gtkSupport) [
127 ] ++ lib.optionals (!enableJack) [
129 ] ++ lib.optionals (!stdenv.isLinux) [
130 "-Ddv1394=disabled" # Linux only
131 "-Doss4=disabled" # Linux only
132 "-Doss=disabled" # Linux only
133 "-Dpulse=disabled" # TODO check if we can keep this enabled
134 "-Dv4l2-gudev=disabled" # Linux-only
135 "-Dv4l2=disabled" # Linux-only
136 "-Dximagesrc=disabled" # Linux-only
137 ] ++ lib.optionals (!raspiCameraSupport) [
138 "-Drpicamsrc=disabled"
143 scripts/extract-release-date-from-doap-file.py
147 # linking error on Darwin
148 # https://github.com/NixOS/nixpkgs/pull/70690#issuecomment-553694896
152 # fails 1 tests with "Unexpected critical/warning: g_object_set_is_valid_property: object class 'GstRtpStorage' has no property named ''"
155 # must be explicitely set since 5590e365
156 dontWrapQtApps = true;
159 description = "GStreamer Good Plugins";
160 homepage = "https://gstreamer.freedesktop.org";
162 a set of plug-ins that we consider to have good quality code,
163 correct functionality, our preferred license (LGPL for the plug-in
164 code, LGPL or LGPL-compatible for the supporting library).
166 license = licenses.lgpl2Plus;
167 platforms = platforms.linux ++ platforms.darwin;
168 maintainers = with maintainers; [ matthewbauer ];