- AFC: Use new libimobiledevice library
This commit is contained in:
		
							parent
							
								
									f357e339dc
								
							
						
					
					
						commit
						26cfe43d3c
					
				
							
								
								
									
										287
									
								
								gvfs-1.5.3-use-libimobiledevice.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										287
									
								
								gvfs-1.5.3-use-libimobiledevice.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,287 @@ | |||||||
|  | From 3f3f130072c94e38d6f07ef37d425a1c86bddd29 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Nikias Bassen <nikias@gmx.li> | ||||||
|  | Date: Sun, 31 Jan 2010 11:54:44 +0000 | ||||||
|  | Subject: Update AFC backend and volume monitor for libimobiledevice 0.9.7 | ||||||
|  | 
 | ||||||
|  | ---
 | ||||||
|  | diff --git a/configure.ac b/configure.ac
 | ||||||
|  | index b47f091..f366d3a 100644
 | ||||||
|  | --- a/configure.ac
 | ||||||
|  | +++ b/configure.ac
 | ||||||
|  | @@ -331,10 +331,10 @@ AFC_LIBS=
 | ||||||
|  |  AFC_CFLAGS= | ||||||
|  |   | ||||||
|  |  if test "x$enable_afc" != "xno" ; then | ||||||
|  | -  PKG_CHECK_EXISTS(libiphone-1.0 >= 0.9.6, msg_afc=yes)
 | ||||||
|  | +  PKG_CHECK_EXISTS(libimobiledevice-1.0 >= 0.9.7, msg_afc=yes)
 | ||||||
|  |   | ||||||
|  |    if test "x$msg_afc" = "xyes"; then | ||||||
|  | -    PKG_CHECK_MODULES(AFC, libiphone-1.0)
 | ||||||
|  | +    PKG_CHECK_MODULES(AFC, libimobiledevice-1.0)
 | ||||||
|  |      AC_DEFINE(HAVE_AFC, 1, [Define to 1 if AFC is going to be built]) | ||||||
|  |    fi | ||||||
|  |  fi | ||||||
|  | diff --git a/daemon/gvfsbackendafc.c b/daemon/gvfsbackendafc.c
 | ||||||
|  | index 2d42d15..c056718 100644
 | ||||||
|  | --- a/daemon/gvfsbackendafc.c
 | ||||||
|  | +++ b/daemon/gvfsbackendafc.c
 | ||||||
|  | @@ -16,9 +16,9 @@
 | ||||||
|  |  #include <glib/gi18n.h> | ||||||
|  |  #include <errno.h> | ||||||
|  |   | ||||||
|  | -#include <libiphone/libiphone.h>
 | ||||||
|  | -#include <libiphone/lockdown.h>
 | ||||||
|  | -#include <libiphone/afc.h>
 | ||||||
|  | +#include <libimobiledevice/libimobiledevice.h>
 | ||||||
|  | +#include <libimobiledevice/lockdown.h>
 | ||||||
|  | +#include <libimobiledevice/afc.h>
 | ||||||
|  |   | ||||||
|  |  #include "gvfsbackendafc.h" | ||||||
|  |  #include "gvfsjobopenforread.h" | ||||||
|  | @@ -46,7 +46,7 @@ struct _GVfsBackendAfc {
 | ||||||
|  |    char *model; | ||||||
|  |    gboolean connected; | ||||||
|  |   | ||||||
|  | -  iphone_device_t dev;
 | ||||||
|  | +  idevice_t dev;
 | ||||||
|  |    afc_client_t afc_cli; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | @@ -124,7 +124,7 @@ g_vfs_backend_afc_close_connection (GVfsBackendAfc *self)
 | ||||||
|  |        afc_client_free (self->afc_cli); | ||||||
|  |        g_free (self->model); | ||||||
|  |        self->model = NULL; | ||||||
|  | -      iphone_device_free (self->dev);
 | ||||||
|  | +      idevice_free (self->dev);
 | ||||||
|  |      } | ||||||
|  |    self->connected = FALSE; | ||||||
|  |  } | ||||||
|  | @@ -194,23 +194,23 @@ g_vfs_backend_lockdownd_check (lockdownd_error_t cond, GVfsJob *job)
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  static int | ||||||
|  | -g_vfs_backend_iphone_check (iphone_error_t cond, GVfsJob *job)
 | ||||||
|  | +g_vfs_backend_idevice_check (idevice_error_t cond, GVfsJob *job)
 | ||||||
|  |  { | ||||||
|  | -  if (G_LIKELY(cond == IPHONE_E_SUCCESS))
 | ||||||
|  | +  if (G_LIKELY(cond == IDEVICE_E_SUCCESS))
 | ||||||
|  |          return 0; | ||||||
|  |   | ||||||
|  |    switch (cond) | ||||||
|  |      { | ||||||
|  | -    case IPHONE_E_INVALID_ARG:
 | ||||||
|  | +    case IDEVICE_E_INVALID_ARG:
 | ||||||
|  |        g_vfs_job_failed (job, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, | ||||||
|  | -                        _("iPhone Device Error: Invalid Argument"));
 | ||||||
|  | +                        _("libimobiledevice Error: Invalid Argument"));
 | ||||||
|  |        break; | ||||||
|  | -    case IPHONE_E_NO_DEVICE:
 | ||||||
|  | +    case IDEVICE_E_NO_DEVICE:
 | ||||||
|  |        g_vfs_job_failed (job, G_IO_ERROR, G_IO_ERROR_FAILED, | ||||||
|  | -                        _("iPhone Device Error: No device found. Make sure usbmuxd is set up correctly."));
 | ||||||
|  | +                        _("libimobiledevice Error: No device found. Make sure usbmuxd is set up correctly."));
 | ||||||
|  |      default: | ||||||
|  |        g_vfs_job_failed (job, G_IO_ERROR, G_IO_ERROR_FAILED, | ||||||
|  | -                        _("Unhandled iPhone Device error (%d)"), cond);
 | ||||||
|  | +                        _("Unhandled libimobiledevice error (%d)"), cond);
 | ||||||
|  |        break; | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | @@ -218,12 +218,12 @@ g_vfs_backend_iphone_check (iphone_error_t cond, GVfsJob *job)
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  static void | ||||||
|  | -_iphone_event_cb (const iphone_event_t *event, void *user_data)
 | ||||||
|  | +_idevice_event_cb (const idevice_event_t *event, void *user_data)
 | ||||||
|  |  { | ||||||
|  |    GVfsBackendAfc *afc_backend = G_VFS_BACKEND_AFC (user_data); | ||||||
|  |   | ||||||
|  |    g_return_if_fail (afc_backend->uuid != NULL); | ||||||
|  | -  if (event->event != IPHONE_DEVICE_REMOVE)
 | ||||||
|  | +  if (event->event != IDEVICE_DEVICE_REMOVE)
 | ||||||
|  |      return; | ||||||
|  |    if (g_str_equal (event->uuid, afc_backend->uuid) == FALSE) | ||||||
|  |      return; | ||||||
|  | @@ -232,7 +232,7 @@ _iphone_event_cb (const iphone_event_t *event, void *user_data)
 | ||||||
|  |   | ||||||
|  |    g_vfs_backend_afc_close_connection (afc_backend); | ||||||
|  |   | ||||||
|  | -  iphone_event_unsubscribe ();
 | ||||||
|  | +  idevice_event_unsubscribe ();
 | ||||||
|  |   | ||||||
|  |    /* TODO: need a cleaner way to force unmount ourselves */ | ||||||
|  |    exit (1); | ||||||
|  | @@ -254,7 +254,7 @@ g_vfs_backend_afc_mount (GVfsBackend *backend,
 | ||||||
|  |    GMountSpec *real_spec; | ||||||
|  |    GVfsBackendAfc *self; | ||||||
|  |    int retries; | ||||||
|  | -  iphone_error_t err;
 | ||||||
|  | +  idevice_error_t err;
 | ||||||
|  |    lockdownd_client_t lockdown_cli = NULL; | ||||||
|  |    char *camera_x_content_types[] = { "x-content/audio-player", "x-content/image-dcf", NULL}; | ||||||
|  |    char *media_player_x_content_types[] = {"x-content/audio-player", NULL}; | ||||||
|  | @@ -263,7 +263,7 @@ g_vfs_backend_afc_mount (GVfsBackend *backend,
 | ||||||
|  |    self = G_VFS_BACKEND_AFC(backend); | ||||||
|  |    self->connected = FALSE; | ||||||
|  |   | ||||||
|  | -  iphone_event_subscribe (_iphone_event_cb, self);
 | ||||||
|  | +  idevice_event_subscribe (_idevice_event_cb, self);
 | ||||||
|  |   | ||||||
|  |    /* setup afc */ | ||||||
|  |   | ||||||
|  | @@ -323,13 +323,13 @@ g_vfs_backend_afc_mount (GVfsBackend *backend,
 | ||||||
|  |   | ||||||
|  |    retries = 0; | ||||||
|  |    do { | ||||||
|  | -      err = iphone_device_new(&self->dev, self->uuid);
 | ||||||
|  | -      if (err == IPHONE_E_SUCCESS)
 | ||||||
|  | +      err = idevice_new(&self->dev, self->uuid);
 | ||||||
|  | +      if (err == IDEVICE_E_SUCCESS)
 | ||||||
|  |            break; | ||||||
|  |        g_usleep (G_USEC_PER_SEC); | ||||||
|  |    } while (retries++ < 10); | ||||||
|  |   | ||||||
|  | -  if (G_UNLIKELY(g_vfs_backend_iphone_check(err, G_VFS_JOB(job))))
 | ||||||
|  | +  if (G_UNLIKELY(g_vfs_backend_idevice_check(err, G_VFS_JOB(job))))
 | ||||||
|  |      goto out_destroy_service; | ||||||
|  |    if (G_UNLIKELY(g_vfs_backend_lockdownd_check (lockdownd_client_new_with_handshake (self->dev, | ||||||
|  |                                                                                       &lockdown_cli, | ||||||
|  | @@ -408,7 +408,7 @@ out_destroy_lockdown:
 | ||||||
|  |    lockdownd_client_free (lockdown_cli); | ||||||
|  |   | ||||||
|  |  out_destroy_dev: | ||||||
|  | -  iphone_device_free (self->dev);
 | ||||||
|  | +  idevice_free (self->dev);
 | ||||||
|  |   | ||||||
|  |  out_destroy_service: | ||||||
|  |    g_free (self->service); | ||||||
|  | @@ -1306,7 +1306,7 @@ g_vfs_backend_afc_init (GVfsBackendAfc *self)
 | ||||||
|  |    if (g_getenv ("GVFS_DEBUG") != NULL) | ||||||
|  |      { | ||||||
|  |        /* enable full debugging */ | ||||||
|  | -      iphone_set_debug_level (1);
 | ||||||
|  | +      idevice_set_debug_level (1);
 | ||||||
|  |      } | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | diff --git a/monitor/afc/afcvolume.c b/monitor/afc/afcvolume.c
 | ||||||
|  | index a0413ec..26da41f 100644
 | ||||||
|  | --- a/monitor/afc/afcvolume.c
 | ||||||
|  | +++ b/monitor/afc/afcvolume.c
 | ||||||
|  | @@ -9,9 +9,9 @@
 | ||||||
|  |  #include <glib.h> | ||||||
|  |  #include <gio/gio.h> | ||||||
|  |   | ||||||
|  | -#include <libiphone/libiphone.h>
 | ||||||
|  | -#include <libiphone/lockdown.h>
 | ||||||
|  | -#include <libiphone/afc.h>
 | ||||||
|  | +#include <libimobiledevice/libimobiledevice.h>
 | ||||||
|  | +#include <libimobiledevice/lockdown.h>
 | ||||||
|  | +#include <libimobiledevice/afc.h>
 | ||||||
|  |   | ||||||
|  |  #include "afcvolume.h" | ||||||
|  |   | ||||||
|  | @@ -71,28 +71,28 @@ g_vfs_afc_volume_class_init (GVfsAfcVolumeClass *klass)
 | ||||||
|  |  static int | ||||||
|  |  _g_vfs_afc_volume_update_metadata (GVfsAfcVolume *self) | ||||||
|  |  { | ||||||
|  | -  iphone_device_t dev;
 | ||||||
|  | +  idevice_t dev;
 | ||||||
|  |    afc_client_t afc_cli; | ||||||
|  |    lockdownd_client_t lockdown_cli = NULL; | ||||||
|  | -  iphone_error_t err;
 | ||||||
|  | +  idevice_error_t err;
 | ||||||
|  |    guint retries; | ||||||
|  |    char *model, *display_name; | ||||||
|  |    guint16 port; | ||||||
|  |   | ||||||
|  |    retries = 0; | ||||||
|  |    do { | ||||||
|  | -      err = iphone_device_new (&dev, self->uuid);
 | ||||||
|  | -      if (err == IPHONE_E_SUCCESS)
 | ||||||
|  | +      err = idevice_new (&dev, self->uuid);
 | ||||||
|  | +      if (err == IDEVICE_E_SUCCESS)
 | ||||||
|  |          break; | ||||||
|  |        g_usleep (G_USEC_PER_SEC); | ||||||
|  |    } while (retries++ < 10); | ||||||
|  |   | ||||||
|  | -  if (err != IPHONE_E_SUCCESS)
 | ||||||
|  | +  if (err != IDEVICE_E_SUCCESS)
 | ||||||
|  |      return 0; | ||||||
|  |   | ||||||
|  |    if (lockdownd_client_new_with_handshake (dev, &lockdown_cli, "gvfs-afc-volume-monitor") != LOCKDOWN_E_SUCCESS) | ||||||
|  |      { | ||||||
|  | -      iphone_device_free (dev);
 | ||||||
|  | +      idevice_free (dev);
 | ||||||
|  |        return 0; | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | @@ -106,7 +106,7 @@ _g_vfs_afc_volume_update_metadata (GVfsAfcVolume *self)
 | ||||||
|  |    if (lockdownd_start_service (lockdown_cli, DEFAULT_SERVICE, &port) != LOCKDOWN_E_SUCCESS) | ||||||
|  |      { | ||||||
|  |        lockdownd_client_free (lockdown_cli); | ||||||
|  | -      iphone_device_free (dev);
 | ||||||
|  | +      idevice_free (dev);
 | ||||||
|  |        return 0; | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | @@ -127,7 +127,7 @@ _g_vfs_afc_volume_update_metadata (GVfsAfcVolume *self)
 | ||||||
|  |      } | ||||||
|  |   | ||||||
|  |    lockdownd_client_free (lockdown_cli); | ||||||
|  | -  iphone_device_free (dev);
 | ||||||
|  | +  idevice_free (dev);
 | ||||||
|  |   | ||||||
|  |    return 1; | ||||||
|  |  } | ||||||
|  | diff --git a/monitor/afc/afcvolumemonitor.c b/monitor/afc/afcvolumemonitor.c
 | ||||||
|  | index 91b3e41..d10e862 100644
 | ||||||
|  | --- a/monitor/afc/afcvolumemonitor.c
 | ||||||
|  | +++ b/monitor/afc/afcvolumemonitor.c
 | ||||||
|  | @@ -10,7 +10,7 @@
 | ||||||
|  |  #include <gvfsproxyvolumemonitordaemon.h> | ||||||
|  |  #include <stdio.h> | ||||||
|  |  #include <gio/gio.h> | ||||||
|  | -#include <libiphone/libiphone.h>
 | ||||||
|  | +#include <libimobiledevice/libimobiledevice.h>
 | ||||||
|  |  #include "afcvolume.h" | ||||||
|  |  #include "afcvolumemonitor.h" | ||||||
|  |   | ||||||
|  | @@ -70,7 +70,7 @@ g_vfs_afc_monitor_remove_volume (GVfsAfcVolumeMonitor *self,
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  static void | ||||||
|  | -g_vfs_afc_monitor_iphone_event (const iphone_event_t *event, void *user_data)
 | ||||||
|  | +g_vfs_afc_monitor_idevice_event (const idevice_event_t *event, void *user_data)
 | ||||||
|  |  { | ||||||
|  |    GVfsAfcVolumeMonitor *self; | ||||||
|  |   | ||||||
|  | @@ -78,7 +78,7 @@ g_vfs_afc_monitor_iphone_event (const iphone_event_t *event, void *user_data)
 | ||||||
|  |   | ||||||
|  |    self = G_VFS_AFC_VOLUME_MONITOR(user_data); | ||||||
|  |   | ||||||
|  | -  if (event->event == IPHONE_DEVICE_ADD)
 | ||||||
|  | +  if (event->event == IDEVICE_DEVICE_ADD)
 | ||||||
|  |      g_vfs_afc_monitor_create_volume (self, event->uuid); | ||||||
|  |    else | ||||||
|  |      g_vfs_afc_monitor_remove_volume (self, event->uuid); | ||||||
|  | @@ -95,7 +95,7 @@ g_vfs_afc_volume_monitor_constructor (GType type, guint ncps,
 | ||||||
|  |   | ||||||
|  |    self->volumes = NULL; | ||||||
|  |   | ||||||
|  | -  iphone_event_subscribe(g_vfs_afc_monitor_iphone_event, self);
 | ||||||
|  | +  idevice_event_subscribe(g_vfs_afc_monitor_idevice_event, self);
 | ||||||
|  |   | ||||||
|  |    g_print ("Volume monitor alive\n"); | ||||||
|  |   | ||||||
|  | @@ -119,7 +119,7 @@ g_vfs_afc_volume_monitor_finalize (GObject *_self)
 | ||||||
|  |    if (self->volumes) | ||||||
|  |      list_free (self->volumes); | ||||||
|  |   | ||||||
|  | -  iphone_event_unsubscribe();
 | ||||||
|  | +  idevice_event_unsubscribe();
 | ||||||
|  |   | ||||||
|  |    if (G_OBJECT_CLASS(g_vfs_afc_volume_monitor_parent_class)->finalize) | ||||||
|  |      (*G_OBJECT_CLASS(g_vfs_afc_volume_monitor_parent_class)->finalize)( G_OBJECT(self)); | ||||||
|  | --
 | ||||||
|  | cgit v0.8.3.1 | ||||||
							
								
								
									
										13
									
								
								gvfs.spec
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								gvfs.spec
									
									
									
									
									
								
							| @ -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.2 | Version: 1.5.2 | ||||||
| Release: 3%{?dist} | Release: 4%{?dist} | ||||||
| License: LGPLv2+ | License: LGPLv2+ | ||||||
| Group: System Environment/Libraries | Group: System Environment/Libraries | ||||||
| URL: http://www.gtk.org | URL: http://www.gtk.org | ||||||
| @ -36,6 +36,7 @@ BuildRequires: libtool | |||||||
| Patch0: gvfs-archive-integration.patch | Patch0: gvfs-archive-integration.patch | ||||||
| # from upstream | # from upstream | ||||||
| Patch1: gvfs-1.5.3-afc-new-libiphone.patch | Patch1: gvfs-1.5.3-afc-new-libiphone.patch | ||||||
|  | Patch2: gvfs-1.5.3-use-libimobiledevice.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 | ||||||
| @ -126,17 +127,18 @@ Summary: AFC support for gvfs | |||||||
| Group: System Environment/Libraries | Group: System Environment/Libraries | ||||||
| Requires: %{name} = %{version}-%{release} | Requires: %{name} = %{version}-%{release} | ||||||
| Requires: usbmuxd | Requires: usbmuxd | ||||||
| BuildRequires: libiphone-devel >= 0.9.4 | BuildRequires: libimobiledevice-devel >= 0.9.7 | ||||||
| 
 | 
 | ||||||
| %description afc | %description afc | ||||||
| This package provides support for reading files on Apple iPhones and | This package provides support for reading files on mobile devices | ||||||
| and iPod Touches to applications using gvfs. | 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 .afc-buildfix | %patch1 -p1 -b .afc-buildfix | ||||||
|  | %patch2 -p1 -b .afc-libimobiledevice | ||||||
| %patch15 -p1 -b .gphoto2-storageinfo | %patch15 -p1 -b .gphoto2-storageinfo | ||||||
| 
 | 
 | ||||||
| %build | %build | ||||||
| @ -317,6 +319,9 @@ killall -USR1 gvfsd >&/dev/null || : | |||||||
| %{_datadir}/gvfs/remote-volume-monitors/afc.monitor | %{_datadir}/gvfs/remote-volume-monitors/afc.monitor | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Fri Feb  5 2010 Tomas Bzatek <tbzatek@redhat.com> - 1.5.2-4 | ||||||
|  | - AFC: Use new libimobiledevice library | ||||||
|  | 
 | ||||||
| * Tue Jan 26 2010 Tomas Bzatek <tbzatek@redhat.com> - 1.5.2-3 | * Tue Jan 26 2010 Tomas Bzatek <tbzatek@redhat.com> - 1.5.2-3 | ||||||
| - Fix AFC build against new libiphone | - Fix AFC build against new libiphone | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user