Merge pull request #23504 from ttuegel/phonon-gstreamer

phonon-gstreamer-backend: Hardcode GStreamer plugin paths
This commit is contained in:
Thomas Tuegel 2017-03-10 08:02:21 -06:00 committed by GitHub
commit 290c096a16
3 changed files with 35 additions and 15 deletions

View File

@ -182,16 +182,6 @@ in
environment.variables = {
# Enable GTK applications to load SVG icons
GST_PLUGIN_SYSTEM_PATH_1_0 =
lib.makeSearchPath "/lib/gstreamer-1.0"
(builtins.map (pkg: pkg.out) (with pkgs.gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gst-plugins-bad
gst-libav # for mp3 playback
]));
GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache";
};

View File

@ -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<char**>(args);
GError *err = 0;

View File

@ -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"
];
# cleanup: the build system creates (empty) $out/$out/share/icons (double prefix)
# if DESTDIR is unset
DESTDIR="/";