diff options
Diffstat (limited to 'meta/recipes-kernel/oprofile/oprofileui/migrate-from-gnomevfs-to-gio.patch')
-rw-r--r-- | meta/recipes-kernel/oprofile/oprofileui/migrate-from-gnomevfs-to-gio.patch | 219 |
1 files changed, 219 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 0000000000..bf3979f0d3 --- /dev/null +++ b/meta/recipes-kernel/oprofile/oprofileui/migrate-from-gnomevfs-to-gio.patch | |||
@@ -0,0 +1,219 @@ | |||
1 | migrate from gnome-vfs to gio, as gnome-vfs is obsolete. | ||
2 | |||
3 | Signed-off-by: Zhai Edwin <edwin.zhai@intel.com> | ||
4 | |||
5 | Upstream-Status: Pending | ||
6 | |||
7 | Index: git/src/main.c | ||
8 | =================================================================== | ||
9 | --- git.orig/src/main.c 2011-06-21 10:35:31.000000000 +0800 | ||
10 | +++ git/src/main.c 2011-06-21 10:44:12.000000000 +0800 | ||
11 | @@ -44,7 +44,6 @@ | ||
12 | #include <gtk/gtk.h> | ||
13 | #include <glade/glade.h> | ||
14 | #include <glib.h> | ||
15 | -#include <libgnomevfs/gnome-vfs.h> | ||
16 | #include <gconf/gconf-client.h> | ||
17 | #include <glib/gi18n.h> | ||
18 | |||
19 | @@ -1005,8 +1004,7 @@ | ||
20 | /* Cleanup the old archive */ | ||
21 | archive_full_cleanup (); | ||
22 | |||
23 | - if (gnome_vfs_initialized()) | ||
24 | - gnome_vfs_shutdown (); | ||
25 | + g_type_init(); | ||
26 | |||
27 | g_free(opui_config->host); | ||
28 | g_free(opui_config->opcontrol_params); | ||
29 | Index: git/src/archive.c | ||
30 | =================================================================== | ||
31 | --- git.orig/src/archive.c 2011-06-21 10:38:57.000000000 +0800 | ||
32 | +++ git/src/archive.c 2011-06-21 10:54:16.000000000 +0800 | ||
33 | @@ -45,7 +45,6 @@ | ||
34 | #include <glade/glade.h> | ||
35 | #include <glib.h> | ||
36 | #include <glib/gstdio.h> | ||
37 | -#include <libgnomevfs/gnome-vfs.h> | ||
38 | |||
39 | #include "oprofileui.h" | ||
40 | #include "response.h" | ||
41 | @@ -86,56 +85,113 @@ | ||
42 | |||
43 | if (ret < 0) | ||
44 | { | ||
45 | - /* Use gnomevfs to copy the file as a fallback */ | ||
46 | - GnomeVFSURI *src_uri, *dst_uri; | ||
47 | - GnomeVFSResult res; | ||
48 | - | ||
49 | - src_uri = gnome_vfs_uri_new (gnome_vfs_get_uri_from_local_path(src)); | ||
50 | - dst_uri = gnome_vfs_uri_new (gnome_vfs_get_uri_from_local_path(dest)); | ||
51 | - res = gnome_vfs_xfer_uri (src_uri, dst_uri, | ||
52 | - GNOME_VFS_XFER_DEFAULT | | ||
53 | - GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY, | ||
54 | - GNOME_VFS_XFER_ERROR_MODE_ABORT, | ||
55 | - GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE, | ||
56 | - NULL, NULL); | ||
57 | - if (res != GNOME_VFS_OK) | ||
58 | + /* Use gio to copy the file as a fallback */ | ||
59 | + GFile *src_file, *dst_file; | ||
60 | + gboolean res; | ||
61 | + GError *error = NULL; | ||
62 | + | ||
63 | + src_file = g_file_new_for_path (src); | ||
64 | + dst_file = g_file_new_for_path (dest); | ||
65 | + | ||
66 | + res = g_file_copy(src_file, dst_file, | ||
67 | + G_FILE_COPY_NOFOLLOW_SYMLINKS | | ||
68 | + G_FILE_COPY_OVERWRITE, | ||
69 | + NULL, | ||
70 | + NULL, | ||
71 | + NULL, | ||
72 | + &error); | ||
73 | + | ||
74 | + if (!res && error) | ||
75 | { | ||
76 | - const gchar *err_string = gnome_vfs_result_to_string (res); | ||
77 | + printf ("GIO: error %s (%s to %s)\n", error->message, src, dest); | ||
78 | |||
79 | - printf ("GNOME-VFS: error %s (%s to %s)\n", err_string, src, dest); | ||
80 | + g_error_free(error); | ||
81 | } | ||
82 | + | ||
83 | + g_object_unref(src_file); | ||
84 | + g_object_unref(dst_file); | ||
85 | + | ||
86 | + } | ||
87 | +} | ||
88 | + | ||
89 | +#define IS_IO_ERROR(__error, KIND) (((__error)->domain == G_IO_ERROR && (__error)->code == G_IO_ERROR_ ## KIND)) | ||
90 | + | ||
91 | +static gboolean | ||
92 | +remove_target_recursively(GFile *file) | ||
93 | +{ | ||
94 | + GFileEnumerator *enumerator; | ||
95 | + GError *error = NULL; | ||
96 | + GFile *child; | ||
97 | + GFileInfo *info; | ||
98 | + gboolean stop = FALSE; | ||
99 | + | ||
100 | + enumerator = g_file_enumerate_children(file, | ||
101 | + G_FILE_ATTRIBUTE_STANDARD_NAME, | ||
102 | + G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, | ||
103 | + NULL, | ||
104 | + &error); | ||
105 | + | ||
106 | + if (enumerator) | ||
107 | + { | ||
108 | + error = NULL; | ||
109 | + | ||
110 | + while ( (info = g_file_enumerator_next_file(enumerator, NULL, &error)) | ||
111 | + != NULL ) { | ||
112 | + | ||
113 | + child = g_file_get_child(file, g_file_info_get_name(info)); | ||
114 | + if (!remove_target_recursively(child)) | ||
115 | + { | ||
116 | + stop = TRUE; | ||
117 | + break; | ||
118 | + } | ||
119 | + g_object_unref(child); | ||
120 | + g_object_unref(info); | ||
121 | + } | ||
122 | + | ||
123 | + g_object_unref(enumerator); | ||
124 | + } | ||
125 | + else if (IS_IO_ERROR(error, NOT_DIRECTORY)) | ||
126 | + { | ||
127 | + g_error_free(error); | ||
128 | } | ||
129 | + else | ||
130 | + { | ||
131 | + g_error_free(error); | ||
132 | + stop = TRUE; | ||
133 | + } | ||
134 | + | ||
135 | + if (stop) | ||
136 | + return FALSE; | ||
137 | + | ||
138 | + error = NULL; | ||
139 | + if (!g_file_delete(file, NULL, &error)) | ||
140 | + { | ||
141 | + char *path = g_file_get_path(file); | ||
142 | + printf ("GIO: error %s when deleteing file %s.\n", error->message, path); | ||
143 | + g_free(path); | ||
144 | + | ||
145 | + g_error_free(error); | ||
146 | + return FALSE; | ||
147 | + } | ||
148 | + | ||
149 | + return TRUE; | ||
150 | + | ||
151 | } | ||
152 | |||
153 | /* Delete the directory specified by path */ | ||
154 | static void | ||
155 | archive_removedir(gchar *path) | ||
156 | { | ||
157 | - GnomeVFSResult res; | ||
158 | - GnomeVFSURI *src_uri; | ||
159 | - GList uri_list; | ||
160 | + GFile *src_file; | ||
161 | |||
162 | if (path == NULL) | ||
163 | return; | ||
164 | |||
165 | - gnome_vfs_init (); | ||
166 | - | ||
167 | - src_uri = gnome_vfs_uri_new (gnome_vfs_get_uri_from_local_path(path)); | ||
168 | - | ||
169 | - uri_list.data = src_uri; | ||
170 | - uri_list.next = NULL; | ||
171 | - uri_list.prev = NULL; | ||
172 | + src_file = g_file_new_for_path (path); | ||
173 | |||
174 | - res = gnome_vfs_xfer_delete_list (&uri_list, | ||
175 | - GNOME_VFS_XFER_ERROR_MODE_ABORT, | ||
176 | - GNOME_VFS_XFER_EMPTY_DIRECTORIES, | ||
177 | - NULL, NULL); | ||
178 | - | ||
179 | - if (res != GNOME_VFS_OK) | ||
180 | + if (! remove_target_recursively(src_file)) | ||
181 | { | ||
182 | - const gchar *err_string = gnome_vfs_result_to_string (res); | ||
183 | - | ||
184 | - printf ("GNOME-VFS: error %s\n", err_string); | ||
185 | + printf ("GIO:remove %s failed", path); | ||
186 | } | ||
187 | } | ||
188 | |||
189 | @@ -242,8 +298,6 @@ | ||
190 | gchar **tmp; | ||
191 | int i; | ||
192 | |||
193 | - gnome_vfs_init (); | ||
194 | - | ||
195 | tmp = g_strsplit (reply->payload, "\n", 0); | ||
196 | |||
197 | for (i=0; i < g_strv_length (tmp); i++) | ||
198 | @@ -436,8 +490,6 @@ | ||
199 | { | ||
200 | gint counter; | ||
201 | |||
202 | - gnome_vfs_init (); | ||
203 | - | ||
204 | downloaded_files = g_slist_append (downloaded_files, g_strdup("/var/lib/oprofile/.converted")); | ||
205 | |||
206 | archive_save_window_show (g_slist_length (downloaded_files) + | ||
207 | Index: git/configure.ac | ||
208 | =================================================================== | ||
209 | --- git.orig/configure.ac 2011-06-21 10:49:40.000000000 +0800 | ||
210 | +++ git/configure.ac 2011-06-21 10:49:58.000000000 +0800 | ||
211 | @@ -29,7 +29,7 @@ | ||
212 | AM_CONDITIONAL(ENABLE_SERVER, test x$enable_server = xyes) | ||
213 | AM_CONDITIONAL(ENABLE_CLIENT, test x$enable_client = xyes) | ||
214 | |||
215 | -PKG_CHECK_MODULES(OPROFILEUI, [glib-2.0 libglade-2.0 gtk+-2.0 libxml-2.0 gnome-vfs-2.0 gconf-2.0]) | ||
216 | +PKG_CHECK_MODULES(OPROFILEUI, [glib-2.0 libglade-2.0 gtk+-2.0 libxml-2.0 gconf-2.0]) | ||
217 | AC_SUBST(OPROFILEUI_CFLAGS) | ||
218 | AC_SUBST(OPROFILEUI_LIBS) | ||
219 | |||