From 96b751e6b740a5af338335110bc2f9c8eef11874 Mon Sep 17 00:00:00 2001 From: Chris Lord Date: Mon, 3 Oct 2005 16:44:39 +0000 Subject: [PATCH] Apply e-cal-backend-file.c patch to eds-dbus svn git-svn-id: https://svn.o-hand.com/repos/poky@105 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- .../packages/eds/eds-dbus/no_gnomevfs3.patch | 392 ------------------ openembedded/packages/eds/eds-dbus_svn.bb | 3 +- 2 files changed, 1 insertion(+), 394 deletions(-) delete mode 100644 openembedded/packages/eds/eds-dbus/no_gnomevfs3.patch diff --git a/openembedded/packages/eds/eds-dbus/no_gnomevfs3.patch b/openembedded/packages/eds/eds-dbus/no_gnomevfs3.patch deleted file mode 100644 index a9e911670a..0000000000 --- a/openembedded/packages/eds/eds-dbus/no_gnomevfs3.patch +++ /dev/null @@ -1,392 +0,0 @@ ---- trunk/calendar/backends/file/e-cal-backend-file.c.old 2005-10-03 13:19:26.000000000 +0100 -+++ trunk/calendar/backends/file/e-cal-backend-file.c 2005-10-03 15:46:10.000000000 +0100 -@@ -29,7 +29,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -106,17 +105,21 @@ - g_free (obj_data); - } - --/* Saves the calendar data */ -+static const char * -+find_path_from_uri (const char *uri) -+{ -+ g_assert (strncasecmp (uri, "file:", 5) == 0); -+ -+ return uri + 5; -+} -+ -+ /* Saves the calendar data */ - static gboolean - save_file_when_idle (gpointer user_data) - { - ECalBackendFilePrivate *priv; -- GnomeVFSURI *uri, *backup_uri; -- GnomeVFSHandle *handle = NULL; -- GnomeVFSResult result = GNOME_VFS_ERROR_BAD_FILE; -- GnomeVFSFileSize out; -- gchar *tmp, *backup_uristr; -- char *buf; -+ const char *path, *buf; -+ gboolean result; - ECalBackendFile *cbfile = user_data; - - priv = cbfile->priv; -@@ -130,52 +133,14 @@ - return FALSE; - } - -- uri = gnome_vfs_uri_new (priv->uri); -- if (!uri) -+ path = find_path_from_uri (priv->uri); -+ if (!path) - goto error_malformed_uri; - -- /* save calendar to backup file */ -- tmp = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); -- if (!tmp) { -- gnome_vfs_uri_unref (uri); -- goto error_malformed_uri; -- } -- -- backup_uristr = g_strconcat (tmp, "~", NULL); -- backup_uri = gnome_vfs_uri_new (backup_uristr); -- -- g_free (tmp); -- g_free (backup_uristr); -- -- if (!backup_uri) { -- gnome_vfs_uri_unref (uri); -- goto error_malformed_uri; -- } -- -- result = gnome_vfs_create_uri (&handle, backup_uri, -- GNOME_VFS_OPEN_WRITE, -- FALSE, 0666); -- if (result != GNOME_VFS_OK) { -- gnome_vfs_uri_unref (uri); -- gnome_vfs_uri_unref (backup_uri); -- goto error; -- } -- -+ /* save calendar */ - buf = icalcomponent_as_ical_string (priv->icalcomp); -- result = gnome_vfs_write (handle, buf, strlen (buf) * sizeof (char), &out); -- gnome_vfs_close (handle); -- if (result != GNOME_VFS_OK) { -- gnome_vfs_uri_unref (uri); -- gnome_vfs_uri_unref (backup_uri); -- goto error; -- } -- -- /* now copy the temporary file to the real file */ -- result = gnome_vfs_move_uri (backup_uri, uri, TRUE); -- -- gnome_vfs_uri_unref (uri); -- gnome_vfs_uri_unref (backup_uri); -- if (result != GNOME_VFS_OK) -+ result = g_file_set_contents (path, buf, -1, NULL); -+ if (!result) - goto error; - - priv->is_dirty = FALSE; -@@ -193,7 +158,8 @@ - - error: - g_mutex_unlock (priv->idle_save_mutex); -- e_cal_backend_notify_error (E_CAL_BACKEND (cbfile), gnome_vfs_result_to_string (result)); -+ e_cal_backend_notify_error (E_CAL_BACKEND (cbfile), -+ _("Can't save calendar data: Error writing to file.")); - return TRUE; - } - -@@ -310,7 +276,7 @@ - return obj_data ? obj_data->full_object : NULL; - } - -- -+ - - /* Calendar backend methods */ - -@@ -592,14 +558,12 @@ - } - } - --static char * -+G_GNUC_DEPRECATED static char * - get_uri_string_for_gnome_vfs (ECalBackend *backend) - { - ECalBackendFile *cbfile; - ECalBackendFilePrivate *priv; - const char *master_uri; -- char *full_uri, *str_uri; -- GnomeVFSURI *uri; - - cbfile = E_CAL_BACKEND_FILE (backend); - priv = cbfile->priv; -@@ -609,44 +573,41 @@ - /* FIXME Check the error conditions a little more elegantly here */ - if (g_strrstr ("tasks.ics", master_uri) || g_strrstr ("calendar.ics", master_uri)) { - g_warning (G_STRLOC ": Existing file name %s", master_uri); -- - return NULL; - } - -- full_uri = g_strdup_printf ("%s%s%s", master_uri, G_DIR_SEPARATOR_S, priv->file_name); -- uri = gnome_vfs_uri_new (full_uri); -- g_free (full_uri); -- -- if (!uri) -- return NULL; -- -- str_uri = gnome_vfs_uri_to_string (uri, -- (GNOME_VFS_URI_HIDE_USER_NAME -- | GNOME_VFS_URI_HIDE_PASSWORD -- | GNOME_VFS_URI_HIDE_HOST_NAME -- | GNOME_VFS_URI_HIDE_HOST_PORT -- | GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD)); -- gnome_vfs_uri_unref (uri); -+ return g_strdup_printf ("%s%s%s", master_uri, G_DIR_SEPARATOR_S, priv->file_name); -+} - -- if (!str_uri || !strlen (str_uri)) { -- g_free (str_uri); -+/** -+ * Get the full path to this calendar file. -+ */ -+static char * -+get_path (ECalBackend *backend) -+{ -+ ECalBackendFile *cbfile; -+ const char *topuri, *dirname; -+ char *filename; - -- return NULL; -- } -+ g_return_val_if_fail (E_IS_CAL_BACKEND_FILE (backend), NULL); - -- return str_uri; -+ cbfile = E_CAL_BACKEND_FILE (backend); -+ topuri = e_cal_backend_get_uri (backend); -+ dirname = find_path_from_uri (topuri); -+ filename = g_build_filename (dirname, cbfile->priv->file_name, NULL); -+ return filename; - } - - /* Parses an open iCalendar file and loads it into the backend */ - static ECalBackendSyncStatus --open_cal (ECalBackendFile *cbfile, const char *uristr) -+open_cal (ECalBackendFile *cbfile, const char *path) - { - ECalBackendFilePrivate *priv; - icalcomponent *icalcomp; - - priv = cbfile->priv; - -- icalcomp = e_cal_util_parse_ics_file (uristr); -+ icalcomp = e_cal_util_parse_ics_file (path); - if (!icalcomp) - return GNOME_Evolution_Calendar_OtherError; - -@@ -759,7 +720,7 @@ - } - - static ECalBackendSyncStatus --reload_cal (ECalBackendFile *cbfile, const char *uristr) -+reload_cal (ECalBackendFile *cbfile, const char *path) - { - ECalBackendFilePrivate *priv; - icalcomponent *icalcomp, *icalcomp_old; -@@ -767,7 +728,7 @@ - - priv = cbfile->priv; - -- icalcomp = e_cal_util_parse_ics_file (uristr); -+ icalcomp = e_cal_util_parse_ics_file (path); - if (!icalcomp) - return GNOME_Evolution_Calendar_OtherError; - -@@ -811,7 +772,7 @@ - } - - static ECalBackendSyncStatus --create_cal (ECalBackendFile *cbfile, const char *uristr) -+create_cal (ECalBackendFile *cbfile, const char *path) - { - char *dirname; - ECalBackendFilePrivate *priv; -@@ -819,7 +780,7 @@ - priv = cbfile->priv; - - /* Create the directory to contain the file */ -- dirname = g_path_get_dirname (uristr); -+ dirname = g_path_get_dirname (path); - if (e_util_mkdir_hier (dirname, 0700) != 0) { - g_free (dirname); - return GNOME_Evolution_Calendar_NoSuchCal; -@@ -840,18 +801,6 @@ - return GNOME_Evolution_Calendar_Success; - } - --static char * --get_uri_string (ECalBackend *backend) --{ -- gchar *str_uri, *full_uri; -- -- str_uri = get_uri_string_for_gnome_vfs (backend); -- full_uri = gnome_vfs_unescape_string (str_uri, ""); -- g_free (str_uri); -- -- return full_uri; --} -- - /* Open handler for the file backend */ - static ECalBackendSyncStatus - e_cal_backend_file_open (ECalBackendSync *backend, EDataCal *cal, gboolean only_if_exists, -@@ -859,7 +808,7 @@ - { - ECalBackendFile *cbfile; - ECalBackendFilePrivate *priv; -- char *str_uri; -+ char *filename; - ECalBackendSyncStatus status; - - cbfile = E_CAL_BACKEND_FILE (backend); -@@ -869,22 +818,20 @@ - if (priv->uri && priv->comp_uid_hash) - return GNOME_Evolution_Calendar_Success; - -- str_uri = get_uri_string (E_CAL_BACKEND (backend)); -- if (!str_uri) -- return GNOME_Evolution_Calendar_OtherError; -- -- if (access (str_uri, R_OK) == 0) { -- status = open_cal (cbfile, str_uri); -- if (access (str_uri, W_OK) != 0) -+ filename = get_path (E_CAL_BACKEND (backend)); -+ -+ if (access (filename, R_OK) == 0) { -+ status = open_cal (cbfile, filename); -+ if (access (filename, W_OK) != 0) - priv->read_only = TRUE; - } else { - if (only_if_exists) - status = GNOME_Evolution_Calendar_NoSuchCal; - else -- status = create_cal (cbfile, str_uri); -+ status = create_cal (cbfile, filename); // TODO? - } - -- g_free (str_uri); -+ g_free (filename); - - return status; - } -@@ -894,7 +841,7 @@ - { - ECalBackendFile *cbfile; - ECalBackendFilePrivate *priv; -- char *str_uri, *dirname; -+ char *filename, *dirname; - const char *fname; - GDir *dir; - GError *error = NULL; -@@ -903,21 +850,21 @@ - cbfile = E_CAL_BACKEND_FILE (backend); - priv = cbfile->priv; - -- str_uri = get_uri_string (E_CAL_BACKEND (backend)); -- if (!str_uri) -+ filename = get_path (E_CAL_BACKEND (backend)); -+ if (!filename) - return GNOME_Evolution_Calendar_OtherError; - -- if (access (str_uri, W_OK) != 0) { -- g_free (str_uri); -+ if (access (filename, W_OK) != 0) { -+ g_free (filename); - - return GNOME_Evolution_Calendar_PermissionDenied; - } - - /* remove all files in the directory */ -- dirname = g_path_get_dirname (str_uri); -+ dirname = g_path_get_dirname (filename); - dir = g_dir_open (dirname, 0, &error); - if (!dir) { -- g_free (str_uri); -+ g_free (filename); - g_free (dirname); - - return GNOME_Evolution_Calendar_PermissionDenied; -@@ -929,7 +876,7 @@ - full_path = g_build_filename (dirname, fname, NULL); - if (unlink (full_path) != 0) { - g_free (full_path); -- g_free (str_uri); -+ g_free (filename); - g_free (dirname); - g_dir_close (dir); - -@@ -943,7 +890,7 @@ - success = rmdir (dirname) == 0; - - g_dir_close (dir); -- g_free (str_uri); -+ g_free (filename); - g_free (dirname); - - return success ? GNOME_Evolution_Calendar_Success : GNOME_Evolution_Calendar_OtherError; -@@ -1506,14 +1453,11 @@ - EXmlHash *ehash; - ECalBackendFileComputeChangesData be_data; - GList *i; -- gchar *unescaped_uri; - - priv = cbfile->priv; - - /* FIXME Will this always work? */ -- unescaped_uri = gnome_vfs_unescape_string (priv->uri, ""); -- filename = g_strdup_printf ("%s-%s.db", unescaped_uri, change_id); -- g_free (unescaped_uri); -+ filename = g_strdup_printf ("%s-%s.db", priv->uri, change_id); - if (!(ehash = e_xmlhash_new (filename))) { - g_free (filename); - return GNOME_Evolution_Calendar_OtherError; -@@ -2577,23 +2521,23 @@ - e_cal_backend_file_reload (ECalBackendFile *cbfile) - { - ECalBackendFilePrivate *priv; -- char *str_uri; -+ char *filename; - ECalBackendSyncStatus status; - - priv = cbfile->priv; - -- str_uri = get_uri_string (E_CAL_BACKEND (cbfile)); -- if (!str_uri) -+ filename = get_path (E_CAL_BACKEND (cbfile)); -+ if (!filename) - return GNOME_Evolution_Calendar_OtherError; - -- if (access (str_uri, R_OK) == 0) { -- status = reload_cal (cbfile, str_uri); -- if (access (str_uri, W_OK) != 0) -+ if (access (filename, R_OK) == 0) { -+ status = reload_cal (cbfile, filename); -+ if (access (filename, W_OK) != 0) - priv->read_only = TRUE; - } else { - status = GNOME_Evolution_Calendar_NoSuchCal; - } - -- g_free (str_uri); -+ g_free (filename); - return status; - } diff --git a/openembedded/packages/eds/eds-dbus_svn.bb b/openembedded/packages/eds/eds-dbus_svn.bb index 6ddb91498b..1e24e420e4 100755 --- a/openembedded/packages/eds/eds-dbus_svn.bb +++ b/openembedded/packages/eds/eds-dbus_svn.bb @@ -4,13 +4,12 @@ RDEPENDS = "gtk+ gconf db libiconv" MAINTAINER = "Chris Lord " DESCRIPTION = "Evolution database backend server" PV = "1.4.0cvs${CVSDATE}" -PR = "r6" +PR = "r7" SRC_URI = "svn://svn.o-hand.com/repos/${PN};module=trunk;proto=http \ file://external_libdb.patch;patch=1 \ file://no_gnomevfs.patch;patch=1 \ file://no_gnomevfs2.patch;patch=1 \ - file://no_gnomevfs3.patch;patch=1 \ file://no_iconv_test.patch;patch=1 \ file://iconv-detect.h"