generic-poky/meta/recipes-kernel/oprofile/oprofileui/migrate-from-gnomevfs-to-gi...

220 lines
5.9 KiB
Diff

migrate from gnome-vfs to gio, as gnome-vfs is obsolete.
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Upstream-Status: Pending
Index: git/src/main.c
===================================================================
--- git.orig/src/main.c 2011-06-21 10:35:31.000000000 +0800
+++ git/src/main.c 2011-06-21 10:44:12.000000000 +0800
@@ -44,7 +44,6 @@
#include <gtk/gtk.h>
#include <glade/glade.h>
#include <glib.h>
-#include <libgnomevfs/gnome-vfs.h>
#include <gconf/gconf-client.h>
#include <glib/gi18n.h>
@@ -1005,8 +1004,7 @@
/* Cleanup the old archive */
archive_full_cleanup ();
- if (gnome_vfs_initialized())
- gnome_vfs_shutdown ();
+ g_type_init();
g_free(opui_config->host);
g_free(opui_config->opcontrol_params);
Index: git/src/archive.c
===================================================================
--- git.orig/src/archive.c 2011-06-21 10:38:57.000000000 +0800
+++ git/src/archive.c 2011-06-21 10:54:16.000000000 +0800
@@ -45,7 +45,6 @@
#include <glade/glade.h>
#include <glib.h>
#include <glib/gstdio.h>
-#include <libgnomevfs/gnome-vfs.h>
#include "oprofileui.h"
#include "response.h"
@@ -86,56 +85,113 @@
if (ret < 0)
{
- /* Use gnomevfs to copy the file as a fallback */
- GnomeVFSURI *src_uri, *dst_uri;
- GnomeVFSResult res;
-
- src_uri = gnome_vfs_uri_new (gnome_vfs_get_uri_from_local_path(src));
- dst_uri = gnome_vfs_uri_new (gnome_vfs_get_uri_from_local_path(dest));
- res = gnome_vfs_xfer_uri (src_uri, dst_uri,
- GNOME_VFS_XFER_DEFAULT |
- GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY,
- GNOME_VFS_XFER_ERROR_MODE_ABORT,
- GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
- NULL, NULL);
- if (res != GNOME_VFS_OK)
+ /* Use gio to copy the file as a fallback */
+ GFile *src_file, *dst_file;
+ gboolean res;
+ GError *error = NULL;
+
+ src_file = g_file_new_for_path (src);
+ dst_file = g_file_new_for_path (dest);
+
+ res = g_file_copy(src_file, dst_file,
+ G_FILE_COPY_NOFOLLOW_SYMLINKS |
+ G_FILE_COPY_OVERWRITE,
+ NULL,
+ NULL,
+ NULL,
+ &error);
+
+ if (!res && error)
{
- const gchar *err_string = gnome_vfs_result_to_string (res);
+ printf ("GIO: error %s (%s to %s)\n", error->message, src, dest);
- printf ("GNOME-VFS: error %s (%s to %s)\n", err_string, src, dest);
+ g_error_free(error);
}
+
+ g_object_unref(src_file);
+ g_object_unref(dst_file);
+
+ }
+}
+
+#define IS_IO_ERROR(__error, KIND) (((__error)->domain == G_IO_ERROR && (__error)->code == G_IO_ERROR_ ## KIND))
+
+static gboolean
+remove_target_recursively(GFile *file)
+{
+ GFileEnumerator *enumerator;
+ GError *error = NULL;
+ GFile *child;
+ GFileInfo *info;
+ gboolean stop = FALSE;
+
+ enumerator = g_file_enumerate_children(file,
+ G_FILE_ATTRIBUTE_STANDARD_NAME,
+ G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
+ NULL,
+ &error);
+
+ if (enumerator)
+ {
+ error = NULL;
+
+ while ( (info = g_file_enumerator_next_file(enumerator, NULL, &error))
+ != NULL ) {
+
+ child = g_file_get_child(file, g_file_info_get_name(info));
+ if (!remove_target_recursively(child))
+ {
+ stop = TRUE;
+ break;
+ }
+ g_object_unref(child);
+ g_object_unref(info);
+ }
+
+ g_object_unref(enumerator);
+ }
+ else if (IS_IO_ERROR(error, NOT_DIRECTORY))
+ {
+ g_error_free(error);
}
+ else
+ {
+ g_error_free(error);
+ stop = TRUE;
+ }
+
+ if (stop)
+ return FALSE;
+
+ error = NULL;
+ if (!g_file_delete(file, NULL, &error))
+ {
+ char *path = g_file_get_path(file);
+ printf ("GIO: error %s when deleteing file %s.\n", error->message, path);
+ g_free(path);
+
+ g_error_free(error);
+ return FALSE;
+ }
+
+ return TRUE;
+
}
/* Delete the directory specified by path */
static void
archive_removedir(gchar *path)
{
- GnomeVFSResult res;
- GnomeVFSURI *src_uri;
- GList uri_list;
+ GFile *src_file;
if (path == NULL)
return;
- gnome_vfs_init ();
-
- src_uri = gnome_vfs_uri_new (gnome_vfs_get_uri_from_local_path(path));
-
- uri_list.data = src_uri;
- uri_list.next = NULL;
- uri_list.prev = NULL;
+ src_file = g_file_new_for_path (path);
- res = gnome_vfs_xfer_delete_list (&uri_list,
- GNOME_VFS_XFER_ERROR_MODE_ABORT,
- GNOME_VFS_XFER_EMPTY_DIRECTORIES,
- NULL, NULL);
-
- if (res != GNOME_VFS_OK)
+ if (! remove_target_recursively(src_file))
{
- const gchar *err_string = gnome_vfs_result_to_string (res);
-
- printf ("GNOME-VFS: error %s\n", err_string);
+ printf ("GIO:remove %s failed", path);
}
}
@@ -242,8 +298,6 @@
gchar **tmp;
int i;
- gnome_vfs_init ();
-
tmp = g_strsplit (reply->payload, "\n", 0);
for (i=0; i < g_strv_length (tmp); i++)
@@ -436,8 +490,6 @@
{
gint counter;
- gnome_vfs_init ();
-
downloaded_files = g_slist_append (downloaded_files, g_strdup("/var/lib/oprofile/.converted"));
archive_save_window_show (g_slist_length (downloaded_files) +
Index: git/configure.ac
===================================================================
--- git.orig/configure.ac 2011-06-21 10:49:40.000000000 +0800
+++ git/configure.ac 2011-06-21 10:49:58.000000000 +0800
@@ -29,7 +29,7 @@
AM_CONDITIONAL(ENABLE_SERVER, test x$enable_server = xyes)
AM_CONDITIONAL(ENABLE_CLIENT, test x$enable_client = xyes)
-PKG_CHECK_MODULES(OPROFILEUI, [glib-2.0 libglade-2.0 gtk+-2.0 libxml-2.0 gnome-vfs-2.0 gconf-2.0])
+PKG_CHECK_MODULES(OPROFILEUI, [glib-2.0 libglade-2.0 gtk+-2.0 libxml-2.0 gconf-2.0])
AC_SUBST(OPROFILEUI_CFLAGS)
AC_SUBST(OPROFILEUI_LIBS)