- Fix build with new libimobiledevice

- Don't mount both gphoto and AFC mounts on AFC devices
This commit is contained in:
Bastien Nocera 2010-03-22 16:01:04 +00:00
parent 6cc60b39e3
commit 01782337d4
3 changed files with 91 additions and 1 deletions

View File

@ -0,0 +1,37 @@
From 870ad88dab23112c2b6e5c592d33e3224fa6cd3b Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Mon, 22 Mar 2010 15:21:31 +0000
Subject: [PATCH 1/2] Ignore gphoto2 mounts on AFC capable devices
Requires a small usbmuxd udev rules change, to mark devices
with the USBMUXD_AFC_DEVICE property.
https://bugzilla.gnome.org/show_bug.cgi?id=591009
---
monitor/gphoto2/ggphoto2volumemonitor.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/monitor/gphoto2/ggphoto2volumemonitor.c b/monitor/gphoto2/ggphoto2volumemonitor.c
index 8b87074..9fefc5d 100644
--- a/monitor/gphoto2/ggphoto2volumemonitor.c
+++ b/monitor/gphoto2/ggphoto2volumemonitor.c
@@ -199,6 +199,16 @@ gudev_add_camera (GGPhoto2VolumeMonitor *monitor, GUdevDevice *device, gboolean
int usb_bus_num;
int usb_device_num;
+ /* For iPhones and iPod Touches, don't mount gphoto mounts,
+ * we already have access through AFC */
+#ifdef HAVE_AFC
+ if (g_udev_device_get_property_as_boolean (device, "USBMUX_SUPPORTED"))
+ {
+ /* g_debug ("ignoring device, is AFC"); */
+ return;
+ }
+#endif /* HAVE_AFC */
+
property = g_udev_device_get_property (device, "BUSNUM");
if (property == NULL) {
g_warning("device %s has no BUSNUM property, ignoring", g_udev_device_get_device_file (device));
--
1.7.0.1

View File

@ -0,0 +1,41 @@
From cbecef5aa8678a6564ca3610adc2ff03f8dd75e1 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Mon, 22 Mar 2010 14:31:23 +0000
Subject: [PATCH 2/2] Fix compilation with libimobiledevice 1.0.0
AFC_E_INVALID_ARGUMENT was renamed to AFC_E_INVALID_ARG
in http://github.com/MattColyer/libiphone/commit/36048ded8efda588a20b5cf284670a984f7cc650
https://bugzilla.gnome.org/show_bug.cgi?id=613588
---
daemon/gvfsbackendafc.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/daemon/gvfsbackendafc.c b/daemon/gvfsbackendafc.c
index c056718..be6f0a3 100644
--- a/daemon/gvfsbackendafc.c
+++ b/daemon/gvfsbackendafc.c
@@ -38,6 +38,11 @@
#define G_VFS_BACKEND_AFC_MAX_FILE_SIZE G_MAXINT64
int g_blocksize = 4096; /* assume this is the default block size */
+/* AFC_E_INVALID_ARGUMENT was renamed between 0.9.7 and 1.0.0 */
+#ifndef AFC_E_INVALID_ARG
+#define AFC_E_INVALID_ARG AFC_E_INVALID_ARGUMENT
+#endif /* !AFC_E_INVALID_ARG */
+
struct _GVfsBackendAfc {
GVfsBackend backend;
@@ -62,7 +67,7 @@ static struct afc_error_mapping afc_error_to_g_io_error[] = {
{ AFC_E_READ_ERROR , G_IO_ERROR_NOT_DIRECTORY },
{ AFC_E_WRITE_ERROR , G_IO_ERROR_FAILED },
{ AFC_E_UNKNOWN_PACKET_TYPE , G_IO_ERROR_FAILED },
- { AFC_E_INVALID_ARGUMENT , G_IO_ERROR_INVALID_ARGUMENT },
+ { AFC_E_INVALID_ARG , G_IO_ERROR_INVALID_ARGUMENT },
{ AFC_E_OBJECT_NOT_FOUND , G_IO_ERROR_NOT_FOUND },
{ AFC_E_OBJECT_IS_DIR , G_IO_ERROR_IS_DIRECTORY },
{ AFC_E_DIR_NOT_EMPTY , G_IO_ERROR_NOT_EMPTY },
--
1.7.0.1

View File

@ -1,7 +1,7 @@
Summary: Backends for the gio framework in GLib Summary: Backends for the gio framework in GLib
Name: gvfs Name: gvfs
Version: 1.5.5 Version: 1.5.5
Release: 2%{?dist} Release: 3%{?dist}
License: LGPLv2+ License: LGPLv2+
Group: System Environment/Libraries Group: System Environment/Libraries
URL: http://www.gtk.org URL: http://www.gtk.org
@ -34,6 +34,12 @@ BuildRequires: libtool
# http://bugzilla.gnome.org/show_bug.cgi?id=567235 # http://bugzilla.gnome.org/show_bug.cgi?id=567235
Patch0: gvfs-archive-integration.patch Patch0: gvfs-archive-integration.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=591009
Patch1: 0001-Ignore-gphoto2-mounts-on-AFC-capable-devices.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=613588
Patch2: 0002-Fix-compilation-with-libimobiledevice-1.0.0.patch
# Recognize gphoto2 cameras which don't implement get storageinfo # Recognize gphoto2 cameras which don't implement get storageinfo
# https://bugzilla.redhat.com/show_bug.cgi?id=552856 # https://bugzilla.redhat.com/show_bug.cgi?id=552856
Patch15: gvfs-1.5.1-gphoto2-no-storageinfo-support.patch Patch15: gvfs-1.5.1-gphoto2-no-storageinfo-support.patch
@ -133,6 +139,8 @@ including phones and music players to applications using gvfs.
%prep %prep
%setup -q %setup -q
%patch0 -p1 -b .archive-integration %patch0 -p1 -b .archive-integration
%patch1 -p1 -b .only-afc-on-afc
%patch2 -p1 -b .libimobiledevice-1.0
%patch15 -p1 -b .gphoto2-storageinfo %patch15 -p1 -b .gphoto2-storageinfo
%build %build
@ -313,6 +321,10 @@ killall -USR1 gvfsd >&/dev/null || :
%{_datadir}/gvfs/remote-volume-monitors/afc.monitor %{_datadir}/gvfs/remote-volume-monitors/afc.monitor
%changelog %changelog
* Mon Mar 22 2010 Bastien Nocera <bnocera@redhat.com> 1.5.5-3
- Fix build with new libimobiledevice
- Don't mount both gphoto and AFC mounts on AFC devices
* Sun Mar 21 2010 Peter Robinson <pbrobinson@gmail.com> 1.5.5-2 * Sun Mar 21 2010 Peter Robinson <pbrobinson@gmail.com> 1.5.5-2
- Rebuild for new stable libimobiledevice - Rebuild for new stable libimobiledevice