reassign 426694 libgstreamer0.10-0 tag 426694 + patch thanks Le jeudi 31 mai 2007 à 10:18 +0200, Loïc Minier a écrit : > Basically, it's a cache, and it's currently not built around the > assumption that the "uri_protocol"s supported by a plugin can change > without the plugin changing.
Until this is properly fixed in GStreamer, I have written a patch for gstreamer0.10 that adds a specific case for libgstgnomevfs. It's ugly but simple, and I have checked it fixes the issue for whatever gnome-vfs module you could imagine. > While it's an interesting problem WRT to updating this list, it's only > a real life problem with http support which has been bugging us in > plenty of apps since it's not supported by default anymore. I think it > makes sense to revert this change and move back the http module to > the default list of gnome-vfs-2.0 modules. I have checked, and it would bring back the whole Kerberos stack in libgnomevfs2-0's dependencies. I'd like to avoid that, as it would completely defeat libgnomevfs2-extra's point. -- .''`. : :' : We are debian.org. Lower your prices, surrender your code. `. `' We will add your hardware and software distinctiveness to `- our own. Resistance is futile.
--- gst/gstregistry.c.orig 2007-06-04 22:15:53.761256184 +0200
+++ gst/gstregistry.c 2007-06-04 22:30:15.218347826 +0200
@@ -860,6 +860,14 @@
gst_object_unref (plugin);
continue;
}
+ if (g_str_has_suffix (filename, "/libgstgnomevfs.so")) {
+ /* You are under hypnosis. *
+ * You don't see anything. */
+ struct stat tmp_status;
+ if (!stat (LIBDIR "/gnome-vfs-2.0/modules", &tmp_status)) {
+ file_status.st_mtime = MAX (file_status.st_mtime, tmp_status.st_mtime);
+ }
+ }
if (plugin->file_mtime == file_status.st_mtime &&
plugin->file_size == file_status.st_size) {
GST_LOG_OBJECT (registry, "file %s cached", filename);
--- gst/gstplugin.c.orig 2007-06-04 21:56:41.647600969 +0200
+++ gst/gstplugin.c 2007-06-04 22:16:55.388768136 +0200
@@ -407,6 +407,14 @@
g_strerror (errno));
goto return_error;
}
+ if (g_str_has_suffix (filename, "/libgstgnomevfs.so")) {
+ /* Nobody wrote this code, it spawned spontaneously. *
+ * If someone asks, just pretend you don't know. */
+ struct stat tmp_status;
+ if (!stat (LIBDIR "/gnome-vfs-2.0/modules", &tmp_status)) {
+ file_status.st_mtime = MAX (file_status.st_mtime, tmp_status.st_mtime);
+ }
+ }
module = g_module_open (filename, G_MODULE_BIND_LOCAL);
if (module == NULL) {
signature.asc
Description: Ceci est une partie de message numériquement signée

