summaryrefslogtreecommitdiff
path: root/meta/recipes-kernel
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-kernel')
-rw-r--r--meta/recipes-kernel/oprofile/oprofileui/migrate-from-gnomevfs-to-gio.patch219
-rw-r--r--meta/recipes-kernel/oprofile/oprofileui_git.bb1
2 files changed, 220 insertions, 0 deletions
diff --git a/meta/recipes-kernel/oprofile/oprofileui/migrate-from-gnomevfs-to-gio.patch b/meta/recipes-kernel/oprofile/oprofileui/migrate-from-gnomevfs-to-gio.patch
new file mode 100644
index 000000000..bf3979f0d
--- /dev/null
+++ b/meta/recipes-kernel/oprofile/oprofileui/migrate-from-gnomevfs-to-gio.patch
@@ -0,0 +1,219 @@
+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)
+
diff --git a/meta/recipes-kernel/oprofile/oprofileui_git.bb b/meta/recipes-kernel/oprofile/oprofileui_git.bb
index aac33eaef..0047748b2 100644
--- a/meta/recipes-kernel/oprofile/oprofileui_git.bb
+++ b/meta/recipes-kernel/oprofile/oprofileui_git.bb
@@ -8,4 +8,5 @@ S = "${WORKDIR}/git"
# Oprofileui at http://labs.o-hand.com/oprofileui/ is not maintained now.
SRC_URI = "git://git.yoctoproject.org/oprofileui;protocol=git \
+ file://migrate-from-gnomevfs-to-gio.patch \
file://dso_linking_change_build_fix.patch "