- 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
|
||||
Name: gvfs
|
||||
Version: 1.5.2
|
||||
Release: 3%{?dist}
|
||||
Release: 4%{?dist}
|
||||
License: LGPLv2+
|
||||
Group: System Environment/Libraries
|
||||
URL: http://www.gtk.org
|
||||
@ -36,6 +36,7 @@ BuildRequires: libtool
|
||||
Patch0: gvfs-archive-integration.patch
|
||||
# from upstream
|
||||
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
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=552856
|
||||
Patch15: gvfs-1.5.1-gphoto2-no-storageinfo-support.patch
|
||||
@ -126,17 +127,18 @@ Summary: AFC support for gvfs
|
||||
Group: System Environment/Libraries
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: usbmuxd
|
||||
BuildRequires: libiphone-devel >= 0.9.4
|
||||
BuildRequires: libimobiledevice-devel >= 0.9.7
|
||||
|
||||
%description afc
|
||||
This package provides support for reading files on Apple iPhones and
|
||||
and iPod Touches to applications using gvfs.
|
||||
This package provides support for reading files on mobile devices
|
||||
including phones and music players to applications using gvfs.
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1 -b .archive-integration
|
||||
%patch1 -p1 -b .afc-buildfix
|
||||
%patch2 -p1 -b .afc-libimobiledevice
|
||||
%patch15 -p1 -b .gphoto2-storageinfo
|
||||
|
||||
%build
|
||||
@ -317,6 +319,9 @@ killall -USR1 gvfsd >&/dev/null || :
|
||||
%{_datadir}/gvfs/remote-volume-monitors/afc.monitor
|
||||
|
||||
%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
|
||||
- Fix AFC build against new libiphone
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user