From 3eac41c89aa208f0678a5091e9e264c8e736fb96 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 13 Oct 2012 18:19:54 -0400 Subject: [PATCH 01/13] 3.6.1 --- .gitignore | 1 + evolution.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index ffb8d06..dd245fa 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,4 @@ evolution-2.31.5.tar.bz2 /evolution-3.5.91.tar.xz /evolution-3.5.92.tar.xz /evolution-3.6.0.tar.xz +/evolution-3.6.1.tar.xz diff --git a/evolution.spec b/evolution.spec index 939fcc5..6819768 100644 --- a/evolution.spec +++ b/evolution.spec @@ -28,7 +28,7 @@ ### Abstract ### Name: evolution -Version: 3.6.0 +Version: 3.6.1 Release: 1%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME @@ -529,6 +529,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Sat Oct 13 2012 Matthew Barnes - 3.6.1-1 +- Update to 3.6.1 + * Mon Sep 24 2012 Matthew Barnes - 3.6.0-1 - Update to 3.6.0 - Remove patch for GNOME #678408 (fixed upstream). diff --git a/sources b/sources index 83fa0b3..53b6766 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5ceb71ca0bcc1f706f1a3283585c048c evolution-3.6.0.tar.xz +1ee557f05e57f0620a011bd10bdd1370 evolution-3.6.1.tar.xz From be201aa4316ba4d4dc4c59acbec9c5b4a934cc46 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 15 Oct 2012 12:59:51 +0200 Subject: [PATCH 02/13] Update the Source URL --- evolution.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evolution.spec b/evolution.spec index 6819768..bfb960f 100644 --- a/evolution.spec +++ b/evolution.spec @@ -35,7 +35,7 @@ Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL URL: http://projects.gnome.org/evolution/ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -Source: http://download.gnome.org/sources/%{name}/3.5/%{name}-%{version}.tar.xz +Source: http://download.gnome.org/sources/%{name}/3.6/%{name}-%{version}.tar.xz Obsoletes: anjal <= %{last_anjal_version} Obsoletes: libgal2 <= %{last_libgal2_version} From 6217faba3d0576437cce387186d2ffe303d039f2 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 9 Nov 2012 09:48:35 -0500 Subject: [PATCH 03/13] Drop unique3-devel BR (no longer needed). --- evolution.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/evolution.spec b/evolution.spec index bfb960f..dead61b 100644 --- a/evolution.spec +++ b/evolution.spec @@ -29,7 +29,7 @@ Name: evolution Version: 3.6.1 -Release: 1%{?dist} +Release: 2%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -89,7 +89,6 @@ BuildRequires: nspr-devel BuildRequires: nss-devel BuildRequires: pkgconfig BuildRequires: rarian-compat -BuildRequires: unique3-devel BuildRequires: webkitgtk3-devel >= %{webkit_version} BuildRequires: yelp-tools @@ -529,6 +528,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Fri Nov 09 2012 Matthew Barnes - 3.6.1-2 +- Drop unique3-devel BR, it's an ancient artifact. + * Sat Oct 13 2012 Matthew Barnes - 3.6.1-1 - Update to 3.6.1 From 1af29e53302c41c77795dac3e56887f2fc3d9f04 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 12 Nov 2012 08:50:21 +0100 Subject: [PATCH 04/13] Update to 3.6.2 --- .gitignore | 1 + evolution.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index dd245fa..28be999 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,4 @@ evolution-2.31.5.tar.bz2 /evolution-3.5.92.tar.xz /evolution-3.6.0.tar.xz /evolution-3.6.1.tar.xz +/evolution-3.6.2.tar.xz diff --git a/evolution.spec b/evolution.spec index dead61b..ec2ce03 100644 --- a/evolution.spec +++ b/evolution.spec @@ -28,8 +28,8 @@ ### Abstract ### Name: evolution -Version: 3.6.1 -Release: 2%{?dist} +Version: 3.6.2 +Release: 1%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -528,6 +528,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Mon Nov 12 2012 Milan Crha - 3.6.2-1 +- Update to 3.6.2 + * Fri Nov 09 2012 Matthew Barnes - 3.6.1-2 - Drop unique3-devel BR, it's an ancient artifact. diff --git a/sources b/sources index 53b6766..07a7b10 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -1ee557f05e57f0620a011bd10bdd1370 evolution-3.6.1.tar.xz +fd4a19f9d524b4a0510e85e280c362e0 evolution-3.6.2.tar.xz From ae11d7c69a27eaad973350b68763726dc77c0e26 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Tue, 13 Nov 2012 13:42:42 +0100 Subject: [PATCH 05/13] Add patch for Red Hat bug #875109 (Crash in http_request_send_async) --- evolution-3.6.2-rhbug875109.patch | 40 +++++++++++++++++++++++++++++++ evolution.spec | 8 ++++++- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 evolution-3.6.2-rhbug875109.patch diff --git a/evolution-3.6.2-rhbug875109.patch b/evolution-3.6.2-rhbug875109.patch new file mode 100644 index 0000000..de8d8c4 --- /dev/null +++ b/evolution-3.6.2-rhbug875109.patch @@ -0,0 +1,40 @@ +diff --git a/mail/e-http-request.c b/mail/e-http-request.c +index 84b243b..4b77950 100644 +--- a/mail/e-http-request.c ++++ b/mail/e-http-request.c +@@ -168,7 +168,9 @@ handle_http_request (GSimpleAsyncResult *res, + + /* Remove the __evo-mail query */ + soup_uri = soup_request_get_uri (SOUP_REQUEST (request)); +- query = soup_form_decode (soup_uri->query); ++ g_return_if_fail (soup_uri_get_query (soup_uri) != NULL); ++ ++ query = soup_form_decode (soup_uri_get_query (soup_uri)); + mail_uri = g_hash_table_lookup (query, "__evo-mail"); + if (mail_uri) + mail_uri = g_strdup (mail_uri); +@@ -432,7 +434,9 @@ http_request_send_async (SoupRequest *request, + + ehr = E_HTTP_REQUEST (request); + uri = soup_request_get_uri (request); +- query = soup_form_decode (uri->query); ++ g_return_if_fail (soup_uri_get_query (uri) != NULL); ++ ++ query = soup_form_decode (soup_uri_get_query (uri)); + + d ({ + gchar *uri_str = soup_uri_to_string (uri, FALSE); +diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c +index 5e33ccd..a544518 100644 +--- a/mail/e-mail-display.c ++++ b/mail/e-mail-display.c +@@ -355,7 +355,8 @@ mail_display_resource_requested (WebKitWebView *web_view, + + /* Redirect http(s) request to evo-http(s) protocol. + * See EMailRequest for further details about this. */ +- } else if (g_str_has_prefix (uri, "http:") || g_str_has_prefix (uri, "https")) { ++ } else if (g_str_has_prefix (uri, "http:") || g_str_has_prefix (uri, "https:") || ++ g_str_has_prefix (uri, "evo-http:") || g_str_has_prefix (uri, "evo-https:")) { + gchar *new_uri, *mail_uri, *enc; + SoupURI *soup_uri; + GHashTable *query; diff --git a/evolution.spec b/evolution.spec index ec2ce03..37c0e39 100644 --- a/evolution.spec +++ b/evolution.spec @@ -29,7 +29,7 @@ Name: evolution Version: 3.6.2 -Release: 1%{?dist} +Release: 2%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -49,6 +49,8 @@ Patch01: evolution-1.4.4-ldap-x86_64-hack.patch # RH bug #589555 Patch02: evolution-2.30.1-help-contents.patch +Patch03: evolution-3.6.2-rhbug875109.patch + ## Dependencies ### Requires: gnome-icon-theme >= %{gnome_icon_theme_version} @@ -190,6 +192,7 @@ This package contains the plugin to import Microsoft Personal Storage Table %setup -q -n evolution-%{version} %patch01 -p1 -b .ldaphack %patch02 -p1 -b .help-contents +%patch03 -p1 -b .rhbug875109 mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -528,6 +531,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Tue Nov 13 2012 Milan Crha - 3.6.2-2 +- Add patch for Red Hat bug #875109 (Crash in http_request_send_async) + * Mon Nov 12 2012 Milan Crha - 3.6.2-1 - Update to 3.6.2 From 3e335954dc1aa1924d2a231727304b0895292d40 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Wed, 21 Nov 2012 20:11:32 +0100 Subject: [PATCH 06/13] Add patch for Red Hat bug #877562 (restore doesn't work properly) --- evolution.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/evolution.spec b/evolution.spec index 37c0e39..1fef69b 100644 --- a/evolution.spec +++ b/evolution.spec @@ -29,7 +29,7 @@ Name: evolution Version: 3.6.2 -Release: 2%{?dist} +Release: 3%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -50,6 +50,7 @@ Patch01: evolution-1.4.4-ldap-x86_64-hack.patch Patch02: evolution-2.30.1-help-contents.patch Patch03: evolution-3.6.2-rhbug875109.patch +Patch04: evolution-3.6.2-restore.patch ## Dependencies ### @@ -193,6 +194,7 @@ This package contains the plugin to import Microsoft Personal Storage Table %patch01 -p1 -b .ldaphack %patch02 -p1 -b .help-contents %patch03 -p1 -b .rhbug875109 +%patch04 -p1 -b .restore mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -531,6 +533,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Wed Nov 21 2012 Milan Crha - 3.6.2-3 +- Add patch for Red Hat bug #877562 (restore doesn't work properly) + * Tue Nov 13 2012 Milan Crha - 3.6.2-2 - Add patch for Red Hat bug #875109 (Crash in http_request_send_async) From 16e9dd766f3db36a42528536f3a0eda175e29cea Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Wed, 21 Nov 2012 20:16:38 +0100 Subject: [PATCH 07/13] Might add also the patch file... --- evolution-3.6.2-restore.patch | 136 ++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 evolution-3.6.2-restore.patch diff --git a/evolution-3.6.2-restore.patch b/evolution-3.6.2-restore.patch new file mode 100644 index 0000000..894c0cb --- /dev/null +++ b/evolution-3.6.2-restore.patch @@ -0,0 +1,136 @@ +diff --git a/modules/backup-restore/Makefile.am b/modules/backup-restore/Makefile.am +index 4d23edf..7d952e7 100644 +--- a/modules/backup-restore/Makefile.am ++++ b/modules/backup-restore/Makefile.am +@@ -53,6 +53,7 @@ evolution_backup_CPPFLAGS = \ + -DSYSCONFDIR=\""$(sysconfdir)"\" \ + -DDATADIR=\""$(datadir)"\" \ + -DLIBDIR=\""$(libdir)"\" \ ++ -DDBUS_SERVICES_DIR=\"'${datadir}'/dbus-1/services\" \ + $(EVOLUTION_DATA_SERVER_CFLAGS) \ + $(GNOME_PLATFORM_CFLAGS) \ + $(NULL) +diff --git a/modules/backup-restore/evolution-backup-tool.c b/modules/backup-restore/evolution-backup-tool.c +index bc6ee27..f02680f 100644 +--- a/modules/backup-restore/evolution-backup-tool.c ++++ b/modules/backup-restore/evolution-backup-tool.c +@@ -53,6 +53,7 @@ + #define EVOLUTION "evolution" + #define EVOLUTION_DIR "$DATADIR/" + #define EVOLUTION_DIR_FILE EVOLUTION ".dir" ++#define DBUS_SOURCE_REGISTRY_SERVICE_FILE "$DBUSDATADIR/org.gnome.evolution.dataserver.Sources.service" + + #define ANCIENT_GCONF_DUMP_FILE "backup-restore-gconf.xml" + +@@ -178,6 +179,7 @@ replace_variables (const gchar *str) + repl ("$CONFIGDIR", e_get_user_config_dir ()); + repl ("$STRIPDATADIR", strip_datadir); + repl ("$STRIPCONFIGDIR", strip_configdir); ++ repl ("$DBUSDATADIR", DBUS_SERVICES_DIR); + + #undef repl + +@@ -445,6 +447,46 @@ get_dir_level (const gchar *dir) + return res; + } + ++static gchar * ++get_source_manager_reload_command (void) ++{ ++ GString *tmp; ++ gchar *command; ++ ++ tmp = replace_variables (DBUS_SOURCE_REGISTRY_SERVICE_FILE); ++ if (tmp) { ++ GKeyFile *key_file; ++ gchar *str = NULL; ++ ++ key_file = g_key_file_new (); ++ if (g_key_file_load_from_file (key_file, tmp->str, G_KEY_FILE_NONE, NULL)) { ++ str = g_key_file_get_string (key_file, "D-BUS Service", "Name", NULL); ++ } ++ g_key_file_free (key_file); ++ ++ if (str && *str) { ++ g_string_assign (tmp, str); ++ } else { ++ g_string_free (tmp, TRUE); ++ tmp = NULL; ++ } ++ ++ g_free (str); ++ } ++ ++ if (!tmp) ++ tmp = g_string_new ("org.gnome.evolution.dataserver.Sources0"); ++ ++ command = g_strdup_printf ("gdbus call --session --dest %s " ++ "--object-path /org/gnome/evolution/dataserver/SourceManager " ++ "--method org.gnome.evolution.dataserver.SourceManager.Reload", ++ tmp->str); ++ ++ g_string_free (tmp, TRUE); ++ ++ return command; ++} ++ + static void + restore (const gchar *filename, + GCancellable *cancellable) +@@ -578,6 +620,10 @@ restore (const gchar *filename, + EVOLUTION_DIR ANCIENT_GCONF_DUMP_FILE, + EVOUSERDATADIR_MAGIC, e_get_user_data_dir ()); + run_cmd ("gconftool-2 --load " EVOLUTION_DIR ANCIENT_GCONF_DUMP_FILE); ++ ++ /* give a chance to GConf to save what was loaded into a disk */ ++ g_usleep (G_USEC_PER_SEC * 5); ++ + /* do not forget to convert GConf keys into GSettings */ + run_cmd ("gsettings-data-convert"); + run_cmd ("rm " EVOLUTION_DIR ANCIENT_GCONF_DUMP_FILE); +@@ -613,6 +659,9 @@ restore (const gchar *filename, + run_cmd (command); + g_free (command); + ++ /* give a chance to GConf to save what was loaded into a disk */ ++ g_usleep (G_USEC_PER_SEC * 5); ++ + /* do not forget to convert GConf keys into GSettings */ + run_cmd ("gsettings-data-convert"); + +@@ -640,16 +689,13 @@ restore (const gchar *filename, + + txt = _("Reloading registry service"); + +- /* This runs migration routines on the newly-restored data. +- * +- * XXX Hard-coding the whole command like this is not ideal +- * because the "SourcesX" interface name will occasionally +- * change and I guarantee we'll forget to update this. */ +- run_cmd ( +- "gdbus call --session " +- "--dest org.gnome.evolution.dataserver.Sources0 " +- "--object-path /org/gnome/evolution/dataserver/SourceManager " +- "--method org.gnome.evolution.dataserver.SourceManager.Reload"); ++ /* wait few seconds, till changes settle */ ++ g_usleep (G_USEC_PER_SEC * 5); ++ ++ command = get_source_manager_reload_command (); ++ /* This runs migration routines on the newly-restored data. */ ++ run_cmd (command); ++ g_free (command); + + end: + if (restart_arg) { +@@ -657,6 +703,11 @@ end: + return; + + txt = _("Restarting Evolution"); ++ ++ /* wait 5 seconds before restarting evolution, thus any ++ changes being done are updated in source registry too */ ++ g_usleep (G_USEC_PER_SEC * 5); ++ + run_evolution_no_wait (); + } + } From a3a7f4d655f442174b3bb7e0e5f4eaaafb958a35 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 18 Jan 2013 09:50:09 +0100 Subject: [PATCH 08/13] Correct help-context patch test path (Red Had bug #901341) --- evolution-2.30.1-help-contents.patch | 4 ++-- evolution.spec | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/evolution-2.30.1-help-contents.patch b/evolution-2.30.1-help-contents.patch index e2b75a2..8586c4f 100644 --- a/evolution-2.30.1-help-contents.patch +++ b/evolution-2.30.1-help-contents.patch @@ -9,8 +9,8 @@ diff -up evolution-2.30.1.2/shell/e-shell-window-actions.c.help-contents evoluti + /* Viewing user documentation requires the evolution-help + * Fedora package. Look for one of the files it installs. */ + path = g_build_filename ( -+ EVOLUTION_DATADIR, "gnome", "help", -+ PACKAGE, "C", "index.page", NULL); ++ EVOLUTION_DATADIR, "help", "C", ++ PACKAGE, "index.page", NULL); + if (!g_file_test (path, G_FILE_TEST_IS_REGULAR)) + gtk_action_set_visible (ACTION (CONTENTS), FALSE); + g_free (path); diff --git a/evolution.spec b/evolution.spec index 1fef69b..b8074fe 100644 --- a/evolution.spec +++ b/evolution.spec @@ -533,6 +533,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Fri Jan 18 2013 Milan Crha - 3.6.2-3 +- Correct help-context patch test path (Red Had bug #901341) + * Wed Nov 21 2012 Milan Crha - 3.6.2-3 - Add patch for Red Hat bug #877562 (restore doesn't work properly) From 5105b33aa734abd369ea4289c495661319f4e38f Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Tue, 22 Jan 2013 11:41:08 +0100 Subject: [PATCH 09/13] Update to 3.6.3 --- .gitignore | 1 + evolution.spec | 16 +++++++--------- sources | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 28be999..7c2ba9b 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,4 @@ evolution-2.31.5.tar.bz2 /evolution-3.6.0.tar.xz /evolution-3.6.1.tar.xz /evolution-3.6.2.tar.xz +/evolution-3.6.3.tar.xz diff --git a/evolution.spec b/evolution.spec index b8074fe..045f1db 100644 --- a/evolution.spec +++ b/evolution.spec @@ -28,8 +28,8 @@ ### Abstract ### Name: evolution -Version: 3.6.2 -Release: 3%{?dist} +Version: 3.6.3 +Release: 1%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -49,9 +49,6 @@ Patch01: evolution-1.4.4-ldap-x86_64-hack.patch # RH bug #589555 Patch02: evolution-2.30.1-help-contents.patch -Patch03: evolution-3.6.2-rhbug875109.patch -Patch04: evolution-3.6.2-restore.patch - ## Dependencies ### Requires: gnome-icon-theme >= %{gnome_icon_theme_version} @@ -193,8 +190,6 @@ This package contains the plugin to import Microsoft Personal Storage Table %setup -q -n evolution-%{version} %patch01 -p1 -b .ldaphack %patch02 -p1 -b .help-contents -%patch03 -p1 -b .rhbug875109 -%patch04 -p1 -b .restore mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -533,8 +528,11 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog -* Fri Jan 18 2013 Milan Crha - 3.6.2-3 -- Correct help-context patch test path (Red Had bug #901341) +* Tue Jan 22 2013 Milan Crha - 3.6.3-1 +- Update to 3.6.3 +- Remove patch for Red Hat bug #875109 (fixed upstream) +- Remove patch for Red Hat bug #877562 (fixed upstream) +- Correct help-context patch test path (Red Hat bug #901341) * Wed Nov 21 2012 Milan Crha - 3.6.2-3 - Add patch for Red Hat bug #877562 (restore doesn't work properly) diff --git a/sources b/sources index 07a7b10..2f1b895 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -fd4a19f9d524b4a0510e85e280c362e0 evolution-3.6.2.tar.xz +5662efe3f61da457cf6f9aae634bfbbf evolution-3.6.3.tar.xz From d3eb626ea0195ffb697e4945da93423276e1348f Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Thu, 24 Jan 2013 13:21:11 +0100 Subject: [PATCH 10/13] Add patch for Red Hat bug #475117 and bug #903469 --- evolution-3.6.3-rhbug475117.patch | 150 ++++++++++++++++++++++++++++++ evolution-3.6.3-rhbug903469.patch | 46 +++++++++ evolution.spec | 11 ++- 3 files changed, 206 insertions(+), 1 deletion(-) create mode 100644 evolution-3.6.3-rhbug475117.patch create mode 100644 evolution-3.6.3-rhbug903469.patch diff --git a/evolution-3.6.3-rhbug475117.patch b/evolution-3.6.3-rhbug475117.patch new file mode 100644 index 0000000..7baa84c --- /dev/null +++ b/evolution-3.6.3-rhbug475117.patch @@ -0,0 +1,150 @@ +commit 9f5d682172643701e51452c4803db904cd6dbeac +Author: Milan Crha +Date: Wed Jan 23 20:06:47 2013 +0100 + + Bug #680537 - Reply to individual message in digest generates empty body + +diff --git a/modules/mail/e-mail-attachment-handler.c b/modules/mail/e-mail-attachment-handler.c +index 8bc2aad..1623cca 100644 +--- a/modules/mail/e-mail-attachment-handler.c ++++ b/modules/mail/e-mail-attachment-handler.c +@@ -60,40 +60,87 @@ static GtkTargetEntry target_table[] = { + { (gchar *) "x-uid-list", 0, 0 } + }; + +-static void +-mail_attachment_handler_forward (GtkAction *action, +- EAttachmentHandler *handler) ++static CamelMimeMessage * ++mail_attachment_handler_get_selected_message (EAttachmentHandler *handler) + { +- EMailAttachmentHandlerPrivate *priv; +- EShellSettings *shell_settings; + EAttachment *attachment; + EAttachmentView *view; + CamelMimePart *mime_part; + CamelDataWrapper *wrapper; +- EMailForwardStyle style; +- const gchar *property_name; ++ CamelMimeMessage *message = NULL; ++ CamelContentType *content_type; + GList *selected; + + view = e_attachment_handler_get_view (handler); +- priv = E_MAIL_ATTACHMENT_HANDLER_GET_PRIVATE (handler); + + selected = e_attachment_view_get_selected_attachments (view); +- g_return_if_fail (g_list_length (selected) == 1); ++ g_return_val_if_fail (g_list_length (selected) == 1, NULL); + + attachment = E_ATTACHMENT (selected->data); + mime_part = e_attachment_get_mime_part (attachment); + wrapper = camel_medium_get_content (CAMEL_MEDIUM (mime_part)); + ++ content_type = camel_data_wrapper_get_mime_type_field (wrapper); ++ if (content_type && camel_content_type_is (content_type, "message", "rfc822")) { ++ CamelDataWrapper *inner; ++ CamelContentType *inner_content_type; ++ ++ inner = camel_medium_get_content (CAMEL_MEDIUM (wrapper)); ++ inner_content_type = camel_data_wrapper_get_mime_type_field (inner); ++ if (!camel_content_type_is (inner_content_type, content_type->type, content_type->subtype)) { ++ CamelStream *mem; ++ ++ /* Create a message copy in case the inner content-type doesn't match ++ the mime_part's content type, which can happen for multipart/digest, ++ where it confuses the formatter on reply, which skips all rfc822 subparts. ++ */ ++ mem = camel_stream_mem_new (); ++ camel_data_wrapper_write_to_stream_sync (CAMEL_DATA_WRAPPER (wrapper), mem, NULL, NULL); ++ ++ g_seekable_seek (G_SEEKABLE (mem), 0, G_SEEK_SET, NULL, NULL); ++ message = camel_mime_message_new (); ++ if (!camel_data_wrapper_construct_from_stream_sync (CAMEL_DATA_WRAPPER (message), mem, NULL, NULL)) { ++ g_object_unref (message); ++ message = NULL; ++ } ++ ++ g_object_unref (mem); ++ } ++ } ++ ++ if (!message) ++ message = g_object_ref (wrapper); ++ ++ g_list_foreach (selected, (GFunc) g_object_unref, NULL); ++ g_list_free (selected); ++ ++ return message; ++} ++ ++static void ++mail_attachment_handler_forward (GtkAction *action, ++ EAttachmentHandler *handler) ++{ ++ EMailAttachmentHandlerPrivate *priv; ++ EShellSettings *shell_settings; ++ EMailForwardStyle style; ++ CamelMimeMessage *message; ++ const gchar *property_name; ++ ++ priv = E_MAIL_ATTACHMENT_HANDLER_GET_PRIVATE (handler); ++ ++ message = mail_attachment_handler_get_selected_message (handler); ++ g_return_if_fail (message != NULL); ++ + property_name = "mail-forward-style"; + shell_settings = e_shell_get_shell_settings (priv->shell); + style = e_shell_settings_get_int (shell_settings, property_name); + + em_utils_forward_message ( + priv->shell, CAMEL_SESSION (priv->session), +- CAMEL_MIME_MESSAGE (wrapper), style, NULL, NULL); ++ message, style, NULL, NULL); + +- g_list_foreach (selected, (GFunc) g_object_unref, NULL); +- g_list_free (selected); ++ g_object_unref (message); + } + + static void +@@ -102,34 +149,24 @@ mail_attachment_handler_reply (EAttachmentHandler *handler, + { + EMailAttachmentHandlerPrivate *priv; + EShellSettings *shell_settings; +- EAttachment *attachment; +- EAttachmentView *view; +- CamelMimePart *mime_part; +- CamelDataWrapper *wrapper; + EMailReplyStyle style; ++ CamelMimeMessage *message; + const gchar *property_name; +- GList *selected; + +- view = e_attachment_handler_get_view (handler); + priv = E_MAIL_ATTACHMENT_HANDLER_GET_PRIVATE (handler); + +- selected = e_attachment_view_get_selected_attachments (view); +- g_return_if_fail (g_list_length (selected) == 1); +- +- attachment = E_ATTACHMENT (selected->data); +- mime_part = e_attachment_get_mime_part (attachment); +- wrapper = camel_medium_get_content (CAMEL_MEDIUM (mime_part)); ++ message = mail_attachment_handler_get_selected_message (handler); ++ g_return_if_fail (message != NULL); + + property_name = "mail-reply-style"; + shell_settings = e_shell_get_shell_settings (priv->shell); + style = e_shell_settings_get_int (shell_settings, property_name); + + em_utils_reply_to_message ( +- priv->shell, CAMEL_MIME_MESSAGE (wrapper), ++ priv->shell, message, + NULL, NULL, reply_type, style, NULL, NULL); + +- g_list_foreach (selected, (GFunc) g_object_unref, NULL); +- g_list_free (selected); ++ g_object_unref (message); + } + + static void diff --git a/evolution-3.6.3-rhbug903469.patch b/evolution-3.6.3-rhbug903469.patch new file mode 100644 index 0000000..6c86e2d --- /dev/null +++ b/evolution-3.6.3-rhbug903469.patch @@ -0,0 +1,46 @@ +diff --git a/em-format/e-mail-formatter.h b/em-format/e-mail-formatter.h +index 9b4e84d..befa473 100644 +--- a/em-format/e-mail-formatter.h ++++ b/em-format/e-mail-formatter.h +@@ -50,6 +50,7 @@ typedef enum { + E_MAIL_FORMATTER_MODE_NORMAL = 0, + E_MAIL_FORMATTER_MODE_SOURCE, + E_MAIL_FORMATTER_MODE_RAW, ++ E_MAIL_FORMATTER_MODE_CID, + E_MAIL_FORMATTER_MODE_PRINTING, + E_MAIL_FORMATTER_MODE_ALL_HEADERS + } EMailFormatterMode; +diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c +index 9bb3238..9da76863 100644 +--- a/mail/e-mail-display.c ++++ b/mail/e-mail-display.c +@@ -354,7 +354,7 @@ mail_display_resource_requested (WebKitWebView *web_view, + new_uri = e_mail_part_build_uri ( + part_list->folder, part_list->message_uid, + "part_id", G_TYPE_STRING, uri, +- "mode", G_TYPE_INT, E_MAIL_FORMATTER_MODE_RAW, NULL); ++ "mode", G_TYPE_INT, E_MAIL_FORMATTER_MODE_CID, NULL); + + webkit_network_request_set_uri (request, new_uri); + +diff --git a/mail/e-mail-request.c b/mail/e-mail-request.c +index 2794cee..b27b009 100644 +--- a/mail/e-mail-request.c ++++ b/mail/e-mail-request.c +@@ -142,15 +142,7 @@ handle_mail_request (GSimpleAsyncResult *res, + } + + if (part) { +- CamelContentType *content_type; +- +- content_type = camel_mime_part_get_content_type (part->part); +- +- if (context.mode == E_MAIL_FORMATTER_MODE_RAW && content_type && +- camel_content_type_is (content_type, "text", "*") && +- !camel_content_type_is (content_type, "text", "plain") && +- !camel_content_type_is (content_type, "text", "html") && +- !camel_content_type_is (content_type, "text", "calendar")) { ++ if (context.mode == E_MAIL_FORMATTER_MODE_CID) { + CamelDataWrapper *dw; + CamelStream *raw_content; + GByteArray *ba; diff --git a/evolution.spec b/evolution.spec index 045f1db..5cd0516 100644 --- a/evolution.spec +++ b/evolution.spec @@ -29,7 +29,7 @@ Name: evolution Version: 3.6.3 -Release: 1%{?dist} +Release: 2%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -49,6 +49,9 @@ Patch01: evolution-1.4.4-ldap-x86_64-hack.patch # RH bug #589555 Patch02: evolution-2.30.1-help-contents.patch +Patch03: evolution-3.6.3-rhbug475117.patch +Patch04 :evolution-3.6.3-rhbug903469.patch + ## Dependencies ### Requires: gnome-icon-theme >= %{gnome_icon_theme_version} @@ -190,6 +193,8 @@ This package contains the plugin to import Microsoft Personal Storage Table %setup -q -n evolution-%{version} %patch01 -p1 -b .ldaphack %patch02 -p1 -b .help-contents +%patch03 -p1 -b .rhbug475117 +%patch04 -p1 -b .rhbug903469 mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -528,6 +533,10 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Thu Jan 24 2013 Milan Crha - 3.6.3-2 +- Add patch for Red Hat bug #475117 (Reply in multipart/digest) +- Add patch for Red Hat bug #903469 (Formatting of text/* parts) + * Tue Jan 22 2013 Milan Crha - 3.6.3-1 - Update to 3.6.3 - Remove patch for Red Hat bug #875109 (fixed upstream) From ebd784092164cad44808c878256fb057cf204a3d Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Thu, 7 Mar 2013 08:20:06 +0100 Subject: [PATCH 11/13] Update to 3.6.4 --- .gitignore | 1 + evolution-3.6.2-restore.patch | 136 --------------------------- evolution-3.6.2-rhbug875109.patch | 40 -------- evolution-3.6.3-rhbug475117.patch | 150 ------------------------------ evolution-3.6.3-rhbug903469.patch | 46 --------- evolution.spec | 16 ++-- sources | 2 +- 7 files changed, 10 insertions(+), 381 deletions(-) delete mode 100644 evolution-3.6.2-restore.patch delete mode 100644 evolution-3.6.2-rhbug875109.patch delete mode 100644 evolution-3.6.3-rhbug475117.patch delete mode 100644 evolution-3.6.3-rhbug903469.patch diff --git a/.gitignore b/.gitignore index 7c2ba9b..1e3defa 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,4 @@ evolution-2.31.5.tar.bz2 /evolution-3.6.1.tar.xz /evolution-3.6.2.tar.xz /evolution-3.6.3.tar.xz +/evolution-3.6.4.tar.xz diff --git a/evolution-3.6.2-restore.patch b/evolution-3.6.2-restore.patch deleted file mode 100644 index 894c0cb..0000000 --- a/evolution-3.6.2-restore.patch +++ /dev/null @@ -1,136 +0,0 @@ -diff --git a/modules/backup-restore/Makefile.am b/modules/backup-restore/Makefile.am -index 4d23edf..7d952e7 100644 ---- a/modules/backup-restore/Makefile.am -+++ b/modules/backup-restore/Makefile.am -@@ -53,6 +53,7 @@ evolution_backup_CPPFLAGS = \ - -DSYSCONFDIR=\""$(sysconfdir)"\" \ - -DDATADIR=\""$(datadir)"\" \ - -DLIBDIR=\""$(libdir)"\" \ -+ -DDBUS_SERVICES_DIR=\"'${datadir}'/dbus-1/services\" \ - $(EVOLUTION_DATA_SERVER_CFLAGS) \ - $(GNOME_PLATFORM_CFLAGS) \ - $(NULL) -diff --git a/modules/backup-restore/evolution-backup-tool.c b/modules/backup-restore/evolution-backup-tool.c -index bc6ee27..f02680f 100644 ---- a/modules/backup-restore/evolution-backup-tool.c -+++ b/modules/backup-restore/evolution-backup-tool.c -@@ -53,6 +53,7 @@ - #define EVOLUTION "evolution" - #define EVOLUTION_DIR "$DATADIR/" - #define EVOLUTION_DIR_FILE EVOLUTION ".dir" -+#define DBUS_SOURCE_REGISTRY_SERVICE_FILE "$DBUSDATADIR/org.gnome.evolution.dataserver.Sources.service" - - #define ANCIENT_GCONF_DUMP_FILE "backup-restore-gconf.xml" - -@@ -178,6 +179,7 @@ replace_variables (const gchar *str) - repl ("$CONFIGDIR", e_get_user_config_dir ()); - repl ("$STRIPDATADIR", strip_datadir); - repl ("$STRIPCONFIGDIR", strip_configdir); -+ repl ("$DBUSDATADIR", DBUS_SERVICES_DIR); - - #undef repl - -@@ -445,6 +447,46 @@ get_dir_level (const gchar *dir) - return res; - } - -+static gchar * -+get_source_manager_reload_command (void) -+{ -+ GString *tmp; -+ gchar *command; -+ -+ tmp = replace_variables (DBUS_SOURCE_REGISTRY_SERVICE_FILE); -+ if (tmp) { -+ GKeyFile *key_file; -+ gchar *str = NULL; -+ -+ key_file = g_key_file_new (); -+ if (g_key_file_load_from_file (key_file, tmp->str, G_KEY_FILE_NONE, NULL)) { -+ str = g_key_file_get_string (key_file, "D-BUS Service", "Name", NULL); -+ } -+ g_key_file_free (key_file); -+ -+ if (str && *str) { -+ g_string_assign (tmp, str); -+ } else { -+ g_string_free (tmp, TRUE); -+ tmp = NULL; -+ } -+ -+ g_free (str); -+ } -+ -+ if (!tmp) -+ tmp = g_string_new ("org.gnome.evolution.dataserver.Sources0"); -+ -+ command = g_strdup_printf ("gdbus call --session --dest %s " -+ "--object-path /org/gnome/evolution/dataserver/SourceManager " -+ "--method org.gnome.evolution.dataserver.SourceManager.Reload", -+ tmp->str); -+ -+ g_string_free (tmp, TRUE); -+ -+ return command; -+} -+ - static void - restore (const gchar *filename, - GCancellable *cancellable) -@@ -578,6 +620,10 @@ restore (const gchar *filename, - EVOLUTION_DIR ANCIENT_GCONF_DUMP_FILE, - EVOUSERDATADIR_MAGIC, e_get_user_data_dir ()); - run_cmd ("gconftool-2 --load " EVOLUTION_DIR ANCIENT_GCONF_DUMP_FILE); -+ -+ /* give a chance to GConf to save what was loaded into a disk */ -+ g_usleep (G_USEC_PER_SEC * 5); -+ - /* do not forget to convert GConf keys into GSettings */ - run_cmd ("gsettings-data-convert"); - run_cmd ("rm " EVOLUTION_DIR ANCIENT_GCONF_DUMP_FILE); -@@ -613,6 +659,9 @@ restore (const gchar *filename, - run_cmd (command); - g_free (command); - -+ /* give a chance to GConf to save what was loaded into a disk */ -+ g_usleep (G_USEC_PER_SEC * 5); -+ - /* do not forget to convert GConf keys into GSettings */ - run_cmd ("gsettings-data-convert"); - -@@ -640,16 +689,13 @@ restore (const gchar *filename, - - txt = _("Reloading registry service"); - -- /* This runs migration routines on the newly-restored data. -- * -- * XXX Hard-coding the whole command like this is not ideal -- * because the "SourcesX" interface name will occasionally -- * change and I guarantee we'll forget to update this. */ -- run_cmd ( -- "gdbus call --session " -- "--dest org.gnome.evolution.dataserver.Sources0 " -- "--object-path /org/gnome/evolution/dataserver/SourceManager " -- "--method org.gnome.evolution.dataserver.SourceManager.Reload"); -+ /* wait few seconds, till changes settle */ -+ g_usleep (G_USEC_PER_SEC * 5); -+ -+ command = get_source_manager_reload_command (); -+ /* This runs migration routines on the newly-restored data. */ -+ run_cmd (command); -+ g_free (command); - - end: - if (restart_arg) { -@@ -657,6 +703,11 @@ end: - return; - - txt = _("Restarting Evolution"); -+ -+ /* wait 5 seconds before restarting evolution, thus any -+ changes being done are updated in source registry too */ -+ g_usleep (G_USEC_PER_SEC * 5); -+ - run_evolution_no_wait (); - } - } diff --git a/evolution-3.6.2-rhbug875109.patch b/evolution-3.6.2-rhbug875109.patch deleted file mode 100644 index de8d8c4..0000000 --- a/evolution-3.6.2-rhbug875109.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/mail/e-http-request.c b/mail/e-http-request.c -index 84b243b..4b77950 100644 ---- a/mail/e-http-request.c -+++ b/mail/e-http-request.c -@@ -168,7 +168,9 @@ handle_http_request (GSimpleAsyncResult *res, - - /* Remove the __evo-mail query */ - soup_uri = soup_request_get_uri (SOUP_REQUEST (request)); -- query = soup_form_decode (soup_uri->query); -+ g_return_if_fail (soup_uri_get_query (soup_uri) != NULL); -+ -+ query = soup_form_decode (soup_uri_get_query (soup_uri)); - mail_uri = g_hash_table_lookup (query, "__evo-mail"); - if (mail_uri) - mail_uri = g_strdup (mail_uri); -@@ -432,7 +434,9 @@ http_request_send_async (SoupRequest *request, - - ehr = E_HTTP_REQUEST (request); - uri = soup_request_get_uri (request); -- query = soup_form_decode (uri->query); -+ g_return_if_fail (soup_uri_get_query (uri) != NULL); -+ -+ query = soup_form_decode (soup_uri_get_query (uri)); - - d ({ - gchar *uri_str = soup_uri_to_string (uri, FALSE); -diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c -index 5e33ccd..a544518 100644 ---- a/mail/e-mail-display.c -+++ b/mail/e-mail-display.c -@@ -355,7 +355,8 @@ mail_display_resource_requested (WebKitWebView *web_view, - - /* Redirect http(s) request to evo-http(s) protocol. - * See EMailRequest for further details about this. */ -- } else if (g_str_has_prefix (uri, "http:") || g_str_has_prefix (uri, "https")) { -+ } else if (g_str_has_prefix (uri, "http:") || g_str_has_prefix (uri, "https:") || -+ g_str_has_prefix (uri, "evo-http:") || g_str_has_prefix (uri, "evo-https:")) { - gchar *new_uri, *mail_uri, *enc; - SoupURI *soup_uri; - GHashTable *query; diff --git a/evolution-3.6.3-rhbug475117.patch b/evolution-3.6.3-rhbug475117.patch deleted file mode 100644 index 7baa84c..0000000 --- a/evolution-3.6.3-rhbug475117.patch +++ /dev/null @@ -1,150 +0,0 @@ -commit 9f5d682172643701e51452c4803db904cd6dbeac -Author: Milan Crha -Date: Wed Jan 23 20:06:47 2013 +0100 - - Bug #680537 - Reply to individual message in digest generates empty body - -diff --git a/modules/mail/e-mail-attachment-handler.c b/modules/mail/e-mail-attachment-handler.c -index 8bc2aad..1623cca 100644 ---- a/modules/mail/e-mail-attachment-handler.c -+++ b/modules/mail/e-mail-attachment-handler.c -@@ -60,40 +60,87 @@ static GtkTargetEntry target_table[] = { - { (gchar *) "x-uid-list", 0, 0 } - }; - --static void --mail_attachment_handler_forward (GtkAction *action, -- EAttachmentHandler *handler) -+static CamelMimeMessage * -+mail_attachment_handler_get_selected_message (EAttachmentHandler *handler) - { -- EMailAttachmentHandlerPrivate *priv; -- EShellSettings *shell_settings; - EAttachment *attachment; - EAttachmentView *view; - CamelMimePart *mime_part; - CamelDataWrapper *wrapper; -- EMailForwardStyle style; -- const gchar *property_name; -+ CamelMimeMessage *message = NULL; -+ CamelContentType *content_type; - GList *selected; - - view = e_attachment_handler_get_view (handler); -- priv = E_MAIL_ATTACHMENT_HANDLER_GET_PRIVATE (handler); - - selected = e_attachment_view_get_selected_attachments (view); -- g_return_if_fail (g_list_length (selected) == 1); -+ g_return_val_if_fail (g_list_length (selected) == 1, NULL); - - attachment = E_ATTACHMENT (selected->data); - mime_part = e_attachment_get_mime_part (attachment); - wrapper = camel_medium_get_content (CAMEL_MEDIUM (mime_part)); - -+ content_type = camel_data_wrapper_get_mime_type_field (wrapper); -+ if (content_type && camel_content_type_is (content_type, "message", "rfc822")) { -+ CamelDataWrapper *inner; -+ CamelContentType *inner_content_type; -+ -+ inner = camel_medium_get_content (CAMEL_MEDIUM (wrapper)); -+ inner_content_type = camel_data_wrapper_get_mime_type_field (inner); -+ if (!camel_content_type_is (inner_content_type, content_type->type, content_type->subtype)) { -+ CamelStream *mem; -+ -+ /* Create a message copy in case the inner content-type doesn't match -+ the mime_part's content type, which can happen for multipart/digest, -+ where it confuses the formatter on reply, which skips all rfc822 subparts. -+ */ -+ mem = camel_stream_mem_new (); -+ camel_data_wrapper_write_to_stream_sync (CAMEL_DATA_WRAPPER (wrapper), mem, NULL, NULL); -+ -+ g_seekable_seek (G_SEEKABLE (mem), 0, G_SEEK_SET, NULL, NULL); -+ message = camel_mime_message_new (); -+ if (!camel_data_wrapper_construct_from_stream_sync (CAMEL_DATA_WRAPPER (message), mem, NULL, NULL)) { -+ g_object_unref (message); -+ message = NULL; -+ } -+ -+ g_object_unref (mem); -+ } -+ } -+ -+ if (!message) -+ message = g_object_ref (wrapper); -+ -+ g_list_foreach (selected, (GFunc) g_object_unref, NULL); -+ g_list_free (selected); -+ -+ return message; -+} -+ -+static void -+mail_attachment_handler_forward (GtkAction *action, -+ EAttachmentHandler *handler) -+{ -+ EMailAttachmentHandlerPrivate *priv; -+ EShellSettings *shell_settings; -+ EMailForwardStyle style; -+ CamelMimeMessage *message; -+ const gchar *property_name; -+ -+ priv = E_MAIL_ATTACHMENT_HANDLER_GET_PRIVATE (handler); -+ -+ message = mail_attachment_handler_get_selected_message (handler); -+ g_return_if_fail (message != NULL); -+ - property_name = "mail-forward-style"; - shell_settings = e_shell_get_shell_settings (priv->shell); - style = e_shell_settings_get_int (shell_settings, property_name); - - em_utils_forward_message ( - priv->shell, CAMEL_SESSION (priv->session), -- CAMEL_MIME_MESSAGE (wrapper), style, NULL, NULL); -+ message, style, NULL, NULL); - -- g_list_foreach (selected, (GFunc) g_object_unref, NULL); -- g_list_free (selected); -+ g_object_unref (message); - } - - static void -@@ -102,34 +149,24 @@ mail_attachment_handler_reply (EAttachmentHandler *handler, - { - EMailAttachmentHandlerPrivate *priv; - EShellSettings *shell_settings; -- EAttachment *attachment; -- EAttachmentView *view; -- CamelMimePart *mime_part; -- CamelDataWrapper *wrapper; - EMailReplyStyle style; -+ CamelMimeMessage *message; - const gchar *property_name; -- GList *selected; - -- view = e_attachment_handler_get_view (handler); - priv = E_MAIL_ATTACHMENT_HANDLER_GET_PRIVATE (handler); - -- selected = e_attachment_view_get_selected_attachments (view); -- g_return_if_fail (g_list_length (selected) == 1); -- -- attachment = E_ATTACHMENT (selected->data); -- mime_part = e_attachment_get_mime_part (attachment); -- wrapper = camel_medium_get_content (CAMEL_MEDIUM (mime_part)); -+ message = mail_attachment_handler_get_selected_message (handler); -+ g_return_if_fail (message != NULL); - - property_name = "mail-reply-style"; - shell_settings = e_shell_get_shell_settings (priv->shell); - style = e_shell_settings_get_int (shell_settings, property_name); - - em_utils_reply_to_message ( -- priv->shell, CAMEL_MIME_MESSAGE (wrapper), -+ priv->shell, message, - NULL, NULL, reply_type, style, NULL, NULL); - -- g_list_foreach (selected, (GFunc) g_object_unref, NULL); -- g_list_free (selected); -+ g_object_unref (message); - } - - static void diff --git a/evolution-3.6.3-rhbug903469.patch b/evolution-3.6.3-rhbug903469.patch deleted file mode 100644 index 6c86e2d..0000000 --- a/evolution-3.6.3-rhbug903469.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/em-format/e-mail-formatter.h b/em-format/e-mail-formatter.h -index 9b4e84d..befa473 100644 ---- a/em-format/e-mail-formatter.h -+++ b/em-format/e-mail-formatter.h -@@ -50,6 +50,7 @@ typedef enum { - E_MAIL_FORMATTER_MODE_NORMAL = 0, - E_MAIL_FORMATTER_MODE_SOURCE, - E_MAIL_FORMATTER_MODE_RAW, -+ E_MAIL_FORMATTER_MODE_CID, - E_MAIL_FORMATTER_MODE_PRINTING, - E_MAIL_FORMATTER_MODE_ALL_HEADERS - } EMailFormatterMode; -diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c -index 9bb3238..9da76863 100644 ---- a/mail/e-mail-display.c -+++ b/mail/e-mail-display.c -@@ -354,7 +354,7 @@ mail_display_resource_requested (WebKitWebView *web_view, - new_uri = e_mail_part_build_uri ( - part_list->folder, part_list->message_uid, - "part_id", G_TYPE_STRING, uri, -- "mode", G_TYPE_INT, E_MAIL_FORMATTER_MODE_RAW, NULL); -+ "mode", G_TYPE_INT, E_MAIL_FORMATTER_MODE_CID, NULL); - - webkit_network_request_set_uri (request, new_uri); - -diff --git a/mail/e-mail-request.c b/mail/e-mail-request.c -index 2794cee..b27b009 100644 ---- a/mail/e-mail-request.c -+++ b/mail/e-mail-request.c -@@ -142,15 +142,7 @@ handle_mail_request (GSimpleAsyncResult *res, - } - - if (part) { -- CamelContentType *content_type; -- -- content_type = camel_mime_part_get_content_type (part->part); -- -- if (context.mode == E_MAIL_FORMATTER_MODE_RAW && content_type && -- camel_content_type_is (content_type, "text", "*") && -- !camel_content_type_is (content_type, "text", "plain") && -- !camel_content_type_is (content_type, "text", "html") && -- !camel_content_type_is (content_type, "text", "calendar")) { -+ if (context.mode == E_MAIL_FORMATTER_MODE_CID) { - CamelDataWrapper *dw; - CamelStream *raw_content; - GByteArray *ba; diff --git a/evolution.spec b/evolution.spec index 5cd0516..5d340d2 100644 --- a/evolution.spec +++ b/evolution.spec @@ -3,7 +3,7 @@ %define gnome_doc_utils_version 0.8.0 %define gnome_icon_theme_version 2.30.2.1 %define gtk3_version 3.2.0 -%define gtkhtml_version 4.3.1 +%define gtkhtml_version 4.6.4 %define intltool_version 0.35.5 %define libgdata_version 0.10.0 %define libgweather_version 3.5.0 @@ -28,8 +28,8 @@ ### Abstract ### Name: evolution -Version: 3.6.3 -Release: 2%{?dist} +Version: 3.6.4 +Release: 1%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -49,9 +49,6 @@ Patch01: evolution-1.4.4-ldap-x86_64-hack.patch # RH bug #589555 Patch02: evolution-2.30.1-help-contents.patch -Patch03: evolution-3.6.3-rhbug475117.patch -Patch04 :evolution-3.6.3-rhbug903469.patch - ## Dependencies ### Requires: gnome-icon-theme >= %{gnome_icon_theme_version} @@ -193,8 +190,6 @@ This package contains the plugin to import Microsoft Personal Storage Table %setup -q -n evolution-%{version} %patch01 -p1 -b .ldaphack %patch02 -p1 -b .help-contents -%patch03 -p1 -b .rhbug475117 -%patch04 -p1 -b .rhbug903469 mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -533,6 +528,11 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Thu Mar 07 2013 Milan Crha - 3.6.4-1 +- Update to 3.6.4 +- Remove patch for Red Hat bug #475117 (fixed upstream) +- Remove patch for Red Hat bug #903469 (fixed upstream) + * Thu Jan 24 2013 Milan Crha - 3.6.3-2 - Add patch for Red Hat bug #475117 (Reply in multipart/digest) - Add patch for Red Hat bug #903469 (Formatting of text/* parts) diff --git a/sources b/sources index 2f1b895..7365daa 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5662efe3f61da457cf6f9aae634bfbbf evolution-3.6.3.tar.xz +699c29a0179df3866ecc2f972bc626a4 evolution-3.6.4.tar.xz From 9d34d390fe2310a023a836f300de9ccab164a25c Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Thu, 7 Mar 2013 13:29:51 +0100 Subject: [PATCH 12/13] Add upstream patch to properly restore DConf settings from a backup --- evolution-3.6.4-restore-dconf.patch | 92 +++++++++++++++++++++++++++++ evolution.spec | 8 ++- 2 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 evolution-3.6.4-restore-dconf.patch diff --git a/evolution-3.6.4-restore-dconf.patch b/evolution-3.6.4-restore-dconf.patch new file mode 100644 index 0000000..521ea13 --- /dev/null +++ b/evolution-3.6.4-restore-dconf.patch @@ -0,0 +1,92 @@ +diff --git a/modules/backup-restore/evolution-backup-tool.c b/modules/backup-restore/evolution-backup-tool.c +index 7c8fc72..10522c5 100644 +--- a/modules/backup-restore/evolution-backup-tool.c ++++ b/modules/backup-restore/evolution-backup-tool.c +@@ -156,7 +156,8 @@ strip_home_dir (const gchar *dir) + } + + static GString * +-replace_variables (const gchar *str) ++replace_variables (const gchar *str, ++ gboolean remove_dir_sep) + { + GString *res = NULL, *use; + const gchar *strip_datadir, *strip_configdir; +@@ -185,9 +186,11 @@ replace_variables (const gchar *str) + + g_return_val_if_fail (res != NULL, NULL); + +- /* remove trailing dir separator */ +- while (res->len > 0 && res->str[res->len - 1] == G_DIR_SEPARATOR) { +- g_string_truncate (res, res->len - 1); ++ if (remove_dir_sep) { ++ /* remove trailing dir separator */ ++ while (res->len > 0 && res->str[res->len - 1] == G_DIR_SEPARATOR) { ++ g_string_truncate (res, res->len - 1); ++ } + } + + return res; +@@ -208,7 +211,7 @@ replace_in_file (const gchar *filename, + g_return_if_fail (replace != NULL); + + if (strstr (filename, "$")) { +- filenamestr = replace_variables (filename); ++ filenamestr = replace_variables (filename, TRUE); + + if (!filenamestr) { + g_warning ( +@@ -258,7 +261,7 @@ run_cmd (const gchar *cmd) + + if (strstr (cmd, "$") != NULL) { + /* read the doc for g_get_home_dir to know why replacing it here */ +- GString *str = replace_variables (cmd); ++ GString *str = replace_variables (cmd, FALSE); + + if (str) { + print_and_run (str->str); +@@ -280,14 +283,15 @@ write_dir_file (void) + GString *content, *filename; + GError *error = NULL; + +- filename = replace_variables ("$HOME/" EVOLUTION_DIR_FILE); ++ filename = replace_variables ("$HOME/" EVOLUTION_DIR_FILE, TRUE); + g_return_if_fail (filename != NULL); + + content = replace_variables ( + "[" KEY_FILE_GROUP "]\n" + "Version=" VERSION "\n" + "UserDataDir=$STRIPDATADIR\n" +- "UserConfigDir=$STRIPCONFIGDIR\n"); ++ "UserConfigDir=$STRIPCONFIGDIR\n" ++ , TRUE); + g_return_if_fail (content != NULL); + + g_file_set_contents (filename->str, content->str, content->len, &error); +@@ -453,7 +457,7 @@ get_source_manager_reload_command (void) + GString *tmp; + gchar *command; + +- tmp = replace_variables (DBUS_SOURCE_REGISTRY_SERVICE_FILE); ++ tmp = replace_variables (DBUS_SOURCE_REGISTRY_SERVICE_FILE, TRUE); + if (tmp) { + GKeyFile *key_file; + gchar *str = NULL; +@@ -535,7 +539,7 @@ restore (const gchar *filename, + run_cmd (command); + g_free (command); + +- dir_fn = replace_variables ("$TMP" G_DIR_SEPARATOR_S EVOLUTION_DIR_FILE); ++ dir_fn = replace_variables ("$TMP" G_DIR_SEPARATOR_S EVOLUTION_DIR_FILE, TRUE); + if (!dir_fn) { + g_warning ("Failed to create evolution's dir filename"); + goto end; +@@ -607,7 +611,7 @@ restore (const gchar *filename, + + if (is_new_format) { + /* new format has it in DATADIR... */ +- GString *file = replace_variables (EVOLUTION_DIR ANCIENT_GCONF_DUMP_FILE); ++ GString *file = replace_variables (EVOLUTION_DIR ANCIENT_GCONF_DUMP_FILE, TRUE); + if (file && g_file_test (file->str, G_FILE_TEST_EXISTS)) { + /* ancient backup */ + replace_in_file ( diff --git a/evolution.spec b/evolution.spec index 5d340d2..4ab0d4a 100644 --- a/evolution.spec +++ b/evolution.spec @@ -29,7 +29,7 @@ Name: evolution Version: 3.6.4 -Release: 1%{?dist} +Release: 2%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -49,6 +49,8 @@ Patch01: evolution-1.4.4-ldap-x86_64-hack.patch # RH bug #589555 Patch02: evolution-2.30.1-help-contents.patch +Patch03: evolution-3.6.4-restore-dconf.patch + ## Dependencies ### Requires: gnome-icon-theme >= %{gnome_icon_theme_version} @@ -190,6 +192,7 @@ This package contains the plugin to import Microsoft Personal Storage Table %setup -q -n evolution-%{version} %patch01 -p1 -b .ldaphack %patch02 -p1 -b .help-contents +%patch03 -p1 -b .restore-dconf mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -528,6 +531,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Thu Mar 07 2013 Milan Crha - 3.6.4-2 +- Add upstream patch to properly restore DConf settings from a backup + * Thu Mar 07 2013 Milan Crha - 3.6.4-1 - Update to 3.6.4 - Remove patch for Red Hat bug #475117 (fixed upstream) From 026b65a1239ab1a0e1c5cad8297f1cdc3d46ff3d Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 15 Mar 2013 17:00:47 +0100 Subject: [PATCH 13/13] Add patch for Red Hat bug #916890 (memory leaks during message send) --- evolution-3.6.4-send-message-leak.patch | 12 ++++++++++++ evolution.spec | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 evolution-3.6.4-send-message-leak.patch diff --git a/evolution-3.6.4-send-message-leak.patch b/evolution-3.6.4-send-message-leak.patch new file mode 100644 index 0000000..81b1342 --- /dev/null +++ b/evolution-3.6.4-send-message-leak.patch @@ -0,0 +1,12 @@ +diff --git a/libemail-engine/e-mail-session-utils.c b/libemail-engine/e-mail-session-utils.c +index 86c2545..c9100ff 100644 +--- a/libemail-engine/e-mail-session-utils.c ++++ b/libemail-engine/e-mail-session-utils.c +@@ -933,7 +933,6 @@ e_mail_session_send_to (EMailSession *session, + context->io_priority = io_priority; + context->from = from; + context->recipients = recipients; +- context->message = g_object_ref (message); + context->info = info; + context->xev = xev; + context->post_to_uris = post_to_uris; diff --git a/evolution.spec b/evolution.spec index 4ab0d4a..ce90e53 100644 --- a/evolution.spec +++ b/evolution.spec @@ -29,7 +29,7 @@ Name: evolution Version: 3.6.4 -Release: 2%{?dist} +Release: 3%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -51,6 +51,9 @@ Patch02: evolution-2.30.1-help-contents.patch Patch03: evolution-3.6.4-restore-dconf.patch +# RH-bug #916890 +Patch04: evolution-3.6.4-send-message-leak.patch + ## Dependencies ### Requires: gnome-icon-theme >= %{gnome_icon_theme_version} @@ -193,6 +196,7 @@ This package contains the plugin to import Microsoft Personal Storage Table %patch01 -p1 -b .ldaphack %patch02 -p1 -b .help-contents %patch03 -p1 -b .restore-dconf +%patch04 -p1 -b .send-message-leak mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -531,6 +535,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Fri Mar 15 2013 Milan Crha - 3.6.4-3 +- Add patch for Red Hat bug #916890 (memory leaks during message send) + * Thu Mar 07 2013 Milan Crha - 3.6.4-2 - Add upstream patch to properly restore DConf settings from a backup