rpms/gvfs/devel gvfs-1.5.1-dont-leak-mountoperation.patch, NONE, 1.1 gvfs-1.5.1-gphoto2-no-storageinfo-support.patch, NONE, 1.1 gvfs-1.5.1-obexftp-dbus-private-connection.patch, NONE, 1.1 gvfs.spec, 1.167, 1.168

Tomas Bzatek tbzatek at fedoraproject.org
Tue Jan 12 15:12:57 UTC 2010


Author: tbzatek

Update of /cvs/extras/rpms/gvfs/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv1015

Modified Files:
	gvfs.spec 
Added Files:
	gvfs-1.5.1-dont-leak-mountoperation.patch 
	gvfs-1.5.1-gphoto2-no-storageinfo-support.patch 
	gvfs-1.5.1-obexftp-dbus-private-connection.patch 
Log Message:
* Tue Jan 12 2010 Tomas Bzatek <tbzatek at redhat.com> - 1.5.1-4
- Don't leak mount job operation (#552842)
- Recognize gphoto2 cameras which don't implement get storageinfo (#552856)
- ObexFTP: Use a private D-Bus connection for obex-data-server (#539347)


gvfs-1.5.1-dont-leak-mountoperation.patch:
 gvfsdaemon.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE gvfs-1.5.1-dont-leak-mountoperation.patch ---
>From 438628c6794fc8f9203fbd99b534371a1aa6d11a Mon Sep 17 00:00:00 2001
From: Hans de Goede <jwrdegoede at fedoraproject.org>
Date: Tue, 12 Jan 2010 12:36:11 +0000
Subject: Don't leak mount job operation

gvfs <= 1.5.1 does not properly call the finalize function of backends,
due to a missing unref call. This causes the cleanup functions of the
libraries underlying the backends to not get called.

In case of the gphoto2 backend, this causes the kernel driver for dual
mode webcams (which have a kernel space webcam driver and a userspace
stillcam driver), to not get re-attached to the device when then the gvfs
mount gets unmounted.

This patch fixes this by adding a g_object_unref (job) to
g_vfs_daemon_initiate_mount, which is needed as g_vfs_daemon_queue_job
takes a reference itself.

https://bugzilla.gnome.org/show_bug.cgi?id=606194
---
diff --git a/daemon/gvfsdaemon.c b/daemon/gvfsdaemon.c
index 15fffc7..909e1d7 100644
--- a/daemon/gvfsdaemon.c
+++ b/daemon/gvfsdaemon.c
@@ -1081,6 +1081,7 @@ g_vfs_daemon_initiate_mount (GVfsDaemon *daemon,
 
   job = g_vfs_job_mount_new (mount_spec, mount_source, is_automount, request, backend);
   g_vfs_daemon_queue_job (daemon, job);
+  g_object_unref (job);
 }
 
 /**
--
cgit v0.8.3.1

gvfs-1.5.1-gphoto2-no-storageinfo-support.patch:
 ggphoto2volumemonitor.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

--- NEW FILE gvfs-1.5.1-gphoto2-no-storageinfo-support.patch ---
Not all gphoto drivers implement get storage info (drivers for proprietary
protocols often don't). This patch fixes the gphoto2volumemonitor to still
recognize cams which gphoto driver does not implement get storage info.

Signed-off-by: Hans de Goede <hdegoede at redhat.com>
diff -up gvfs-1.5.1/monitor/gphoto2/ggphoto2volumemonitor.c~ gvfs-1.5.1/monitor/gphoto2/ggphoto2volumemonitor.c
--- gvfs-1.5.1/monitor/gphoto2/ggphoto2volumemonitor.c~	2009-11-18 13:14:51.000000000 +0100
+++ gvfs-1.5.1/monitor/gphoto2/ggphoto2volumemonitor.c	2010-01-06 11:46:16.000000000 +0100
@@ -605,7 +605,7 @@ get_stores_for_camera (int bus_num, int 
   GPContext *context;
   GPPortInfo info;
   GPPortInfoList *il;
-  int num_storage_info, n;
+  int num_storage_info, n, rc;
   Camera *camera;
   char *port;
   guint i;
@@ -637,8 +637,14 @@ get_stores_for_camera (int bus_num, int 
     goto out;
 
   /* Get information about the storage heads */
-  if (gp_camera_get_storageinfo (camera, &storage_info, &num_storage_info, context) != 0)
+  rc = gp_camera_get_storageinfo (camera, &storage_info, &num_storage_info, context);
+  if (rc != 0) {
+    /* Not all gphoto drivers implement get storage info (drivers for proprietary
+       protocols often don't) */
+    if (rc == GP_ERROR_NOT_SUPPORTED)
+      l = g_list_prepend (l, g_strdup ("/"));
     goto out;
+  }
 
   /* Append the data to the list */
   for (i = 0; i < num_storage_info; i++)

gvfs-1.5.1-obexftp-dbus-private-connection.patch:
 gvfsbackendobexftp.c |   22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

--- NEW FILE gvfs-1.5.1-obexftp-dbus-private-connection.patch ---
>From 56c3b9cf90bfd53a699b5951677fee9f83b26c2f Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess at hadess.net>
Date: Thu, 07 Jan 2010 18:08:00 +0000
Subject: [obexftp] Use a private D-Bus connection for obex-data-server

So as to avoid gvfs and our backend fighting over the session
bus connection, and causing crashers.

https://bugzilla.gnome.org/show_bug.cgi?id=570366
https://bugzilla.redhat.com/show_bug.cgi?id=539347
---
diff --git a/daemon/gvfsbackendobexftp.c b/daemon/gvfsbackendobexftp.c
index eb1b43b..8dc8bdf 100644
--- a/daemon/gvfsbackendobexftp.c
+++ b/daemon/gvfsbackendobexftp.c
@@ -502,9 +502,28 @@ g_vfs_backend_obexftp_finalize (GObject *object)
 static void
 g_vfs_backend_obexftp_init (GVfsBackendObexftp *backend)
 {
+  DBusConnection *conn;
+  DBusGConnection *connection;
+  DBusError error;
   GError *err = NULL;
 
-  backend->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &err);
+  /* Otherwise dbus-glib doesn't setup it value types */
+  connection = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
+
+  if (connection != NULL)
+        dbus_g_connection_unref (connection);
+
+  /* Connect to the session bus via a private connection */
+  dbus_error_init (&error);
+  conn = dbus_bus_get_private (DBUS_BUS_SESSION, &error);
+  if (conn == NULL) {
+      g_printerr ("Connecting to session bus failed: %s\n", err->message);
+      dbus_error_free (&error);
+      return;
+  }
+  dbus_connection_setup_with_g_main (conn, NULL);
+
+  backend->connection = dbus_connection_get_g_connection (conn);
   if (backend->connection == NULL) {
       g_printerr ("Connecting to session bus failed: %s\n", err->message);
       g_error_free (err);
--
cgit v0.8.3.1


Index: gvfs.spec
===================================================================
RCS file: /cvs/extras/rpms/gvfs/devel/gvfs.spec,v
retrieving revision 1.167
retrieving revision 1.168
diff -u -p -r1.167 -r1.168
--- gvfs.spec	15 Dec 2009 15:57:41 -0000	1.167
+++ gvfs.spec	12 Jan 2010 15:12:56 -0000	1.168
@@ -1,7 +1,7 @@
 Summary: Backends for the gio framework in GLib
 Name: gvfs
 Version: 1.5.1
-Release: 3%{?dist}
+Release: 4%{?dist}
 License: LGPLv2+
 Group: System Environment/Libraries
 URL: http://www.gtk.org
@@ -40,6 +40,13 @@ Patch4: gvfs-1.4.3-smb-queryfs-old-samba
 Patch5: gvfs-1.5.2-metadata-gssize.patch
 Patch6: gvfs-1.5.2-metadata-mtime.patch
 Patch7: gvfs-1.5.2-fuse-timestamps.patch
+Patch14: gvfs-1.5.1-dont-leak-mountoperation.patch
+# Recognize gphoto2 cameras which don't implement get storageinfo
+# https://bugzilla.redhat.com/show_bug.cgi?id=552856
+Patch15: gvfs-1.5.1-gphoto2-no-storageinfo-support.patch
+# from upstream
+Patch16: gvfs-1.5.1-obexftp-dbus-private-connection.patch
+
 
 
 Obsoletes: gnome-mount <= 0.8
@@ -142,6 +149,9 @@ and iPod Touches to applications using g
 %patch5 -p1 -b .metadata-gssize
 %patch6 -p1 -b .metadata-mtime
 %patch7 -p1 -b .fuse-timestamps
+%patch14 -p1 -b .moutop-leak
+%patch15 -p1 -b .gphoto2-storageinfo
+%patch16 -p1 -b .obexftp-dbus
 
 %build
 
@@ -307,6 +317,11 @@ killall -USR1 gvfsd >&/dev/null || :
 %{_datadir}/gvfs/remote-volume-monitors/afc.monitor
 
 %changelog
+* Tue Jan 12 2010 Tomas Bzatek <tbzatek at redhat.com> - 1.5.1-4
+- Don't leak mount job operation (#552842)
+- Recognize gphoto2 cameras which don't implement get storageinfo (#552856)
+- ObexFTP: Use a private D-Bus connection for obex-data-server (#539347)
+
 * Tue Dec 15 2009 Tomas Bzatek <tbzatek at redhat.com> - 1.5.1-3
 - Rebuilt against new libiphone
 



More information about the scm-commits mailing list