From d3eb626ea0195ffb697e4945da93423276e1348f Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Jan 24 2013 12:21:11 +0000 Subject: Add patch for Red Hat bug #475117 and bug #903469 --- 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)