GNOME Bugzilla – Bug 747841
gio: plugin dependencies wrong or insufficient
Last modified: 2015-04-17 14:23:38 UTC
The gio plugin adds a dependency on gio-2.0's giomoduledir (correct), but also a dependency on "gvfsd" either in the library paths or gio-2.0's libdir. This latter dependency is not only insufficient (e.g. it will miss the addition of "gvfsd-smb") but also wrong: The correct path to use would be gvfs' libexecdir, which is set to /usr/lib/gvfs on Arch. However, gvfs does not have a pkgconfig file, so discovering this path automatically seems impossible.
I guess an alternative could be monitoring $(datadir)/gvfs/mounts .
We can't use GStreamer's directories, we have to base it on something gio gives us.
Created attachment 301529 [details] [review] gst-glib.m4: also export GIO_GVFS_DIR in config.h for gio plugin
Created attachment 301530 [details] [review] gio: fix gvfs plugin dependencies This seems correct on my debian sid system, but not sure if it's generally correct.
Ok, pushed something based on the mounts directory instead after discussion on IRC. ommit dc4e517dc6de54182c81e68e27feb13585a66e8f Author: Tim-Philipp Müller <tim@centricular.com> Date: Tue Apr 14 12:47:07 2015 +0100 gio: fix gvfs plugin dependencies Try harder to look for gvfs backend changes in the right place, to make sure the plugin gets reloaded when backends are removed or installed. We watch the gvfs mounts directory because the files there contain absolute paths to the backend executables, and those may not be in the usual gio path. https://bugzilla.gnome.org/show_bug.cgi?id=747841
This patch uses GIO_PREFIX, which appears not to be in glib 2.41 (~april 2014 tree), though -base requires glib 2.32 (so build breaks with 2.41 though configure passes).
GIO_PREFIX was added in http://cgit.freedesktop.org/gstreamer/common/commit/?id=241fcb7de0af5df777b18821c81840564a7e5c95 . There's hardly a pkgconfig file without that variable.
Indeed, fixed with an updated common. I did not realize it was from gst and not from gio with that name so I looked in the wrong place :)