diff --git a/pkgs/development/libraries/phonon/backends/gst-plugin-paths.patch b/pkgs/development/libraries/phonon/backends/gst-plugin-paths.patch new file mode 100644 index 000000000000..39c1b9c0d290 --- /dev/null +++ b/pkgs/development/libraries/phonon/backends/gst-plugin-paths.patch @@ -0,0 +1,13 @@ +Index: phonon-gstreamer-4.9.0/gstreamer/backend.cpp +=================================================================== +--- phonon-gstreamer-4.9.0.orig/gstreamer/backend.cpp ++++ phonon-gstreamer-4.9.0/gstreamer/backend.cpp +@@ -85,6 +85,8 @@ Backend::Backend(QObject *parent, const + "--gst-debug-no-color" + }; + ++ qputenv("GST_PLUGIN_PATH_1_0", GST_PLUGIN_PATH_1_0); ++ + int argc = sizeof(args) / sizeof(*args); + char **argv = const_cast(args); + GError *err = 0; diff --git a/pkgs/development/libraries/phonon/backends/gstreamer.nix b/pkgs/development/libraries/phonon/backends/gstreamer.nix index 56d40f818338..9fdcf65346cc 100644 --- a/pkgs/development/libraries/phonon/backends/gstreamer.nix +++ b/pkgs/development/libraries/phonon/backends/gstreamer.nix @@ -29,15 +29,32 @@ stdenv.mkDerivation rec { sha256 = "1wc5p1rqglf0n1avp55s50k7fjdzdrhg0gind15k8796w7nfbhyf"; }; + # Hardcode paths to useful plugins so the backend doesn't depend + # on system paths being set. + patches = [ ./gst-plugin-paths.patch ]; + + NIX_CFLAGS_COMPILE = + let gstPluginPaths = + lib.makeSearchPathOutput "lib" "/lib/gstreamer-1.0" + (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-ugly + gst-plugins-bad + gst-libav + ]); + in [ + # This flag should be picked up through pkgconfig, but it isn't. + "-I${gst_all_1.gstreamer.dev}/lib/gstreamer-1.0/include" + + ''-DGST_PLUGIN_PATH_1_0="${gstPluginPaths}"'' + ]; + buildInputs = with gst_all_1; [ gstreamer gst-plugins-base phonon ] ++ (if withQt5 then [ qtbase qtx11extras ] else [ qt4 ]); - NIX_CFLAGS_COMPILE = [ - # This flag should be picked up through pkgconfig, but it isn't. - "-I${gst_all_1.gstreamer.dev}/lib/gstreamer-1.0/include" - ]; - nativeBuildInputs = [ cmake pkgconfig ] ++ optional withQt5 extra-cmake-modules; cmakeFlags =