- 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)
This commit is contained in:
parent
829801e676
commit
e9af85216f
34
gvfs-1.5.1-dont-leak-mountoperation.patch
Normal file
34
gvfs-1.5.1-dont-leak-mountoperation.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From 438628c6794fc8f9203fbd99b534371a1aa6d11a Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <jwrdegoede@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
|
33
gvfs-1.5.1-gphoto2-no-storageinfo-support.patch
Normal file
33
gvfs-1.5.1-gphoto2-no-storageinfo-support.patch
Normal file
@ -0,0 +1,33 @@
|
||||
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@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++)
|
47
gvfs-1.5.1-obexftp-dbus-private-connection.patch
Normal file
47
gvfs-1.5.1-obexftp-dbus-private-connection.patch
Normal file
@ -0,0 +1,47 @@
|
||||
From 56c3b9cf90bfd53a699b5951677fee9f83b26c2f Mon Sep 17 00:00:00 2001
|
||||
From: Bastien Nocera <hadess@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
|
17
gvfs.spec
17
gvfs.spec
@ -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.patch
|
||||
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 gvfs.
|
||||
%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@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@redhat.com> - 1.5.1-3
|
||||
- Rebuilt against new libiphone
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user